This chapter describes the firmware used for booting SPARC based and IA based systems. This chapter also provides an overview of the boot process on each platform.
This is a list of the reference information in this chapter.
For step-by-step instructions on booting a system, see Chapter 13, SPARC: Booting a System (Tasks) or Chapter 14, IA: Booting a System (Tasks).
Each SPARC based system has a PROM (programmable read-only memory) chip with a program called the monitor. The monitor controls the operation of the system before the Solaris kernel is available. When a system is turned on, the monitor runs a quick self-test procedure to checks the hardware and memory on the system. If no errors are found, the system begins the automatic boot process.
Some older systems might require PROM upgrades before they will work with the Solaris system software. Contact your local service provider for more information.
The following table describes the boot process on SPARC based systems.
Table 15–1 SPARC: Description of the Boot Process
Boot Phase |
Description |
---|---|
Boot PROM |
1. The PROM displays system identification information and then runs self-test diagnostics to verify the system's hardware and memory. |
|
2. Then, the PROM loads the primary boot program, bootblk, whose purpose is to load the secondary boot program (that is located in the ufs file system) from the default boot device. |
Boot Programs |
3. The bootblk program finds and executes the secondary boot program, ufsboot, and loads it into memory. |
|
4. After the ufsboot program is loaded, the ufsboot program loads the kernel. |
Kernel Initialization |
5. The kernel initializes itself and begins loading modules by using ufsboot to read the files. When the kernel has loaded enough modules to mount the root (/) file system, the kernel unmaps the ufsboot program and continues, using its own resources. |
6. The kernel creates a user process and starts the /sbin/init process, which starts other processes by reading the /etc/inittab file. |
|
init |
7. The /sbin/init process starts the run control (rc) scripts, which execute a series of other scripts. These scripts (/sbin/rc*) check and mount file systems, start various processes, and perform system maintenance tasks. |
Before the kernel is started, the system is controlled by the read-only-memory (ROM) Basic Input/Output System (BIOS), which is the firmware interface on a PC.
Hardware adapters can have an on-board BIOS that displays the physical characteristics of the device and can be used to access the device.
During the startup sequence, the PC BIOS checks for the presence of any adapter BIOS, and if found, loads and executes each adapter BIOS. Each individual adapter's BIOS runs self-test diagnostics and displays device information.
At three points during the Solaris boot process, you can make the following choices about a booting system as follows:
Primary Boot Subsystem (Partition Boot Menu) – This first menu appears if multiple operating environments exist on the disk. The menu enables you to boot any of the operating environments installed. By default, the operating environment that is designed as active is booted.
Note that if you choose to boot a non-Solaris operating environment, you cannot reach the next two menus.
Interrupt the Autoboot Process – If the autoboot process is interrupted, you can access the Solaris Device Configuration Assistant.
The Solaris Device Configuration Assistant enables you to boot the Solaris system from a different boot device, configure new or misconfigured hardware, or perform other device-related or boot-related tasks.
Current Boot Parameters Menu – Two forms of this menu exist, one for a normal Solaris boot and one menu for a Solaris installation boot:
The normal Current Boot Parameters menu enables you to boot the Solaris system with options, or enter the boot interpreter.
The install Current Boot Parameters menu enables you to select the type of installation to be performed, or customize the boot.
The following table summarizes the purpose of the primary IA boot interfaces. See the sections that follow for a detailed description and example of each boot interface.
Table 15–2 IA: Boot Subsystems
If you need to create the Solaris Device Configuration Assistant boot diskette, go to http://soldc.sun.com/support/drivers/dca_diskettes.
During the boot process, the boot subsystem menus allow you to customize boot choices. If the system receives no response during the time-out periods, it continues to boot automatically using the default selections. You can stop the boot process when each boot subsystem menu is displayed. Or, you can let the boot process continue automatically.
The following section provides examples of each boot subsystem screen.
During the device identification phase, the Solaris Device Configuration Assistant does the following:
Scans for devices that are installed on the system
Displays the identified devices
Enables you to perform optional tasks such as selecting a keyboard type and editing devices and their resources
During the boot phase, the Solaris Device Configuration Assistant does the following:
Displays a list of devices from which to boot. The device marked with an asterisk (*) is the default boot device.
Enables you to perform optional tasks, such as editing autoboot settings and property settings, and choosing the network configuration strategy.
The following section provides examples of menus that appear during the device identification phase. The device output varies based on your system configuration.
Several screens are displayed as the Solaris Device Configuration Assistant attempts to identify devices on the system.
This screen appears each time you boot the Solaris Device Configuration Assistant. The Solaris Device Configuration Assistant runs every time the system is booted, although the autoboot process bypasses the menus.
Solaris Device Configuration Assistant The Solaris(TM) (Intel Platform Edition) Device Configuration Assistant scans to identify system hardware, lists identified devices, and can boot the Solaris software from a specified device. This program must be used to install the Solaris operating environment, add a driver, or change the hardware on the system. > To perform a full scan to identify all system hardware, choose Continue. > To diagnose possible full scan failures, choose Specific Scan. > To add new or updated device drivers, choose Add Driver. About navigation... - The mouse cannot be used. - If the keyboard does not have function keys or they do not respond, press ESC. The legend at the bottom of the screen will change to show the ESC keys to use for navigation. - The F2 key performs the default action. F2_Continue F3_Specific Scan F4_Add Driver F6_Help |
The Bus Enumeration screen appears briefly while the Solaris Device Configuration Assistant gathers hardware configuration data for devices that can be detected automatically.
Bus Enumeration Determining bus types and gathering hardware configuration data ... Please wait ... |
The Scanning Devices screen appears while the Solaris Device Configuration Assistant manually scans for devices that can only be detected with special drivers.
Scanning Devices The system is being scanned to identify system hardware. If the scanning stalls, press the system's reset button. When the system reboots, choose Specific Scan or Help. Scanning: Floppy disk controller ####################### | | | | | | 0 20 40 60 80 100 Please wait ... |
The Identified Devices screen displays which devices have been identified on the system. From here, you can continue to the Boot Solaris menu or perform optional device tasks, such as setting a keyboard configuration, viewing and editing devices, setting up a serial console, and saving and deleting configurations.
Identified Devices The following devices have been identified on this system. To identify devices not on this list or to modify device characteristics, such as keyboard configuration, choose Device Tasks. Platform types may be included in this list. ISA: Floppy disk controller ISA: Motherboard ISA: PnP bios: 16550-compatible serial controller ISA: PnP bios: 16550-compatible serial controller ISA: PnP bios: Mouse controller ISA: PnP bios: Parallel port ISA: System keyboard (US-English) PCI: Bus Mastering IDE controller PCI: Universal Serial Bus PCI: VGA compatible display adapter F2_Continue F3_Back F4_Device Tasks F6_Help |
During this phase, you can determine the way in which the system is booted.
The Boot Solaris menu allows you to select the device from which to boot the Solaris release. You can also perform optional tasks, such as viewing and editing autoboot and property settings. Once you select a boot device and you choose Continue, the Solaris kernel begins to boot.
Boot Solaris Select one of the identified devices to boot the Solaris kernel and choose Continue. To perform optional features, such as modifying the autoboot and property settings, choose Boot Tasks. An asterisk (*) indicates the current default boot device. > To make a selection use the arrow keys, and press Enter to mark it [X]. [X] DISK: (*) Target 0:QUANTUM FIREBALL1280A on Bus Mastering IDE controller on Board PCI at Dev 7, Func 1 [ ] DISK: Target 1:ST5660A on Bus Mastering IDE controller on Board PCI at Dev 7, Func 1 [ ] DISK: Target 0:Maxtor 9 0680D4 on Bus Mastering IDE controller on Board PCI at Dev 7, Func 1 [ ] CD : Target 1:TOSHIBA CD-ROM XM-5602B 1546 on Bus Mastering IDE controller on Board PCI at Dev 7, Func 1 F2_Continue F3_Back F4_Boot Tasks F6_Help |
This menu appears each time you boot the Solaris release from the local disk. Let the five-second timeout elapse if you want to boot the default Solaris kernel. If you want to boot with different options, select an appropriate option before the time-out period elapses.
<<< Current Boot Parameters >>> Boot path: /pci@0,0/pci-ide@7,1/ide@0/cmdk@0,0:a Boot args: Type b [file-name] [boot-flags] <ENTER> to boot with options or i <ENTER> to enter boot interpreter or <ENTER> to boot with defaults <<< timeout in 5 seconds >>> Select (b)oot or (i)nterpreter: |
The following table describes the boot process on IA based systems.
Table 15–3 IA: Description of the Boot Process
Boot Phase |
Description |
---|---|
BIOS |
1. When the system is turned on, the BIOS runs self-test diagnostics to verify the system's hardware and memory. The system begins to boot automatically if no errors are found. If errors are found, error messages are displayed that describe recovery options. The BIOS of additional hardware devices are run at this time. |
|
2. The BIOS boot program tries to read the first physical sector from the boot device. This first disk sector on the boot device contains the master boot record mboot, which is loaded and executed. If no mboot file is found, an error message is displayed. |
Boot Programs |
3. The master boot record, mboot, which contains disk information needed to find the active partition and the location of the Solaris boot program, pboot, loads and executes pboot. |
4. The Solaris boot program, pboot loads bootblk, the primary boot program, whose purpose is to load the secondary boot program that is located in the ufs file system. |
|
5. If there is more than one bootable partition, bootblk reads the fdisk table to locate the default boot partition, and builds and displays a menu of available partitions. You have a 30-second interval to select an alternate partition from which to boot. This step only occurs if there is more than one bootable partition present on the system. |
|
6. bootblk finds and executes the secondary boot program, boot.bin or ufsboot, in the root (/) file system. You have a 5–second interval to interrupt the autoboot to start the Solaris Device Configuration Assistant. |
|
7. The secondary boot program, boot.bin or ufsboot, starts a command interpreter that executes the /etc/bootrc script, which provides a menu of choices for booting the system. The default action is to load and execute the kernel. You have a 5–second interval to specify a boot option or to start the boot interpreter. |
|
Kernel initialization |
8. The kernel initializes itself and begins loading modules by using the secondary boot program (boot.bin or ufsboot) to read the files. When the kernel has loaded enough modules to mount the root (/) file system, the kernel unmaps the secondary boot program and continues, using its own resources. |
9. The kernel creates a user process and starts the /sbin/init process, which starts other processes by reading the /etc/inittab file. |
|
init |
10. The /sbin/init process starts the run control (rc) scripts, which execute a series of other scripts. These scripts (/sbin/rc*) check and mount file systems, start various processes, and perform system maintenance tasks. |