System Management BIOS: Difference between revisions
[unchecked revision] | [unchecked revision] |
Content deleted Content added
m System Managenent BIOS moved to System Management BIOS: Spelling Error in title |
Some grammer fixes and some rewording |
||
Line 1:
System Management [[BIOS]] (SMBIOS) is a standard developed by [http://dmft.org DMFT].
On booting
== Locating the SMBIOS Entry Point Table ==
The SMBIOS Entry Point Table is somewhere between the addresses 0xF0000 and 0xFFFFF. You can find it by looking for the string "_SM_" in that piece of memory.▼
▲The SMBIOS Entry Point Table is located somewhere between the addresses 0xF0000 and 0xFFFFF.
One example of how this can be done is demonstrated in the below code.
char *mem = (char *) 0xF0000;
while ((Bit32u) mem < 0x100000) {
Line 21 ⟶ 23:
}
The entry point table has the following structure
struct SMBIOSEntryPoint {
char EntryPointString[4]; //This is _SM_
Line 39 ⟶ 43:
};
TableAddress contains the address of the
The structures are located directly adjacent to each other in memory, with a new structure beginning as soon as another one ends.
Each structure is composed of a header, a structure specific table, and a string table.
The format of the header is as follows.
struct SMBIOSHeader {
uchar Type;
Line 50 ⟶ 55:
};
The value of Type indicates
Length indicates the size of header + data table. The strings are not included in the
eg: the BIOS Struct (Type 0) is like this:
Line 75 ⟶ 80:
db 0 ; End of structure
At the end of the
The last structure has type 127.
|