[OpenBIOS] PATCH: Make creation of the MMU translation entries architecture-specific

Andreas Färber andreas.faerber at web.de
Mon May 24 11:23:56 CEST 2010


Am 22.05.2010 um 15:37 schrieb Andreas Färber:

> Am 21.05.2010 um 12:03 schrieb Mark Cave-Ayland:
>
>> Andreas, if this works, how much further does the Haiku boot get?
>
> The stock nightly CD images (http://haiku-files.org/ppc/index.php?show=all 
> ) don't visibly get further.
>
> Locally, with the attached patch applied to Haiku's boot loader, I  
> avoid a memset on the memory returned by of_claim and thus get to  
> some debug output I've enabled in arch/ppc/ 
> mmu.cpp:find_allocated_ranges (the "0: map: ..." stuff).

Forgot to state the obvious: Numbers in the debug output do look  
better since r772! :)

> Comparison with Apple's OpenFirmware shows that:
> * Apple's of_claim returns memory at 0x00400000 (vs. 0x07f00000)
> * On the Mac I see an identity-mapped area at 0x00400000, length  
> 4194304, mode 16 (vs. mode 2 and size 1048576 for 0x07f00000 from  
> OpenBIOS)
>
> Haiku seems to actually claim 1048576 bytes for the new page table,  
> so I guess it uses up all available memory?

> Where can we bump that number? QEMU?

Let me rephrase the question:

If I read QEMU code correctly (hw/ppc_{new,old}world.c, hw/ppc_mac.h)  
then OpenBIOS should be loaded at PROM_ADDR (0xfff00000) of size  
BIOS_SIZE (1024 * 1024), i.e. the last 1 MiB of address space. Yet I  
don't see a translation for that.

Neither QEMU nor OpenBIOS have 0x07f00000 hardcoded anywhere. Where is  
it coming from?

Andreas


More information about the OpenBIOS mailing list