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

See Also

Concepts

Core Code