The Enhanced Sardine-Free SRM Howto By William D. Rekow V. 0.03 Beta, 09 June 2003 An extended SRM howto to replace the outdated SRM section in the alpha howto */ insert TOC here /* 1. Introduction 1.1 History Completely tired of the extreme lack of good SRM docs, I decided to write one. I can be reached at jenklowieczyahoo.com If I fix a problem for someone I'm happy. Other than that, at this point There is no history (hello, this is a beta, ) 1.2 New versions Welcome to it. As soon as a new version is available, request it on IRC #L0pht on the undernet. In time this will be available on the LDP page, and likely a webpage. 1.2.1 Version History Wow, HP sucks! lets write a doc to help anyobody with SRM to use it more efficiently, as the SRM section is the Alpha howto is sparse. 1.3 Copyrights and Trademarks (c) 2003 William D. Rekow This manual may be reproduced in whole or in part, without fee, subject to the following restrictions: · The copyright notice above and this permission notice must be preserved complete on all complete or partial copies · Any translation or derived work must be approved by the author in writing before distribution. · If you distribute this work in part, instructions for obtaining the complete version of this manual must be included, and a means for obtaining a complete version provided. · Small portions may be reproduced as illustrations for reviews or quotes in other works without this permission notice if proper citation is given. Exceptions to these rules may be granted for academic purposes: Write to the author and ask. These restrictions are here to protect us as authors, not to restrict you as learners and educators. All source code in this document is placed under the GNU General Public License, available via anonymous FTP from the GNU archive site . 1.3.1 Other legalese If you screw something up, don't blame me, I deny all legal responsibility for what you do (even following these instructions). So, don't attempt to sue me, as I don't have anything worthwhile anyway. 1.4. Acknowledgements and Thanks Thanks to the author of the Alpha howto, Neal Crook, and his editor, David Mosberger. System Descriptions from their Alpha Howto are used in the Hardware Support section. Their howto may be found at the linux documentation project page (insert url here), or on any linux system with the howto collection installed. Thanks in advance to all the other people who will likely have to help out with this monster. Thanks to my buddy nitrile from irc.freenode.net for submitting the UP1000 section. 2. Basic Ideas 2.1 What is SRM console? Well, It's sure as hell not "The Matrix". SRM console is the boot firmware on a DEC Alpha, used to boot VMS, and UNIX like operating systems; and alternately to Directly program the cpu, memory, and set system configutation variables. SRM is analogous to the BIOS of a PC type machine, or the OpenBoot firmware of a sparc. 2.2 Why do I want SRM? Well, SRM is a much more capable firmware than the ARC or AlphaBios firmware (Though it is theoretically possible to load both in the flash, and switch betwixt them, except some boards where the firmware images are too large to fit. ie PC164). It is much more "UNIX-like" than the other firmware, and as previously mentioned allows much more access to the hardware. It has it's limitations, as all software does; however it doesn't say "Microsoft" anywhere. SRM is the only way to boot some operating systems, such as VMS, Tru64, *BSD and probably something else. Linux is also booted via SRM, but can also be loaded other ways. SRM will also boot from any device with a valid bootblock on any board supported bootable media/controller. You could quite possibly load all the operating systems SRM will boot on your platform one to each disk and have a true multi-boot system. You are not limited to a single master boot record, as on a PC. 2.3 Hardware support SRM runs on a large amount of the Alpha based systems. Differing systems sometimes require different versions of the firmware, and add-on cards supported by the firmware vary by firmware version. The only forseeable change to the differing version and device support is if HP was to open-source the SRM console; which is the least they could do seeing as they are killing the alpha architecture. See the hardware compatibility/version list for all that is known at this time. 2.4 Upgrading and latest versions SRM is available from various HP/Compaq/DEC sites, though many links from older pages are broken, and some pages are broken. I will add a full list of what I can find as live, however these may be altered and further break the links. If you are using another firmware, fear not! Depending on your platform you can easily install SRM, or update your version. 2.5 Other questions People ask what SRM and PAL stand for. They are, respectively: System Reference Manual, and Programmable Array Logic. 3. Installing the SRM console 3.1 Media SRM can be installed a variety of ways Including, but not limited to: BOOTP/MOP CDROM, Floppy, and from the OS. In earlier systems floppy is the most common method. In later systems loading from CDROM is prevalent. 3.1.1 The floppy method The generalized procedure for installing the lastest console from floppy is quite simple. Format a FAT floppy (in early machines this may best be done from a real DOS machine) and put the file fwupdate.exe and the proper flash image for your platform on the newly formatted disk. Depending on your existing firmware you will either type 'fwupdate' or select the supplementary menu and use the "update firmware" option. I'm not entirely sure how AlphaBios handles this. I will read the docs and add a section from the procedure i see there. In some cases you will have to change the name of the rom file, use the failsafe booter, or use voodoo incantations to install. See the "Hardware Compatibility' section for your platform for any special procedures that may be necessary 3.1.2 The CD method Damned if I know. I need to read up on this too. 3.1.3 BOOTP/MOP See 3.1.2 3.1.4 Via OS Again, I need to consult with some people, and read some OS specific pages. 3.1.5 Failsafe booter The failsafe booter is a little exrtra function left in the firmware of most Alpha systems. It resides in the first section of the flash, and is toggled by a motherboard jumper. If for some reason your firmware has become hosed you can use the failsafe booter to load firmware onto your machine again. Some incarnations of the failsafe booter may not produce video on the graphics adapter of your system. It may be necessary to use a terminal attatched to the debug port of your machine, if you have this hardware. See the hardware compatibility section for your platform for pointers. I am also going to supply an ascii drawing of an MMJ connector, and other pertinent connectors, as well as combining them. To install SRM from the failsafe booter first have a firmware update floppy readied. Boot the system with the failsafe booter jumper enabled. at the failsafe booter prompt type "fwupdate". Some earlier versions do not have the fwupdate command, you must tell it to boot from the floppy. type "flboot fwupdate.exe 900000". SRM will take over, and reinit the system. Power down and unset the jumper after SRM has loaded and been tested. 3.2 building SRM This is not possible anymore. Only some early evaluation boards came with a developer's CD which supposedly contained source code for SRM. So, if you want a painfully old SRM, find one of the CDs. Otherwise badger HP to release the code. 3.3 Caveats Some alpha hardware such as the AXPPci33 was available in multiple configurations. The primary difference would often be The keyboard ports and mouse interface. This will prevent you from running VMS or Tru64 if you have no PS/2 ports. These Will often be found with windows NT firmware, and when flashed to SRM (V4.7-1860 on the case of the AXPPci33) will generate a "mouse error". It will not affect the functionality of your system under Linux or *BSD. Some versions of SRM dislike certain graphics options, and certain block device controllers. See "hardware comaptibility" section information for your platform. (beginning to see a trend?) 4 Using SRM 4.1 Starting out Seeing as you have the SRM console installed at this point, boot your machine. Your system should generate some output about BIOS emulation (I assume this only on PC compatible systems to properly initialize PC type add on cards and serial devices) and device driver initialization. Depending on your version of SRM console you may get a RAM test and output of the version number. After all this is over you should have a prompt like this: >>> This is the SRM prompt. You can enter commands here to do various things. Your two best friends will soon become "boot" and "show". Depending on how you set your system up, you can avoid seeing this once your OS is installed. The first most important command to execute (if you don't already know what the firmware version is) is: >>> show version This will show you the SRM console version and PALcode version. If you do not have the most recent version of SRM for your platform I recommend you install it, unless you have need of a removed feature. The most recent version number for your platform at the time of writing is in the "hardware support" section for your machine type. 4.2 SRM devices SRM responds to the command >>> show device This will show you all the devices that SRM recognizes on your system. Most of the devices will be available boot devices and are of the most immediate concern. 4.2.1 PKA PKA is the SRM shorthand for your SCSI controller, if your controller supported at the firmware level. Even if your controller is unsupported, your OS may support it, you may use it, just not boot from it. Other numbers will be after PKA0, seperated by dots. the 7 is the device number. The others include LUN, and the rest I do not know. (some reader? do you know this?) 4.2.2 DKA DKA is the SCSI disk device name. The number supported depends on your controller's SCSI revision. You can generally boot from these (in my case I boot from DKA0. DKA? can also be followed by a series of numbers, much like the controller. 4.2.3 EWA EWA is the ethernet device. If your SRM sees this, you most likely have a DEC ethernet controller such as a DE205, DE435, or DE500; or possibly some other noname cards based on the 21x4x "tulip" chip. You can netboot from this. 4.2.4 DQA DQA, the IDE device. On some systems this will not boot, the AXPPci33 being a prime example. On some systems with live bootable IDE the CDROM device will not boot. Generally these devices number from 0-3. 4.2.5 DVA Floppy disk. I've had some trouble with 5.25 floppies and dual floppies. I haven't had a chance to try an 8 inch. 4.2.6 Devices I missed I've likely missed something. Probably some TurboChannel devices. mail me and yell about it. I'll fix it. 4.3 HELP ME! Help is not available in the earlier versions of SRM. Some give you as much help as format: "command" "argument" (not too much help). 4.7 is this way. However, as of 5.5-1 (and possibly earlier) there is both a "help" and "man" command. Infact there's even a small unix-esque proto-filesystem, some devices, and a working "ls" command. Use ls -l, not ls -al. All the SRM commands even show with ls as if they were binary files. 4.4 SRM commands There are quite a few more commands then merely "show" and "boot" These can vary by platform, and console revision. So some of these commands may not work for you 4.4.1 arc arc, or alternately nt will load the arc or alphabios firmware from a floppy. 4.4.2 boot Boots some type of kernel from boot [-file ] [-flags [,] [-protocols ] [-halt] [] -flags can be specified with -fl. The flags are -i (interactive) -s (single) -a (automatically multiuser) 4.4.3 deposit This one is cool. you can write data to memory or CPU registers. I'm not entirely sure how to use this, But I plan in a section "Programming the CPU with SRM" as soon as i can learn to use the CPU directly. I'm not sure if SRM can be called and dismissed during OS runtime like OpenBoot. 4.4.4 examine Also cool. any place that can be deposited can be examined. Memory, registers, You name it. 4.4.5 fwupdate Updates the firmware. Generally new firmware is loaded from floppy, though new firmware can be loaded from other places. 4.4.6 set allows you to set environment variables simply: set [-default] Help may show valid variables. The -default switch will set something to default. 4.5 isacfg, the ISA configuratio utility. The use of isacfg is a black art of it's own. Other boards based on other busses may have different utilities if they are necessary for that bus. The arguments are thusly: isacfg [-init] [-slot ] [-dev ] [-all|-rm|-mk|-mod] [- ]... init resets the table to defaults. slots are not numbered in any specific manner, but slot 0 is the onboard hardware. one slot can contain multiple devices. -all shows everything, but on earlier boards if you try to pipe it through more your machine will reset. use the halt switch instead. note you must use -mod to change settings. Anyone who knows more about this please mail me. Pwehaps someone knows how to use this to enable the IDE on some boards like the PC164, or AXPpci33. Some devices like the mouse have protection to keep you from removing them. I seek a way to circumvent this. 4.6 sound With no arguments it plays The Yellow Rose of Texas over the speaker. has some arguments, and can be used to generate tones. (phreaky) 5 Second stage bootloaders SRM boots a second stage bootloader, which in turn loads the operating system. Your second stage loader will depend on your OS 5.1 Aboot Aboot is the linux second stage boot loader. (find out where aboot is, how to build it) Aboot is known to read ext2 filesystems and follow symlinks. relies on /etc/aboot.conf. configured with abootconf. when booting -fl i you get to ineract with aboot (much like lilo) (how does one properly update this or boot multiple kernels? Find out how to properly create a partition with the right amount of empty space ahead of it. 5.1.2 bootlx No manpage for this, but it lives in /boot on my alpha. must have SOMETHING to do with the boot process. No docs either. 5.1.3 swriteboot Writes a second stage bootloader to a disk drive beginning at sector 2. The first sector is modified (probably as an SRM failsafe bootblock) so SRM can read the loader from sector 2 on. You are supposed to leave the first 512 sectors of the disk empty, but linux fdisk works by cylinder, not sector. See 5.1, as soon as someone imparts that info it will be here. 256k should be availble for the bootloader to occupy, though according to the docs it shouldn't be much bigger than 80k. 5.1.4 e2writeboot Writes a Second stage bootloader to an ext2 filesystem. This is normally used to create boot floppies. Writes the loader called linuxboot to a contiguous range of sectors. Unconditionally overwrites any other file called linuxboot. The first sector is modified (probably as a failsafe bootblock) so SRM can find linuxboot on the filesystem. 5.2 The *BSD loader what's this called? how about a manpage and discussion on how to use/update. 5.3 the Digital UNIX loader what is this? 5.4 The VMS loader I'll be surprised if anyone knows this 6 Hardware Compatibility DEC 3000 Digital built Alpha workstation. Comes in several configurations. Based on Turbochannel. I do not recommend an opensource OS on these, because the video hardware is unsupported. You will need an H8751-A MMJ adapter to use this under an open source OS, or boot without keyboard/mouse/monitor Many of these have onboard binary status displays. good for debugging. You could also use a regular terminal or a PC.. but where's the fun in that? Known issues SRM versions HCL NIC Onboard NIC SCSI Video AXPVME Known issues SRM versions HCL NIC SCSI Video Alphabook1 Send one of these so I can write a description. I need it for.. uhhh.. testing. Yeah.. that's it.. "testing". Known issues Way too scarce. SRM versions HCL NIC SCSI Onboard SCSI Video Onboard video Aspen There are two. A baby AT EB64+ derivative, and a Server board with MANY pci slots Known issues SRM versions HCL NIC SCSI Video Multia Multia (aka the Universal Desktop Box): This is a very compact pedestal desktop system based on the 21066. It includes 2 PCMCIA sockets, 21030 (TGA) graphics, 21040 Ethernet and NCR 810 SCSI disk along with floppy, 2 serial ports and a parallel port. It has limited expansion capability (one PCI slot) due to its compact size. (There is some restriction on when you can use the PCI slot, can't remember what) (Note that 21066A-based and Pentium-based Multia's are also available). Known issues SRM versions HCL NIC SCSI Video Jensen DEC PC 150 AXP (aka Jensen): This is a very old Digital system - one of the first-generation Alpha systems. It is only mentioned here because a number of these systems seem to be available on the second- hand market. The Jensen is a floor-standing tower system which used a 150MHz 21064 (later versions used faster CPUs but I'm not sure what speeds). It used programmable logic to interface a 486 EISA I/O bridge to the CPU. Known issues SRM versions HCL NIC SCSI Video AXPpci33 The AXPpci33 (aka NoName), is based on the EB66. This design is produced by Digital's Technical OEM (TOEM) group. It uses the 21066 processor running at 166MHz or 233MHz. It is a baby-AT size, and runs from a standard PC power supply. It has 5 ISA slots and 3 PCI slots (one pair are a shared slot). There are 2 versions, with either PS/2 or AT connectors for the keyboard. This board has a provision to attatch A binary LED display. Known Issues Will not boot from IDE. Has trouble with some video options. Under debian 3.0 IDE is inaccessible. I have one of these. It is very picky about what Keyboards it will boot with. SRM versions 4.7-1860 This seems to be the last version of SRM available for this board. HCL NIC Any DEC ethernet controller, Including DE204 and DE205. SMC built 21x4x cards are recognized as well. (it is likely any 21x4x chip based card will run) SCSI Onboard NCR 53C810 IS recognized Video ATI rage proII 3d will not boot. EB64 The EB64: Obsolete design using 21064 with memory controller implemented using programmable logic. I/O provided by using programmable logic to interface a 486<->ISA bridge chip. On-board Ethernet, SuperI/O (2S, 1P, FD), Ethernet and ISA. PC-AT size. Runs from standard PC power supply. Known issues SRM versions HCL NIC SCSI Video EB64+ The EB64+: Uses 21064 or 21064A and APECs. Has ISA and PCI expansion (3 ISA, 2 PCI, one pair are on a shared slot). Supports 36-bit DRAM SIMMs. ISA bus generated by Intel SaturnI/O PCI-ISA bridge. On-board SCSI (NCR 810 on PCI) Ethernet (Digital 21040), KBD, MOUSE (PS2 style), SuperI/O (2S, 1P, FD), RTC/NVRAM. Boot ROM is EPROM. PC-AT size. Runs from standard PC power supply. Known issues SRM versions HCL NIC SCSI Video EB66 The EB66: Uses 21066 or 21066A. I/O sub-system is identical to EB64+. Baby PC-AT size. Runs from standard PC power supply. The EB66 schematic was published as a marketing poster advertising the 21066 as "the first microprocessor in the world with embedded PCI" (for trivia fans: there are actually 2 versions of this poster - Neal Crook drew the circuits and wrote the spiel for the first version, and some Americans mauled the spiel for the second version) Known issues SRM versions HCL NIC SCSI Video PC64 The AlphaPC64 (aka Cabriolet): derived from EB64+ but now baby-AT with Flash boot ROM, no on-board SCSI or Ethernet. 3 ISA slots, 4 PCI slots (one pair are on a shared slot), uses plug-in Bcache SIMMs. Requires power supply with 3.3V output. Anyone with a partnumber, or way to build this power supply give me the word. Known issues SRM versions HCL NIC SCSI Video Deskstation Anyone familiar with these? EB164 The EB164: Uses 21164 and ALCOR. Has ISA and PCI expansion (3 ISA slots, 2 64-bit PCI slots (one is shared with an ISA slot) and 2 32-bit PCI slots. Uses plus-in Bcache SIMMs. I/O sub-system provides SuperI/O (2S, 1P, FD), KBD, MOUSE (PS2 style), RTC/NVRAM. Boot ROM is Flash. PC-AT-sized motherboard. Requires power supply with 3.3V output. Known issues SRM versions HCL NIC SCSI Video PC164 The PC164 is based on the 21172 chipset and a 21164A processor. It has both 64 bit and 32 bit slots, as well as ISA; two of each slot, no shared. There is a cache size selection jumper, but no provision to connect any cache above and beyond the board's 1 meg soldered on cache package. This board uses 72 pin 36 bit simms. All simms must be the same size. This board supports the 21164A chip from 366 to 500. Onboard PCI is handled by a CMD646, PCI/ISA bridging is provided by an 82378ZB Saturn-I/O chip. Onboard hardware includes two DB-9 serial ports, two PS/2 connectors, 1 parallel, onboard IDE and Floppy controllers. This board is ATX from factor, and requires a hard-power ATX power supply. Known issues If you're having trouble booting, look at jumper J1, it must be in with four SIMMs installed, out with eight. It selects 128 or 256 bit bus width. If Someone understands this "bus width" thing, please explain it. After flashing to SRM I constantly have a corrupt isa config table. isacfg -init does NOT fix it. Under SRM the ide controller is not always seen Devices Must be on the first controller before the second controller is polled. Don't expect IDE devices to be seen if there are no devices on the first IDE channel. SRM versions 5.5-1 HCL NIC Any DEC ethernet controller, Inclusing DE204 and DE205. SMC built 21x4x cards are recognized as well. (it is likely any 21x4x chip based card will run) SCSI AHA29160 NOT recognized. Buslogic controllers NOT recognized Do not attempt to use an ISA SCSI controller. it won't work. AVA-2906 NOT recognized AHA-2940uw NOT recognized AHA-3985 NOT recognized DPT PM1564U3 (is this right? only number on the controller) NOT recognized Video PCI All-In-Wonder will not boot 5.6-3 This is the latest version of SRM available for this motherboard HCL NIC SCSI Video UP1000 Manufactured by API (Alpha Processor Inc.), codenamed Nautilus. Originally marketed as a Linux system, these are supplied sometimes with ARC by default; this is flashable, and will allow you to install FreeBSD etc (but refer to known issues). It is essentially an AMD K7 motherboard in ATX form factor that you plug a 600-700MHz Slot B EV67 into, and communicates with 64-768MB ECC SDRAM through an AMD751 northbridge. Takes EIDE drives using an ALi M5229 interface. The PCI->ISA bridge is an Ali M1533. Expansion capacity supplied with 1 AGP, 4 PCI and 2 ISA slots - none shared. Officially it requires an ATX 400W Power supply but 300W will be sufficient provided you don't load up your auxilary devices excessively. If buying ask about the CPU mounting bracket (aka goalpost) or be prepared to jury rig a bracket of your own. Much of this will also apply to UP900,1100,1500 and partially, UP2000. Known issues Not strictly speaking a clone but does NOT run Tru64 or OpenVMS. FreeBSD and NetBSD support these boards, but NetBSD 1.6.1 needs a specific non-GENERIC kernel without AGP support or will fail first (and indeed subsequent) post-install boots. The UP2000 is a Dual board and _does_ support Tru64, _if_ the onboard Adaptec AIC-7891 LVD SCSI controller is disabled (and a compatible one installed). SRM versions 5.6-8 Latest (and final) stable release 5.6-14 Beta. (though seems perfectly fine) API firmware, manuals can be found at time of writing at this link: http://www.alphalinux.org/firmware/api/ HCL NIC Intel 82557 (EtherExpress 100) is compatible. SCSI ISP1040B 32bit PCI Card recognised and bootable by SRM. Video S3 86c325 bootable PC164LX Known issues May have trouble with uw2 speed SRM versions 5.8-1 (latest version) HCL NIC SCSI AHA2940UW2 is NOT recognized AHA29160 is NOT recognized AHA39160 supposedly recognized SYM22910 IS recognized, but may not run at uw2 speed. Video PC164SX You don't want this board. It uses the 21164PC chip, which is dumbed down somehow. Known issues It sucks. SRM versions HCL NIC SCSI Video PC164RX Known issues SRM versions HCL NIC SCSI Video Multiprocessor boards 7. SRM programming reference Does anyone actually know how to do this? Has anyone used deposit or examine To test a board device? 8. Serial connections Here I am going to explain how to connect to Alpha systems via serial when you are having problems. Also, debug codes will be discussed here 8.1 MMJ This is the Digital Modified Modular Jack. It looks almost like a phone jack, But the retainer lever is on the side, not centered. If you shave the lever off a 6 conductor phone cable, and jam it into the slot with a toothpick, this will work. Some of the motherboards have this connection as a "debug" connector. Many Digital terminals use this as their default way of connecting to the terminal server, but in this case we want to connect one (or a substitute) to your motherboard because the machine is not booting. To debug The motherboard the only hardware that actually has to be functional is the cache, the chipset, and the processor. When all else fails this is how you must fix your system. 8.2 MMJ adaptors H8751-A H8751-C H8751-F 8.3 VT series terminals and DEC compatible terminals with MMJ If you have a Digital video terminal, you may wish to look at http://vt100.net VT320 VT340 VT420 Planar flatscreen terminal These are cool. you want one of these. It's a VT320 Compatible terminal (even takes the same keyboard, as well as PC type) All in a case with a flat monochrome LCD panel. 8.4 pin type connectors The AT type motherboards will often have pin type connectors to take PC style serial headers. The problem with this is the pins on the motherboard are analogous to the same number pin on a 9 pin serial connector. Unfortunately The PC type header staggers the pins. You'll need to cut, strip, and solder the wires on the PC type header to make a working header for your Alpha. Parallel connector is the same way. You should have a volt meter, or atleast some way to continuity test wires to check your work, and keep the wires in proper order. I had to do this on my AXPpci33 so I could connect a mouse. 8.5 serial wiring 8.5.1 Serial types DCE vs. DTE 8.5.2 serial pinouts 8.5.2.1 MMJ pinout 1 2 3 4 5 6 |--__-__-__-__-__-__--| | || || || || || || | | || || || || || || | | | | 0 0 0 0 0 0 | | _____________| | | |________| Cable 8.5.2.2 RJ45 serial adapter pinout 1 2 3 4 5 6 7 8 ---------------------- | | | | | | |_____ _____| |_ _| |____| receptacle 9. DEC expansion card part reference 9.1 SCSI 9.1.1 KZPSA 9.1.2 KGPSA 9.1.3 KZTSA 9.1.4 KZPCM 9.1.5 KZPDA 9.1.6 KZPBA 9.1.7 KZPAA 9.1.8 CCMPA 9.1.9 DWLPA 9.1.10 DWLPB 9.2 Network 9.2.1 DE204 9.2.2 DE205 9.2.3 DE435 9.2.4 DE450 9.2.5 DE500 9.3 Video 9.3.1 PBXGA 9.4 Other