[U-Boot] [u-boot PATCH] arm, lib/bootm.c: Exclude HIGHMEM from being used by u-boot

David Long dave.long at linaro.org
Sat Aug 20 22:39:04 CEST 2011


On Sat, 2011-08-20 at 08:01 +0200, Albert ARIBAUD wrote:


> What exactly prevents ARM Linux from booting when FDT or initrd are 
> above 768MB? Can this limitation not be lifter on the Linux side?



I don't think it reasonably can be.

I have to start by saying that I am in no way a Linux VM expert. But...

With Linux HIGHMEM configured the last 1/4GB of the kernel virtual
address space is reserved for a few things, including explicitly mapping
in parts of the last 1/4GB of physical memory as needed.   I just don't
think the VM subsystem is initialized enough to do this remapping so
early, even if one wanted to make the calls.  Indeed, I don't see how it
could be initialized this early since the FDT can contain information
about physical memory.

Some other platforms limit u-boot to accessing the first 8MB of RAM
using CONFIG_SYS_BOOTMAPSZ, but that resulted in a failure to boot in my
test.  I did not chase down exactly why that approach failed.


> >
> > +#ifndef CONFIG_SYS_LINUX_LOWMEM_MAX_SIZE
> > +#define CONFIG_SYS_LINUX_LOWMEM_MAX_SIZE	(768*1024*1024)
> > +#endif
> 
> I'd tend to think that if no max size was defined, then we should not limit.


I was just going with the example already in place for powerpc.  I'm
reluctant to change this without having more background on why it's this
way now.

-dl




More information about the U-Boot mailing list