[OpenBIOS] Apple's Open Firmware.
Jd Lyons
lyons_dj at yahoo.com
Sat Mar 31 11:27:39 CEST 2018
> On Mar 30, 2018, at 7:02 PM, Segher Boessenkool <segher at kernel.crashing.org> wrote:
>
> On Fri, Mar 30, 2018 at 04:14:48AM -0400, Jd Lyons wrote:
>> FF8906CD: b(:) \ [0x0b7] 0x1cf2 load
>> FF8906D8: 967E FFFC stwu r19,-4(r30)
>> FF8906DC: 7E68 02A6 mflr r19
>> FF8906E0: 4BFB 68B1 FF846F90 bl b<">
>> FF8906E4: 05 ... dc.b " load "
>> FF8906EC: 4BFF FEDD FF8905C8 bl boot|load
>> FF8906F0: 4BFF FA19 FF890108 bl (init-program)
>> FF8906F4: 4BFB 5DAC FF8464A0 b exit
>>
>>
>> FF890865: b(:) \ [0x0b7] 0x1cf8 boot
>> FF890870: 967E FFFC stwu r19,-4(r30)
>> FF890874: 7E68 02A6 mflr r19
>> FF890878: 4BFB 6719 FF846F90 bl b<">
>> FF89087C: 05 ... dc.b " boot "
>> FF890884: 4BFF FD45 FF8905C8 bl boot|load
>> FF890888: 4BFF F881 FF890108 bl (init-program)
>> FF89088C: 4BFF FEA5 FF890730 bl go
>> FF890890: 4BFB 5C10 FF8464A0 b exit
>>
>> It should be possible to decompile the compiled fcode in the same way that the Open Firmware "see" command does.
>
> It is possible (I have done it).
>
>> Earlier Mac's (Old World Macs) may have tokenized fcode in their ROM that you can more easily detokenize but some of the words may be unnamed (headerless). I guess the G5 (and other New World Macs) has tokenized fcode somewhere but I don't know where it is - maybe it's compressed?
>
> Yes, many sections are compressed (with LZ77 iirc). Not *all* code is
> tokenised, but most is. And Apple uses some non-standard FCodes, too
> (for local variables, most prominently). And their drivers can use
> anything defined in the "main" OF (so you cannot transplant them to
> a different machine or a different FW version even).
>
>> What jumps out at me, is both ‘load' and ‘boot’ one the G5 call ‘boatload’, would this be the reason that it is trying to execute the Option ROM when I try and ‘load’ it?
>
> "load" does not do "go" (or at least it should not!)
>
Load seems to do go in some cases, in both OF and OB, like loading bootx, both will just boot OS X. However I have a custom Fcode script that sets some properties for a graphics card, and load behaves as we would expect, doesn’t do go.
But load seems to be trying to do go in Apple’s OF when I load an option rom from disk.
>
> Segher
>
> --
> OpenBIOS http://openbios.org/
> Mailinglist: http://lists.openbios.org/mailman/listinfo
> Free your System - May the Forth be with you
More information about the OpenBIOS
mailing list