The information from the Texas A&M University
SGI Hardware FAQ is that only one model of Toshiba CD-ROM drive had "special" firmware and that it was soon made unnecessary by changes to the IRIS 4D boot code.
Quote:4D20, 25, 70, 80 and 85s and most Power Series machines can boot only
from SGI CD-ROMs or later Toshiba 3401s which have SGI firmware
activated by the modification described below. (Newer Toshiba models
don't have that firmware and won't work.) Older SGIs can boot only
from a local tape drive or over the network. Newer machines (4D30 and
35s, Indigos, Challenges, Onyxes, Indys, Indigo^2 etc.) have smarter
PROMs and can boot from at least some third-party CD-ROMs, for example
the Sony and Toshiba drives intended for Suns.
Dave Olson of SGI says, The basic requirement for
Indigos is that the drive be set to use a 512 byte block size. Since
Indigos don't reset the SCSI bus on reboot or halt, you *might* be
able to boot your machine in some other way, set the CD-ROM's
blocksize with a devscsi program while the system is up and then
install from it, but I won't swear to it. Late R4K Indigos, Indys,
Indigo2s, and Onyx/Challenges all know how to set the block size if
the drive identifies itself as a CD-ROM, reports the block size as
something other than 512 bytes in the block descriptor and accepts
the new block size in the block descriptor.
So there are three levels of optical device support depending on the vintage of computer.
1. Oldest (Professional IRIS, Power Series, Personal IRIS 20-25):
No understanding of optical devices in the boot PROM code. To boot from CD-ROM, the drive must start up in 512 byte mode and identify itself as a hard disk.
2. Mid-era (IRIS Indigo R3000, Personal IRIS 30-35):
Knows about the optical device type, but expects 512 byte mode to be enabled by default at boot time. To boot from CD-ROM, the drive must start up in 512 byte mode.
3. Later (Indigo R4000, Indigo2, Indy, Onyx and everything after):
Knows about optical devices and can set 512 byte mode using a MODE SELECT command. The only requirement is that the drive is capable of setting 512 byte mode.
I don't know where the Crimson falls here because the FAQ doesn't mention it specifically. The above categories are for booting from the PROM environment; support within IRIX has more complex requirements involving mediad, digital audio, etc., but at least in later IRIX versions they all generally work.
Each successive level supports a wider selection of optical drives. The drives supported by the first level 1 computers either were sold by SGI with qualified firmware, or are later double-speed Toshibas set with a solder bridge to 'SGI mode'. The level 2 computers can, additionally, use any drive with a '512 byte' jumper set on it. Level 3 can, additionally, use any drive that responds to MODE SELECT commands to set the block size to 512, which is a large array of models and includes some DVD drives.
There's one additional question here that I don't know the answer to, yet. The SCSI protocol provides that some MODE SELECT parameters can be saved, that is, stored in non-volatile memory on the drive and made to be the default for future power-on cycles. It may be that certain drives save the block size when instructed to do so, which would mean that once they have been set up, they would work for booting on Level 2 machines. To my knowledge, no one investigated this during the period and wrote about it, but it would mean that two drives that appear physically identical could act differently in terms of their boot support on an Indigo. There would be drawbacks to such a capability, of course: moving such a drive from a workstation to a PC that expects 2048 byte blocks would generate customer support calls.
Your project to archive SGI-specific firmware is a noble one, but I don't even know if the drives have a device firmware update (DFU) capability. Just because a piece of hardware contains a Flash chip does not mean that it has implemented writing to that chip! In many cases, Flash (especially NOR Flash) was used as a replacement for EPROM firmware storage, which is never in-circuit programmable. Without DFU, there is also no mechanism to save the firmware contents to the host. You would need to desolder the component and put it in an appropriate socket in a device programmer supporting that chip to read it, the same way you need to do with EPROMs.