[LinuxBIOS] BIOS-provided physical RAM map

joe at smittys.pointclark.net joe at smittys.pointclark.net
Sun Oct 14 05:12:19 CEST 2007


Quoting joe at smittys.pointclark.net:

> 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??
>
>
Yep, I had a feeling. It looks like the AMD gx2 northbridge.c does  
this exact thing.

/* Sort out the framebuffer size */
tomk -= FRAMEBUFFERK;

I will test it and get back.....


Thanks - Joe




More information about the coreboot mailing list