OSDev.org
https://forum.osdev.org/

SMBIOS again
https://forum.osdev.org/viewtopic.php?f=1&t=16687
Page 1 of 1

Author:  naiksidd_85 [ Tue Apr 01, 2008 10:57 pm ]
Post subject:  SMBIOS again

I am trying to access the SMBIOS values to check all the components that are present on my machine.

I have added the code for searching the anchor string (_SM_)of the entry point structure and am able to locate it.

also i am able to locate the intermidiate string (_DMI_).

but the value at offset 18h which gives the address of the other structure is probably not correct as I just get values 0x00.

can any one help me locate it

Author:  arkady [ Wed Apr 02, 2008 11:52 am ]
Post subject: 

Hi,

On my machine the SMBIOS Entry Point structure "looks" like this:

5F 53 4D 5F 22 1F 02 03-5C 00 00 00 00 00 00 00
5F 44 4D 49 5F A7 63 04-00 01 0F 00 27 00 23

which translates to (offset-meaning);
00 - _SM_
04 - 22 (checksum)
05 - 1F (length in bytes)
06/07 - version 2.3
08 - 005C (max size)
0A - 00 (Entry point based on SMBIOS 2.1)
10 - _DMI_
15 - A7 (checksum)
16 - 0463 (table length)
18 - 000F0100 (phys. address of the table)
1C - 0027 (number of structures)
1E - 23 (spec. 2.3)

This structure is located at 0F0CE0 in my case. It points to a table of structures >> F0100. At that address I can see the following:

00 14 00 00 01 02 00 E0 03 0F 80 9E C9 7F 00 00 .......ŕ..€žÉ..
00 00 33 01 41 77 61 72 64 20 53 6F 66 74 77 61 ..3.Award Softwa
72 65 20 49 6E 74 65 72 6E 61 74 69 6F 6E 61 6C re International
2C 20 49 6E 63 2E 00 46 36 00 31 30 2F 31 32 2F , Inc..F6.10/12/
32 30 30 36 00 00 01 19 01 00 01 02 03 04 FF FF 2006..........˙˙

...and so on...

In your case, naiksidd_85, value at offset 18 SHOULD give you the correct address of the table (~list of devices) for your system, AFAIK. It's hard to tell why it isn't so.... Have you checked whether both checksums are correct - offsets 04 & 15?

Author:  johnsa [ Thu Feb 18, 2010 9:31 am ]
Post subject:  Re: SMBIOS again

Hi, reviving an old thread here after searching.

I've been working on some SMBIOS support code.

It was all going quite well, found the _SM_ table, validate checksum, display version number to be 2.3 (on real h/w) and 2.4 under bochs. Get the pointer to the structures table and heres where things go funny:

On bochs I find the BIOS Info table (type 0) all the entries are correct except for string entries are = 1 (index into string table / unformed area)... this is for vendor name, version and date strings. Then the string table itself seems to contain garbage.

On real h/w i don't seem to be able to locate a single table at all... not too sure about this.

The question is... is the SMBIOS Bios info table in Bochs broken?

Author:  johnsa [ Thu Feb 18, 2010 10:06 am ]
Post subject:  Re: SMBIOS again

Ok, got it working on bochs.. not 100% sure what the issue was, but after some mem-dumps and checking the code it now finds the strings. However they are both still = 1. So i assume there is no rule that multiple strings can't be the same.

Page 1 of 1 All times are UTC - 6 hours
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/