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
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.
Even with quotes the command line is truncated again!
Try using code tags 😉
Very good work as always! Must’ve missed this when taking a look at the iMac17,1 DarwinDumper data earlier.