Quoting ron minnich rminnich@gmail.com:
On 10/13/07, joe@smittys.pointclark.net joe@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