Accéder à l’Open Firmware de la Pippin

Le truc du jour est un peu inutile (comme toujours avec la Pippin, dirons certains) mais ça montre que la Pippin est un Mac comme les autres. Il est en effet possible d’accéder à l’Open Firmware de la console.

Les Mac PowerPC utilisent un Open Firmware comme firmware, comme les PC utilisaient un BIOS et passent maintenant par un UEFI. Sur les Mac PowerPC pas trop vieux, il est possible d’accéder à l’Open Firmware directement sur un écran. Mais sur la Pippin (comme sur les premiers PowerPC), il faut passer par une console série.

Accéder à l’Open Firmware

Il faut plusieurs choses pour accéder au prompt de l’Open Firmware. D’abord, un câble série, qui doit être branché sur la prise modem de la console. Ensuite, en face, un appareil avec un connecteur série. Ca peut être un vieux Mac, mais aussi un Mac moderne avec un adaptateur série vers USB. J’utilise un adaptateur KeySpan USA-28XG qui a l’avantage de proposer une prise Mini DIN 8. Il faut ensuite ouvrir un émulateur de terminal (par exemple ZTerm) sur le bon port série, avec les paramètres suivants : 38 400 bauds, pas de parité, 8 bits, 1 stop bit, XON/XOFF.

Une fois la connexion lancée, il suffit de démarrer la console avec un clavier (par exemple via un adaptateur ADB) en pressant command, option, O et F.

Avec ZTerm

Le programme affichera normalement ça, et la console n’affichera rien.

Open Firmware, PipPCI2.
To continue booting the MacOS type:
BYE
To continue booting from the default boot device type:
BOOT

Ensuite, on peut s’amuser à regarder ce que contient la console.

0 > dev / ls
FF829220: /PowerPC,603@0
FF829B18: /chosen@0
FF829C48: /memory@0
FF829D90: /openprom@0
FF829E50: /AAPL,ROM@FFC00000
FF82A078: /options@0
FF82A518: /aliases@0
FF82A6E0: /packages@0
FF82A768: /deblocker@0,0
FF82AF68: /disk-label@0,0
FF82B4A8: /obp-tftp@0,0
FF82D8E8: /mac-files@0,0
FF82E0E0: /mac-parts@0,0
FF82E840: /aix-boot@0,0
FF82ECB8: /fat-files@0,0
FF830288: /iso-9660-files@0,0
FF830BD0: /xcoff-loader@0,0
FF831590: /terminal-emulator@0,0
FF831628: /aspen@F2000000
FF832938: /gc@10
FF832D70: /scc@13000
FF832EC8: /ch-a@13020
FF833578: /ch-b@13000
FF833C28: /awacs@14000
FF833D10: /swim3@15000
FF834E18: /via-cuda@16000
FF8359A8: /adb@0,0
FF835A98: /keyboard@0,0
FF8361E8: /mouse@1,0
FF836298: /pram@0,0
FF836348: /rtc@0,0
FF836810: /power-mgt@0,0
FF8368D0: /mesh@18000
FF838450: /sd@0,0
FF839080: /st@0,0
FF839D00: /nvram@1D000
FF839DD8: /taos@F0800000
FF839F00: /aspenmemory@F8000000

Les infos sur la console.

name device-tree
model Power Macintosh
compatible AAPL,????
MacRISC
AAPL,cpu-id 00000000
#address-cells 00000001
#size-cells 00000001
clock-frequency 03EF1480

Les infos du CPU.

name PowerPC,603
device_type cpu
reg 00000000 00000000
cpu-version 00030302
clock-frequency 03EF1480
timebase-frequency 00FBC520
reservation-granularity 00000020
tlb-sets 00000020
tlb-size 00000040
d-cache-size 00002000
i-cache-size 00002000
d-cache-sets 00000040
i-cache-sets 00000040
i-cache-block-size 00000020
d-cache-block-size 00000020
existing 00000000 80000000 80000000 80000000
available 00000000 F2000000 F4000000 0B800000 FF900000 00300000
translations F2000000 00010000 F2000000 00000028 F2800000 00001000 F2
800000 00000028
F2C00000 00001000 F2C00000 00000028 F3000000 01000000 F3
000000 00000028
F8000000 00001000 F8000000 00000028 FF800000 00100000 00
200000 00000010
FFC00000 00200000 FFC00000 00000000

Ou sur le GPU (qui se nomme Taos).

0 > dev /aspen/gc/taos ok
0 > .properties
name taos
device_type display
model AAPL,343S0153
AAPL,connector monitor
reg F0800000 00000800
F0000000 01000000
AAPL,interrupts 0000001C

Sur une console, accéder à l’Open Firmware n’a pas vraiment d’intérêt, mais il peut-être possible de bidouiller des trucs pour démarrer d’un disque sans authentification, par exemple. A noter que j’ai utilisé une console avec une ROM 1.3, d’autres versions de la ROM ont peut-être un Open Firmware un peu différent.