[OpenBIOS] Haiku/ppc regression?

Mark Cave-Ayland mark.cave-ayland at siriusit.co.uk
Tue Dec 22 14:36:25 CET 2009


Andreas Färber wrote:

>> [revol at debian ~/devel/haiku/trunk]$ qemu-system-ppc -nographic -serial
>> stdio -cdrom generated.ppc/haiku-boot-cd-ppc.iso -boot d
>>>> =============================================================
>>>> OpenBIOS 1.0 [Mar 31 2009 15:35]
>>>> Configuration device id QEMU version 1 machine id 2
>>>> CPUs: 1
>>>> Memory: 128M
>>>> UUID: 00000000-0000-0000-0000-000000000000
>>>> CPU type PowerPC,750
>> Welcome to OpenBIOS v1.0 built on Mar 31 2009 15:35
> 
> At OpenBIOS r647 with Haiku r34736, this has become:
> 
>> checking for memory...
>> 0: base = 0x00000000, size = 134217728
>> 1: empty region
>> total physical memory = 128 MB
>> suggested page table size = 1048576
>> need new page table, size = 1048576!
> new table at: 0x07f00000
> 
> The bootloader then tries to memset(0x07f00000, 0, 1048576), leading to:
> 
> invalid/unsupported opcode: 00 - 00 - 00 (00000000) fff0245c 1
> invalid/unsupported opcode: 00 - 00 - 00 (00000000) 00008754 0
> 
> Since it apparently tries to execute (just?) zero'ed memory, could this 
> be the same OpenBIOS memory mapping issue recently seen with cmd646 on 
> sparc64?
> 
> Boot CDs for the curious are available at: http://www.haiku-files.org/ppc/
> 
> If I comment out the memset, I get:
> 
>> MSR: 0x00003030
>> found 4 translations
> found exception handlers!
> invalid/unsupported opcode: 00 - 00 - 00 (000c2000) fff02484 1
> invalid/unsupported opcode: 00 - 00 - 00 (000c2000) fff02484 1
> invalid/unsupported opcode: 00 - 00 - 00 (000c2000) fff02484 1
> invalid/unsupported opcode: 00 - 00 - 00 (00000000) 00008754 0
> 
> So apparently it does find exception handlers now but no page tables and 
> again goes on to execute garbage.
> 
> This is not influenced by choosing between -M g3beige or -M mac99.
> The amount of memory makes a difference in not showing the invalid 
> opcode errors for, e.g., -m 384, but it does hang at the same place.
> 
> Andreas

Is this really a regression? Without the complete output from both cases 
above it's difficult to tell, however it looks like the old version gets 
to an OpenBIOS prompt whereas the new version gets further since it is 
actually executing a bootloader payload.

If it's not a regression, it could be entirely possible that some of the 
recent changes I made to the CIF code could have a few bugs. In which 
case, an SVN bisect to identify the offending commit would be really handy.


ATB,

Mark.

-- 
Mark Cave-Ayland - Senior Technical Architect
PostgreSQL - PostGIS
Sirius Corporation plc - control through freedom
http://www.siriusit.co.uk
t: +44 870 608 0063

Sirius Labs: http://www.siriusit.co.uk/labs



More information about the OpenBIOS mailing list