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:
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 end of all this, you should have a boot selection that looks something
like:
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:
See D.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.
With the introduction of the XLT series, Digital changed the system
console interface for its NT systems from ARC to AlphaBIOS. AlphaBIOS
is a screen-oriented interface which should be more familiar to PC
users. This change in console interface necessitates a change in
setup procedure for those who wish to run Linux/Alpha on AlphaBIOS-based
systems.
The first thing you must do is to install the latest version of AlphaBIOS
on your system. This can be obtained from Digital's "System Software and
Driver Updates" Web page, Once your AlphaBIOS is at the latest revision level, you can start
bootstrapping your system as follows:
At this point, AlphaBIOS will probably put up a big, unfriendly dialog
box labelled "Warning: Operating System Selection not valid!". Ignore
this error (it's only a problem for NT) and press ENTER to continue.
If you dedicated the first partition of your first disk drive to a small
FAT partition for booting (as the installation procedure advises you to),
then once Linux is installed you should copy linload.exe and milo to
this partition. Once you shut down, you can then modify the Linux menu
selection to load MILO from this partition as follows:
Once you have done this, booting and running Linux on an AlphaBIOS based
system should be very similar to doing so on an ARC system.
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:
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 (> 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:
Only the AxpPCI33 is known to include failsafe boot block
floppy support (Section ??).
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:
Or on a Linux box:
If you have a standard MILO image available (say MILO.dd)
then you would build a boot block floppy using the following command:
There are a number of systems where MILO can be blown into flash
and booted directly (instead of via the Windows NT ARC firmware):
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:
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:
The following systems are known to have SRM Console support:
The Noname board can load MILO
from the Windows NT ARC firmware
(Section D.5.1),
from the SRM Console
(Section ??).
and from a failsafe boot block floppy
(Section D.5.4).
A flash management utility, runnable from MILO is available so that
once MILO is running, it can be blown into flash
(Section D.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:
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).
The AlphaPC64 includes the Windows NT ARC firmware
(Section D.5.1),
the SRM Console (Section ??)
and the Evaluation Debug Monitor
(Section D.5.3).
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 D.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:
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:
(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:
(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.
(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.
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 D.5.3).
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 D.5.1).
A flash management utility, runnable from MILO is available so that
once MILO is running, it can be blown into flash
(Section D.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 D.5.7.2).
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 D.5.1).
and the other contains the Evaluation Board Debug Monitor
(Section D.5.3).
The Aspen Alpine is a little different in that it only has one
ROM; this contains the Windows NT ARC firmware.
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 D.5.1).
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 D.5.3).
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 D.5.1).
The SRM console is also available
(Section ??).
A flash management utility, runnable from MILO is available so that
once MILO is running, it can be blown into flash
(Section D.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 D.5.7.2).
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 D.5.3).
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 D.5.1).
The SRM console is also available
(Section ??).
A flash management utility, runnable from MILO is available so that
once MILO is running, it can be blown into flash
(Section D.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 D.5.7.2).
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 D.5.1).
Here is my list of compatible systems:
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.
This is a 233Mhz 21066 based system.
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=
boot sda2:vmlinux.gz root=/dev/sda2
D.5.2 Loading MILO from the Windows NT AlphaBIOS
http://www.windows.digital.com/support/sysoft.htp.
Download the ZIP file, unzip it, and install it as follows:
D.5.3 Loading MILO from the Evaluation Board Debug Monitor
AlphaPC64> flboot <MILO-image-name>
D.5.4 Loading MILO from a Failsafe Boot Block Floppy
fddisk -fmt /dev/rfd0a
cat mboot bootm > /dev/rfd0a
disklabel -rw rfd0a 'rx23' mboot bootm
cat mboot bootm > /dev/fd0
dd if=MILO.dd of=/dev/fd0
D.5.5 Loading MILO from Flash
D.5.6 Loading MILO from the SRM Console
$ cat mboot bootm > /dev/fd0
>>>boot dva0
(boot dva0.0.0.0.1 -flags 0)
block 0 of dva0.0.0.0.1 is a valid boot block
reading 621 blocks from dva0.0.0.0.1
bootstrap code read in
base = 112000, image_start = 0, 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
####...
D.5.7 System Specific Information
D.5.7.1 AxpPCI33 (Noname)
4
J29 2 x x x 6
1 x x x 5
J28 2 x x x 6
1 x x x 5
3
D.5.7.2 AlphaPC64 (Cabriolet)
> makerom -v -i7 -l200000 MILO -o mini.flash
AlphaPC64> flash 200000 8
AlphaPC64> bootopt 131
D.5.7.3 EB66+
D.5.7.4 EB64+/Aspen Alpine
D.5.7.5 Universal Desktop Box (Multia)
D.5.7.6 EB164
D.5.7.7 PC164
D.5.7.8 XL266
D.5.7.9 Platform2000