On 2013-Apr-4 15:35 , Artyom Tarasenko wrote:
OFMEM: ofmem_map_page_range ffc66000 -> 006f7a000 00001000 mode 000000bc ... OFMEM: ofmem_claim phys=ffffffffffffffff size=00002000 align=00002000 OFMEM: ofmem_claim_virt virt=ffc65000 size=00002000 align=00000000 OFMEM: Non-free virtual memory claimed!
That's interesting. You're asking for a page size (0x2000) on a non-page boundary (0xffc6.5000). The complaint is because it extends far enough to overlap with what the map_page_range above (0xffc6.6000).
The question is where those two addresses are coming from? 0xffc6.6000 and 0xffc6.5000 are in the range Solaris would expect for Openboot - whoever came up with 0xffc6.5000 got it wrong, if he needs 0x2000 bytes, he needed to ask for 0xffc6.4000.
Does IEEE-1275 say something about this case?
This is simply a matter of overlapping address ranges. Somewhere an allocator is getting the wrong result.
On Thu, Apr 4, 2013 at 9:46 PM, Tarl Neustaedter tarl-b2@tarl.net wrote:
On 2013-Apr-4 15:35 , Artyom Tarasenko wrote:
OFMEM: ofmem_map_page_range ffc66000 -> 006f7a000 00001000 mode 000000bc ... OFMEM: ofmem_claim phys=ffffffffffffffff size=00002000 align=00002000 OFMEM: ofmem_claim_virt virt=ffc65000 size=00002000 align=00000000 OFMEM: Non-free virtual memory claimed!
That's interesting. You're asking for a page size (0x2000) on a non-page boundary (0xffc6.5000). The complaint is because it extends far enough to overlap with what the map_page_range above (0xffc6.6000).
Yes. After looking more carefully I think it goes wrong before this point:
OFMEM: ofmem_claim phys=ffffffffffffffff size=00001000 align=00001000 OFMEM: ofmem_claim_virt virt=00000000 size=00001000 align=00001000 OFMEM: ofmem_map_page_range ffc7f000 -> 006f7f000 00001000 mode 000000bc OFMEM: ofmem_claim phys=ffffffffffffffff size=00001000 align=00001000 OFMEM: ofmem_claim_virt virt=00000000 size=00001000 align=00001000 OFMEM: ofmem_map_page_range ffc7e000 -> 006f7e000 00001000 mode 000000bc OFMEM: ofmem_claim phys=ffffffffffffffff size=00001000 align=00001000 OFMEM: ofmem_claim_virt virt=00000000 size=00001000 align=00001000 OFMEM: ofmem_map_page_range ffc7d000 -> 006f7d000 00001000 mode 000000bc OFMEM: ofmem_claim phys=ffffffffffffffff size=00014000 align=00020000 OFMEM: ofmem_claim_virt virt=00000000 size=00014000 align=00014000 OFMEM: bad alignment 81920
^^^ here is something OpenBIOS doesn't like.
OFMEM: ofmem_map_page_range ffc69000 -> 006f60000 00014000 mode 000000bc OFMEM: ofmem_claim phys=ffffffffffffffff size=00001000 align=00001000 OFMEM: ofmem_claim_virt virt=00000000 size=00001000 align=00001000 OFMEM: ofmem_map_page_range ffc68000 -> 006f7c000 00001000 mode 000000bc OFMEM: ofmem_claim phys=ffffffffffffffff size=00001000 align=00001000 OFMEM: ofmem_claim_virt virt=00000000 size=00001000 align=00001000 OFMEM: ofmem_map_page_range ffc67000 -> 006f7b000 00001000 mode 000000bc OFMEM: ofmem_claim phys=ffffffffffffffff size=0003c000 align=00040000 OFMEM: ofmem_claim_virt virt=ffc00000 size=0003c000 align=00000000 OFMEM: ofmem_map_page_range ffc00000 -> 006f00000 0003c000 mode 000000bc OFMEM: ofmem_claim phys=ffffffffffffffff size=00001000 align=00001000 OFMEM: ofmem_claim_virt virt=00000000 size=00001000 align=00001000 OFMEM: ofmem_map_page_range ffc66000 -> 006f7a000 00001000 mode 000000bc OFMEM: ofmem_claim phys=ffffffffffffffff size=00003000 align=00004000 OFMEM: ofmem_claim_virt virt=ffc3c000 size=00003000 align=00000000 OFMEM: ofmem_map_page_range ffc3c000 -> 006f74000 00003000 mode 000000bc OFMEM: ofmem_claim phys=ffffffffffffffff size=00001000 align=00001000 OFMEM: ofmem_claim_virt virt=ffc3f000 size=00001000 align=00000000 OFMEM: ofmem_map_page_range ffc3f000 -> 006f79000 00001000 mode 000000bc OFMEM: ofmem_claim phys=ffffffffffffffff size=0001c000 align=00020000 OFMEM: ofmem_claim_virt virt=ffc40000 size=0001c000 align=00000000 OFMEM: ofmem_map_page_range ffc40000 -> 006f40000 0001c000 mode 000000bc OFMEM: ofmem_claim phys=ffffffffffffffff size=00001000 align=00001000 OFMEM: ofmem_claim_virt virt=ffc5c000 size=00001000 align=00000000 OFMEM: ofmem_map_page_range ffc5c000 -> 006f78000 00001000 mode 000000bc OFMEM: ofmem_claim phys=ffffffffffffffff size=00002000 align=00002000 OFMEM: ofmem_claim_virt virt=ffc5d000 size=00002000 align=00000000 OFMEM: ofmem_map_page_range ffc5d000 -> 006f5e000 00002000 mode 000000bc OFMEM: ofmem_claim phys=ffffffffffffffff size=00002000 align=00002000 OFMEM: ofmem_claim_virt virt=ffc5f000 size=00002000 align=00000000 OFMEM: ofmem_map_page_range ffc5f000 -> 006f5c000 00002000 mode 000000bc OFMEM: ofmem_claim phys=ffffffffffffffff size=00002000 align=00002000 OFMEM: ofmem_claim_virt virt=ffc61000 size=00002000 align=00000000 OFMEM: ofmem_map_page_range ffc61000 -> 006f3e000 00002000 mode 000000bc OFMEM: ofmem_claim phys=ffffffffffffffff size=00002000 align=00002000 OFMEM: ofmem_claim_virt virt=ffc63000 size=00002000 align=00000000 OFMEM: ofmem_map_page_range ffc63000 -> 006f3c000 00002000 mode 000000bc OFMEM: ofmem_claim phys=ffffffffffffffff size=00002000 align=00002000 OFMEM: ofmem_claim_virt virt=ffc65000 size=00002000 align=00000000 OFMEM: Non-free virtual memory claimed!
-- Regards, Artyom Tarasenko
linux/sparc and solaris/sparc under qemu blog: http://tyom.blogspot.com/search/label/qemu