You've come to this page because you've asked a question similar to the following:
What is the boot process employed by ARC (Advanced RISC Computing) machine firmware?
This is the Frequently Given Answer to such questions.
Bootstrapping on ARC involves a boot manager that is built in to the firmware. ARC systems do not rely upon bootstrap programs stored in boot records (VBRs or MBRs) at all. The firmware knows how to read a partition table and understands the FAT filesystem format. (IBM PC compatible firmware does neither.) A designated partition, that is formatted with the FAT filesystem format, is known as the ARC System Partition. It contains boot loader programs, which are ARC executable programs that are loaded and run by the ARC Boot Manager.
The location of the ARC System Partition is specified by the value of a
firmware variable that is held in non-volatile RAM, named
SystemPartition. The value of this variable is the ARC Path
for the system volume. An ARC Path is a general-purpose
mechanism provided by ARC firmware for naming devices, disc volumes, and
files.
The precise details of the boot manager may vary according to firmware
implementation, but the operation of the boot process is driven by
publicly documented firmware variables with defined named and semantics.
The boot manager presents a menu of boot options to the user. The name of
each boot option is determined by value of the LoadIdentifier
firmware variable.
(The value of the LoadIdentifier firmware variable, like the
values of the firmware variables mentioned later, is in fact an array,
with one element of the array for each option on the ARC Boot Manager
menu. Effectively, picking an option on the menu picks the array index
that will be used to index into the variable values. For simplicitly, the
discussion below will take the array indexing as implied.)
The boot manager inspects the value of the OSLoader firmware
variable for the location, specified as an ARC Path, of the operating
system boot loader program image file. The boot manager loads and invokes
this program.
Usually the operating system boot loader is a file that resides on the ARC System Partition:
For Windows NT version 5.0, the value of the OSLoader
variable is the full ARC Path of the /os/WinNT50/osloader.exe
file on that volume, which contains NTLDR.
For AlphaLinux, the value of the OSLoader variable is
the full ARC Path of the /linload.exe file on that
volume.
For NetBSD, the value of the OSLoader variable is the
ARC Path of either boot or boot.ecoff, the boot
loaders for ELF and ECOFF NetBSD kernel images, respectively. (NetBSD
does not have a single loader that can understand both program image file
formats.)
The operating system boot loader program is responsible for loading the and invoking the operating system kernel proper. The boot loader uses the values of several firmware variables.
The boot loader uses the value of the OSLoadFilename firmware
variable to determine the location of the operating system kernel program
image file, which it then loads and invokes. This file, too, is usually a
file that resides on the ARC System Partition. The exact meaning of the
ARC Path in the value of the variable depends from the operating system
boot loader:
The Windows NT version 5.x boot loader treats this value as the
name of a directory, in which it will look for
system32/ntoskrnl.exe, system32/hal.dll, and the
program image files for the boot-class device drivers. This is usually
the "Windows directory" on the Windows NT system volume.
The AlphaLinux boot loader treats this value as the name of a file, which it expects to contain the program image for MILO, another boot loader (rather than the operating system kernel itself) that it loads and invokes.
(This extra indirection is wholly unnecessary for AlphaLinux, and is nothing more than the result of not making a version of MILO that can be invoked directly by the ARC firmware.)
The NetBSD boot loader treats this as the name of a file, which it
expects to contain the program image of the NetBSD operating system
kernel. This is usually netbsd or netbsd.ecoff
in the ARC System Partition.
The boot loader uses the value of the OSLoadPartition
firmware variable to determine the location of the system volume for the
operating system. It passes this location to the operating system kernel
in whatever format the operating system kernel requires. (For example:
The Windows NT kernel understands ARC Paths, and so the Windows NT boot
loader, NTLDR, simply passes the value of this variable to the kernel as
it is.)
The boot loader uses the value of the OSLoadOptions firmware
variable as a set of additional command-line options to pass to the kernel
when it invokes it. These command-line options are kernel-specific:
For Windows NT version 5.x, these load options are kernel option
switches such as SOS, DEBUG, and
BAUDRATE.
Because the AlphaLinux boot loader actually loads another boot loader, MILO, these command-line options are command-line arguments to MILO that specify the location of the kernel program image file for MILO to load, and the command-line arguments to pass to the Linux kernel when MILO invokes it.
MIPS Technology Incorporated. (1992). Advanced RISC Computing Specification 1.2