User`s manual

58 rabbit.com The System Identification and User Blocks
7.1 System ID Block Details
The BIOS will read the System ID block during startup. If the BIOS does not find an ID block, it sets all
fields to zero in the data structure SysIDBlock. The user may access the information contained in the
System ID block by accessing SysIDBlock.
7.1.1 Definition of SysIDBlock
The following global data structures are defined in IDBLOCK.LIB and are loaded from the flash device
during BIOS startup. Users can access this struct in RAM if they need information from it. The
reserved[] field will expand and/or shrink to compensate for the change in size. Items marked ‘**
are essential for proper functioning of the System ID block and certain features (e.g., TCP/IP needs the
MAC address). Items marked ‘*’ are desirable for future compatibility.
typedef struct _SysIDBlockType2 {
uint8 flashMBC; // Memory Bank Configurations
uint8 flash2MBC;
uint8 ramMBC;
uint32 devSpecLoc; // Count of additional memory devices
immediately
// preceding this block
uint32 macrosLoc; // Start of the macro table for additional
board
// configuration options.
uint32 driversLoc; // offset to preloaded drivers start from
ID block
// start (positive is below ID block)
uint32 ioDescLoc; // offset to I/O descriptions start from
ID block
// start (positive is below ID block)
uint32 ioPermLoc; // offset to User mode I/O permissions
start from ID
// block start (positive is below ID
block)
uint32 persBlockLoc; // offset to persistent storage block area
start from
// ID block start (positive is below ID
block)
uint16 userBlockSiz2; // size of v. 5 “new style” mirrored User
block image
uint16 idBlockCRC2; // CRC of SysIDBlockType2 type with
idBlockCRC2
// member reset to zero and base CRC
value of
// SysIDBlock.idBlockCRC
} SysIDBlockType2;