[U-Boot] [PATCH 2/2] lsxl: rework boot scripts

Michael Walle michael at walle.cc
Fri Mar 14 20:04:00 CET 2014


Am Donnerstag, 13. März 2014, 00:42:49 schrieb Tom Rini:
> > >How much memory do these platforms have?
> > 
> > LS-CHLv2 has 64MB and LS-XHL has 256MB. The kernel_addr and
> > ramdisk_addr are the value which was also used in the original
> > bootloader.
> 
> OK, so we don't have to worry about relocation to bad places...
> 
> > >Having just spent a bunch of
> > >time issues about where to load what on TI platforms, I'm a little
> > >
> > >worried about some of the locations:
> > >>+	"kernel_addr=0x00100000\0"					\
> > >
> > >Below 32MB which isn't optimal.
> > 
> > why is that? iirc the kernel is unpacked to 0x8000, isn't it? ok
> > there might be some problems unpacking the kernel.
> 
> Documentation/arm/Booting in the kernel suggests above 32MB to avoid
> relocation.
> 
> > >>+	"ramdisk_addr=0x00800000\0"					\
> > >>+	"fdt_addr=0x007f0000\0"						\
> > >
> > >This doesn't leave a whole lot of space for the kernel before
> > >overwriting either of these.
> > 
> > I must admit i've never worried about where to put these. Any
> > suggestions? initrd at the end of the ram? although i'd like to keep
> > both platforms the same, eg. i'd take 64MB as the end of ram.
> 
> Well, I guess it comes down to how much you worry about things like
> Fedora or SuSE running on the system.  I'd suggest moving the above to
> 32MB/just below 32MB to allow a fairly bigish kernel to still work as
> that's one of the thing that will bite commodity distro kernels.

I've just looked at the load addresses. First, in case of the lsxl, neither 
initrd_high nor fdt_high is set to 0xffffffff. Therefore, the ramdisk and the 
fdt blob are relocated to the top of the ram. The kernel itself is relocated 
to whatever the uimage loadaddr is set to. In case of debian and the original 
uImage this is 0x8000 and both are zImages. So i can't do anything to avoid 
relocating in the decompressor again.

So the only restrictions should be:
 - 0x00800000 - 0x00100000 = 7 MB for the kernel
 - 64 kB for the fdt

Hope i get everything right :) I'll post an updated patch with the 
{fat,ext2}load replaced with load in the near future.

-michael


More information about the U-Boot mailing list