Boot Loader Context (Compact 2013)
3/26/2014
The boot loader context stores the variables that are needed to perform the boot process. The BootLoader_t structure, which is used by the board support packages (BSPs) that are based on the x86 CPU architecture, is a typical example. Boot drivers can update the variables in this structure. For example, they can update the display resolution by changing the values of the display variables.
typedef struct BootLoader_t {
enum_t driveId;
uint32_t ramTop;
uint32_t videoRam;
bool_t ramestimated;
uint8_t eddBiosMajor;
uint8_t eddBiosMinor;
uint16_t eddBiosIfcs;
uint8_t apmBiosMajor;
uint8_t apmBiosMinor;
uint8_t apmBiosFlags;
uint8_t pciBiosMajor;
uint8_t pciBiosMinor;
uint8_t pciLastBus;
uint8_t pciBusMode;
uint8_t vbeBiosMajor;
uint8_t vbeBiosMinor;
size_t devices;
const Device_t *pDevices;
uint32_t runAddress;
uint32_t ipAddress;
flags_t kitlFlags;
uint32_t KitlTransportMediaType;
DeviceLocation_t bootDevice;
DeviceLocation_t kitlDevice;
size_t displayWidth;
size_t displayHeight;
size_t displayBpp;
size_t displayLogicalWidth;
size_t displayLogicalHeight;
uint8_t comPort;
uint8_t baudDivisor;
flags_t imageUpdateFlags;
bool_t formatUserStore;
} BootLoader_t;
The following table describes the members of the BootLoader_t structure.
BootLoader_t Structure Members
Name |
Type |
Description |
---|---|---|
driveId |
enum_t |
Boot driver basic input/output system (BIOS) ID |
ramTop |
uint32_t |
Highest memory address of the available RAM, in bytes |
videoRam |
uint32_t |
Amount of video RAM, in bytes |
ramestimated |
bool_t |
If true, the RAM value was not retrieved from the BIOS |
eddBiosMajor |
uint8_t |
Major version number of the BIOS Enhanced Disk Device (EDD) services supported |
eddBiosMinor |
uint8_t |
Minor version number of the BIOS EDD services supported |
eddBiosIfcs |
uint16_t |
Bitmap of BIOS EDD interface support |
apmBiosMajor |
uint8_t |
Major version number of the BIOS Advanced Power Management (APM) supported |
apmBiosMinor |
uint8_t |
Minor version number of the BIOS APM supported |
apmBiosFlags |
uint8_t |
BIOS APM flags |
pciBiosMajor |
uint8_t |
Major version number of the BIOS Peripheral Component Interconnect (PCI) extension supported |
pciBiosMinor |
uint8_t |
Minor version number of the BIOS PCI extension supported |
pciLastBus |
uint8_t |
Last PCI bus on the device |
pciBusMode |
uint8_t |
Special cycle and configuration flags |
vbeBiosMajor |
uint8_t |
Major version number of the BIOS Video Electronics Standards Association (VESA) supported |
vbeBiosMinor |
uint8_t |
Minor version number of the BIOS VESA supported |
devices |
size_t |
Number of supported devices |
pDevices |
const Device_t * |
Pointer to supported devices |
runAddress |
uint32_t |
Memory address of the OS image |
ipAddress |
uint32_t |
IP address of the device |
kitlFlags |
flags_t |
Flags that indicate kernel independent transport layer (KITL) settings, such as whether KITL is in poll mode or interrupt mode |
KitlTransportMediaType |
uint32_t |
Media type received from Platform Builder |
bootDevice |
DeviceLocation_t |
Location of boot device |
kitlDevice |
DeviceLocation_t |
Location of KITL device |
displayWidth |
size_t |
Width of the display |
displayHeight |
size_t |
Height of the display |
displayBpp |
size_t |
Bits per pixel of the display |
displayLogicalWidth |
size_t |
Logical width of the display |
displayLogicalHeight |
size_t |
Logical height of the display |
comPort |
uint8_t |
Debug port |
baudDivisor |
uint8_t |
Baud divisor for the debug port |
imageUpdateFlags |
flags_t |
Update mode |
formatUserStore |
bool_t |
If true, the user store needs to be formatted |