[OpenBIOS] Mac OS X patches for OpenBIOS testing
Programmingkid
programmingkidx at gmail.com
Fri Dec 14 18:38:27 CET 2012
On Dec 13, 2012, at 4:36 PM, Mark Cave-Ayland wrote:
> Hi both,
>
> Good news - we finally have SOB from William so I've applied to 2 easiest patches to review :)
>
> I understand that an implementation of get-key-map is still required, however if you are both still interested in booting OS X, I'd be grateful for some more testing from SVN trunk in order to determine which patches are still need (and why). For example, some of them should no longer be required because "<value> to active-package" should now work.
>
> Let me know how you both get on now - any interesting screenshots always appreciated ;)
>
>
> Kind regards,
>
> Mark.
We don't go very far without get-key-map, so I applied my new get-key-map patch, then printed out the CIF after trying to boot Mac OS X.
The frame-buffer-adr patch works.
The wrapper patch works.
CIF output:
>> =============================================================
>> OpenBIOS 1.0 [Dec 12 2012 20:16]
>> Configuration device id QEMU version 1 machine id 2
>> CPUs: 1
>> Memory: 512M
>> UUID: 00000000-0000-0000-0000-000000000000
>> CPU type PowerPC,750
Welcome to OpenBIOS v1.0 built on Dec 12 2012 20:16
Trying hd:,\\:tbxi...
Trying hd:,\ppc\bootinfo.txt...
No valid state has been set by load or init-program
0 > boot cd:,\\:tbxi >> finddevice("/openprom") = 0xfff49f40
>> getprop(0xfff49f40, "model", 0x0565f68c, 255) = 15
>> 0x0565f68c 4f 70 65 6e 46 69 72 6d 77 61 72 65 20 33 00 __ OpenFirmware 3.
>> peer(0x00000000) = 0xfff49d80
>> getprop(0xfff49d80, "#address-cells", 0x056579d0, 4) = 4
>> 0x056579d0 00 00 00 01 __ __ __ __ __ __ __ __ __ __ __ __ ....
>> peer(0x00000000) = 0xfff49d80
>> getprop(0xfff49d80, "#size-cells", 0x056579d4, 4) = 4
>> 0x056579d4 00 00 00 01 __ __ __ __ __ __ __ __ __ __ __ __ ....
>> of_client_interface: interpret 05616674
>> 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 1fc5b098
>> finddevice("/options") = 0xfff4a0e8
>> finddevice("/chosen") = 0xfff4a160
>> of_client_interface: interpret 056133e4
>> interpret dev /chosen new-device " memory-map" device-name active-package device-end ([1] -- [2])
>> handle_calls return: 00000000 fff57a90
>> getprop(0xfff4a160, "mmu", 0x056579ec, 4) = 4
>> 0x056579ec 1f c5 a8 2c __ __ __ __ __ __ __ __ __ __ __ __ .Ũ,
>> getprop(0xfff4a160, "memory", 0x056579f0, 4) = 4
>> 0x056579f0 1f c5 ae 58 __ __ __ __ __ __ __ __ __ __ __ __ .ŮX
>> peer(0x00000000) = 0xfff49d80
>> of_client_interface: interpret 05616db8 fff49d80 0000000a 056131d4
>> interpret get-package-property if 0 0 then ([4] -- [3])
>> handle_calls return: 00000000 00000019 fff56d04
>> getprop(0xfff4a160, "stdout", 0x056579f4, 4) = 4
>> 0x056579f4 1f c5 af 5c __ __ __ __ __ __ __ __ __ __ __ __ .ů\
>> instance-to-package(0x1fc5af5c) = 0xfff567a4
>> getprop(0xfff4a160, "stdin", 0x056579f8, 4) = 4
>> 0x056579f8 1f c5 b0 64 __ __ __ __ __ __ __ __ __ __ __ __ .Űd
>> instance-to-package(0x1fc5b064) = 0xfff567a4
>> getprop(0xfff567a4, "name", 0x0565f81c, 31) = 5
>> 0x0565f81c 63 68 2d 62 00 __ __ __ __ __ __ __ __ __ __ __ ch-b.
>> open("keyboard") = 0x1fc5b49c
>> of_client_interface: call-method 05616d78 1fc5b098 1fc5b49c
>> call-method slw_init_keymap ([3] -- [2])
>> handle_calls return: 00000000 fff57558
>> of_client_interface: call-method 05616d88 1fc5b098
>> call-method slw_update_keymap ([2] -- [1])
>> handle_calls return: 00000000
>> getprop(0xfff4a0e8, "security-mode", 0x0565f83c, 32) = -1
>> of_client_interface: call-method 05616d60 1fc5b098 00000000
>> call-method slw_set_output_level ([3] -- [1])
>> handle_calls return: 00000000
>> of_client_interface: call-method 05613c70 1fc5b098
>> call-method slw_cr ([2] -- [1])
>> handle_calls return: 00000000
>> of_client_interface: call-method 05613c70 1fc5b098
>> call-method slw_cr ([2] -- [1])
>> handle_calls return: 00000000
>> of_client_interface: call-method 05613c78 1fc5b098 0000004d
>> call-method slw_emit ([3] -- [1])
>> handle_calls return: 00000000
>> of_client_interface: call-method 05613c78 1fc5b098 00000061
>> call-method slw_emit ([3] -- [1])
>> handle_calls return: 00000000
>> of_client_interface: call-method 05613c78 1fc5b098 00000063
>> call-method slw_emit ([3] -- [1])
>> handle_calls return: 00000000
>> of_client_interface: call-method 05613c78 1fc5b098 00000020
>> call-method slw_emit ([3] -- [1])
>> handle_calls return: 00000000
>> of_client_interface: call-method 05613c78 1fc5b098 0000004f
>> call-method slw_emit ([3] -- [1])
>> handle_calls return: 00000000
>> of_client_interface: call-method 05613c78 1fc5b098 00000053
>> call-method slw_emit ([3] -- [1])
>> handle_calls return: 00000000
>> of_client_interface: call-method 05613c78 1fc5b098 00000020
>> call-method slw_emit ([3] -- [1])
>> handle_calls return: 00000000
>> of_client_interface: call-method 05613c78 1fc5b098 00000058
>> call-method slw_emit ([3] -- [1])
>> handle_calls return: 00000000
>> of_client_interface: call-method 05613c78 1fc5b098 00000020
>> call-method slw_emit ([3] -- [1])
>> handle_calls return: 00000000
>> of_client_interface: call-method 05613c78 1fc5b098 0000004c
>> call-method slw_emit ([3] -- [1])
>> handle_calls return: 00000000
>> of_client_interface: call-method 05613c78 1fc5b098 0000006f
>> call-method slw_emit ([3] -- [1])
>> handle_calls return: 00000000
>> of_client_interface: call-method 05613c78 1fc5b098 00000061
>> call-method slw_emit ([3] -- [1])
>> handle_calls return: 00000000
>> of_client_interface: call-method 05613c78 1fc5b098 00000064
>> call-method slw_emit ([3] -- [1])
>> handle_calls return: 00000000
>> of_client_interface: call-method 05613c78 1fc5b098 00000065
>> call-method slw_emit ([3] -- [1])
>> handle_calls return: 00000000
>> of_client_interface: call-method 05613c78 1fc5b098 00000072
>> call-method slw_emit ([3] -- [1])
>> handle_calls return: 00000000
>> of_client_interface: call-method 05613c70 1fc5b098
>> call-method slw_cr ([2] -- [1])
>> handle_calls return: 00000000
>> claim(0x05000000, 4194304, 0) = 0x05000000
>> claim(0x05400000, 2097152, 0) = 0x05400000
>> claim(0x04000000, 16777216, 0) = 0x04000000
>> claim(0x00004000, 67092480, 0) = 0x00004000
I think the next patch to commit is the draw-rectangle patch: http://lists.openbios.org/pipermail/openbios/2011-August/006642.html
More information about the OpenBIOS
mailing list