[U-Boot] [PATCH] rockchip: Fix SPL console output when ROCKCHIP_SPL_BACK_TO_BROM is enabled

Sandy Patterson apatterson at sightlogix.com
Thu Aug 11 13:08:54 CEST 2016


On Wed, Aug 10, 2016 at 11:01 PM, Ziyuan Xu <xzy.xu at rock-chips.com> wrote:

>
>
> On 2016年08月10日 22:21, Sandy Patterson wrote:
>
>> Move back_to_bootrom() call later in SPL init so that the console is
>> initialized and printouts happen.
>>
>> Currently when ROCKCHIP_SPL_BACK_TO_BROM is enabled there is no console
>> output from the SPL init stages.
>>
>> I wasn't sure exactly where this should happen, so if we are set to do
>> run spl_board_init, then go back to bootrom there after
>> preloader_console_init(). Otherwise fall back to old behavior of doing
>> it in board_init_f.
>>
> In fact, ROCKCHIP_SPL_BACK_TO_BROM's aim is to reduce SPL's size, and we
> can undef CONFIG_SPL_MMC_SUPPORT and other thing.
> The SPL only in charge of DDR initialization, so that boot rom could load
> u-boot to RAM.
> If you really need something output, you can enable EARYLY_UART in
> rk3288-board-spl.c:board_init_f().
> But the above is my own understanding.


EARLY_UART is a good tool, but this patch just fixes printouts. It's not
enabling or disabling any code compilation. The console init and version
information code is there. I just move the back_to_bootrom call later in
the SPL if that later point exits. You can still
disable CONFIG_SPL_BOARD_INIT and it will fall back to calling the bootrom
earlier.

We don't actually need that much space. We chose to use BOOT_TO_BROM
instead of disabling the console in SPL.

We disable CONFIG_SPL_MMC_SUPPORT in our production system within the
rock2.h file if CONFIG_SPL_MMC_SUPPORT. I'll submit another patch for that.
I think if boootrom is used then the mmc should be removed from spl. I'm
not really sure how the config system is supposed to work in this case.


>
>> Signed-off-by: Sandy Patterson <apatterson at sightlogix.com>
>> ---
>>
>>   arch/arm/mach-rockchip/rk3288-board-spl.c | 5 ++++-
>>   1 file changed, 4 insertions(+), 1 deletion(-)
>>
>> diff --git a/arch/arm/mach-rockchip/rk3288-board-spl.c
>> b/arch/arm/mach-rockchip/rk3288-board-spl.c
>> index e0d92a6..0c2d525 100644
>> --- a/arch/arm/mach-rockchip/rk3288-board-spl.c
>> +++ b/arch/arm/mach-rockchip/rk3288-board-spl.c
>> @@ -206,7 +206,7 @@ void board_init_f(ulong dummy)
>>                 debug("DRAM init failed: %d\n", ret);
>>                 return;
>>         }
>> -#ifdef CONFIG_ROCKCHIP_SPL_BACK_TO_BROM
>> +#if defined(CONFIG_ROCKCHIP_SPL_BACK_TO_BROM) &&
>> !defined(CONFIG_SPL_BOARD_INIT)
>>         back_to_bootrom();
>>   #endif
>>   }
>> @@ -273,6 +273,9 @@ void spl_board_init(void)
>>         }
>>         preloader_console_init();
>> +#ifdef CONFIG_ROCKCHIP_SPL_BACK_TO_BROM
>> +       back_to_bootrom();
>> +#endif
>>         return;
>>   err:
>>         printf("spl_board_init: Error %d\n", ret);
>>
>
>
>


More information about the U-Boot mailing list