|
|
The Initial System Loader performs these functions:
provides user interface with boot path information and alters boot
path.
loads an operating system-specific code set or a hardware-specific
code set and launches it. If this implementation-specific code does
not damage the ISL image, ISL remains in memory in case the code
returns control to ISL for initialization of further
utilities.
Certain standards are used by hardware and software operating systems using
system bootstrap, IPL, and ISL standard. These standards are architectural in
nature, but are not necessarily defined in any system architectural document.
The remainer of this chapter contains a description of these standards.
Stable storage and nonvolatile memory layout
Stable storage and nonvolatile memory (NVM) are described as blocks of bytes
that are accessible by bootstrap, ISL, and the operating system through
standard entry points. The first 96 bytes of stable storage are required
implementation; bytes 96 through 191 are optional, but if implemented they are
reserved for PDC and ISL access as described below. Nonvolatile memory is not
required by the architecture; therefore, it should contain only values that
can be managed by an alternate method. When more than one byte is used in the
representation of an item in stable storage, the most significant byte is the
byte with the lower address.
The format of stable storage is shown below:
Table 25-1 Stable storage format
BYTE |
CONTENTS |
0-31 | Boot flags and device |
32-63 | Unique file names |
64-95 | Future OS requirements |
96-127 | Console terminal |
128-159 | Alternate boot path |
160-191 | Dump flags and device |
192-nnn | Future OS options |
Autoboot flags and device path
This 32-byte field defines the coldload path that PDC uses for autoboot. If
this path is not valid, or if the device that it describes is not a valid boot
device containing an IPL image, PDC then requests a valid path through the
console if the console is present; otherwise, the error is displayed through
the front panel.
A detailed internal representation of a boot or console path (the format
applies to the auto bootpath, the alternate boot path, the dump path, and the
console path) is as follows:
Table 25-2 Boot or console path
0000 | flags | BC(0) | BC(1) | BC(2) |
0004 | BC(3) | BC(4) | BC(5) | MOD |
0008 | | Logical_ID | | |
000C | | Device_Depend | | |
001F | | | | |
0020 | | | | |
Note that in the above illustration, the flags field in the console path is
ignored. The format of flags is as follows:
Format of flags
Table 25-3 Format of flags
0 | 1 | 2-3 | 4 through 7 |
ab | as | 00 | timer |
Console Path
This 32-byte field defines the device path that PDC uses to locate the system
console. If this path is not valid, or if the device that it describes is not
a valid console device image, PDC then uses a default path.
Alternate Boot Path
This 32-byte field defines the coldload path that PDC uses (after getting the
go-ahead from the operator) if the operator rejects the autoboot path through
console intervention. If this path is not valid, or if the device it describes
is not a valid boot device containing an IPL image, PDC then requests a valid
path through the console.
Dump flags and device
This 32-byte field is used to describe the destination device for a snapshot
dump facility.
The format of nonvolatile memory is shown below:
Table 25-4 Nonvolatile memory
BYTE |
CONTENTS |
0-63 | PDC and boot reserved |
64-nn | OS reserved |
NVM is an optional implementation, not required by the architecture. If NVM is
implemented, the PDC and boot reserved area of NVM is as follows:
Table 25-5 PDC and boot area for NVM
BYTE |
CONTENTS |
0-1F | Last boot-device path |
20-23 | Self-test status |
24-27 | Powerfail time stamp |
28-2A | Boot restart time stamp |
2B-2F | TOC restart time stamp |
30-63 | PDC and boot reserved |
LIF standard
The Hewlett-Packard Logical Interchange Format (LIF) provides a standard method
for locating IPL code on the boot device.
The method of locating IPL code on the boot device must be the same for all
boot devices, computer processors, and the operating systems, so that the PDC
knows where to find it. Having IPL at the very beginning of the device is
ideal; however, some operating systems require a volume label at the beginning
of a disk. IPL also needs a method of locating its modules (utilities) when
they are needed.
The LIF standard addresses these issues, and provides a standard with utilities
already in existence. For further information on LIF format, refer to LIF
Directory Organization and Record Format for Data Interchange.
LIF requires a 256-byte volume label at the beginning of the media; thus, the
operating-system-specific volume label can be located at the beginning of the
disk, offset by 256 bytes. The LIF volume label points to the location of the
LIF directory, which then points to the location of each of the files.
Compliance to LIF standard does not require complete implementation. The level
of compliance to the standard in the IPL code is the minimum implementation
(volume header and directory in ASCII code). The format of the files is the
system object module (SOM) format.
The LIF volume header, as well as an entry in the LIF directory, points to the
IPL code.
The following drawing represents the LIF standard logical layout of disk and
tape media.
Figure 25-1 LIF Standard Logical Layout
The LIF volume label allows easy identification of media type and gives the
location of the directory. The format of the LIF volume label follows:
Table 25-6 LIF volume label format
BYTE |
CONTENTS |
0-1 | LIF identifier |
2-7 | Volume label (0-6 ASCII characters) |
8-11 | Directory start address (in blocks) |
12-13 | Octal 10000 |
14-15 | Set to 0 (dummy) |
16-19 | Length of directory (fixed at initialization) |
20-21 | Set to 0 |
22-23 | Set to 0 |
24-41 | Set to 0 (level 1 extension) |
42-239 | Set to 0 (reserved for extensions and future use) |
240-243 | Byte address of IPL on media |
244-247 | IPL length (in bytes) |
248-251 | Offset in IPL of entry |
252-253 | Set to 0 |
254-255 | Set to 0 (reserved by system 250) |
The directory contains all of the information necessary to
find files. It is a linear list of 32-byte directory entries, one
for each LIF file on the media. The maximum number of entries in
the directory is fixed at the time of initialization. A logical
end of directory mark is defined to be a file type of -1 and is
written only if the directory is not filled. The physical end of
directory is determined by adding the start of directory and length of
directory fields from the volume lable. Directory entries must be
stored so that they are in strictly increasing starting addresses
on sequential media. Directory entries are undefined after the logical
end of directory, so when a file is appended to the directory, the
following directory entry's file type must be set to -1 to make
it the logical end of the directory.
LIF addressing is in blocks of 256 bytes, and system addresses are
2K-bytes-aligned.
Each directory is organized as follows:
Table 25-7 LIF addressing
BYTE |
CONTENTS |
0-9 | File name (1-10 ASCII characters, trailing blanks) |
10-11 | File type |
12-15 | Starting address (in blocks) |
16-19 | Length of file (in blocks) |
20-25 | Time of creation |
26-27 | 1 /volume number |
28-31 | Set to 0 (implementation) |
The file type is a 16-bit signed integer. The defined file types that are
recognized by systems are
0 -- Purged file
30001 -- Bootable, executable file
30002 -- Boot data file
30003 -- Autoexecutable file list
30004 -- Data protect file
30010 -- HPE system file
A file is deleted from the directory by changing its file type to -2, to
represent a purged file. The data itself need not be removed from the media.
Bootable utility format
All of the bootable utilities accessible through the LIF directory
must have enough of a common format for IPL to load and launch the
utilities through a standard method. IPL may need to know the intended
physical memory destination address for which the module was linked,
as well as the length of the image and the entry point. For those
utilities that are position independent, the destination address
can be set to -1 and IPL will load it at the first available memory after IPL.
All software implementation intends to support the system
object module (SOM) format, using the linker; therefore, an auxilary
SOM header for IPL, as described below, would meet IPL's needs for
loading and launching bootable utilities. For further description
of the linker and the SOM format, refer to the System Linker
External Specifications and the System Object
File Format Architectural Control Document.
Figure 25-2 Boot utility format
Main Memory Layout
Although the exact memory locations of boot and IPL code during
the boot process vary according to size of the IODC and IPL, a general
description of memory layout is presented here for clarification.
Also, the first page of main memory is reserved for communication
between PDC and software.
Table 25-8 Main memory layout
X'00000000 | Initalize vectors | 0 |
X'00000040 | Processor dependent | 64 |
X'00000200 | Reserved | 512 |
X'00000350 | Memory configuration | 848 |
X'00000360 | MEM_ERR | 864 |
X'00000380 | MEM_FREE | 896 |
X'00000384 | MEM_HPA | 900 |
X'00000388 | MEMPDC | 904 |
X'0000038C | MEM_10MSEC | 908 |
X'00000390 | Initial memory module | 912 |
X'000003A0 | Boot console/display | 928 |
X'000003D0 | Boot device | 976 |
X'00000400 | Boot keyboard | 1024 |
X'00000430 | Reserved | 1072 |
X'00000600 | Processor dependent | 1536 |
X'00000800 | | 2048 |
The format of the first memory controller configuration is as follows:
The format of the console terminal and boot device configurations are as
follows:
Table 25-9 Console terminal and boot device configuration
X'00 | path | 00 |
X'08 | LAYERS | 08 |
X'20 | HPA | 322 |
X'24 | SPA | 36 |
X'28 | IODC_IO | 40 |
X'2C | Reserved | 44 |
X'30 | Class | 48 |
The format of the boot and system console device paths is the same as that for
the autoboot, alternate boot, and console paths in stable storage. In the
console path, the flags are ignored.
The offsets of IODC, IPL, and booted utilities are variable, based on the size
of code images.
Table 25-10 IODC, IPL, and booted utilities offsets
X'00000000 | Page zero | 0 |
X'00000800 | | 2048 |
MEM_FREE | Monarch PDC | MEM_FREE |
| Console IODC | |
| Boot Device IODC | |
IPL_START | IPL code | IPL_START |
|