Monday, March 19, 2012

Difference between HP-UX EFI boot and PA-RISC boot

  Itanium-based System Hardware

  The Itanium-based system's bootstrap process involves the execution of   four software components:

           +  CMOS

           +  option ROM

           +  EFI

           +  Boot Manager

           +  hpux.efi

      After the processor is reset, firmware initializes and tests processors and platform.  During initialization, the firmware lets a user interrupt and configure CMOS and option ROMs.  It then transfers
 control to EFI, the Extensible Firmware Interface.  EFI, in turn,   initializes EFI boot and runtime services and launches the Boot Manager.  The Boot Manager, which allows loading of EFI application or       drivers from EFI defined file system, loads and transfers control to hpux.efi, the HP-UX-specific bootstrap loader.  hpux.efi then loads the HP-UX kernel object file from the HP-UX file system to memory and transfers control to the loaded kernel image.
  
  PA-RISC Hardware    

      The Series 700 and 800 bootstrap process involves the execution of
      three software components:

           +  pdc

           +  isl

           +  hpux.

After the processor is RESET, pdc, the processor-dependent code  (firmware), performs a self-test and initializes the processor.  It  then loads and transfers control to isl, the operating-systemindependent initial system loader.  isl, in turn, loads and transfers  control to the hpux utility, the HP-UX-specific bootstrap loader.   hpux then downloads the HP-UX kernel object file from an HP-UX file   system and transfers control to the loaded kernel image.

Common for both

1. The HPUX/HPUX.EFI program (also known as the secondary loader ) figures out what HP-UX kernel to load, and what arguments to pass to it (like init state).

2. The secondary loader relocates itself to the end of the initial memory module, loadsthe kernel at the beginning and starts running it. The kernel needs to fit into that area!

3. Kernel initialization (real mode):
initialize all of the memory, read /stand/ioconfig and /stand/rootconf files using the hpux loader’s system calls, initialize all modules (1st level I/O configuration), allocate equivalently-mapped data structures, PDIR and hash table, optimize assembly, craft process 0, go virtual.

4. Kernel initialization (virtual mode):
start the clock, start up the other processors, finish the I/O configuration (2nd level),initialize subsystems, intialize LVM/swap/dump, mount root file system read-only,fork() off system daemons.

5. fork() off /sbin/pre_init_rc and mount root file system read-write afterwards.

6. Start /etc/init process which, depending on the passed init state, starts working trough /etc/inittab or launches a shell in the case of a Single User or LVM Maintenance boot.
7. login console

No comments:

Post a Comment