[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