[U-Boot] [PATCH 5/5] RFC: sunxi: WIP FEL support

Simon Glass sjg at chromium.org
Fri Feb 6 06:45:38 CET 2015


Hi Siarhei,

On 5 February 2015 at 03:21, Siarhei Siamashka
<siarhei.siamashka at gmail.com> wrote:
> On Tue,  3 Feb 2015 21:18:54 -0700
> Simon Glass <sjg at chromium.org> wrote:
>
>> (What does FEL stand for?)
>
> That's a good question. I believe that it might be based on
> the "jump to fel" message from the console output of the
> Allwinner's BOOT0 bootloader: http://linux-sunxi.org/FEL#Serial_output
>
> Other than this, I don't know what this name stands for.

Can we ask the manufacturer? Maybe it is something like Firmware Early Loader?

>
> In fact the FEL code has a special entry point at 0xffff0020, which is
> the target of this "jump to fel" action in BOOT0:
>     https://github.com/hno/Allwinner-Info/blob/master/BROM/ffff0000.s#L9
>
> It initializes the USB hardware again, and I believe that this is the
> reason why I have some problems trying to use this method. So far the
> flow looks like this:
>
> 1. The SPL is uploaded to SRAM and executed (to initialize DRAM) and
>    other things.
> 2. As the last step in the SPL ('return_to_fel' in your code), we just
>    transfer control directly to 0xffff0020 instead of using the address
>    from the lr register.
> 3. The USB stack in my PC seems to be a bit confused by the MBUS
>    hardware re-init. For example, the next "fel ver" command fails
>    for me with a timeout. However the follow up fel commands work fine,
>    and I can successfully "write" and "exe" the main u-boot binary.
>
> The incomplete demo patch for the fel tool has been posted at
>     http://lists.denx.de/pipermail/u-boot/2015-February/204024.html
>
>> This is an attempt to make sunxi's FEL code fit with the normal U-Boot
>> boot sequence instead of creating its own.
>>
>> Most of the FEL special-case code is removed, although I may have gone too
>> far with my changes to generate a u-boot-sunxi-with-spl.bin file even when
>> FEL is enabled. This may not be possible since the MMC stack makes SPL
>> too large for FEL anyway, although it may be possible for other boot
>> mediums.
>
> This is actually very good.
>
> If we can resolve the jump to 0xffff0020 problems (try to perform a
> clean USB shutdown before doing this?), then the SPL size limitation
> for USB booting is gone and we get a unified SPL binary for both SD
> card boot and boot over USB. With no need for a lot of special sunxi
> things in the U-Boot boot sequence. I'm going to have another look
> at it today in the evening to see if the remaining problems can be
> resolved.
>
>> This series is available at u-boot-dm, branch sunxi-working.
>
> Thanks a lot for this work.

It looks like this might get improved quite a bit - despite the lack
of docs you seem to understand it very well :-)

In any case I'll be using FEL from now on on sunxi. It is much more convenient.

Regards,
Simon


More information about the U-Boot mailing list