Table of Contents
ARC Firmware
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 (Windows NT ARC firmware, also "ARC Multiboot" or "ARC console"): Digital's original firmware, used on the Jensen, Multia, AlphaStation 200 and 250, AlphaServer 1000 and 2100, and the Digital Semiconductor evaluation boards and motherboards up to the AlphaPC 164.
- AlphaBIOS: the successor to ARC, with a different user interface. Digital introduced it with the Alpha XLT series. 3)
- ARCSBIOS: firmware written by Deskstation for its Ruffian boards (see ARCSBIOS).
"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 to SRM
Switching from SRM back to ARC or AlphaBIOS is described in SRM Console: Switching to ARC or AlphaBIOS.
By system
| 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.
Windows NT and Linux
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
Menus
ARC is operated from a set of text menus. 42)
- Boot menu: "Boot Windows NT", "Boot an alternate operating system…", "Run a program…", and "Supplementary menu…". "Run a program" runs any ARC application, given its path.
- Supplementary menu: "Install new firmware…", "Install Windows NT from CD-ROM", "Set up the system…", and "Display hardware configuration".
- Setup menu: set the time, default environment variables, default configuration, boot selections, autoboot, machine-specific settings (including switching to SRM), and editing environment variables directly.
Device names
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)
Environment variables
| 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)
System partition
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)
Booting MILO
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=
OSLOADFILENAMEnames the MILO image. 54)- MILO runs the contents of
OSLOADOPTIONSas a command, e.g.boot sda2:vmlinux.gz, which allows unattended booting. 55) - The required
linload.exeversion, and other ways to start MILO, are described in MILO: From ARC or AlphaBIOS.
Jensen
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
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)
- AlphaPC 164LX, 164RX, 164SX, and 264DP
- AlphaServer 800, 1000 5/xxx, 1000A 5/xxx, 1200, 4000, 4100, and DS20
- AlphaStation 255 and 600A
- Alpha XLT
- Compaq Professional Workstation XP1000
- Digital Personal Workstation and Digital Ultimate Workstation
- Digital Server 3000/3300, 5000/5300, and 7000/7300
The final V7.3 firmware CD also includes AlphaBIOS for the AlphaServer 4000, 4100, 8200, 8400, GS140, DS10, DS20, and ES40. 61)
Setup
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)
- Hard Disk Setup creates and formats partitions, including the FAT system partition. 66)
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)
Booting MILO
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.exe1.3 or later is required; see MILO: From ARC or AlphaBIOS.- AlphaBIOS only lists primary partitions (1 to 4). 74)
- On the UP1000, AlphaBIOS loads APB, which reads the AlphaBIOS boot configuration to find the kernel. An SRM console is also available for the UP1000, and is preferred (see SRM Console: System support). 75) APB and old MILO versions hardcode the old kernel start address, so kernels booted by them must be built with
CONFIG_ALPHA_LEGACY_START_ADDRESS(see Kernel). 76) 77) 78)
AlphaBIOS on SRM systems
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)
Updating firmware
- AlphaBIOS: "Upgrade AlphaBIOS" searches the CD-ROM and then the floppy for an update. On the AlphaPC 164LX, the floppy holds
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)
Versions
| 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) |
ARCSBIOS
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)
ldmiloignoresOSLOADFILENAME. It differs fromlinload.exebecause ARCSBIOS lacks Digital's vendor callback vector. 95)- ARCSBIOS requires the VGA card to be in a 64-bit slot and beeps three times otherwise. 96)
- The ARCSBIOS documentation describes no serial console support. 97)
- Deskstation's ARC firmware and HAL were developed independently of Digital's. 98)
Known issues
- Time-of-year clock: ARC and AlphaBIOS store the year relative to 1980. 99) Linux detects the epoch at boot and prints e.g.
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. - SCSI boot devices: BusLogic controllers cannot be used to boot MILO from ARC or AlphaBIOS. 105)
Conflicting information
The following sources conflict with each other or with the account given above. They are listed here for further investigation.
- Whether Windows NT systems can switch to SRM
- "RE: switching from ARC back to SRM", William H. Magill, axp-list, 14 Aug 2000: "I believe that there was only ever one box which had NO SRM console accessable by setting the CMOS "console selection".
- "Re: DEC ALPHA 3305", William H. Magill, axp-list, 21 May 2000: "the 3300 series has no SRM console; it has the ARC console only."
- "RE: Compaq to offer Tru64 for $99", John Jemiolo, axp-list, 5 Nov 1999: "You can switch the 33,53,73 to srm console, but they will still not boot unix or vms."
- Whether
OSLOADOPTIONSreaches MILO- "Re: MILO on Multia: environment corruption?", Stephen C. Tweedie, axp-list, 14 May 1996: "that variable's contents will be executed as a command line by MILO when it starts up."
- "Maximum Memory size", Brian Cruikshank, axp-list, 13 Dec 1996: "The OSLOADOPTIONS does not seem to be sent to Milo."
- Last AlphaBIOS on the ES40
FWREADME.TXTfor the ES40 on the V7.3 firmware CD lists AlphaBIOS V5.71.- Alpha Systems Firmware Update V7.3 Release Notes Overview, p. 10, lists no Windows NT firmware for the ES40.
Documentation
| 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
