User Tools

Site Tools


software:firmware:arc

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

  • ARC: Supplementary menu, "Set up the system…", then "Switch to OpenVMS or OSF console" (on later versions "Switch to OpenVMS or Digital UNIX console"), then "Switch to OSF", and power-cycle. 9) 10) On the evaluation boards, this is under "Machine specific setup…". 11)
  • AlphaBIOS: in Advanced CMOS Setup, set "Console Selection" to "Digital UNIX Console (SRM)" or "OpenVMS Console (SRM)", then save with F10. 12) 13)
  • Single-image boards: the AlphaPC 164, 164LX, and 164SX hold only one firmware in flash, so switching requires flashing the other firmware. 14) On the AlphaPC 164LX and 164SX, this is done with "Upgrade AlphaBIOS" and a floppy containing the SRM image (LX164SRM.ROM or SX164SRM.ROM). 15)

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

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=
  • OSLOADFILENAME names the MILO image. 54)
  • MILO runs the contents of OSLOADOPTIONS as a command, e.g. boot sda2:vmlinux.gz, which allows unattended booting. 55)
  • The required linload.exe version, 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)

  • CMOS Setup sets the date, time, floppy and keyboard type, and "Auto Start". Advanced CMOS Setup (F6) includes "Console Selection" and SCSI BIOS emulation. 64) 65)
  • Hard Disk Setup creates and formats partitions, including the FAT system partition. 66)
  • Utilities has "OS Selection Setup…", "Run ECU from floppy…", and "Run Maintenance Program…". 67) An operating system selection has a boot name, boot file, OS path, and OS options. 68)

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.exe 1.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

  • ARC: "Install new firmware" in the Supplementary menu searches the CD-ROM and floppy for FWUPDATE.EXE and runs it. 82) Versions before 4.42 can only run it from a floppy. 83)
  • 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)

  • ldmilo ignores OSLOADFILENAME. It differs from linload.exe because 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.
  • Video cards: ARC and AlphaBIOS initialize VGA cards with an x86 BIOS emulator. 101) nVidia TNT2 cards fail in it. 102) AlphaBIOS allows no BIOS emulation if a Digital TGA card is installed. 103) If ARC cannot use the graphics card, it uses the serial port. 104)
  • SCSI boot devices: BusLogic controllers cannot be used to boot MILO from ARC or AlphaBIOS. 105)
  • ECU availability: EISA systems need the ECU floppy, which contains proprietary code and cannot be freely distributed. 106) 107)

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 OSLOADOPTIONS reaches MILO
  • Last AlphaBIOS on 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

