Some of you might still remember my expect script to reprogram the IDPROM of a Sun SPARCstation 10 and 20 or a SPARCclassic, originally posted on Nekochan years ago. Although this was originally created for just this one purpose, it opened up the possibility to programmatically access the firmware of Sun machines, i.e. the OBP. Over the years since then, I extended this feat to machines from Cobalt Networks and - most important for here - Silicon Graphics. I lost interest in this and also my vintage machines for some years now, but finally found the mood to bring this a little forward and make it available publicly.
I call this
fw-control for
firmware control and at the moment there exists no deep systematic in it but it rather is a collection of expect scripts that provide the respective functionality. There are expect scripts to directly use from the commandline and functionality encapsulated in libraries for use in expect scripts. Functionality is not complete, I rather implemented what I needed or thought of being useful.
You can find it on GitHub:
https://github.com/the-machine-hall/fw-control
...and it requires a connection to the serial console of the respective machine.
If you don't know what this allows for, here are a few examples specific to machines from Silicon Graphics:
* Reconfigure Ethernet MAC address and time and date on an Indy with depleted NVRAM/TODclock battery before starting any OS
* Set date and time on an O2 with depleted NVRAM/TODclock battery before starting any OS
* Switch between boot from disk, disc or network boot programmatically
* Switch from serial console to glass console programmatically
* Gather hardware information for taking inventory
* ...
I also recently used it - with some changes - to reprogram the IDPROMs of a Sun Enterprise 3500 and a Enterprise 4500 on the fly, which means, if you don't care about running POST on every cold boot, you can do without replacing NVRAMs or NVRAM batteries on these machines. Which in my case, saves me a lot of time and batteries.