On Wed, Jan 06, 2010 at 09:13:13PM +0100, Sebastian Herbszt wrote:
RamSizeOver4G = "total ram" - "start of pci hole" (e.g. 0xe0000000 in qemu, 0xc0000000 in bochs)
The intent of RamSizeOver4G is to list the amount of ram mapped above 0x100000000. So, if one specified 4096MB of ram, I'd expect qemu to map it so that SeaBIOS had RamSize=0xe0000000 and RamSizeOver4G=0x10000000.
Adding 4GB is wrong. With 33 GB of RAM i end up with 16+16+2 instead of 16+16+1 in smbios tables. The patch below fixes it for me.
I'm not sure what smbios is expecting - if it's looking for the addresses of mapped memory then the current code looks correct (in the scenario above, memory is mapped up to 0x110000000). If it's looking for the total memory, then I agree your change makes sense (in the above scenario, the total ram is 0x100000000).
-Kevin