[OpenBIOS] testing Mac OS X boot on latest trunk (revision 1075)

Amadeusz Sławiński amade at asmblr.net
Tue Dec 4 00:18:38 CET 2012


On Mon, Dec 03, 2012 at 08:34:53PM +0000, Mark Cave-Ayland wrote:
> On 01/12/12 14:09, Amadeusz Sławiński wrote:
> 
> > I tested how real machine (PowerMac G5) behaves
> >
> > dir cd:,\
> > dir cd:9,\
> > should list files
> > other (dir cd:1,\ etc) shouldn't work
> >
> > boot cd:,\\:tbxi
> > boot cd:9,\\:tbxi
> > should try booting (the rest should also do nothing)
> >
> > Amadeusz
> 
> Oh so you have a real Mac at hand? That would be really useful to 
> compare the output of verbose boot between your screenshots and the 
> output on a real Mac. It may provide some insight into the partition 
> numbering issues.
> 
> 
> ATB,
> 
> Mark.

Not entirely at hand, but I can have access if necessary. However what
seems mostly targeted as boot target is G3 (-machine g3beige) in qemu,
so there may be some differences (isn't G5 64bit?).

I tried booting Max OS X 10.2 using (boot cd:,\\:tbxi) but iirc it didnt like CHRP,

I also found Mac OS X 10.4 Upgrade DVD, so we can test another version,
it's boot messages on real hardware look a bit different from older versions (emulated),
but I think it's caused by newer XNU.

Trying OS X 10.4 on current trunk (modified to use cd:,\\:tbxi syntax) it stops similarly
to others versions printing:
call-method slw_update_keymap: exception -21

However in qemu with GSOC patched openbios it stops
after printing "Mac OS X Loader"

DEBUG_CIF log from booting GSOC patched version:
0 > boot cd:,\\:tbxi >> finddevice("/openprom") = 0xfff42964
>> getprop(0xfff42964, "model", 0x05663bb8, 255) = 15
>> 0x05663bb8  4f 70 65 6e 46 69 72 6d 77 61 72 65 20 33 00 __
>> OpenFirmware 3.
>> peer(0x00000000) = 0xfff427a4
>> getprop(0xfff427a4, "#address-cells", 0x0565becc, 4) = 4
>> 0x0565becc  00 00 00 01 __ __ __ __ __ __ __ __ __ __ __ __  ....
>> peer(0x00000000) = 0xfff427a4
>> getprop(0xfff427a4, "#size-cells", 0x0565bed0, 4) = 4
>> 0x0565bed0  00 00 00 01 __ __ __ __ __ __ __ __ __ __ __ __  ....
>> of_client_interface: interpret 0561656c
>> interpret  hex unselect-dev " /packages" find-device new-device "
>> sl_words" device-name : open true ; : close ; 0 value outputLevel :
>> slw_set_output_level   dup 0= if 0 stdout ! then   to outputLevel ; :
>> slw_emit 2 outputLevel <= if emit else drop then ; : slw_cr   2
>> outputLevel <= if cr then ; 0 value keyboardIH 20 buffer: keyMap :
>> slw_init_keymap   to keyboardIH   keyMap dup 20 0 fill ; :
>> slw_update_keymap { ; dpth }   depth -> dpth   keyboardIH if     "
>> get-key-map" keyboardIH $call-method     depth dpth - 1 = if 20 then
>> 4 / 0 do       dup i 4 * + l@ keyMap i 4 * + tuck l@ or swap l!
>> loop drop   then ; 0 value screenIH 0 value cursorAddr 0 value
>> cursorX 0 value cursorY 0 value cursorW 0 value cursorH 0 value
>> cursorFrames 0 value cursorPixelSize 0 value cursorStage 0 value
>> cursorTime 0 value cursorDelay : slw_spin   screenIH 0<> cursorAddr
>> 0<> and if     get-msecs dup cursorTime - cursorDelay >= if       to
>> cursorTime       slw_update_keymap       cursorStage 1+ cursorFrames
>> mod dup to cursorStage handle_calls return: 00000000 1fc5afe0
>> finddevice("/options") = 0xfff42b0c
>> finddevice("/chosen") = 0xfff42b84
>> of_client_interface: interpret 05612bcc
>> interpret  dev /chosen new-device " memory-map" device-name
>> active-package device-end ([1] -- [2])
>> handle_calls return: 00000000 fff50128
>> getprop(0xfff42b84, "mmu", 0x0565bee8, 4) = 4
>> 0x0565bee8  1f c5 a7 90 __ __ __ __ __ __ __ __ __ __ __ __  .ŧ.
>> getprop(0xfff42b84, "memory", 0x0565beec, 4) = 4
>> 0x0565beec  1f c5 ad a8 __ __ __ __ __ __ __ __ __ __ __ __  .ŭ¨
>> peer(0x00000000) = 0xfff427a4
>> of_client_interface: interpret 05616cb0 fff427a4 0000000a 0561295c
>> interpret get-package-property if 0 0 then ([4] -- [3])
>> handle_calls return: 00000000 00000024 fff4f3fc
>> getprop(0xfff42b84, "stdout", 0x0565bef0, 4) = 4
>> 0x0565bef0  1f c5 ae a8 __ __ __ __ __ __ __ __ __ __ __ __  .٨
>> instance-to-package(0x1fc5aea8) = 0xfff4e538
>> getprop(0xfff42b84, "stdin", 0x0565bef4, 4) = 4
>> 0x0565bef4  1f c5 af ac __ __ __ __ __ __ __ __ __ __ __ __  .ů¬
>> instance-to-package(0x1fc5afac) = 0xfff4e538
>> getprop(0xfff4e538, "name", 0x05663d08, 31) = 5
>> 0x05663d08  63 68 2d 62 00 __ __ __ __ __ __ __ __ __ __ __  ch-b.
>> open("keyboard") = 0x00000000
>> open("kbd") = 0x00000000
>> of_client_interface: call-method 05616c70 1fc5afe0 00000000
>> call-method slw_init_keymap ([3] -- [2])
>> handle_calls return: 00000000 fff4fbc0
>> of_client_interface: call-method 05616c80 1fc5afe0
>> call-method slw_update_keymap ([2] -- [1])
>> handle_calls return: 00000000
>> getprop(0xfff42b0c, "security-mode", 0x05663d28, 32) = -1
>> of_client_interface: call-method 05616c58 1fc5afe0 00000000
>> call-method slw_set_output_level ([3] -- [1])
>> handle_calls return: 00000000
>> of_client_interface: call-method 05613b68 1fc5afe0
>> call-method slw_cr ([2] -- [1])
>> handle_calls return: 00000000
>> of_client_interface: call-method 05613b68 1fc5afe0
>> call-method slw_cr ([2] -- [1])
>> handle_calls return: 00000000
>> of_client_interface: call-method 05613b70 1fc5afe0 0000004d
>> call-method slw_emit ([3] -- [1])
>> handle_calls return: 00000000
>> of_client_interface: call-method 05613b70 1fc5afe0 00000061
>> call-method slw_emit ([3] -- [1])
>> handle_calls return: 00000000
>> of_client_interface: call-method 05613b70 1fc5afe0 00000063
>> call-method slw_emit ([3] -- [1])
>> handle_calls return: 00000000
>> of_client_interface: call-method 05613b70 1fc5afe0 00000020
>> call-method slw_emit ([3] -- [1])
>> handle_calls return: 00000000
>> of_client_interface: call-method 05613b70 1fc5afe0 0000004f
>> call-method slw_emit ([3] -- [1])
>> handle_calls return: 00000000
>> of_client_interface: call-method 05613b70 1fc5afe0 00000053
>> call-method slw_emit ([3] -- [1])
>> handle_calls return: 00000000
>> of_client_interface: call-method 05613b70 1fc5afe0 00000020
>> call-method slw_emit ([3] -- [1])
>> handle_calls return: 00000000
>> of_client_interface: call-method 05613b70 1fc5afe0 00000058
>> call-method slw_emit ([3] -- [1])
>> handle_calls return: 00000000
>> of_client_interface: call-method 05613b70 1fc5afe0 00000020
>> call-method slw_emit ([3] -- [1])
>> handle_calls return: 00000000
>> of_client_interface: call-method 05613b70 1fc5afe0 0000004c
>> call-method slw_emit ([3] -- [1])
>> handle_calls return: 00000000
>> of_client_interface: call-method 05613b70 1fc5afe0 0000006f
>> call-method slw_emit ([3] -- [1])
>> handle_calls return: 00000000
>> of_client_interface: call-method 05613b70 1fc5afe0 00000061
>> call-method slw_emit ([3] -- [1])
>> handle_calls return: 00000000
>> of_client_interface: call-method 05613b70 1fc5afe0 00000064
>> call-method slw_emit ([3] -- [1])
>> handle_calls return: 00000000
>> of_client_interface: call-method 05613b70 1fc5afe0 00000065
>> call-method slw_emit ([3] -- [1])
>> handle_calls return: 00000000
>> of_client_interface: call-method 05613b70 1fc5afe0 00000072
>> call-method slw_emit ([3] -- [1])
>> handle_calls return: 00000000
>> of_client_interface: call-method 05613b68 1fc5afe0
>> call-method slw_cr ([2] -- [1])
>> handle_calls return: 00000000
>> getprop(0xfff42b0c, "boot-image", 0x0565acc8, 255) = -1
>> claim(0x05000000, 4194304, 0) = 0x05000000
>> claim(0x05400000, 2097152, 0) = 0x05400000
>> claim(0x04000000, 16777216, 0) = 0x04000000
>> claim(0x00004000, 67092480, 0) = 0x00004000




More information about the OpenBIOS mailing list