Penguin
Diff: HowToMILOHOWTO
EditPageHistoryDiffInfoLikePages

Differences between current version and predecessor to the previous major change of HowToMILOHOWTO.

Other diffs: Previous Revision, Previous Author, or view the Annotated Edit History

Newer page: version 3 Last edited on Thursday, October 21, 2004 5:29:11 pm by AristotlePagaltzis
Older page: version 2 Last edited on Friday, June 7, 2002 1:07:02 am by perry Revert
@@ -1,1754 +1 @@
-Alpha Miniloader Howto  
-!!!Alpha Miniloader Howto  
-!Rich Payne  
-  
-v0.90, 12 November 2000  
-  
-  
-  
-  
-  
-  
-  
-This document describes the Miniloader, a program for Alpha based systems that can be used to initialize the machine and load Linux. The Alpha Linux Miniloader (to give it it's full  
-name) is also known as MILO.  
-  
-  
-  
-  
-  
-----; __Table of Contents__; 1. Introduction: ; 1.1. Copyright; 1.2. New Versions of this Document; 2. What is MILO?; 3. Pre-Built Standard MILO Images.; 4. How To Build MILO; 5. How To Load MILO: ; 5.1. Loading MILO from the Windows NT ARC firmware; 5.2. Loading MILO from the Evaluation Board Debug Monitor; 5.3. Loading MILO from a Failsafe Boot Block Floppy; 5.4. Loading MILO from Flash; 5.5. Loading MILO from the SRM Console; 5.6. System Specific Information; 6. MILO's User Interface: ; 6.1. The ''help'' Command; 6.2. Booting Linux; 6.3. Rebooting Linux; 6.4. The ''bootopt'' command; 7. Running the Flash Management Utility: ; 7.1. The ''help'' command; 7.2. The ''list'' command; 7.3. The ''program'' command; 7.4. The ''environment'' command; 7.5. The ''bootopt'' command; 7.6. The ''quit'' command; 8. Restrictions.; 9. Problem Solving.; 10. Acknowledgements.; 11. Changelog  
-!!!1. Introduction  
-  
-This document describes the Miniloader for Linux on Alpha AXP (MILO).  
-This firmware is used to initialize Alpha AXP based systems, load and  
-start Linux and, finally, provide PALcode for Linux. Please note that  
-the prefered way of booting Linux is via SRM console and MILO should  
-only be used if either there is no SRM console for your hardware (XL series)  
-or your current hardware isn't supported by SRM.  
-  
-----  
-!!1.1. Copyright  
-  
-The Alpha Miniloader (MILO) HOWTO is copyright (C) 1995, 1996 David A Rusling, 2000 Richard D. Payne.  
-  
-  
-  
-''Copyright.'' Like all Linux HOWTO documents, it may be reproduced and distributed  
-in whole or in part, in any medium, physical or electronic, so long as  
-this copyright notice is retained on all copies.  
-Commercial redistribution is allowed and encouraged; however the author  
-would ''like'' to be notified of such distributions.  
-You may translate this HOWTO into any language whatsover provided that  
-you leave this copyright statement and disclaimer intact, and that you append  
-a notice stating who translated the document.  
-  
-  
-  
-''Disclaimer.'' While I have tried to include the most correct and  
-up to date information available to me, I cannot guarantee that usage  
-of information in this document does not result in loss of data or  
-equipment. I provide NO WARRENTY about the information in the HOWTO and  
-I cannot be made liable for any consequences resulting from using the  
-information in this HOWTO.  
-  
-----  
-!!1.2. New Versions of this Document  
-  
- The latest version of this document can be found in  
-www.alphalinux.org.  
-  
-----  
-!!!2. What is MILO?  
-  
-On Intel based PC systems, the BIOS firmware  
-sets up the system and then loads the image to be run from the boot  
-block of a DOS file system.  
-This is more or less what MILO does on an Alpha based system,  
-however there are several interesting differences between BIOS firmware and  
-MILO, not least of which is that MILO includes and  
-uses standard Linux device drivers unmodified.  
-MILO is firmware, unlike LILO, which relies on the BIOS firmware to  
-get itself loaded.  
-The main functional parts of MILO are:  
-  
-  
-  
-  
-  
-  
-  
-  
-#  
-  
- PALcode,  
-  
-  
-#  
-#  
-  
- Memory set up code (builds page tables and turns on virtual addressing),  
-  
-  
-#  
-#  
-  
- Video code (BIOS emulation code and TGA (21030)),  
-  
-  
-#  
-#  
-  
- Linux kernel code. This includes real Linux  
-kernel code (for example, the interrupt handling) and  
-ersatz or mock Linux kernel,  
-  
-  
-#  
-#  
-  
- Linux block device drivers (for example, the floppy driver),  
-  
-  
-#  
-#  
-  
- File system support (ext2, MS-DOS and ISO9660),  
-  
-  
-#  
-#  
-  
- User inteface code (MILO),  
-  
-  
-#  
-#  
-  
- Kernel interface code (sets up the HWRPB and memory map for linux),  
-  
-  
-#  
-#  
-  
- NVRAM code for managing environment variables.  
-  
-  
-#  
-  
-  
-  
-The following paragraphs describe these functional parts in more detail.  
-  
-  
-  
-PALcode can be thought of as a tiny software layer that tailors the  
-chip to a particular operating system.  
-It runs in a special mode (PALmode) which has certain restrictions but it  
-uses the standard Alpha instruction set with just five extra instructions.  
-In this way, the Alpha chip can run such diverse operating systems as  
-Windows NT, OpenVMS, Digital Unix and, of course, Linux.  
-The PALcode that MILO uses (and therefore Linux itself)  
-is, like the rest of MILO, freeware.  
-It is derived from Digital's Evaluation Board software example Digital Unix  
-PALcode..  
-The differences between the different PALcodes are because of  
-differences in address mapping and interrupt handling that  
-exist between the Alpha chips (21066 based systems have  
-a different I/O map to 21064+2107x systems) and different  
-Alpha based systems.  
-  
-  
-  
-For MILO to operate properly it needs to know what memory  
-is available, where Linux will eventually be running from and it must be  
-able to allocate temporary memory for the Linux device drivers.  
-The code maintains a memory map that has entries for permanent and temporary  
-allocated pages.  
-As it boots, MILO uncompresses itself into the correct place in  
-physical memory. When it passes control to the Linux kernel,  
-it reserves memory for the compressed version of itself, the PALcode  
-(which the kernel needs) and some data structures.  
-This leaves most of the memory in the system for Linux itself.  
-  
-  
-  
-The final act of the memory code is to set up and turn on virtual addressing  
-so that the data structures that Linux expects to see are at the correct place  
-in virtual memory.  
-  
-  
-  
-MILO contains video code that initialises and uses the video device  
-for the system.  
-It will detect and use a VGA device if there is one, otherwise  
-it will try to use a TGA (21030) video device.  
-Failing that, it will assume that there is no graphics device.  
-The BIOS emulation that the standard, pre-built, images include is  
-Digital's own BIOS emulation which supports most, if not all, of  
-the standard graphics devices available.  
-  
-  
-  
-Linux device drivers live within the kernel and expect  
-certain services from the kernel. Some of these services are provided directly  
-by Linux kernel code, for example the interrupt handling and some is provided  
-by kernel look-alike routines.  
-  
-  
-  
-MILO's most powerful  
-feature is that you can embed unaltered Linux device drivers into it.  
-This gives it the potential to support every device that Linux does.  
-MILO includes all of the block devices that are configured into the  
-Linux kernel that it is built against as well as a lot of the block device  
-code (for example, ll_rw_blk()).  
-  
-  
-  
-MILO loads the Linux kernel from real file systems rather  
-than from boot blocks and other strange places.  
-It understands MSDOS, EXT2 and ISO9660 filesystems.  
-Gzip'd files are supported and these are recommended, particularly if  
-you are loading from floppy which is rather slow.  
-MILO recognises these by their ''.gz'' suffix.  
-  
-  
-  
-Built into MILO is a simple keyboard driver which, together with  
-an equally simple video driver allows it to have a simple user interface.  
-That interface allows you to list file systems on configured devices, boot  
-Linux or run flash update utilities and set environment variables that  
-control the system's booting.  
-Like LILO, you can pass arguments to the Kernel.  
-  
-  
-  
-MILO must tell the Linux kernel what sort of system this is,  
-how much memory there is and which of that memory is free.  
-It does this using the HWRPB (Hardware Restart Parameter Block) data  
-structure and associated memory cluster descriptions.  
-These are placed at the appropriate place in virtual memory just before  
-control is passed to the Linux kernel.  
-  
-----  
-!!!3. Pre-Built Standard MILO Images.  
-  
-If you are planning to run Linux on a standard Alpha based system, then  
-there are pre-built "standard" MILO images that you might use.  
-The original images (along with the sources and other interesting stuff)  
-can be found in  
-gatekeeper.dec.com/pub/Digital/Linux-Alpha/Miniloader.  
-  
-  
-  
-The images subdirectory contains a directory per standard system  
-(eg AlphaPC64) with MILO images having the following naming convention:  
-  
-  
-  
-  
-  
-  
-  
-  
-#  
-  
- MILO - Miniloader executable image, this image can be loaded in a  
-variety of ways,  
-  
-  
-#  
-#  
-  
- fmu.gz - Flash management utility,  
-  
-  
-#  
-#  
-  
- MILO.dd - Boot block floppy disk image.  
-These should be written using rawrite.exe or dd on Linux.  
-  
-  
-#  
-  
-  
-  
-The test-images, like the images subdirectory  
-contains a directory per standard system. These images are somewhat  
-experimental but tend to contain all the latest features.  
-  
-  
-  
-Digital/Compaq is no longer doing any work on MILO itself. However several people have picked up  
-where Compaq left off.  
-  
-  
-  
-  
-  
-  
-*  
-  
- Stefan Reinauer has done the work to get MILO to build against the 2.2 series of kernels. His  
-work is available from http://www.freiburg.linux.de/~stepan/Milo and is mirrored by !AlphaLinux.Org at  
- ftp://ftp.alphalinux.org/pub/Linux-Alpha/Miniloader/v2.2.  
-  
-  
-  
-*  
-*  
-  
- Nikita Schmidt has updated the existing MILO source to provide support for the changes in the ext2  
-filesystem, as well as adding in many other bug fixes and patches. His version are available from  
-ftp://genie.ucd.ie/pub/alpha/milo.  
-  
-  
-  
-*----  
-!!!4. How To Build MILO  
-  
- You build MILO  
-seperately from the Kernel. As MILO requires parts of the kernel  
-to function (for example interrupt handling) you must first  
-configure and build the  
-kernel that matches with MILO that you want to build. Mostly this  
-means building the kernel with the same version number.  
-So, MILO-2..25.tar.gz will build against linux-2..25.tar.gz.  
-MILO may build against a higher version of the kernel, but there  
-again it may not.  
-Also, now that ELF shared libraries are fully supported, there are two  
-versions of the MILO sources.  
-To build under an ELF system you must first unpack the standard MILO sources  
-and then patch those sources with the same version numbered ELF patch.  
-In the remainder of this discussion,  
-I assume that your kernel sources and object files are stored in the  
-subtree at /usr/src/linux and that the linux kernel has been fully  
-built with the command make boot  
-  
-  
-  
-To build MILO,  
-change your working directory to the MILO source directory and  
-invoke make with:  
-  
-$ make KSRC=/usr/src/linux config  
-  
-  
-  
-Just like the Linux kernel, you will be asked a series of questions  
-  
-  
-  
-  
- Echo output to the serial port (MINI_SERIAL_ECHO) [[y ]  
-  
-  
-  
- It's a good idea to echo kernel printk to /dev/ttyS0 if you can.  
-If you can (and want to), then type "y", otherwise "n".  
-All of the standard, pre-built, MILO images include serial port I/O using COM1.  
-  
-  
-  
-  
- Use Digital's BIOS emulation code (not free) (MINI_DIGITAL_BIOS_EMU) [[y]  
-  
-  
-  
- This code is included as a library which is freely distributable  
-so long as it is used on an Alpha based system. The sources are  
-not available. If you answer n then the freeware  
-alternative BIOS emulation will be built. It's sources are included  
-with MILO.  
-Note that you cannot right now build choose Digital's BIOS emulation code in  
-an ELF system (the library is not yet ready) and so you must answer no to this  
-question.  
-  
-  
-  
-  
- Build PALcode from sources (Warning this is dangerous) (MINI_BUILD_PALCODE_FROM_SOURCES) [[n]   
-  
-  
-  
-You should only do this if you have changed the PALcode sources, otherwise use the standard,  
-pre-built PALcode included with MILO.  
-  
-  
-  
-You are now all set to build the MILO image itself:  
-  
-$ make KSRC=/usr/src/linux  
-  
-  
-  
-When the build has successfully completed, the MILO image is in the file called milo.  
-There are a lot of images called milo.*, these should be ignored.  
-  
-----  
-!!!5. How To Load MILO  
-  
-The most commonly supported method of loading MILO is from the Windows NT  
-ARC firmware as most shipping systems support this. However, there are  
-a wide variety of loading MILO. It may be loaded from:  
-  
-  
-  
-  
-  
-*  
-  
- a failsafe boot block floppy,  
-  
-  
-*  
-*  
-  
- the Windows NT ARC firmware,  
-  
-  
-*  
-*  
-  
- Digital's SRM console,  
-  
-  
-*  
-*  
-  
- an Alpha Evaluation Board Debug Monitor,  
-  
-  
-*  
-*  
-  
- flash/ROM.  
-  
-  
-*  
-  
-----  
-!!5.1. Loading MILO from the Windows NT ARC firmware  
-  
-Most, if not all, Alpha AXP based systems include the Windows NT  
-ARC firmware and this is the prefered method of booting MILO and thus  
-Linux. Once the Windows NT firmware is running and you have the correct  
-MILO image for your system, this method is completely generic.  
-  
-  
-  
-The Windows NT ARC firmware is an environment in which programs can run  
-and make callbacks into the firmware to perform actions. The Windows NT  
-OSLoader is a program that does exactly this. Linload.exe is a  
-much simpler program which does just enough to load and execute MILO.  
-It loads the appropriate image  
-file into memory at 0x00000000 and then makes a swap-PAL PALcall to  
-it.  
-MILO, like Linux, uses a different PALcode to Windows NT which is why the  
-swap has to happen.  
-MILO relocates itself to 0x200000 and continues on through the  
-PALcode reset entry point as before.  
-  
-  
-  
-Before you add a Linux boot option,  
-you will need to copy linload.exe and the appropriate MILO that you  
-wish to load to someplace that the Windows NT ARC firmware can read from.  
-In the following example, I assume that you are booting from a DOS format floppy  
-disk:  
-  
-  
-  
-  
-  
-  
-  
-  
-#  
-  
- At the boot menu, select "Supplementary menu..."  
-  
-  
-#  
-#  
-  
- At the "Supplementary menu", select "Set up the system..."  
-  
-  
-#  
-#  
-  
- At the "Setup menu", select "Manage boot selection menu..."  
-  
-  
-#  
-#  
-  
- In the "Boot selections menu", choose "Add a boot selection"  
-  
-  
-#  
-#  
-  
- Choose "Floppy Disk "  
-  
-  
-#  
-#  
-  
- Enter "linload.exe" as the osloader directory and name  
-  
-  
-#  
-#  
-  
- Say "yes" to the operating system being on the same partition  
-as the osloader  
-  
-  
-#  
-#  
-  
- Enter "\" as the operating system root directory  
-  
-  
-#  
-#  
-  
- I usually enter "Linux" as the name for this boot selection  
-  
-  
-#  
-#  
-  
- Say "No" you do not want to initialise the debugger at boot time  
-  
-  
-#  
-#  
-  
- You should now be back in the "Boot selections menu", choose the  
-"Change a boot selection option" and pick the selection you just created  
-as the one to edit  
-  
-  
-#  
-#  
-  
- Use the down arrow to get "OSLOADFILENAME" up and then type in the  
-name of the MILO image that you wish to use, for example "noname.arc"  
-followed by return.  
-  
-  
-#  
-#  
-  
- Press ESC to get back to the "Boot Selections menu"  
-  
-  
-#  
-#  
-  
- Choose "Setup Menu" (or hit ESC again) and choose "Supplementary menu,  
-and save changes" option  
-  
-  
-#  
-#  
-  
- ESC will get you back to the "Boot menu" and you can attempt to boot  
-MILO. If you do not want Linux as the first boot option, then you can  
-alter the order of the boot options in the "Boot selections menu".  
-  
-  
-#  
-  
-  
-  
-At the end of all this, you should have a boot selection that looks something  
-like:  
-  
-  
-  
-  
-LOADIDENTIFIER=Linux  
-SYSTEMPARTITION=multi()disk()fdisk()  
-OSLOADER=multi()disk()fdisk()\linload.exe  
-OSLOADPARTITION=multi()disk()fdisk()  
-OSLOADFILENAME=\noname.arc  
-OSLOADOPTIONS=  
-  
-  
-  
-You can now boot MILO (and then Linux). You can load linload.exe  
-and MILO directly from a file system that Windows NT understands such as  
-NTFS or DOS on a hard disk.  
-  
-  
-  
-The contents OSLOADOPTIONS are passed to MILO which interprets  
-it as a command. So, in order to  
-boot Linux directly from Windows NT without pausing in MILO, you could  
-pass the following in OSLOADOPTIONS:  
-  
-  
-  
-  
-boot sda2:vmlinux.gz root=/dev/sda2  
-  
-  
-  
-See Section 6 for more  
-information on the commands available.  
-  
-  
-  
-Another (rather sneaky) way of loading of loading MILO via the WNT ARC firmware  
-is to put MILO onto an MS-DOS floppy and call it fwupdate.exe and then choose  
-the "Upgrade Firmware" option.  
-  
-----  
-!!5.2. Loading MILO from the Evaluation Board Debug Monitor  
-  
-Evaluation boards (and often designs cloned from them) include  
-support for the Alpha Evaluation Board Debug Monitor. Consult  
-your system document before considering this method of booting  
-MILO. The following systems are ''known'' to include Debug Monitor  
-support:  
-  
-  
-  
-  
-  
-*  
-  
-AlphaPC64 (Section Section 5.6.2)  
-  
-  
-*  
-*  
-  
-EB64+ (Section Section 5.6.4)  
-  
-  
-*  
-*  
-  
-EB66+ (Section Section 5.6.3)  
-  
-  
-*  
-*  
-  
-EB164 (Section Section 5.6.6)  
-  
-  
-*  
-*  
-  
-PC164 (Section Section 5.6.7)  
-  
-  
-*  
-  
-  
-  
-Before you consider this method, you should note that the early  
-versions of the Evaluation Board Debug Monitor did not include video  
-or keyboard drivers and so you must be prepared to connect another  
-system via the serial port so that you can use the Debug Monitor.  
-Its interface is very simple and typing help shows a whole heap  
-of commands. The ones that are most interesting include  
-the word boot or load in them.  
-  
-  
-  
-The Evaluation Board Debug Monitor can load an image either via the network  
-(netboot) or via a floppy (flboot). In either case, set the boot  
-address to 0x200000 (b bootadr 200000) before booting the  
-image.  
-  
-  
-  
-If the image is on floppy (and note that only DOS formatted floppies  
-are supported), then you will need to type the following command:  
-  
-  
-  
-  
- AlphaPC64b flboot `MILO-image-nameb  
-  
-----  
-!!5.3. Loading MILO from a Failsafe Boot Block Floppy  
-  
-Only the AxpPCI33 is ''known'' to include failsafe boot block  
-floppy support (Section ` id="noname-section" name="Noname"b).  
-  
-  
-  
-If you do not have a standard pre-built MILO .dd image,  
-then you may need to  
-build an SRM boot block floppy.  
-Once you have built MILO, you need to do the following on Digital Unix box:  
-  
-  
-  
-  
- fddisk -fmt /dev/rfd0a  
-cat mboot bootm b /dev/rfd0a  
-disklabel -rw rfd0a 'rx23' mboot bootm  
-  
-  
-  
-Or on a Linux box:  
-  
-  
-  
-  
- cat mboot bootm b /dev/fd0   
-  
-  
-  
- If you have a standard MILO image available (say MILO.dd)  
-then you would build a boot block floppy using the following command:  
-  
-  
-  
-  
- dd if=MILO.dd of=/dev/fd0   
-  
-----  
-!!5.4. Loading MILO from Flash  
-  
-There are a number of systems where MILO can be blown into flash  
-and booted directly (instead of via the Windows NT ARC firmware):  
-  
-  
-  
-  
-  
-*  
-  
-AlphaPC64 (Section Section 5.6.2)  
-  
-  
-*  
-*  
-  
-Noname (Section Section 5.6.1)  
-  
-  
-*  
-*  
-  
-EB66+ (Section Section 5.6.3)  
-  
-  
-*  
-*  
-  
-EB164 (Section Section 5.6.6)  
-  
-  
-*  
-*  
-  
-PC164 (Section Section 5.6.7)  
-  
-  
-*  
-  
-----  
-!!5.5. Loading MILO from the SRM Console  
-  
-The SRM (short for System Reference Manual) Console knows nothing about filesystems or disk-partitions,  
-it simply expects that the secondary bootstrap loader occupies a consecutive range of  
-physical disk sectors starting from a given offset. The information describing  
-the secondary bootstrap loader (its size and offset) is given in the first 512  
-byte block. To load MILO via the SRM you must generate that structure on a  
-device which the SRM can access (such as a floppy disk).  
-This is what mboot and bootm, mboot is the first block (or  
-boot description) and mboot is the MILO image rounded up to a  
-512 byte boundary.  
-  
-  
-  
- To load MILO from a boot block device, either build mboot  
-and bootm and push them onto the boot device  
-using the following command:  
-  
-  
-  
-  
- $ cat mboot bootm b /dev/fd0  
-  
-  
-  
-Or, grab the appropriate MILO.dd from a web site and write it onto the  
-boot device using either RAWRITE.EXE or dd.  
-  
-  
-  
- Once you have done that you can boot the SRM console and use one of its  
-many commands to boot MILO. For example, to boot MILO from a boot block floppy  
-you would use the following command:  
-  
-  
-  
-  
- bbbboot dva0  
-(boot dva0....1 -flags )  
-block 0 of dva0....1 is a valid boot block  
-reading 621 blocks from dva0....1  
-bootstrap code read in  
-base = 112000, image_start = , image_bytes = 4da00  
-initializing HWRPB at 2000  
-initializing page table at 104000  
-initializing machine state  
-setting affinity to the primary CPU  
-jumping to bootstrap code  
-MILO Stub: V1.1  
-Unzipping MILO into position  
-Allocating memory for unzip  
-####...  
-  
-  
-  
-The following systems are ''known'' to have SRM Console support:  
-  
-  
-  
-  
-  
-*  
-  
-Noname (Section Section 5.6.1)  
-  
-  
-*  
-*  
-  
-AlphaPC64 (Section Section 5.6.2)  
-  
-  
-*  
-*  
-  
-EB164 (Section Section 5.6.6)  
-  
-  
-*  
-*  
-  
-PC164 (Section Section 5.6.7)  
-  
-  
-*  
-  
-----  
-!!5.6. System Specific Information  
-!5.6.1. AxpPCI33 (Noname)  
-  
-The Noname board can load MILO  
-from the Windows NT ARC firmware  
-(Section Section 5.1),  
-from the SRM Console  
-(Section Section 5.5).  
-and from a failsafe boot block floppy  
-(Section Section 5.3).  
-A flash management utility, runnable from MILO is available so that  
-once MILO is running, it can be blown into flash  
-(Section Section 7).  
-However, be warned  
-that once you have done this you will lose the previous image held there  
-as there is only room for one image.  
-  
-  
-  
-The way that Noname boots is controlled  
-by a set of jumpers on the board, J29 and J28. These look like:  
-  
- 4  
-J29 2 x x x 6  
-1 x x x 5  
-J28 2 x x x 6  
-1 x x x 5  
-3  
-  
-  
-  
-The two options that we're interested in are J28, pins 1-3 which  
-boots the console/loader from flash and J29, pins 1-3 which boots the  
-console/loader from a boot block floppy. The second option is the one  
-that you need to first boot MILO on the Noname board.  
-  
-  
-  
-Once you've selected the boot from floppy option via the jumpers,  
-put the SRM boot block floppy containing MILO into the  
-floppy and reboot. In a few seconds (after the floppy light goes out)  
-you should see the screen blank to white and MILO telling  
-you what's going on.  
-  
-  
-  
-If you are really interested in technical stuff, the Noname loads  
-images off of the floppy into physical address 0x104000 and images  
-from flash into 0x100000. For this reason, MILO is built  
-with it's PALcode starting at 0x200000. When it is first loaded, it  
-moves itself to the correct location (see relocate.S).  
-  
-----  
-!5.6.2. AlphaPC64 (Cabriolet)  
-  
-The AlphaPC64 includes the Windows NT ARC firmware  
-(Section Section 5.1),  
-the SRM Console (Section Section 5.5)  
-and the Evaluation Debug Monitor  
-(Section Section 5.2).  
-These images are in flash and there is room to add MILO so that  
-you can boot MILO directly from flash.  
-A flash management utility, runnable from MILO is available so that  
-once MILO is running, it can be blown into flash  
-(Section Section 7).  
-This system supports MILO environment variables.  
-  
-  
-  
-You select between the boot options (and MILO when it is  
-been put into flash) using a combination of jumpers and a boot option which  
-is saved in the NVRAM of the TOY clock.  
-  
-  
-  
-The jumper is J2, SP bits 6 and 7 have the following meanings:  
-  
-  
-  
-  
-  
-*  
-  
-SP bit 6 should always be out. If this jumper is set then the  
-SROM mini-debugger gets booted,  
-  
-  
-*  
-*  
-  
-SP bit 7 in is boot image selected by the boot option byte in  
-the TOY clock,  
-  
-  
-*  
-*  
-  
-SP bit 7 out is boot first image in flash.  
-  
-  
-*  
-  
-  
-  
-So, with bit 7 out, the Debug Monitor will be booted as it is always  
-the first image in flash. With bit 7 in, the image selected by  
-the boot option in the TOY clock will be selected.  
-The Debug Monitor, the Windows NT ARC firmware and MILO all support setting  
-this boot option byte but you must be very careful using it.  
-In particular, you cannot set the boot option so that next time the system  
-boots MILO when you are running the Windows NT ARC firmware, it only  
-allows you to set Debug Monitor or Windows NT ARC as boot options.  
-  
-  
-  
- To get MILO into flash via the Evaluation Board Debug Monitor,  
-you will need a flashable image.  
-The build proceedures make MILO.rom,  
-but you can also make a rom image using the makerom tool in the  
-Debug Monitor software that comes with the board:  
-  
-  
-  
- b makerom -v -i7 -l200000 MILO -o mini.flash  
-  
-  
-  
- (type makerom to find out what the arguments mean, but 7 is a  
-flash image id used by the srom and -l200000 gives the load address  
-for the image as 0x200000).  
-  
-  
-  
-Load that image into memory (via the Debug Monitor commands flload,  
-netload, and so on) at 0x200000 and then blow the image into flash:  
-  
-  
-  
-  
- AlphaPC64b flash 200000 8  
-  
-  
-  
- (200000 is where the image to be blown is in memory and 8 is the segment  
-number where you put the image. There are 16 1024*64 byte segments in the  
-flash and the Debug Monitor is at seg 0 and the Windows NT ARC firmware is at seg 4).  
-  
-  
-  
- Set up the image that the srom will boot by writing the number of  
-the image into the TOY clock.  
-  
-  
-  
-  
- AlphaPC64b bootopt 131  
-  
-  
-  
-(131 means boot the 3rd image, 129 = 1st, 130 = 2nd and so on).  
-  
-  
-  
- Power off, put jumper 7 on and power on and you should see the  
-MILO burst into life. If you don't then take jumper 7 back off  
-and reboot the Debug Monitor.  
-  
-----  
-!5.6.3. EB66+  
-  
-The EB66+, like all of the Alpha Evaluation Boards built by Digital  
-contains the Evaluation Board Debug Monitor and so this is available  
-to load MILO  
-(Section Section 5.2).  
-Quite often (although not always) boards whose design is derived from  
-these include the Debug Monitor also.  
-Usually, these boards include the Windows NT ARC firmware  
-(Section Section 5.1).  
-A flash management utility, runnable from MILO is available so that  
-once MILO is running, it can be blown into flash  
-(Section Section 7).  
-This system supports MILO environment variables.  
-  
-  
-  
-These systems have several boot images in flash controlled by jumpers.  
-The two jumper banks are J18 and J16 and are located at the bottom  
-of the board in the middle (if the Alpha chip is at the top).  
-You select between the boot options (and MILO when it is  
-been put into flash) using a combination of jumpers and a boot option which  
-is saved in the NVRAM of the TOY clock.  
-  
-  
-  
-Jumper 7-8 of J18 in means boot the image described by the  
-boot option. Jumper 7-8 of J18 out means boot the Evaluation Board  
-Debug Monitor.  
-  
-  
-  
-Blowing an image into flash via the Evaluation Board Debug Monitor  
-is exactly the same proceedure as  
-for the AlphaPC64 (Section Section 5.6.2).  
-  
-----  
-!5.6.4. EB64+/Aspen Alpine  
-  
-This system is quite like the AlphaPC64 except that it does not  
-contain flash which MILO can be loaded from.  
-The EB64+ has two ROMs, one of which contains  
-the Windows NT ARC firmware  
-(Section Section 5.1).  
-and the other contains the Evaluation Board Debug Monitor  
-(Section Section 5.2).  
-  
-  
-  
-The Aspen Alpine is a little different in that it only has one  
-ROM; this contains the Windows NT ARC firmware.  
-  
-----  
-!5.6.5. Universal Desktop Box (Multia)  
-  
-This is a very compact pre-packaged 21066 based system that  
-includes a TGA (21030) graphics device. Although you can ''just'' fit  
-a half height PCI graphics card in the box you are better off waiting  
-for full TGA support in XFree86. It includes the Windows NT ARC  
-firmware and so booting from that is the prefered method  
-(Section Section 5.1).  
-  
-----  
-!5.6.6. EB164  
-  
-The EB164, like all of the Alpha Evaluation Boards built by Digital  
-contains the Evaluation Board Debug Monitor and so this is available  
-to load MILO  
-(Section Section 5.2).  
-Quite often (although not always) boards whose design is derived from  
-these include the Debug Monitor also.  
-Usually, these boards include the Windows NT ARC firmware  
-(Section Section 5.1).  
-The SRM console is also available  
-(Section Section 5.5).  
-A flash management utility, runnable from MILO is available so that  
-once MILO is running, it can be blown into flash  
-(Section Section 7).  
-This system supports MILO environment variables.  
-  
-  
-  
-These systems have several boot images in flash controlled by jumpers.  
-The two jumper bank is J1 and is located at the bottom  
-of the board on the left (if the Alpha chip is at the top).  
-You select between the boot options (and MILO when it is  
-been put into flash) using a combination of jumpers and a boot option which  
-is saved in the NVRAM of the TOY clock.  
-  
-  
-  
-Jumper SP-11 of J1 in means boot the image described by the  
-boot option. Jumper SP-11 of J1 out means boot the Evaluation Board  
-Debug Monitor.  
-  
-  
-  
-Blowing an image into flash via the Evaluation Board Debug  
-Monitor is exactly the same proceedure as  
-for the AlphaPC64 (Section Section 5.6.2).  
-  
-----  
-!5.6.7. PC164  
-  
-The PC164, like all of the Alpha Evaluation Boards built by Digital  
-contains the Evaluation Board Debug Monitor and so this is available  
-to load MILO  
-(Section Section 5.2).  
-Quite often (although not always) boards whose design is derived from  
-these include the Debug Monitor also.  
-Usually, these boards include the Windows NT ARC firmware  
-(Section Section 5.1).  
-The SRM console is also available  
-(Section Section 5.5).  
-A flash management utility, runnable from MILO is available so that  
-once MILO is running, it can be blown into flash  
-(Section Section 7).  
-This system supports MILO environment variables.  
-  
-  
-  
-These systems have several boot images in flash controlled by jumpers.  
-The main jumper block, J30, contains the system configuration jumpers and  
-jumper CF6 in means that the system will boot the Debug Monitor, the default  
-is out.  
-  
-  
-  
-Blowing an image into flash via the Evaluation Board Debug  
-Monitor is exactly the same proceedure as  
-for the AlphaPC64 (Section Section 5.6.2).  
-  
-----  
-!5.6.8. XL266  
-  
-The XL266 is one of a family of systems that are known as Avanti.  
-It has a riser card containing the Alpha chip and cache which plugs into  
-the main board at right angles. This board can replace the equivalent  
-Pentium board.  
-  
-  
-  
-Some of these systems ship with the SRM console but others, notably  
-the XL266 ship with only the Windows NT ARC firmware  
-(Section Section 5.1).  
-  
-  
-  
-Here is my list of compatible systems:  
-  
-  
-  
-  
-  
-*  
-  
-!AlphaStation 400 (Avanti),  
-  
-  
-*  
-*  
-  
-!AlphaStation 250,  
-  
-  
-*  
-*  
-  
-!AlphaStation 200 (Mustang),  
-  
-  
-*  
-*  
-  
-XL. There are two flavours, XL266 and XL233 with the only  
-difference being in processor speed and cache size.  
-  
-  
-*  
-  
-  
-  
-''Note'' The system that I use to develop and test MILO is  
-an XL266 and so this is the only one that I can guarentee will work.  
-However, technically, all of the above systems are equivalent; they  
-have the same support chipsets and the same interrupt handling  
-mechanisms.  
-  
-----  
-!5.6.9. Platform2000  
-  
-This is a 233Mhz 21066 based system.  
-  
-----  
-!!!6. MILO's User Interface  
-  
-Once you have correctly installed/loaded/run MILO you will see  
-the MILO (for MIniLOader) prompt displayed on your screen. There is a very  
-simple interface that you must use in order to boot a particular Linux  
-kernel image. Typing "help" is a good idea as it gives a useful summary  
-of the commands.  
-  
-----  
-!!6.1. The ''help'' Command  
-  
-Probably the most useful command that MILO has:  
-  
-  
-  
-  
-MILOb help  
-MILO command summary:  
-ls [[-t fs] [[dev:[[dir]]  
-- List files in directory on device  
-boot [[-t fs] [[dev:file] [[boot string]  
-- Boot Linux from the specified device and file  
-run [[-t fs] dev:file  
-- Run the standalone program dev:file  
-show - Display all known devices and file systems  
-set VAR VALUE - Set the variable VAR to the specified VALUE  
-unset VAR - Delete the specified variable  
-reset - Delete all variables  
-print - Display current variable settings  
-help [[var] - Print this help text  
-Devices are specified as: fd0, hda1, hda2, sda1...  
-Use the '-t filesystem-name' option if you want to use  
-anything but the default filesystem ('ext2').  
-Use the 'show' command to show known devices and filesystems.  
-Type 'help var' for a list of variables.  
-  
-  
-  
-''Note'' that the bootopt command only appears on AlphaPC64  
-(and similar) systems.  
-Refer to the board's dcoumentation to find out just what it means.  
-  
-  
-  
-''Devices.'' Until you  
-use a command that needs to make use of a device, no device  
-inititalisation will take place. The first show,  
-ls, boot or run  
-commands all cause the devices within MILO to be initialised.  
-Devices are named  
-in the same way (exactly) that Linux itself will name them. So, the  
-first IDE disk will be called 'hda' and it's first partition will be 'hda1'.  
-Use the show command to show what devices are available.  
-  
-  
-  
-''File Systems.'' MILO supports three file systems,  
-MSDOS, EXT2 and ISO9660. So long as a device is available to it,  
-MILO can listboot or run an image stored on  
-one of these file systems.  
-MILO's default file system is EXT2 and so you have tell MILO that  
-the file system is something other than that.  
-All of the commands that use filenames  
-allow you to pass the file system using the -t [[filesystem]option.  
-So, if you wanted to list the contents of a SCSI CD ROM, you might type the  
-following:  
-  
-  
-  
-  
- MILOb ls -t iso9660 scd0:  
-  
-  
-  
-''Variables.'' MILO contains some settable variables that help  
-the boot process. If you are loading via the Windows NT ARC firmware, then  
-MILO makes use of the boot option environment variables set up by that  
-firmware.  
-For some systems, MILO (for example, the AlphaPC64) maintains  
-its own set of environment variables that do not change from boot to boot.  
-These variables are:  
-  
-  
-  
-  
-MILOb help var  
-Variables that MILO cares about:  
-MEMORY_SIZE - System memory size in megabytes  
-BOOT_DEV - Specifies the default boot device  
-BOOT_FILE - Specifies the default boot file  
-BOOT_STRING - Specifies the boot string to pass to the kernel  
-SCSIn_HOSTID - Specifies the host id of the n-th SCSI controller.  
-AUTOBOOT - If set, MILO attempts to boot on powerup  
-and enters command loop only on failure.  
-AUTOBOOT_TIMEOUT - Seconds to wait before auto-booting on powerup.  
-  
-----  
-!!6.2. Booting Linux  
-  
-The boot command boots a linux kernel from a device.  
-You will need to have a linux kernel image on  
-an EXT2 formated disk (SCSI, IDE or floppy) or an ISO9660 formatted CD  
-available to MILO.  
-The image can be gzip'd and in this case  
-MILO will recognise that it is gzip'd by the .gz suffix.  
-  
-  
-  
-You should note that the version of MILO does not usually have to match  
-the version of the Linux kernel that you are loading.  
-You boot Linux using the following command syntax:  
-  
-  
-  
-  
- MILOb boot [[-t file-system] device-name:file-name [[[[boot-option] [[boot-option] ...]  
-  
-  
-  
-Where device-name is the name of the device that you wish to  
-use and file-name is the name of the file containing the Linux  
-kernel. All arguments supplied after the file name are passed directly  
-to the Linux kernel.  
-  
-  
-  
-If you are installing Red Hat, then you will need to specify a root  
-device and so on. So you would use:  
-  
-  
-  
-  
- MILOb boot fd0:vmlinux.gz root=/dev/fd0 load_ramdisk=1  
-  
-  
-  
- MILO will automatically contain the block devices that  
-you configure into your vmlinux. I have tested the floppy driver, the IDE  
-driver and a number of SCSI drivers (for example, the NCR 810), and these work fine.  
-Also, it is important to set the host id of the SCSI controller  
-to a reasonable value. By default, MILO will initialize it to the  
-highest possible value (7) which should normally work just fine.  
-However, if you wish, you can explicitly set the host id of the  
-''n''-th SCSI controller in the system by setting environment  
-variable SCSI''n''_HOSTID to the appropriate  
-value. For example, to set the hostid of the first SCSI controller to  
-7, you can issue the following command at the MILO prompt:  
-  
-  
-  
-  
- setenv SCSI0_HOSTID 7  
-  
-----  
-!!6.3. Rebooting Linux  
-  
-You may want to reboot a running Linux system using the  
-shutdown -r now command. In this case, the Linux kernel  
-returns control to MILO (via the HALT CallPAL entrypoint).  
-MILO leaves a compressed copy of itself in memory for just this  
-reason and detects that the system is being rebooted from information  
-held in the HWRPB (Hardware Restart Parameter Block).  
-In this case it starts to reboot using exactly the same command that  
-was used to boot the Linux kernel the last time.  
-There is a 30 second timeout that allows you to interrupt this  
-process and boot whatever kernel you wish in whatever way you wish.  
-  
-----  
-!!6.4. The ''bootopt'' command  
-  
-For flash based systems such as the AlphaPC64, EB164 and the EB66+, there  
-are a number of possible boot options and these are changed using the  
-bootopt command.  
-This has one argument, a decimal number which is the type of the  
-image to be booted the next time the system is power cycled or reset:  
-  
-  
-  
-'''' Boot the Evaluation Board Debug Monitor,  
-  
-  
-  
-''1'' Boot the Windows NT ARC firmware.  
-  
-  
-  
-In order to tell the boot code to boot the MILO firmware from flash  
-then you need a boot option that means boot the N'th image.  
-For this, you need to 128 plus N, so if MILO is the third image, you  
-would use the command:  
-  
-  
-  
-  
- MILOb bootopt 131  
-  
-  
-  
-Note: Be very careful with this command. A good rule is never to  
-set bootopt to 0 (the Evaluation Board Debug Monitor), but instead use the  
-system's jumpers to achieve the same thing.  
-  
-----  
-!!!7. Running the Flash Management Utility  
-  
-The run command is used to run the flash management utility.  
-Before you start you will need a device available to MILO that  
-contains the updateflash program.  
-This (like vmlinux) can be gzip'd. You need to run the flash management  
-utility program from the MILO using the (run) command:  
-  
-  
-  
-  
- MILOb run fd0:fmu.gz  
-  
-  
-  
-Once it has loaded and initialised, the flash management utility  
-will tell you some information about the flash device and give you  
-a command prompt. Again the help command is most useful.  
-  
-  
-  
-  
-Linux MILO Flash Management Utility V1.  
-Flash device is an Intel 28f008SA  
-16 segments, each of 0x10000 (65536) bytes  
-Scanning Flash blocks for usage  
-Block 12 contains the environment variables  
-FMUb   
-  
-  
-  
-Note that on systems where environment variables may be stored  
-and where there is more than one flash block (for example, the AlphaPC64)  
-the flash management utility will look for a block to hold MILO's  
-environment variables. If such a block already exists, the flash management  
-utility will tell you where it is. Otherwise, you must use the environment  
-command to set a block and initialise it.  
-In the above example, flash block 12 contains MILO's environment  
-variables.  
-  
-----  
-!!7.1. The ''help'' command  
-  
-  
-FMUb help  
-FMU command summary:  
-list - List the contents of flash  
-program - program an image into flash  
-quit - Quit  
-environment - Set which block should contain the environment variables  
-bootopt num - Select firmware type to use on next power up  
-help - Print this help text  
-FMUb   
-  
-  
-  
-''Note'' that the environment and bootopt commands are only available on  
-the EB66+, the AlphaPC64, EB164 and PC164 systems (and their clones).  
-  
-----  
-!!7.2. The ''list'' command  
-  
-The ''list'' command shows the current usage of the flash memory.  
-Where there is more than one flash block, the usage of each flash block  
-is shown. In the example below you can see that Windows NT ARC is using  
-blocks 4:7 and block 15.  
-  
-  
-  
-  
-FMUb list  
-Flash blocks: :DBM 1:DBM 2:DBM 3:WNT 4:WNT 5:WNT 6:WNT 7:WNT 8:MILO  
-9:MILO 10:MILO 11:MILO 12:MILO 13:U 14:U 15:WNT  
-Listing flash Images  
-Flash image starting at block :  
-Firmware Id: 0 (Alpha Evaluation Board Debug Monitor)  
-Image size is 191248 bytes (3 blocks)  
-Executing at 0x300000  
-Flash image starting at block 3:  
-Firmware Id: 1 (Windows NT ARC)  
-Image size is 277664 bytes (5 blocks)  
-Executing at 0x300000  
-Flash image starting at block 8:  
-Firmware Id: 7 (MILO/Linux)  
-Image size is 217896 bytes (4 blocks)  
-Executing at 0x200000  
-FMUb  
-  
-----  
-!!7.3. The ''program'' command  
-  
-The flash management utility contains a compressed copy of a flash  
-image of MILO. The ''program'' command allows you to blow this image  
-into flash.  
-The command allows you to back out, but before you run it you should  
-use the ''list'' command to see where to put MILO.  
-If MILO is already in flash, then the flash management utility will  
-offer to overwrite it.  
-  
-  
-  
-  
-FMUb program  
-Image is:  
-Firmware Id: 7 (MILO/Linux)  
-Image size is 217896 bytes (4 blocks)  
-Executing at 0x200000  
-Found existing image at block 8  
-Overwrite existing image? (N/y)? y  
-Do you really want to do this (y/N)? y  
-Deleting blocks ready to program: 8 9 10 11  
-Programming image into flash  
-Scanning Flash blocks for usage  
-FMUb   
-  
-  
-  
-Wait until it has completed before powering off your system.  
-  
-  
-  
-Note: I cannot emphasise just how careful you must be here  
-not to overwrite an existing flash image that you might need or  
-render your system useless. A very good rule is never to overwrite  
-the Debug Monitor.  
-  
-----  
-!!7.4. The ''environment'' command  
-  
-This selects a flash block to contain MILO's environment variables.  
-  
-----  
-!!7.5. The ''bootopt'' command  
-  
-This is just the same as MILO's ''bootopt'' command,  
-see (Section Section 6.4).  
-  
-----  
-!!7.6. The ''quit'' command  
-  
-This is really pretty meaningless. The only way back to MILO (or  
-anything else) once the flash management utility has run is to reboot  
-the system.  
-  
-----  
-!!!8. Restrictions.  
-  
-Unfortunately this is not a perfect world and there, as always, some  
-restrictions that you should be aware of.  
-  
-  
-  
-MILO is not meant to load operating systems other than Linux,  
-although it can load images linked to run at the same place in memory as Linux  
-(which is 0xFFFFFC0000310000).  
-This is how the flash management utilities can be run.  
-  
-  
-  
- The PALcode sources included in miniboot/palcode/''blah'' are  
-correct, however there are problems when they are built using the  
-latest gas. They ''do'' build if you use the ancient a.out gas  
-that's supplied in the Alpha Evaluation Board toolset (and that's how  
-they were built). I'm trying to get someone to fix the new gas.  
-Meanwhile, as a workaround, I have provided pre-built PALcode for the  
-supported boards and David Mosberger-Tang has a fixed gas on  
-his ftp site.  
-  
-----  
-!!!9. Problem Solving.  
-  
-Here are some common problems that people have seen, together with the  
-solutions.  
-  
-  
-  
-''Reading MS-DOS floppies from the Evaluation Board Debug Monitor.''  
-  
-  
-  
- Some of the older versions of the Evaluation Board Debug Monitor (pre-version 2.)  
-have a problem with DOS format flopies generated from Linux.  
-Usually, the Debug Monitor can load the first few sectors all right, but then goes  
-into an endless loop complaining about "bad sectors." Apparently,  
-there is an incompatibility between the DOS file system as expected by  
-the Debug Monitor and the Linux implementation of DOSFS. To make the  
-long story short: if you run into this problem, try using DOS to write  
-the floppy disk. For example, if loading the file MILO.cab  
-doesn't work, use a DOS machine, insert the floppy and then do:  
-  
-  
-  
-  
- copy a:MILO.cab c:  
-copy c:MILO.cab a:  
-del c:MILO.cab  
-  
-  
-  
- Then try booting from that floppy again. This normally solves the problem.  
-  
-  
-  
-''MILO displays a long sequence of Ob and does not accept input.''  
-  
-  
-  
-This usually happens when MILO was built to use COM1 as a secondary console  
-device. In such a case, MILO echo output to COM1 and accepts input from  
-there also. This is great for debugging but not so great if you have  
-a device other than a terminal connected.  
-If this happens, disconnect the device or power it down until the Linux  
-kernel has booted.  
-Once Linux is up and running, everything will work as expected.  
-  
-  
-  
-''MILO complains that the kernel image has the wrong magic number''  
-  
-  
-  
- Older versions of MILO did not support the ELF object file format and so  
-could not recognise an ELF image and this might be your problem.  
-If this is reported, upgrade to the latest MILO that you can find. All  
-2..20 and beyond MILOs support ELF.  
-On the other hand it could be that the image is indeed damaged. You should  
-also note that MILO does not yet automatically distinquish between GZIP'd  
-and non-GZIP'd images; you need to add the ".gz" suffix to the file name.  
-  
-  
-  
-''MILO prints "...turning on virtual addressing and jumping to the Linux Kernel" and  
-nothing else happens''  
-  
-  
-  
-One obvious problem is that the kernel image is wrongly built or is built for another  
-Alpha system altogether.  
-Another is that the video board is a TGA (Zlxp) device and the kernel has been built  
-for a VGA device (or vice versa).  
-It is worth building the kernel to echo to COM1 and then connecting a terminal to  
-that serial port or retrying the kernel that came with the Linux distribution that you  
-installed.  
-  
-  
-  
-''MILO does not recognise the SCSI device''  
-  
-  
-  
-The standard MILO images include as many device drivers as are known to be stable  
-for Alpha (as of now that includes the NCR 810, QLOGIC ISP, Buslogic and Adaptec 2940s  
-and 3940 cards). If your card is not included, it may be that the driver is not stable  
-enough on an Alpha system yet. Again, the latest MILO images are worth trying. You  
-can tell which SCSI devices a MILO image has built into it by using the "show" command.  
-  
-  
-  
-''MILO is unable to read your ext2 filesystem''  
-  
-  
-  
-Early versions of MILO are unable to read ext2 filesystems that have been created with  
-the newer versions of mke2fs due to sparse superblocks. Upgrade to a newer MILO and this  
-should fix the problem.  
-  
-----  
-!!!10. Acknowledgements.  
-  
-I would like to thank:  
-  
-  
-  
-  
-  
-*  
-  
-Eric Rasmussen and Eilleen Samberg the authors of  
-the PALcode,  
-  
-  
-*  
-*  
-  
-Jim Paradis for the keyboard driver and the original  
-MILO interface,  
-  
-  
-*  
-*  
-  
-Jay Estabrook for his help and bugfixes,  
-  
-  
-*  
-*  
-  
-David Mosberger-Tang for the freeware BIOS emulation  
-and his support and encouragement,  
-  
-  
-*  
-*  
-  
-Last (and not least) Linus Torvalds for the  
-timer code and his kernel.  
-  
-  
-*  
-  
-  
-  
-Finally, a big thank you to Digital for producing such a wonderful  
-chip (and paying me to do this).  
-  
-----  
-!!!11. Changelog  
-  
- November 12th, 2000 Rich Payne rdp@alphalinux .org  
-  
-  
-  
-  
-  
-  
-*  
-  
- First major update since December 1996, removed David Ruslings and added mine as the maintainer  
-  
-  
-  
-*  
-*  
-  
- Added new URLs for current MILO development work  
-  
-  
-  
-*  
+Describe [HowToMILOHOWTO ] here.