[OpenBIOS] [Report] Rhapsody DR2

Mark Cave-Ayland mark.cave-ayland at ilande.co.uk
Thu Aug 4 22:03:05 CEST 2016


On 04/08/16 20:43, BALATON Zoltan wrote:

> On Thu, 4 Aug 2016, Mark Cave-Ayland wrote:
>> On 04/08/16 15:27, Natalia Portillo wrote:
>>> 0 > boot cd:%BOOT >> Not a bootable ELF image
>>>>> switching to new context:
>>> 4+:interpret: exception -13 caught
>>>>> interpret : update-key-map " get-key-map" " kbd" open-dev
>>> $call-method drop gKeyMap 4 0 do swap dup @ >r 4+ swap dup dup @ r> or
>>> swap ! 4+ loop ; update-key-map gKeyMap 1+ c@ not h# 40 and if 0 stdout
>>> ! then failed with error ffffffed
>>>
>>> Rhapsody Kernel Loader <16:33:44 980413>
>>> interpret: exception ffffffdf  caught
>>>>> interpret to DIH value &CL DIH to my-self 1 encode-int "
>>> AAPL,boot-display" property &CL 0 100 " set-colors" DIH $CM " width" GMP
>>> ?dup 0= if 280 then " height" GMP ?dup 0= if 1E0 then 2dup to Dheight to
>>> Dwidth " linebytes" GMP ?dup 0= if Dwidth then " depth" GMP ?dup 0= if 8
>>> then over value rowbytes active-package DIH ihandle>phandle to
>>> active-package : rect-setup >r >r rowbytes * + frame-buffer-adr + r>
>>> -rot r> ; : DRAW-RECTANGLE rect-setup 0 ?do 2dup 4 pick move 2 pick
>>> rowbytes d+ loop 3drop ; : FILL-RECTANGLE rect-setup 0 ?do dup 3 pick 3
>>> pick fill rowbytes + loop 3drop ; : READ-RECTANGLE rect-setup  >r swap
>>> r> 0 ?do 2dup 4 pick move rowbytes 3 pick d+ loop 3drop ; to
>>> active-package  failed with error 00000100
>>> call-method fill-rectangle: exception ffffffdf
>>>>> call-method fill-rectangle failed with error ffffffdf
>>> interpret: exception ffffffdf ??? caught
>>>>> interpret drawImage failed with error 00000108
>>> interpret: exception ffffffde  caught
>>>>> interpret dev /packages/obp-tftp failed with error 00000003
>>> load isn't unique.
>>> ?no dev
>>> call-method fill-rectangle: exception ffffffdf
>>>>> call-method fill-rectangle failed with error ffffffdf
>>> call-method draw-rectangle: exception ffffffdf
>>>>> call-method draw-rectangle failed with error ffffffdf
>>> EXIT
>>> 0  >
>>
>> Hmmm it seems like this and the other Rhapsody/OS X server boots are
>> blowing up because the keyboard alias being looked for is "kbd" rather
>> than "keyboard" which is what OpenBIOS uses. Fixing this should be
>> fairly easy - I'll spin up a patch shortly.
> 
> That does not seem to match real hardware where it seems to be
> "keyboard" as well: http://nandra.segv.jp/NetBSD/G4.dump-device-tree.txt
> So it may be something else.

I'd say there are definitely multiple failures here :)

diff --git a/arch/ppc/qemu/qemu.fs b/arch/ppc/qemu/qemu.fs
index 3d99a34..cc3784b 100644
--- a/arch/ppc/qemu/qemu.fs
+++ b/arch/ppc/qemu/qemu.fs
@@ -74,7 +74,7 @@ variable keyboard-phandle 0 keyboard-phandle !
     active-package
     " /aliases" find-device
     keyboard-phandle @ get-package-path
-    encode-string " keyboard" property
+    encode-string " kbd" property
     active-package!
   then
 ; SYSTEM-initializer

According to the device trees I have, it's definitely "kbd" for the
g3beige. And look at this:

" kbd" open-dev $call-method

Here $call-method has to throw if the named node doesn't exist. Perhaps
the change is only required for g3beige or maybe non-USB keyboards?

There's also the 4+ which doesn't seem to be recognised. As a quick test
boot QEMU with -prom-env 'auto-boot?=false' and then type the following:

: 4+ 4 + ;
boot


ATB,

Mark.




More information about the OpenBIOS mailing list