1) "Re: Booting problem", Nikita Schmidt, debian-alpha, 22 Dec 1998
3) AlphaBIOS-HOWTO, Linux-Alpha archive, ftp.digital.com, 19 Dec 1996
4) "Re: SCSI-2 and AS200/233", Alan Young, axp-list, 23 Aug 1998
5) "Re: SRM vs. AlphaBIOS", Phillip Ezolt, axp-list, 7 Sep 1999
6) "Re: MILO upgrades don't work", Jeff Sturm, axp-list, 1 Jul 2000
9) "Jensen-HOWTO: First pass", Jim Paradis, axp-list, 15 Mar 1996
12) "RE: Alpha taxonomy", John Jemiolo, axp-list, 26 Aug 1999
16) "Re: FW: True64 on Cabriolet", Bob Palladino, axp-list, 12 Nov 1999
17) "Re: how to load arc firmware.", Kenny House, comp.unix.osf.misc, 20 Feb 1996
18) "Re: PWS AlphaBIOS to SRM", Jay Estabrook, debian-alpha, 9 Jun 2005
22) "SRM on 164LX", Steven Moix, axp-list, 4 Oct 2004
24) "SUMMARY: Linux --> Tru64 on AlphaPC 164SX", Gernot Salzer, tru64-unix-managers, 13 Jan 2000
25) install.txt, UP1000 SRM A5.6 beta, alphalinux/firmware
26) "Re: switching from ARC back to SRM", Jay Estabrook, axp-list, 16 Aug 2000
27) "Re: AlphaBios vs SRM", Rich Payne, axp-list, 15 Sep 1999
28) "Alpha Core ISO Images", Jay Estabrook, axp-list, 29 Sep 2004
29) "Re: Does DEC have a clue?", Jay Estabrook, axp-list, 20 Jan 1998
30) "Re: DEC ALPHA 3305", William H. Magill, axp-list, 21 May 2000
31) "RE: Compaq to offer Tru64 for $99", John Jemiolo, axp-list, 5 Nov 1999
33) "Re: Confusion re SRM, ARC, MILO, etc.", David A Rusling, axp-list, 14 Dec 1996
34) "Re: Does DEC have a clue?", Jay Estabrook, axp-list, 21 Jan 1998
36) "Re: Confusion re SRM, ARC, MILO, etc.", David A Rusling, axp-list, 14 Dec 1996
38) "MILO thoughts (Was Re: MILO init-command)", Martin Lucina, milo-list, 11 Jul 1999
39) "Re: MILO for fbsd?", Andrew Gallatin, freebsd-alpha, 8 Apr 1999
40) "Re: PALcode", Jason Thorpe, freebsd-alpha, 10 Oct 1998
41) "PALcode", David Seifert, freebsd-alpha, 9 Oct 1998
44) "RE: MILO and PC164", James Livingston, axp-list, 2 Mar 1999
47) "Re: Milo 2.2 - things are becoming generic.", Nikita Schmidt, milo-list, 8 Sep 1999
48) Advanced RISC Computing Specification, Version 1.2, MIPS Technology, 1992, p. 43
49) "Re: SCSI-2 and AS200/233", Alan Young, axp-list, 23 Aug 1998
50) "Re: ARC boot options qstn", Bill Roman, axp-list, 19 Sep 1998
51) "Re: Linux/NT dual boot (Was: Moving to Digtal Alpha system", Maurice W. Hilarius, axp-list, 4 Apr 1997
54) "Re: Milo 2.2 - things are becoming generic.", Nikita Schmidt, milo-list, 8 Sep 1999
55) "Re: MILO on Multia: environment corruption?", Stephen C. Tweedie, axp-list, 14 May 1996
56) Jensen-HOWTO, Jim Paradis, Linux-Alpha archive, April 1996
58) AlphaBIOS-HOWTO, Linux-Alpha archive, ftp.digital.com, 19 Dec 1996
59) dsc-software-alpha.html, Digital Semiconductor web site, c. 1998
60) AlphaBIOS Release Notes, Compaq, July 1999, on the Alpha Systems Firmware Update V7.3 CD
61) FWREADME.TXT files, Alpha Systems Firmware Update V7.3 CD
63) "RE: Alpha taxonomy", John Jemiolo, axp-list, 26 Aug 1999
65) "Re: Automating boot process", Greg Lindahl, axp-list, 23 Apr 1998
66) "Re: ARC boot options qstn", Bill Roman, axp-list, 19 Sep 1998
68) AlphaServer 800 User's Guide, pp. 7-38 to 7-39
69) "Re: serial console & 5.66", Stephen J. Gaudet, axp-list, 1 Oct 1998
71) "RE: switching from ARC back to SRM", William H. Magill, axp-list, 14 Aug 2000
73) AlphaBIOS-HOWTO, Linux-Alpha archive, ftp.digital.com, 19 Dec 1996
74) "Re: SRM vs. AlphaBIOS", Helge Kreutzmann, axp-list, 8 Sep 1999
75) UP1000 User Manual, pp. 4-14 to 4-15
77) "Re: Linux-2.4.0-test2", Richard Henderson, axp-list, 24 Jun 2000
78) "Re: 2.40test10 working?", Rich Payne, axp-list, 16 Nov 2000
81) AlphaBIOS Release Notes, Compaq, July 1999, on the Alpha Systems Firmware Update V7.3 CD
82) update.txt, AXPpci33 firmware update instructions, Digital, 3 Aug 1995
85) "Re: XLT300 and more hardware questions", Aspen Systems Technical Support, axp-list, 23 Nov 1997
86) AlphaBIOS Release Notes, Compaq, July 1999, on the Alpha Systems Firmware Update V7.3 CD
88) ARC Firmware V4.58 release notes, April 1999, on the Alpha Systems Firmware Update V7.3 CD
89) "ARC version 4.58 (URL)", Bill Roman, axp-list, 6 Apr 1999
90) AlphaBIOS Release Notes, Compaq, July 1999, on the Alpha Systems Firmware Update V7.3 CD
91) AlphaBIOS Release Notes, Compaq, July 1999, on the Alpha Systems Firmware Update V7.3 CD
93) "Re: Deskstation Ruffian compatibility", Dean Hall, axp-list, 3 Jul 1997
94) "Re: Various UX questions", Ron Farrer, axp-hardware, 10 Mar 2000
95) "Re: Milo 2.2 - things are becoming generic.", Nikita Schmidt, milo-list, 9 Sep 1999
96) "Re: Alpha newbie Q's about UX.", Paul Jakma, axp-list, 20 Mar 1999
97) "Re: Various UX questions", Ron Farrer, axp-hardware, 9 Mar 2000
98) "re: Linux on a Deskstation Raptor 3 - System?", Neal Crook, axp-list, 20 Feb 1996
99) "Re: potato install-items", David Huggins-Daines, debian-alpha, 8 Apr 2000
100) "ARC time on slink", Dragos-Anton Manolescu, debian-alpha, 12 Sep 1999
102) "Re: ASUS V3800 TNT2", Rich Payne, axp-hardware, 18 Feb 2000
103) AlphaBIOS Release Notes, Compaq, July 1999, on the Alpha Systems Firmware Update V7.3 CD
104) "S3 BIOS", Bernd Lind, axp-list, 10 Sep 1996
105) "Re: Any1 with a working PC164!", Jay A Estabrook, axp-list, 13 Jun 1997
106) readme.txt, ECU directory, ftp.digital.com
107) "Sound on AS500/500", M. Grabert, debian-alpha, 2 Jul 2002
software/firmware/arc.txt · Last modified: by 127.0.0.1