The Cobalt Firmware is only used on Cobalt MIPS systems. It consists of a Linux 2.0 kernel which can read a gziped ELF kernel directly from a serial line at 115200bps, 8N1. When booting from disk the firmware kernels expects the kernel binary to be booted to reside on an ext2 filesystem /dev/hda1 as /vmlinux.gz.
Features of this firmware
- By default, the firmware will try to load /vmlinux.gz from hda1
- It can boot /usr/games/.doug as an alternate kernel if you hold all four buttons in whilst powering the unit on.
- Holding in the "password reset" button switches on the serial console. When you see "Console ON" switch the unit off, then back on again to use the console.
- Holding the LEFT + RIGHT arrow buttons triggers a netboot. See below.
- Pressing space during the diagnostics (serial console) drops you to a shell... 'bfd vmlinux.blah.gz' will load an alternate kernel.
This firmware has two major limitations:
Firmware can't mount the boot partition
The firmware is based on a Linux 2.0 kernel. This kernel only supports ext2 rev. 0 filesystems. Current e2fsprogs however default to rev. 1. Journaling isn't supported with rev. 0 filesystems either so the partition containing the kernel cannot be ext3.
Kernel is too large
Due to unfortunate use of the available memory the size of the bootable kernel is severly restricted (about 620 kB, depending on model). In Linux 2.6 even a minimal kernel will exceed this limit. For 2.4, one should try "strip vmlinux" then "gzip -9 vmlinux" to reduce the size to a minimum.
This firmware is capable of loading a kernel over NFS when you hold both the LEFT and RIGHT arrow buttons on boot. The unit first obtains an IP number via BOOTP. Once the system is up, it then mounts /nfsroot off the BOOTP server (or a specified server via the 'next-server' parameter -- check this) and attempts to execute vmlinux_raq-2800.gz from this directory.
Replacement Firmware -- CoLo
There is a replacement firmware available that can either be burned into the flash chip, or chainloaded from the existing firmware. See the CoLo page for more information.