[U-Boot] [PATCH 19/24] sunxi: A64: enable SPL

Andre Przywara andre.przywara at arm.com
Mon Nov 21 17:42:15 CET 2016


Hi,

On 21/11/16 16:37, Alexander Graf wrote:
> 
> 
> On 20/11/2016 15:57, Andre Przywara wrote:
>> Now that the SPL is ready to be compiled in AArch64 and the DRAM
>> init code is ready, enable SPL support for the A64 SoC and in the
>> Pine64 defconfig.
>> For now we keep the boot0 header in the U-Boot proper, as this allows
>> to still use boot0 as an SPL replacement without hurting the SPL use
>> case.
>> We disable FEL support for now, as the code isn't ready yet.
>>
>> Signed-off-by: Andre Przywara <andre.przywara at arm.com>
>> ---
>>  arch/arm/include/asm/arch-sunxi/boot0.h | 4 ++--
>>  arch/arm/mach-sunxi/board.c             | 2 +-
>>  board/sunxi/Kconfig                     | 2 ++
>>  configs/pine64_plus_defconfig           | 2 ++
>>  include/configs/sunxi-common.h          | 2 ++
>>  5 files changed, 9 insertions(+), 3 deletions(-)
>>
>> diff --git a/arch/arm/include/asm/arch-sunxi/boot0.h
>> b/arch/arm/include/asm/arch-sunxi/boot0.h
>> index c31a2af..173e042 100644
>> --- a/arch/arm/include/asm/arch-sunxi/boot0.h
>> +++ b/arch/arm/include/asm/arch-sunxi/boot0.h
>> @@ -4,11 +4,11 @@
>>   * SPDX-License-Identifier:    GPL-2.0+
>>   */
>>
>> -#if defined(CONFIG_RESERVE_ALLWINNER_BOOT0_HEADER)
>> +#if defined(CONFIG_RESERVE_ALLWINNER_BOOT0_HEADER) &&
>> !defined(CONFIG_SPL_BUILD)
>>  /* reserve space for BOOT0 header information */
>>      b    reset
>>      .space    1532
>> -#elif defined(CONFIG_ARM_BOOT_HOOK_RMR)
>> +#elif defined(CONFIG_ARM_BOOT_HOOK_RMR) && defined(CONFIG_SPL_BUILD)
>>  /* switch into AArch64 if needed */
>>      tst     x0, x0                  // this is "b #0x84" in ARM
>>      b       reset
> 
> Shouldn't the hunk above go into the patches that introduce the options?

Possibly.

>> diff --git a/arch/arm/mach-sunxi/board.c b/arch/arm/mach-sunxi/board.c
>> index 0f8ead9..80d4b57 100644
>> --- a/arch/arm/mach-sunxi/board.c
>> +++ b/arch/arm/mach-sunxi/board.c
>> @@ -133,7 +133,7 @@ static int gpio_init(void)
>>      return 0;
>>  }
>>
>> -#ifdef CONFIG_SPL_BUILD
>> +#if defined(CONFIG_SPL_BOARD_LOAD_IMAGE) && defined(CONFIG_SPL_BUILD)
>>  static int spl_board_load_image(struct spl_image_info *spl_image,
>>                  struct spl_boot_device *bootdev)
>>  {
>> diff --git a/board/sunxi/Kconfig b/board/sunxi/Kconfig
>> index d477925..b5246df 100644
>> --- a/board/sunxi/Kconfig
>> +++ b/board/sunxi/Kconfig
>> @@ -125,6 +125,7 @@ config MACH_SUN50I
>>      bool "sun50i (Allwinner A64)"
>>      select ARM64
>>      select SUNXI_GEN_SUN6I
>> +    select SUPPORT_SPL
>>
>>  endchoice
>>
>> @@ -187,6 +188,7 @@ config DRAM_ODT_EN
>>      bool "sunxi dram odt enable"
>>      default n if !MACH_SUN8I_A23
>>      default y if MACH_SUN8I_A23
>> +    default y if MACH_SUN50I
>>      ---help---
>>      Select this to enable dram odt (on die termination).
>>
>> diff --git a/configs/pine64_plus_defconfig
>> b/configs/pine64_plus_defconfig
>> index ebc24b8..5286fee 100644
>> --- a/configs/pine64_plus_defconfig
>> +++ b/configs/pine64_plus_defconfig
>> @@ -2,9 +2,11 @@ CONFIG_ARM=y
>>  CONFIG_RESERVE_ALLWINNER_BOOT0_HEADER=y
>>  CONFIG_ARCH_SUNXI=y
>>  CONFIG_MACH_SUN50I=y
>> +CONFIG_DRAM_CLK=672
> 
> Do you need this?

No, you are right. I think I had a lower default in sunxi/Kconfig before.

Cheers,
Andre.

>>  CONFIG_DEFAULT_DEVICE_TREE="sun50i-a64-pine64-plus"
>>  # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
>>  CONFIG_CONSOLE_MUX=y
>> +CONFIG_SPL=y
>>  # CONFIG_CMD_IMLS is not set
>>  # CONFIG_CMD_FLASH is not set
>>  # CONFIG_CMD_FPGA is not set
>> diff --git a/include/configs/sunxi-common.h
>> b/include/configs/sunxi-common.h
>> index 86b4104..f2cb174 100644
>> --- a/include/configs/sunxi-common.h
>> +++ b/include/configs/sunxi-common.h
>> @@ -182,7 +182,9 @@
>>
>>  #define CONFIG_SPL_FRAMEWORK
>>
>> +#ifndef CONFIG_MACH_SUN50I
>>  #define CONFIG_SPL_BOARD_LOAD_IMAGE
>> +#endif
>>
>>  #if defined(CONFIG_MACH_SUN9I)
>>  #define CONFIG_SPL_TEXT_BASE        0x10040        /* sram
>> start+header */
>>


More information about the U-Boot mailing list