ARC firmware is the menu-driven firmware that Alpha systems use to boot Windows NT. It implements the Advanced RISC Computing (ARC) specification, which standardizes features of RISC computers including their firmware. 1) 2)
There are three families of ARC firmware on Alpha:
"ARC BIOS" and "ARCBIOS" are used informally for both ARC and AlphaBIOS. 4) "ARCS" in Alpha/Linux usage refers to Deskstation's firmware, not to SGI's ARCS.
Systems intended for OpenVMS and Tru64 UNIX use the SRM console instead. Some systems carry both, and can switch between them (see Switching to SRM).
Where SRM is available, it is preferred for Linux over MILO, whose PALcode is less complete than SRM's (see MILO: PALcode and Choosing firmware for Linux). 5) 6) Linux 6.10 removed support for processors older than the EV56 (21164A) and for the Alpha XL, so a system without SRM can run a current kernel only if it has an EV56 or later processor. 7) 8)
Switching from SRM back to ARC or AlphaBIOS is described in SRM Console: Switching to ARC or AlphaBIOS.
| System | Firmware | Switching to SRM |
|---|---|---|
| AlphaPC 64 (Cabriolet) | ARC and SRM in flash | ARC "Machine Specific Setup", select Digital UNIX, and power-cycle. 16) |
| AlphaStation 200 (Avanti) | Early units have ARC and SRM; later units only one | Load SRM from the firmware CD with update srm at the update utility's prompt, then power-cycle. 17) |
| Personal Workstation (Miata) | AlphaBIOS; flash holds SRM as well | AlphaBIOS "Console Selection"; SRM may first have to be installed from the firmware CD. 18) |
| AlphaStation 600A | AlphaBIOS and SRM | Select Digital UNIX or OpenVMS from the AlphaBIOS Boot menu. 19) |
| AlphaServer 800 | SRM, which starts AlphaBIOS | AlphaBIOS "Console Selection", or press the Halt button in. 20) |
| AlphaPC 264DP | SRM, which starts AlphaBIOS | AlphaBIOS "Console Selection", set to "Tru64 UNIX (SRM Console)", then reset. 21) |
| AlphaPC 164LX | One image: AlphaBIOS or SRM | Flash lx164srm.rom with "Upgrade AlphaBIOS". 22) 23) |
| AlphaPC 164SX | One image: AlphaBIOS or SRM | Flash sx164srm.rom with "Upgrade AlphaBIOS"; an older interim SRM may have to be flashed before the current one. 24) |
| UP1000 | AlphaBIOS; SRM from API | Flash API's SRM images from floppy with the fail-safe diagnostics, selected by the Recover Firmware jumper (J43), with J42 also on 1-2 as in the manual's Reload ADE setting. API recommended reinstalling Linux afterwards. 25) |
| AlphaPC 164RX | AlphaBIOS only | Not possible. 26) |
| AlphaPC 164UX, 164BX (Ruffian) | ARCSBIOS only | Not possible. 27) |
| Alpha XL, Alpha XLT | ARC or AlphaBIOS only | Not possible. 28) |
The SRM image for the AlphaPC 164LX, lx164srm.rom, is kept in the alphalinux/firmware repository with the other firmware listed in Firmware: Obtaining and updating firmware. After the first SRM start, the settings for a serial console and for booting Linux unattended are described in Using the SRM Console: Serial console and Installation: Booting the installed system.
The Alpha XL series has only ARC or AlphaBIOS, and no SRM. 29) Sources disagree about the Digital Server 3300: one describes it as having no SRM, 30) while another says that the Digital Server 3300, 5300, and 7300 can be switched to SRM but will not boot Digital UNIX or OpenVMS from it. 31) See Conflicting information.
The firmware reads the operating system loader from the disk and runs it, and provides I/O services to the loader through ARC callback routines. The loader then loads the Windows NT HAL and PALcode, and the kernel switches to that PALcode. 32) ARC also stays in memory after Windows NT boots so that NT can make callbacks. 33)
ARC and AlphaBIOS provide PALcode for Windows NT, which Linux cannot use, so they cannot load a Linux kernel directly. 34) 35) Linux on these systems is booted through MILO, which supplies its own PALcode and reclaims all of the memory used by the firmware. 36) The UP1000 uses APB instead of MILO. 37) The BSDs, which need the OSF/1 PALcode, boot only from SRM. 38) 39)
The instruction set is the same under either PALcode, but little else is: under the Windows NT PALcode, interrupts, virtual memory (with a 32-bit address space and two-level page tables), traps, and process structures all differ from the OSF/1 PALcode. 40) MILO therefore has to carry its own PALcode and switch to it. ARC also cannot read a BSD disklabel. 41)
ARC is operated from a set of text menus. 42)
ARC names devices by a path of bus, controller, and device, e.g. scsi(0)disk(1)rdisk(0)partition(1). multi() devices are on the system board (keyboard and serial ports), eisa() devices are on the EISA bus (video and floppy on the AlphaServer 2100), and scsi() devices are SCSI disks and CD-ROMs. 43) 44)
| Variable | Meaning |
|---|---|
CONSOLEIN, CONSOLEOUT | Console input and output devices |
FWSEARCHPATH | Search path for files; defaults to the system partition |
AUTOLOAD | Y to boot automatically, N to stay in the firmware |
COUNTDOWN | Seconds to wait before booting automatically; defaults to 10 |
Sources: 45)
Each boot selection is a set of variables:
| Variable | Meaning |
|---|---|
LOADIDENTIFIER | Name of the boot selection |
SYSTEMPARTITION | Partition containing the operating system loader |
OSLOADER | Full path of the operating system loader |
OSLOADPARTITION | Partition containing the operating system |
OSLOADFILENAME | Operating system directory, e.g. \WINNT35 |
OSLOADOPTIONS | String passed to the operating system |
Sources: 46)
The firmware passes SYSTEMPARTITION, OSLOADFILENAME, OSLOADPARTITION, and OSLOADOPTIONS to the loader it runs. 47)
The ARC specification requires a DOS-formatted primary partition, the system partition, to hold operating system loaders. The specification requires ARC systems to read both FAT12 and FAT16 but to create only FAT16. 48) ARC only understands PC (fdisk) partition tables, not BSD disklabels. 49)
Older ARC versions cannot create a system partition; arcinst.exe from the Windows NT CD, started with "Run a program", does this. 50) 51)
ARC runs linload.exe, a small ARC program that loads MILO and switches to MILO's PALcode. MILO then relocates itself and boots Linux. 52) A typical boot selection is: 53)
LOADIDENTIFIER=Linux SYSTEMPARTITION=multi(0)disk(0)fdisk(0) OSLOADER=multi(0)disk(0)fdisk(0)\linload.exe OSLOADPARTITION=multi(0)disk(0)fdisk(0) OSLOADFILENAME=\noname.arc OSLOADOPTIONS=
OSLOADFILENAME names the MILO image. 54)OSLOADOPTIONS as a command, e.g. boot sda2:vmlinux.gz, which allows unattended booting. 55)linload.exe version, and other ways to start MILO, are described in MILO: From ARC or AlphaBIOS.The Jensen (DEC 2000 AXP, DECpc AXP 150), supported by Linux 6.9 and earlier, has both ARC and SRM, and Linux on it is booted from SRM; see Jensen. 56) 57)
AlphaBIOS replaced ARC with the Alpha XLT series. 58) Digital Semiconductor used it on the AlphaPC 164LX and AlphaPC 164SX; its earlier boards kept ARC. 59) The AlphaBIOS release notes of July 1999 list these supported products: 60)
The final V7.3 firmware CD also includes AlphaBIOS for the AlphaServer 4000, 4100, 8200, 8400, GS140, DS10, DS20, and ES40. 61)
AlphaBIOS Setup is entered by pressing F2 during startup. Its main menu offers "Display System Configuration…", "Upgrade AlphaBIOS", "Hard Disk Setup", "CMOS Setup…", "Install Windows NT", "Utilities", and "About AlphaBIOS…". 62) 63)
On a serial console, ARC and AlphaBIOS require a VT220-compatible terminal. Control keys stand in for function keys, e.g. Ctrl+B for F2 and Ctrl+U for F10. 69) 70) 71) AlphaBIOS 5.66 and later boot without a keyboard on the AlphaPC 164LX and 164SX. 72)
To boot MILO, add an operating system selection in "OS Selection Setup" with \linload.exe as the boot file on the FAT partition and \ as the OS path, and put a MILO command such as boot sda2:vmlinux.gz in the OS options. AlphaBIOS warns that the selection is not valid, which only matters for Windows NT. 73)
linload.exe 1.3 or later is required; see MILO: From ARC or AlphaBIOS.CONFIG_ALPHA_LEGACY_START_ADDRESS (see Kernel). 76) 77) 78)
On AlphaServers and workstations that support both Windows NT and Digital UNIX, AlphaBIOS is a separate, compressed image in flash. SRM always starts first, and then loads AlphaBIOS if os_type is nt or the alphabios command is entered. 79) 80) AlphaBIOS moved to a new location in flash in version 5.67, which requires SRM 5.3 or later. 81)
lx164nt.rom. 84) 85) Version 5.69 changed the search order to CD-ROM, floppy, then network. 86) On AlphaServers with SRM, "Upgrade AlphaBIOS" starts the Loadable Firmware Update utility. 87)| Firmware | Version | Notes |
|---|---|---|
| ARC | 4.58 | April 1999 interim release; allows a zeroed time-of-year clock to be set 88) 89) |
| AlphaBIOS | 5.66 | Adds SCSI BIOS emulation on CIA systems; limits operating system selections to three 90) |
| AlphaBIOS | 5.68 | Adds 21264 support 91) |
| AlphaBIOS | 5.71 | Last version, for the DS10 and DS20 92) |
Deskstation wrote its own ARC-compatible firmware, ARCSBIOS, for the Ruffian (the AlphaPC 164UX and 164BX), along with an ARCS program, ldmilo, to load MILO. The Ruffian has no SRM, ARC, or AlphaBIOS. 93) 94)
ldmilo ignores OSLOADFILENAME. It differs from linload.exe because ARCSBIOS lacks Digital's vendor callback vector. 95)rtc: ARC console epoch (1980) detected. 100) The epochs used by SRM, and the problem they cause when the same machine also boots from SRM, are described in SRM Console: Known issues.The following sources conflict with each other or with the account given above. They are listed here for further investigation.
OSLOADOPTIONS reaches MILOFWREADME.TXT for the ES40 on the V7.3 firmware CD lists AlphaBIOS V5.71.| Document | Part number | Date |
|---|---|---|
| Advanced RISC Computing Specification, Version 1.2 | 1992 | |
| Alpha Microprocessors Motherboard Windows NT 3.51 and 4.0 Installation Guide (ARC and AlphaBIOS menus on the Digital Semiconductor motherboards) | EC-QLUAH-TE | October 1997 |
| AlphaServer 2000/2100/2100A Firmware Reference Guide (ARC environment variables, boot selections, and device names) | EK-AXPFW-RM.C01 | December 1995 |
| AlphaServer 800 User's Guide (AlphaBIOS, chapter 7) | EK-ASV80-UG.B01 | November 1997 |
| Alpha Systems Firmware Update V7.3 Release Notes Overview | AA-RGKNV-TS | April 2007 |
| AlphaPC 164SX/164LX/164 Motherboards Firmware Update Procedures, V5.7 | March 2000 | |
| Alpha AXP System Reference Manual, Version 6 (Part II-C describes how Windows NT uses the ARC firmware) | 1994 |
install.txt, UP1000 SRM A5.6 beta, alphalinux/firmware
Jensen-HOWTO, Jim Paradis, Linux-Alpha archive, April 1996
dsc-software-alpha.html, Digital Semiconductor web site, c. 1998
AlphaBIOS Release Notes, Compaq, July 1999, on the Alpha Systems Firmware Update V7.3 CD
FWREADME.TXT files, Alpha Systems Firmware Update V7.3 CD
AlphaBIOS Release Notes, Compaq, July 1999, on the Alpha Systems Firmware Update V7.3 CD
update.txt, AXPpci33 firmware update instructions, Digital, 3 Aug 1995
AlphaBIOS Release Notes, Compaq, July 1999, on the Alpha Systems Firmware Update V7.3 CD
ARC Firmware V4.58 release notes, April 1999, on the Alpha Systems Firmware Update V7.3 CD
AlphaBIOS Release Notes, Compaq, July 1999, on the Alpha Systems Firmware Update V7.3 CD
AlphaBIOS Release Notes, Compaq, July 1999, on the Alpha Systems Firmware Update V7.3 CD
AlphaBIOS Release Notes, Compaq, July 1999, on the Alpha Systems Firmware Update V7.3 CD
readme.txt, ECU directory, ftp.digital.com