[U-Boot] [PATCH v2] rpi: passthrough of the firmware provided FDT blob

Cédric Schieli cschieli at gmail.com
Tue Nov 8 11:32:03 CET 2016


2016-11-08 4:14 GMT+01:00 Stephen Warren <swarren at wwwdotorg.org>:

> Please note that for this to work the U-Boot binary must be tagged
>> with a recent version of the mkknlimg script found in the Rasperry
>> Fundation's kernel tree:
>>
>> <kernel>/scripts/mkknlimg --dtok <uboot>/u-boot.bin /boot/u-boot.bin
>>
>> [1] https://www.raspberrypi.org/forums//viewtopic.php?f=107&t=134018
>>
>
>
> I believe the very latest firmware has been fixed to default to DTB rather
> than ATAGs, since essentially nothing uses ATAGs any more. At least, Phil
> mentioned that sometime; I haven't tracked the status of that change or
> tested it.
>

You're right, it doesn't seem to be needed anymore. I've just booted a
plain u-boot.bin binary and the DTB was provided.


> diff --git a/board/raspberrypi/rpi/rpi.c b/board/raspberrypi/rpi/rpi.c
>>
>
> +#ifdef CONFIG_ARM64
>> +void save_boot_params(unsigned long dtb)
>> +#else
>> +void save_boot_params(unsigned long r0, unsigned long r1, unsigned long
>> dtb)
>> +#endif
>> +{
>> +       fw_dtb_pointer = dtb;
>> +       save_boot_params_ret();
>> +}
>>
>
> I think you need to write that function in assembly. This "function" is
> called very early during U-Boot startup, before any stack pointer is set
> up. You can't guarantee that a function written in C won't attempt to use
> the stack, although admittedly with the current code, Makefile, and the
> Ubuntu compilers, it just happens not to.
>

Is inline assembly enough to guarantee that, or is it mandatory to revert
to an assembly file ?


More information about the U-Boot mailing list