Specifications

218 AMD Geodeā„¢ GeodeROM Functional Specification
System Management Mode Software
32087C
15.8.3.1 Sample VSM Header Format
A sample VSM header format is as follows:
typedef struct {
unsigned long Signature; // 'VSM '
unsigned char VSM_Type; // Type of VSM (e.g. Legacy, PM, Audio)
unsigned char ForCPU;
unsigned short ForChipset;
unsigned short VSM_Version; // Version of VMS header format
unsigned long VSM_Length; // Length of VSM module in bytes
unsigned short EntryPoint; // Offset of initial VSM entry point
unsigned long DS_Limit;
Requirements Flag; // Special requirements/capabilities
unsigned short VSA_Version;
USHORT AlignSystem DWORD alignment adjustment
System SysStuff Reserved for System Manager use.
} VSM_Header;
15.8.3.2 Sample VSM Header Structures
The required VSM header structure is a 16-bit flag value.
typedef struct {
unsigned short Alignment: 5; // 2
(n+5)
(e.g. 00000 = 32-byteph)
unsigned short CodeHi: 1; // 1 = Must load Code above DRAM_TOP
unsigned short CodeLo: 1; // 1 = Must load Code below 1 MB
unsigned short DataHi: 1; // 1 = Must load Data above DRAM_TOP
unsigned short DataLo: 1; // 1 = Must load Data below 1 MB
unsigned short SmallModel: 1; // 1 = If Small memory model
unsigned short NoPreempt: 1 // 1 = VSM may be not be preempted
unsigned short SkipMe: 1 // 1 = Skip this VSM (normally set by the
BIOS)
unsigned short Reserved: 4;
} Requirements;
The Descriptor structure has the format used by the SVDC and RSDC instructions.
typedef struct {
unsigned short limit_15_0;
unsigned short base_15_0;
unsigned char base_23_16;
unsigned char attr;
unsigned char limit_19_16;
unsigned char base_31_24;
unsigned short selector;
} Descriptor;