DMI Table on BIOS Chip?

Only for programmers and BIOS gurus with technical questions.
Post Reply
bexamous
New visitors - please read the rules.
Posts: 1
Joined: Fri Jun 13, 2008 6:34 pm

Here is the goal... to update BIOS on systems from Linux OS. I have the tool 'flashrom' from the CoreBIOS project and using this we are able to flash a BIOS image to the BIOS chip on a board. The problem however is each board has type1 and type3 DMI information customized, eg serial number and so forth. When we simply write a 1MB image file to the BIOS chip the DMI information is 'reset' back to defaults. Using Phoenix flash utility and using 'mode=3' this does not destroy type1/3 DMI table.

Trying to figure out a way to not destroy DMI table when flashing BIOS from Linux.

If I look at BIOS image I am having a hard time identifying where the DMI table is actually stored... I can find the start strings _SM_ and _DMI_ but I must be missing something as I don't see the table following.

Basically I have two ideas:

The first would basically find the range where the SM/DMI table is storage and mask it when flashing the new BIOS. This is assuming the DMI table never moves-- I'll just have to check for. I can either use flashrom to leave a hole when flashing or read current BIOS image, merge it with new BIOS image, flash merged BIOS to board. The key with all this is determining exactly where on the chip the SM/DMI table is stored.

The other idea is figure out how to edit the DMI table from Linux OS. I could then simply read type1/type3 info from the board (eg what dmidecode does), write new BIOS image, write type1/type3 data back to board. Problem with this is I know of no programs that can write DMI info from OS, only stupid DOS stuff :P.

Either way will work but I've been unsuccessful with either.

Any ideas?
fabceolin
New visitors - please read the rules.
Posts: 1
Joined: Wed Oct 22, 2008 4:17 pm

Hi,

I'm trying to do this, write DMI from Linux too.
Are you solve your problem?

I'm trying to use a libsmbios, but it is change a type 0xd4 specific dell table.

Maybe changing a Lib we can chance others DMI types like 0x1 and 0x3.
Post Reply