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