![background image](http://html1.mh-extra.com/html/rabbit/2000/2000_designers-handbook_3112103025.webp)
Designer’s
Handbook
23
6.
The System ID Block
The
BIOS supports a system identification block to be placed at the top of flash memory.
Identification
information for each device can be placed in it for access by the BIOS, flash
driver,
and users. This block will contain specific part numbers for the flash and RAM de-
vices
installed, the product’s serial number, Media Access Control (MAC) address if an
Ethernet
device, and so on. In addition, the ID block is designed with future expansion in
mind
by including a table version number and storing the block’s size in bytes within the
block
itself.
6.1
Definition
The
following global struct is defined in
IDBLOCK.LIB
and loaded from the flash device
during
BIOS startup. Users can access this struct in RAM if they need information from
it.
The particular definition below is for a 128-byte ID block; the actual size can vary ac-
cording
to the value in
idBlockSize
.
The
reserved[]
field will expand and/or shrink
to
compensate for the change in size.
typedef struct {
int
tableVersion;
// ver. num for this table layout
int
productID;
// Z-World part #
int
vendorID;
// 1 = Z-World
char timestamp[7];
// YY/M/D H:M:S
long flashID;
// Z-World part #
int
flashType;
// Write method
int
flashSize;
// in 1000h pages
int
sectorSize;
// size of flash sector in bytes
int
numSectors;
// number of sectors
int
flashSpeed;
// in nanoseconds
long flash2ID;
// Z-World part #, 2nd flash
int
flash2Type;
// Write method, 2nd flash
int
flash2Size;
// in 1000h pages, 2nd flash
int
sector2Size;
// byte size of 2nd flash's sectors
int
num2Sectors;
// number of sectors
int
flash2Speed;
// in nanoseconds, 2nd flash
long ramID;
// Z-World part #
int
ramSize;
// in 1000h pages
int
ramSpeed;
// in nanoseconds
int
cpuID;
// CPU type identification
long crystalFreq;
// in MHz
char serialNumber[24];
// device serial number
char productName[30];
// null-terminated string
char reserved[1];
// reserved 4 later use - size can
//
grow
long idBlockSize;
// size of the SysIDBlock struct
int
userBlockSize;
// size of user block (directly
//
below ID block)
int
userBlockLoc;
// offset of start of user block
// from this block
Содержание 2000
Страница 1: ...Rabbit 2000 Microprocessor Designers Handbook Revision C...
Страница 4: ...Rabbit 2000 Microprocessor...
Страница 6: ...2 Rabbit 2000 Microprocesssor...
Страница 12: ...8 Rabbit 2000 Microprocessor...
Страница 34: ...344 Dynamic C User s Manual...
Страница 36: ...34 Rabbit 2000 Microprocessor...
Страница 44: ...42 Rabbit 2000 Microprocessor...