[OpenBIOS] Booting SunOS from OpenBIOS

Artyom Tarasenko atar4qemu at gmail.com
Sat Apr 6 03:50:33 CEST 2013


On Fri, Apr 5, 2013 at 10:08 PM, Tarl Neustaedter <tarl-b2 at tarl.net> wrote:
> On 2013-Apr-5 15:40 , Artyom Tarasenko wrote:
>>
>> [...]
>>
>> 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=00020000
>> OFMEM: ofmem_map_page_range ffc60000 -> 006f60000 00014000 mode 000000bc
>>
>> ^^^^ this one
>
>
> Wherever that's coming from, that looks like an allocator doing descending
> addresses.
>
>
>> 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: Non-free virtual memory claimed!
>>
>> ^^^^ overlaps with this one.
>
>
> This allocator, whatever it is has been doing ascending addresses. This
> actually looks like you simply ran out of room.

Ops. Good catch!
Mark, can we just allocate more RAM, or do we have serious problem?

> You might change that patch rather than rounding up to the next 2^n, don't
> bother aligning to anything more than 0x2000.

You mean

        } else if ( align > 0x2000) {
            align = 0x2000;
        } else {

? Then it crashes allocating the same address (0xffc66000) as in the
previous log.
Or, don't bother at all?

        } else if ( align > 0x2000) {
            align = 0;
        } else {

Then it dies pretty early:

Jumping to entry point 00004000 for type 00000005...
switching to new context:
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=00000000
OFMEM: ofmem_map_page_range 00000000 -> 006f60000 00014000 mode 000000bc
kmem_alloc failed, nbytes 81920
kmem_alloc
boot-block startup failed

Artyom

--
Regards,
Artyom Tarasenko

linux/sparc and solaris/sparc under qemu blog:
http://tyom.blogspot.com/search/label/qemu



More information about the OpenBIOS mailing list