[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