[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