[LinuxBIOS] BIOS-provided physical RAM map

joe at smittys.pointclark.net joe at smittys.pointclark.net
Sun Oct 14 01:12:20 CEST 2007

Quoting ron minnich <rminnich at gmail.com>:

> On 10/13/07, joe at smittys.pointclark.net <joe at smittys.pointclark.net> wrote:
>> How can I adjust the "BIOS-provided physical RAM map" that the linux
>> kernel uses? Is this done in northbridge.c with ram_resource()???
>> Because mine does not look the same.
>> ram_resource(dev, idx++, 0, 640);
>> ram_resource(dev, idx++, 1024, tolmk - 1024);
>> BIOS-provided physical RAM map:
>>   BIOS-e820: 0000000000001000 - 00000000000a0000 (usable)
>>   BIOS-e820: 0000000000100000 - 0000000008000000 (usable)
>> 128MB LOWMEM available.
> hi joe, I am not sure I understand your question? what is the value of
> tolmk in this case?
> When booting the kernel, there are a few cmdline parameters you can
> use and, if you do, it will IIRC ignore the e820 map. It's been a
> while since I looked at that code, though ...
> ron

Well the problem is I don't think the memory regions are allocating  
memory properly still. For example here is the "BIOS-provided physical  
RAM map" from the original bios:

BIOS-provided physical RAM map:

  BIOS-e801: 0000000000000000 - 000000000009f000 (usable)

  BIOS-e801: 0000000000100000 - 0000000007f00000 (usable)

127MB LOWMEM available.

See how the map ends at 127MB. The last 1MB of memory is pre-allocated  
for the VGA frame buffer (IGD). The original bios excludes this from  
the ram map while LinuxBIOS does not. Linux will think this area is  
useable for system memory and the graphics will think it is useable  
for graphics causing them to write over each other and not good stuff  
will start to happen:-(

Anyways, I am tring to figure out in what code LinuxBIOS configures  
this map so I can make adjustments. Basicly I need to tell LinuxBIOS to:

Total LOWMEM - IGD pre-allocated memory = New LOWMEM

I should be able to do this in northbridge.c right?? But would I  
subtract it from tomk or tolmk??

Thanks - Joe

More information about the coreboot mailing list