4 ms·
Posts like this, projects like these, and people like Neozeed are part of why I think the GNU project fundamentally is brilliant. Getting GCC running on barely
by azalemeth 6y ago
Posts like this, projects like these, and people like Neozeed are part of why I think the GNU project fundamentally is brilliant.
Getting GCC running on barely-produced prototype hardware system, on an ancient version of Solaris which itself was a particular pain to install, whilst entertaining and informing the reader about the history of the PowerPC migration circa 1994, is no mean feat.
What were the desirable/sexy features of OpenFirmware anyway? I remember typing occasional commands into it on old Macs (especially a Beige G3 running Mac OS 9 and, later, with varying degrees of grumpiness, OS X), mostly with the fear of god of bricking my system.
There was also that separate "crash" shell you could bring up once the machine had booted with a magic key combination involving the power button, and pressing something like 'R' would reboot it. I wish Apple was a bit more open about these programming interfaces – a bit like Solaris.
- rrmm 6y agoConceptually I think the nice thing about OpenFirmware was that it was basically a Forth shell and had a bit more utility in bringing up systems and testing bare metal systems. But my interaction with it was mostly like yours.
- LargoLasskhyfv 6y agoThe most desirable feature would have been the possibility to have one very compact and flexible firmware for any expansion card for any host system on any bus system. As it were, the market decided to have it the other way around. I.e. an absolutely common graphics card with an ATI chip for some workstation, or Power Macintosh was a 'speciality'. IIRC Acer or some other vendor beginning with A produced ONE VGA-card for PCs about 20+ years ago. Of course it was a flop, because no real benefit, when plugged into a x86 with BIOS, with no knowledge of that. At least it worked via some shim. Now we have EFI/UEFI/SSBA with all the PC-inspired crap, or U-Boot and similarly insular stuff instead. (shrug) edit: https://en.wikipedia.org/wiki/Open_Firmware https://en.wikipedia.org/wiki/Open_Firmware
- skissane 6y ago> Now we have EFI/UEFI/SSBA with all the PC-inspired crap I know what EFI and UEFI are, but I've never heard of SSBA before, and I can't find anything about it on Google. What is SSBA?
- LargoLasskhyfv 6y agoSorry, typo. SBSA It's basically UEFI for 64bit ARM: https://en.wikipedia.org/wiki/Server_Base_System_Architecture https://en.wikipedia.org/wiki/Server_Base_System_Architectur...
- saagarjha 6y agoIt’s a huge strength of the ecosystem, and something that many new projects seem to ignore (which I can’t really blame, but still, it’s sad). There are so many platforms almost forgotten to history that happen to have a GCC toolchain for them; perhaps a few dozen UNIX tools, but that itself opens up a whole world.
- kev009 6y agoThe beauty of OpenFirmware is that it is extended with Forth, which is extremely compact (so could fit on small PROMs in the computer and fcode for addon cards). If you are designing a PCI card, you can write a bit of fcode that will run on SPARC and PowerPC for instance to expose opaque RAID volumes as bootable disks. Keep in mind the PC BIOS was and is a complete tire fire, and uses something like this https://en.wikipedia.org/wiki/Option_ROM https://en.wikipedia.org/wiki/Option_ROM to approximate support for the above. UEFI is a bit of improvement but massive and obtuse in comparison to OpenFirmware.
- Someone 6y ago“you can write a bit of fcode that will run on SPARC and PowerPC” and x86, and ARM, and CPUs not even invented yet. Performance wouldn’t be optimal compared to native drivers, but decent enough to boot a workable system.
- throw0101a 6y ago> What were the desirable/sexy features of OpenFirmware anyway? When I was admining Solaris boxes, it had useful boot-from-net options, both RARP and later DHCP-based JumpStart: this was many years before PXE. When I started using Mac OS X, during the pre-Intel days, all the various Mac hardware used OpenFirmware as well so that knowledge transferred over. OF was also used on IBM's POWER systems, and the OLPC "XO" computer used it with x86 chips. If ARM ever wanted a common 'BIOS' system for their ecosystem, the OF could be a good choice (there are BSD-licensed options): * https://www.openfirmware.info/Open_Firmware https://www.openfirmware.info/Open_Firmware UEFI is the other main pre-OS system out there. More generally OpenFirmware allowed for platform-independent device drivers: * https://www.netbsd.org/support/hardware/ofw.html https://www.netbsd.org/support/hardware/ofw.html
- linksnapzz 6y agoThere was a trick I saw once, where you could use the editing commands in openboot, plus the fact that it could read UFS volumes, to find the offset of the root entry in the on-disk shadow file and zero or change it if you'd lost the password. When I was in school, the astronomy dept. used a remote telescope in Wyoming. I guess there was dial-up to send commands to open the dome if the weather looked nice, to send coordinates to aim the scope, and to set exposure times for the CCD. The connectivity wasn't enough to download lots of data, so there was a data collection box; a 16mhz Sun IPC workstation in the "lunchbox" form factor, roughly 10"x10"x5". Someone had written a program in OpenFirmware Forth to read data off of whatever storage was on the scope via the IPC's serial port, and write it to the internal SCSI drive. After every observing run, a collaborator would put the IPC in a backpack and jog it up the mountain, so it could be plugged into a scope & terminal, and run the collector code to pull the data. A friend's first real job was maintaining that forth code; he still has nightmares about it. Having system firmware that is that flexible is pretty nice, but really hard to write marketing copy for.
- scruffyherder 6y agoI wish it were my hammering of GCC/GNU stuff in this post, all the credit is to 'PA-RISC' (https://www.youtube.com/channel/UCYyCai0PQQ0O6yA_yQzBY-g https://www.youtube.com/channel/UCYyCai0PQQ0O6yA_yQzBY-g). I'd just started one of those discord things, and suddenly I'm being hit up with guest submissions, and pretty freaking AWESOME ones at that. It makes my current GCC thing look laughable at best, but yeah the future is awesome!
- rwmj 6y agoOn most current Linux systems you can get an OpenFirmware shell (or SLOF, a free reimplementation) by doing: $ qemu-system-ppc64 -m 1024 -serial stdio [.. lots of boot messages ..] E3407: Load failed Type 'boot' and press return to continue booting the system. Type 'reset-all' and press return to reboot the system. Ready! 0 >