[U-Boot] RFC: 'fastboot boot' uses wrong address when calling bootm

Tom Rini trini at konsulko.com
Thu Sep 8 20:13:41 CEST 2016


On Wed, Sep 07, 2016 at 09:37:48AM +0000, Peter.Chubb at data61.csiro.au wrote:
> Hi Folks,
>    If you set CONFIG_FASTBOOT_BUF_ADDR to anything other than the same
>    as $loadaddr then the call to do_bootm() in the fastboot code
>    will call do_bootm on a memory region that has nothing to do with
>    the image downloaded.  Sometimes the result is a hung system, other
>    times the system reboots.
> 
>    I'm not sure of the correct fix.  The possibilities are:
>        1. Get rid of CONFIG_FASTBOOT_BUF_ADDR and use $loadaddr
>        instead.  All the defconfigs that enable fastboot currently set
>        CONFIG_FASTBOOT_BUF_ADDR to the same value as CONFIG_LOADADDR at
>        present.
> 
>        2. memcpy from the downloaded image to $loadaddr if possible.  This
>        would allow other payloads than ANDROID boot images, with a bit
>        more work. (For example, I'd love to be able to boot ELF images
>        using fastboot -- which doesn't work at present, because the
>        entry point in the elf header isn't used)
> 
>        3. The simplest: call do_bootm() with the address where the
>        image has just been downloaded.  The attached patch does this.
> 
> What do you think?

Since it's possible that one would want the buf addr to be different
from loadaddr later on, I think #3 is the path of least surprise, please
re-submit as a formal patch, thanks!

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20160908/88d65e53/attachment.sig>


More information about the U-Boot mailing list