[U-Boot] fastboot boot base address behaviour

Marek Vasut marex at denx.de
Sat Apr 25 17:53:22 CEST 2015


On Saturday, April 25, 2015 at 08:22:26 AM, Maxime Ripard wrote:
> On Thu, Apr 23, 2015 at 02:00:01PM +0200, Marek Vasut wrote:
> > On Thursday, April 23, 2015 at 09:41:04 AM, Maxime Ripard wrote:
> > > On Wed, Apr 22, 2015 at 05:56:23PM +0200, Marek Vasut wrote:
> > > > > I've been trying to use fastboot (and especially the boot command)
> > > > > on sunxi recently, and got it to work pretty fine (apart from
> > > > > PSCI, but that's another story).
> > > > > 
> > > > > The only thing that worries me a bit is that by default, both the
> > > > > fastboot tool and mkbootimg will generate an image with the kernel
> > > > > address set to 0x10008000.
> > > > 
> > > > Looks like MX6 DRAM base address, so this should definitelly not be
> > > > fixed to this address here. The +0x8000 offset is the kernel load
> > > > offset.
> > > > 
> > > > > While it might work on some targets, it obviously doesn't on the
> > > > > Allwinner SoCs that most of the time have the RAM mapped to
> > > > > 0x4000000, which result in the kernel being relocated to some
> > > > > address that is not in RAM, failing badly.
> > > > 
> > > > Yep.
> > > > 
> > > > > I would expect U-Boot to relocate the kernel to some reasonable
> > > > > address, and not try to do something dumb by actually trusting
> > > > > completely the boot image.
> > > > 
> > > > I'd expect the image to be correct in the first place though ;-)
> > > > 
> > > > > I guess one way to solve this would be to really treat 0x10008000
> > > > > as the default, and relocate the kernel to whatever value make
> > > > > sense on the current platform (even though that needs to be
> > > > > defined).
> > > > > 
> > > > > That way, "fastboot boot zImage" would actually work out of the
> > > > > box, without requiring to set the optional "-b" option to set the
> > > > > kernel base address to some decent value.
> > > > 
> > > > Then I'd say such "default" address should be something like
> > > > 0xffffffff .
> > > 
> > > I'd probably agree if we were on a perfect world :)
> > > 
> > > But the fact is that the tools that are creating these boot.img in
> > > Android all have this default, and *will* fill the kernel address
> > > header to this value.
> > > 
> > > https://android.googlesource.com/platform/system/core/+/master/fastboot
> > > /fas tboot.cpp, line 72
> > > https://android.googlesource.com/platform/system/core/+/master/mkbootim
> > > g/m kbootimg.c, line 112
> > > 
> > > So even if we send a patch to Android itself, that won't fix the tools
> > > that are already in the source code of published Android versions, or
> > > the packages bundled in the distribution.
> > > 
> > > So I think that instead of blindly trusting these tools, U-Boot should
> > > handle that address has the de facto default, even if it doesn't make
> > > any sense :)
> > 
> > OK, now I agree. Maybe we should fix both -- the tools and U-Boot.
> 
> I'll try to cook up a patch, send it to AOSP and see how it goes.

Ok, thank you!

Best regards,
Marek Vasut


More information about the U-Boot mailing list