[U-Boot] [PATCH 0/7] Exynos4412 SPL support

Minkyu Kang mk7.kang at samsung.com
Thu Oct 4 02:09:40 UTC 2018


Dear Simon Shields,

On 12/09/18 17:28, Simon Shields wrote:
> Hi,
> 
> This patch series adds support for using U-Boot's SPL as the second
> stage bootloader ("BL2") on Exynos4412 SoCs.
> 
> - Patch #1 adds support for the EMMC/SD OM pin configuration, which is used
>   by the boards I tested on.
> - Patch #2 configures the magic values used to indicate system suspend
>   state (which are identical to exynos5).
> - Patch #3 renames the existing exynos4 clock/dmc initialisation code
>   to reflect the fact that it only supports exynos4210.
> - Patches #4 and #5 add/fill in structs reflecting the PMU and TZASC
>   register layouts on exynos4412, respectively.
> - Patch #6 adds the exynos4412 DMC and clock initialisation code and
>   enables building the SPL on exynos4412 platforms.
> - Patch #7 enables building the "mkexynosspl" utility for exynos4 SoCs.
> 
> The majority of the logic in patch #6 comes from a vendor u-boot dump
> (2010.12!), however, small portions (mostly code used for 2GB RAM
> initialisation) were reverse engineered from the vendor
> bootloader found on a GT-N7100.
> 
> This patch series has been tested on a GT-I9300 (exynos4412, 1GB RAM)
> and a GT-N7100 (exynos4412 prime, 2GB RAM), with a few additional
> patchsets applied for board/HW support (which I intend to upstream in
> the future).
> 
> Cheers,
> Simon
> 
> Simon Shields (7):
>   ARM: exynos: spl: add EMMC/SD boot mode support
>   exynos4: configure power down magic values
>   ARM: exynos: rename exynos4 setup files to exynos4210
>   ARM: exynos: fill in exynos4412_power struct
>   ARM: exynos: add exynos4412 TZASC memory layout
>   ARM: exynos: SPL support for exynos 4412
>   tools: build mkexynosspl for exynos4 as well
> 
>  arch/arm/mach-exynos/Kconfig                  |   6 +
>  arch/arm/mach-exynos/Makefile                 |   3 +-
>  ...init_exynos4.c => clock_init_exynos4210.c} |   2 +-
>  arch/arm/mach-exynos/clock_init_exynos4412.c  | 122 +++++
>  ...c_init_exynos4.c => dmc_init_exynos4210.c} |   2 +-
>  arch/arm/mach-exynos/dmc_init_exynos4412.c    | 185 ++++++++
>  .../{exynos4_setup.h => exynos4210_setup.h}   |   0
>  arch/arm/mach-exynos/exynos4412_setup.h       | 425 ++++++++++++++++++
>  arch/arm/mach-exynos/include/mach/cpu.h       |   2 +-
>  arch/arm/mach-exynos/include/mach/dmc.h       |  19 +
>  arch/arm/mach-exynos/include/mach/power.h     | 290 +++++++++++-
>  arch/arm/mach-exynos/power.c                  |  12 +
>  arch/arm/mach-exynos/spl_boot.c               |  22 +-
>  include/configs/exynos4-common.h              |   5 +
>  tools/Makefile                                |   1 +
>  15 files changed, 1084 insertions(+), 12 deletions(-)
>  rename arch/arm/mach-exynos/{clock_init_exynos4.c => clock_init_exynos4210.c} (99%)
>  create mode 100644 arch/arm/mach-exynos/clock_init_exynos4412.c
>  rename arch/arm/mach-exynos/{dmc_init_exynos4.c => dmc_init_exynos4210.c} (99%)
>  create mode 100644 arch/arm/mach-exynos/dmc_init_exynos4412.c
>  rename arch/arm/mach-exynos/{exynos4_setup.h => exynos4210_setup.h} (100%)
>  create mode 100644 arch/arm/mach-exynos/exynos4412_setup.h
> 

I've got warning/error.

arch/arm/mach-exynos/spl_boot.c: In function 'copy_uboot_to_ram':
arch/arm/mach-exynos/spl_boot.c:189:6: warning: unused variable 'ret' [-Wunused-variable]
  u32 ret;
      ^~~
  CC      spl/arch/arm/mach-exynos/lowlevel_init.o
  AS      spl/arch/arm/lib/crt0_arm_efi.o
  LD      spl/arch/arm/lib/built-in.o
  CC      spl/arch/arm/lib/reloc_arm_efi.o
  AR      spl/arch/arm/lib/lib.a
  LD      spl/arch/arm/mach-exynos/built-in.o
spl/arch/arm/mach-exynos/dmc_init_exynos4412.o: In function `board_num_mem_chips':
/home/share/Work/u-boot-samsung/arch/arm/mach-exynos/dmc_init_exynos4412.c:35: multiple definition of `mem_ctrl_init'
spl/arch/arm/mach-exynos/dmc_init_exynos4210.o:/home/share/Work/u-boot-samsung/arch/arm/mach-exynos/dmc_init_exynos4210.c:169: first defined here
spl/arch/arm/mach-exynos/clock_init_exynos4412.o: In function `system_clock_init':
/home/share/Work/u-boot-samsung/arch/arm/mach-exynos/clock_init_exynos4412.c:34: multiple definition of `system_clock_init'
spl/arch/arm/mach-exynos/clock_init_exynos4210.o:/home/share/Work/u-boot-samsung/arch/arm/mach-exynos/clock_init_exynos4210.c:40: first defined here
make[2]: *** [spl/arch/arm/mach-exynos/built-in.o] Error 1
make[1]: *** [spl/arch/arm/mach-exynos] Error 2
make: *** [spl/u-boot-spl] Error 2

Could you please check?

Thanks,
Minkyu Kang.


More information about the U-Boot mailing list