[OpenBIOS] Haiku/ppc progress - ofmem_claim misbehavior?

Andreas Färber andreas.faerber at web.de
Mon May 24 19:35:02 CEST 2010


Am 24.05.2010 um 18:57 schrieb Mark Cave-Ayland:

> Andreas Färber wrote:
>
>> The question is, why does claim overwrite the 0x07ed0000 identity  
>> map of length 1245184, that I see [...] in my debug output now,  
>> with a 0x07f00000 map when using the vanilla OpenBIOS code?
>
> What is the identity map? Is it something used in general for PPC or  
> is it specific to Haiku?

Maybe I misworded, I meant an identity-mapped memory translation, i.e.  
physical and virtual address identical. Nothing ppc or Haiku specific.

Map before claim (vanilla):
...
0x07ed0000 -> 0x07ed0000 (1245184)
...

Map after claim (vanilla):
...
[0x07ed0000..0x07f00000 no longer mapped!]
0x07f00000 -> 0x07f00000 (1048576)
...

Expected map after claim:
...
0x07d00000 -> 0x07d00000 (1048576) -- or wherever it fits
[0x07ed0000..0x07f00000 possibly mapped]
0x07f00000 -> 0x07f00000 (1048576) -- OpenBIOS
...

Two bugs IMO:
a) The map is shortened.
b) OpenBIOS memory is reused.
The latter made Haiku/OpenBIOS hang.

> Also if you enable DEBUG_CIF in libopenbios/client.c, do you see any  
> more useful information?

I enabled CONFIG_DEBUG_OFMEM; the Haiku code will be calling  
ofmem_claim(NULL, 1048576, 1048576) in case of default -m 128.
Whatever exactly the problem is, it must be between the ofmem  
implementation and its users inside OpenBIOS.

Andreas


More information about the OpenBIOS mailing list