[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