[U-Boot] [PATCH 9/9] board: samsung: add initial Espresso7420 board support

Thomas Abraham ta.omasab at gmail.com
Sat Apr 23 17:35:10 CEST 2016


Hi Simon,

On Wed, Apr 20, 2016 at 8:11 PM, Simon Glass <sjg at chromium.org> wrote:
> Hi Thomas,
>
> On 13 April 2016 at 04:43, Thomas Abraham <ta.omasab at gmail.com> wrote:
>> From: Thomas Abraham <thomas.ab at samsung.com>
>>
>> Espresso7420 is a development/evaluation board for Exynos7420 SoC. It
>> includes multiple onboard compoments (EMMC/Codec) and various
>> interconnects (USB/HDMI).
>>
>> Signed-off-by: Thomas Abraham <thomas.ab at samsung.com>
>> ---
>>  arch/arm/dts/Makefile                     |    1 +
>>  arch/arm/dts/exynos7420-espresso7420.dts  |   24 ++++++++++++++++++++++++
>>  board/samsung/common/board.c              |   18 ++++++++++++++++--
>>  board/samsung/espresso7420/Kconfig        |   12 ++++++++++++
>>  board/samsung/espresso7420/MAINTAINERS    |    5 +++++
>>  board/samsung/espresso7420/Makefile       |   16 ++++++++++++++++
>>  board/samsung/espresso7420/espresso7420.c |   16 ++++++++++++++++
>>  configs/espresso7420_defconfig            |    8 ++++++++
>>  8 files changed, 98 insertions(+), 2 deletions(-)
>>  create mode 100644 arch/arm/dts/exynos7420-espresso7420.dts
>>  create mode 100644 board/samsung/espresso7420/Kconfig
>>  create mode 100644 board/samsung/espresso7420/MAINTAINERS
>>  create mode 100644 board/samsung/espresso7420/Makefile
>>  create mode 100644 board/samsung/espresso7420/espresso7420.c
>>  create mode 100644 configs/espresso7420_defconfig
>>
>
> Reviewed-by: Simon Glass <sjg at chromium.org>
>
> See below.
>
>> diff --git a/arch/arm/dts/Makefile b/arch/arm/dts/Makefile
>> index ea635e4..a61bbff 100644
>> --- a/arch/arm/dts/Makefile
>> +++ b/arch/arm/dts/Makefile
>> @@ -19,6 +19,7 @@ dtb-$(CONFIG_EXYNOS5) += exynos5250-arndale.dtb \
>>         exynos5420-peach-pit.dtb \
>>         exynos5800-peach-pi.dtb \
>>         exynos5422-odroidxu3.dtb
>> +dtb-$(CONFIG_EXYNOS7420) += exynos7420-espresso7420.dtb
>>  dtb-$(CONFIG_ARCH_ROCKCHIP) += \
>>         rk3288-firefly.dtb \
>>         rk3288-jerry.dtb \
>> diff --git a/arch/arm/dts/exynos7420-espresso7420.dts b/arch/arm/dts/exynos7420-espresso7420.dts
>> new file mode 100644
>> index 0000000..f17a848
>> --- /dev/null
>> +++ b/arch/arm/dts/exynos7420-espresso7420.dts
>> @@ -0,0 +1,24 @@
>> +/*
>> + * Samsung Espresso7420 board device tree source
>> + *
>> + * Copyright (c) 2016 Samsung Electronics Co., Ltd.
>> + *             http://www.samsung.com
>> + *
>> + * SPDX-License-Identifier:    GPL-2.0+
>> + */
>> +
>> +#include "exynos7420.dtsi"
>> +/ {
>> +       model = "Samsung Espresso7420 board based on Exynos7420";
>> +       compatible = "samsung,espresso7420", "samsung,exynos7420";
>> +
>> +       aliases {
>> +               serial2 = "/serial at 14C30000";
>> +               console = "/serial at 14C30000";
>> +               pinctrl0 = "/pinctrl at 13470000";
>> +       };
>> +};
>> +
>> +&fin_pll {
>> +       clock-frequency = <24000000>;
>> +};
>> diff --git a/board/samsung/common/board.c b/board/samsung/common/board.c
>> index 1334c22..e4f189c 100644
>> --- a/board/samsung/common/board.c
>> +++ b/board/samsung/common/board.c
>> @@ -27,6 +27,8 @@
>>  #include <usb.h>
>>  #include <dwc3-uboot.h>
>>  #include <samsung/misc.h>
>> +#include <dm/pinctrl.h>
>> +#include <dm.h>
>>
>>  DECLARE_GLOBAL_DATA_PTR;
>>
>> @@ -97,7 +99,7 @@ int board_init(void)
>>  int dram_init(void)
>>  {
>>         unsigned int i;
>> -       u32 addr;
>> +       unsigned long addr;
>>
>>         for (i = 0; i < CONFIG_NR_DRAM_BANKS; i++) {
>>                 addr = CONFIG_SYS_SDRAM_BASE + (i * SDRAM_BANK_SIZE);
>> @@ -109,7 +111,7 @@ int dram_init(void)
>>  void dram_init_banksize(void)
>>  {
>>         unsigned int i;
>> -       u32 addr, size;
>> +       unsigned long addr, size;
>>
>>         for (i = 0; i < CONFIG_NR_DRAM_BANKS; i++) {
>>                 addr = CONFIG_SYS_SDRAM_BASE + (i * SDRAM_BANK_SIZE);
>> @@ -122,6 +124,17 @@ void dram_init_banksize(void)
>>
>>  static int board_uart_init(void)
>>  {
>> +#if CONFIG_PINCTRL_EXYNOS
>> +       struct udevice *pinctrl;
>> +       int ret;
>> +
>> +       ret = uclass_get_device(UCLASS_PINCTRL, 0, &pinctrl);
>> +       if (ret)
>> +               return ret;
>> +
>> +       ret = pinctrl_request_noflags(pinctrl, PERIPH_ID_UART2);
>
> Does this not happen automatically when the UART is probed? It should
> call  pinctrl_select_state(dev, "default");

Right, this was not required. With the "u-boot,dm-pre-reloc" property
added to the pin configuration node, this change is not required. This
change will be remove in the next version.

Thanks,
Thomas.

>
>> +       return ret;
>> +#else
>>         int err, uart_id, ret = 0;
>>
>>         for (uart_id = PERIPH_ID_UART0; uart_id <= PERIPH_ID_UART3; uart_id++) {
>> @@ -133,6 +146,7 @@ static int board_uart_init(void)
>>                 }
>>         }
>>         return ret;
>> +#endif
>>  }
>>
>>  #ifdef CONFIG_BOARD_EARLY_INIT_F
>> diff --git a/board/samsung/espresso7420/Kconfig b/board/samsung/espresso7420/Kconfig
>> new file mode 100644
>> index 0000000..6cfead0
>> --- /dev/null
>> +++ b/board/samsung/espresso7420/Kconfig
>> @@ -0,0 +1,12 @@
>> +if TARGET_ESPRESSO7420
>> +
>> +config SYS_BOARD
>> +       default "espresso7420"
>
> Please add a description of the board in help.
>
>> +
>> +config SYS_VENDOR
>> +       default "samsung"
>> +
>> +config SYS_CONFIG_NAME
>> +       default "espresso7420"
>> +
>> +endif
>> diff --git a/board/samsung/espresso7420/MAINTAINERS b/board/samsung/espresso7420/MAINTAINERS
>> new file mode 100644
>> index 0000000..aaebc4c
>> --- /dev/null
>> +++ b/board/samsung/espresso7420/MAINTAINERS
>> @@ -0,0 +1,5 @@
>> +ESPRESSO7420 Board
>> +M:     Thomas Abraham <thomas.ab at samsung.com>
>> +S:     Maintained
>> +F:     board/samsung/espresso7420/
>> +F:     include/configs/espresso7420.h
>> diff --git a/board/samsung/espresso7420/Makefile b/board/samsung/espresso7420/Makefile
>> new file mode 100644
>> index 0000000..53d90fd
>> --- /dev/null
>> +++ b/board/samsung/espresso7420/Makefile
>> @@ -0,0 +1,16 @@
>> +#
>> +# Copyright (C) 2015 Samsung Electronics
>> +#
>> +# SPDX-License-Identifier:     GPL-2.0+
>> +#
>> +
>> +#obj-y += espresso7420_spl.o
>> +#obj-y += clk-boot_evt1.o
>> +#obj-y += lpddr4_evt1.o
>> +#obj-y += dmc_init_lpddr4.o
>> +#obj-y += dmc.o
>> +#obj-y += clock.o clock_init.o
>
> Why the commented-out files?
>
>> +
>> +ifndef CONFIG_SPL_BUILD
>> +obj-y  += espresso7420.o
>> +endif
>> diff --git a/board/samsung/espresso7420/espresso7420.c b/board/samsung/espresso7420/espresso7420.c
>> new file mode 100644
>> index 0000000..04a83bc
>> --- /dev/null
>> +++ b/board/samsung/espresso7420/espresso7420.c
>> @@ -0,0 +1,16 @@
>> +/*
>> + * Espresso7420 board file
>> + * Copyright (C) 2016 Samsung Electronics
>> + * Thomas Abraham <thomas.ab at samsung.com>
>> + *
>> + * SPDX-License-Identifier:    GPL-2.0+
>> + */
>> +
>> +#include <common.h>
>> +
>> +DECLARE_GLOBAL_DATA_PTR;
>> +
>> +int exynos_init(void)
>> +{
>> +       return 0;
>> +}
>> diff --git a/configs/espresso7420_defconfig b/configs/espresso7420_defconfig
>> new file mode 100644
>> index 0000000..604921f
>> --- /dev/null
>> +++ b/configs/espresso7420_defconfig
>> @@ -0,0 +1,8 @@
>> +CONFIG_ARM=y
>> +CONFIG_ARCH_EXYNOS=y
>> +CONFIG_TARGET_ESPRESSO7420=y
>> +CONFIG_DEFAULT_DEVICE_TREE="exynos7420-espresso7420"
>> +CONFIG_SYS_MALLOC_F_LEN=0x2000
>> +CONFIG_SYS_PROMPT="ESPRESSO7420 # "
>> +# CONFIG_CMD_IMLS is not set
>> +# CONFIG_CMD_SETEXPR is not set
>> --
>> 1.6.6.rc2
>>
>
> Regards,
> Simon


More information about the U-Boot mailing list