New SMBIOS structure type 134

I haven’t seen anything about the new SMBIOS structures that Apple started to use in the late 2015 iMac’s, which I may have missed of course, but let’s look at the one that I decoded:

Handle 0x0023, DMI type 134, 20 bytes
OEM-specific Type
        Header and Data:
                86 14 23 00 32 2E 33 34 46 30 31 00 00 00 00 00
                00 00 00 00

Exactly the same version number that I get when I open System Information:

SMC Version (system): 2.34f1

But there is more. Look here:

Handle 0x0024, DMI type 221, 26 bytes
OEM-specific Type
        Header and Data:
                DD 1A 24 00 03 01 00 01 05 00 00 00 02 00 00 00
                00 39 00 03 00 00 05 00 00 00
        Strings:
                Reference Code - CPU
                uCode Version
                TXT ACM version

Handle 0x0025, DMI type 221, 26 bytes
OEM-specific Type
        Header and Data:
                DD 1A 25 00 03 01 00 01 05 00 00 00 02 00 01 05
                00 00 00 03 04 0B 00 00 95 04
        Strings:
                Reference Code - ME 11.0
                MEBx version
                ME Firmware Version
                Consumer SKU

Handle 0x0026, DMI type 221, 68 bytes
OEM-specific Type
        Header and Data:
                DD 44 26 00 09 01 00 01 05 00 00 00 02 03 FF FF
                FF FF FF 04 00 FF FF FF 31 00 05 00 FF FF FF 31
                00 06 00 FF FF FF FF FF 07 00 3E 00 00 00 00 08
                00 34 00 00 00 00 09 00 3E 00 00 00 00 0A 00 34
                00 00 00 00
        Strings:
                Reference Code - SKL PCH
                PCH-CRID Status
                Disabled
                PCH-CRID Original Value
                PCH-CRID New Value
                OPROM - RST - RAID
                SKL PCH H Bx Hsio Version
                SKL PCH H Dx Hsio Version
                SKL PCH LP Bx Hsio Version
                SKL PCH LP Cx Hsio Version

Handle 0x0027, DMI type 221, 54 bytes
OEM-specific Type
        Header and Data:
                DD 36 27 00 07 01 00 01 05 00 00 00 02 00 01 05
                00 00 00 03 00 01 05 00 00 00 04 05 FF FF FF FF
                FF 06 00 FF FF FF 07 00 07 00 FF FF FF 07 00 08
                00 FF FF FF FF FF
        Strings:
                Reference Code - SA - System Agent
                Reference Code - MRC
                SA - PCIe Version
                SA-CRID Status
                Disabled
                SA-CRID Original Value
                SA-CRID New Value
                OPROM - VBIOS

Handle 0x0028, DMI type 14, 8 bytes
Group Associations
        Name: $MEI
        Items: 1
                0x0000 (OEM-specific)

Handle 0x0029, DMI type 219, 81 bytes
OEM-specific Type
        Header and Data:
                DB 51 29 00 01 03 01 55 02 00 90 06 01 10 80 00
                00 00 00 00 40 00 00 00 00 00 00 00 00 00 40 02
                FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
                FF FF FF FF FF FF FF FF 03 00 00 00 80 00 00 00
                00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
                00
        Strings:
                MEI1
                MEI2
                MEI3

The importance of it has yet to be discovered.

Edit: I committed a first update of SMBIOS.h for RevoBoot so that we can start using it.

By the way. Ryan Armstrong aka cavaliercoder has a Github fork of dmidecode which deserves to be forked and stared. An apparent requirement for upstream to accept his changes.

I will also update smbios2struct so that dmidecode –from-dump SMBIOS.bin can be used to read the binary data. Which is handy when you want to run dmidecode on another computer or use data that you extracted from IORegistry dumps.

Update: The source code of smbiosXtract.c is now available for download and you can compile it with:

cc smbiosXtract.c -o smbiosXtract -Wall -framework IOKit -framework CoreFoundation

Advertisements

6 thoughts on “New SMBIOS structure type 134

  1. Seems your code is missing 29 Bytes at the end of the smbios data.
    You can see that easely with the following command:

    ioreg -lw0 -n AppleSMBIOS -r | grep -w SMBIOS | cut -d '' | xxd -r -p > "$HOME/Desktop/SMB.bin"

    comparing the 2 files.

    • Doesn’t work for me. I am getting an error:

      cut: bad delimiter

      But should that result in the EPS being added at the end of the file? If yes, then you are not doing it right. The EPS should be at the beginning of the file. All 32 bytes of it.

    • Sorry Pike the command get truncated and I have no idea why.
      The right command is “ioreg -lw0 -n AppleSMBIOS -r | grep ‘”SMBIOS”‘ | cut -d’ “$HOME/Desktop/SMB.bin”” and of course it doesn’t include the SMBIOS-EPS.
      Your code works fine, sorry again.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s