[U-Boot] How to support ATF on u-boot

Simon Glass sjg at chromium.org
Wed Jul 27 01:42:51 CEST 2016


Hi,

On 14 July 2016 at 06:14, Kever Yang <kever.yang at rock-chips.com> wrote:
> Hi Andre,
>
>
> On 07/13/2016 08:45 PM, Andre Przywara wrote:
>>
>> Hi,
>>
>> On 13/07/16 13:27, Andreas Färber wrote:
>>>
>>> Hi Kever,
>>>
>>> Am 20.06.2016 um 04:59 schrieb Kever Yang:
>>>>
>>>>      I want to upstream a new SoC named RK3399 from Rockchip which is
>>>> AARCH64/ARMv8, we need to support Arm Trust Firmware base on U-boot.
>>>>
>>>>      Right now we are using a miniloader(just like SPL in U-boot) to
>>>> load
>>>> ATF/U-boot,
>>>> and PC jump from miniloader to ATF and then to U-boot(with CPU change to
>>>> EL2 mode or nsEL1),
>>>> then U-boot load kernel/rootfs as usual.
>>>>
>>>>      The ATF support for RK3399 has already upstream
>>>>      Could you give your opinion on how to support ATF on U-boot
>>>> upstream?
>>>> When I asked Simon Glass offline, he suggest if we can build ATF as part
>>>> of the
>>>> U-boot build process, perhaps with a script in U-boot tree,
>>>>
>>>> Perhaps something like:
>>>>
>>>> make rk3399_board_defconfig
>>>> make
>>>> ./scripts/build-atf-image rk3399_board
>>>> ^^ new script
>>
>> I am not sure we should trigger an ATF build on building U-Boot. In my
>> build process for the Pine64 I just point to the compiled binary and
>> leave it up to the user to take care of compiling that. ATF builds are
>> really easy and fast, for the Pine64 it's just: "make PLAT=sun50iw1p1
>> bl31" for instance and takes only a few seconds.
>
> I have send my patch set today, get bl31 from ATF is easy, still need some
> rockchip tools to do the package and load the image.
>>
>>
>>>> In any case, a good README would help.
>>>
>>> I've started looking into RK3368 for my GeekBox, which raises a similar
>>> issue. Are you working on that as well or just RK3399?
>>>
>>> Personally I think that the approach the HiKey has taken is the best,
>>> i.e. decouple U-Boot from ATF and just supply a README for how to make
>>> it work with U-Boot as ATF payload.
>>
>> Interestingly ATF itself considers U-Boot a payload, as it provides its
>> own bootstrapping parts which take a similar role as U-Boot's SPL.
>> So the official ATF build process (at least for Juno) lets you specify
>> the location of the U-Boot binary to be included in their FIP image.
>>
>> OTOH, some boards (like the Pine64) only use the runtime component of
>> ATF, so including it in U-Boot makes more sense (see below). I guess
>> this is similar for Rockchip?
>
> Yes for now, but I think there might be a secure OS in the future.
>>
>>
>>> Obviously it would help to integrate your loaderimage tool into mkimage.
>>
>> FWIW, I extended SPL's FIT loading to support loading multiple images.
>> With this I was able to combine (non-SPL) U-Boot, ATF and multiple DTs
>> into one FIT image and attach that to the SPL.
>> I even managed to include a kernel and initrd in there, fwiw.
>> I will post those patches soonish.
>
> Great, good news! Simon also want to enable the SPL support for ATF when we
> discuss this issue offline, so I think we can see this feature enabled very
> soon.

Just to follow up, I send a series that adds a 'binman' tool. I have
not added specific support for ATF but it should be very easy to do
so, once the image layout is defined.

Regards,
Simon


More information about the U-Boot mailing list