Hello Paul,
On 22.01.2013 23:59, Christian Helmuth wrote:
For me, it looks like your VESA BIOS tries to access physical page 0, which is not available. This fact is also logged in the following lines
:io_mem_alloc: Allocator 16165c dump: Block: [0009f000,00100000) size=00061000 avail=00061000 max_avail=00061000 Block: [00400000,01800000) size=01400000 avail=01400000 max_avail=01400000 Block: [018b6000,01e66000) size=005b0000 avail=005b0000 max_avail=005b0000 Block: [1fcf0000,1fd00000) size=00010000 avail=00010000 max_avail=e0181000 Block: [1fe80000,00001000) size=e0181000 avail=e0181000 max_avail=e0181000
This line looks suspicious. The start address is ok, but the end address isn't. It seems to have been wrapped. So, I would expect something like:
Block: [1fe80000,ffffffff) size=e0180000 avail=e0180000 max_avail=e0180000 Block: [00000000,00001000) size=1000 avail=1000 max_avail=1000
It looks like that the allocator merged the 2 blocks into one, just a guess ...
Mmh, please apply following patch and post the output in order to understand what lead to the problem.
=> mem_size=3787071488 (3611 MB) / mem_avail=3787071488 (3611 MB)
The region [0,1000) is missing. I don't know why this happens as base-nova/src/core/platform.cc states in line 360
/* needed as I/O memory by the VESA driver */ _io_mem_alloc.add_range(0, 0x1000); _core_mem_alloc.phys_alloc()->remove_range(0, 0x1000);
Maybe Alexander can shed some light on this?
With the patch we know hopefully more ...
Cheers,
Alexander Boettcher.