OSDev.org

The Place to Start for Operating System Developers
It is currently Thu Apr 18, 2024 2:38 pm

All times are UTC - 6 hours




Post new topic Reply to topic  [ 4 posts ] 
Author Message
 Post subject: SMBIOS again
PostPosted: Tue Apr 01, 2008 10:57 pm 
Offline
Member
Member
User avatar

Joined: Thu Jan 17, 2008 1:15 am
Posts: 76
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

_________________
Learning a lot these days THANKS to OSdev users


Top
 Profile  
 
 Post subject:
PostPosted: Wed Apr 02, 2008 11:52 am 
Offline

Joined: Wed Jan 02, 2008 3:14 pm
Posts: 17
Location: Poland
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?


Top
 Profile  
 
 Post subject: Re: SMBIOS again
PostPosted: Thu Feb 18, 2010 9:31 am 
Offline
Member
Member

Joined: Mon Oct 15, 2007 3:04 pm
Posts: 296
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?


Top
 Profile  
 
 Post subject: Re: SMBIOS again
PostPosted: Thu Feb 18, 2010 10:06 am 
Offline
Member
Member

Joined: Mon Oct 15, 2007 3:04 pm
Posts: 296
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.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 4 posts ] 

All times are UTC - 6 hours


Who is online

Users browsing this forum: DotBot [Bot], Majestic-12 [Bot] and 122 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group