A couple of days ago Apple refreshed the iMac’s (late 2013) with Haswell processors and faster WiFi so it was time for me to have a look at the data. A bit late due to work related stuff (still waiting for a new server to arrive) but luckily it is nothing spectacular.
The first thing that I noticed is the version of OS X, being Mac OS X 10.8.4 (build 12E4022) and thus OS X 10.8.4 can be used with Haswell processors. All you need is the correct version of the mach_kernel and a hand full of kexts. The IGPU requires a couple extra kexts to get it going, but more importantly is device-property AAPL,ig-platform-id to let AppleIntelAzulFramebuffer.kext select the correct frame buffer/connector data. By the way; Apple does not set this device-property in a _DSM (ACPI Device Specific Method) but from their EFI.
Shortly after the iMac refresh Apple made two updates available for new iMac owners. The first one was Mac OS X 10.8.5 (Build 12F37) and then there was this EFI Firmware update (for both models). Something that changed the SMBIOS version to IM141.88Z.0118.B00.1309031248 and IM141.88Z.0118.B00.1309031249 respectively.
We now also have the board-id for both models, being Mac-031B6874CF7F642A and Mac-27ADBB7B4CEE8E61. The only thing that I cannot share with you are the serial numbers, but the rest should help you to change your SMBIOS settings to that of an iMac14,N.
The ACPI tables of the two new iMac models are mostly identical, with the exception of the addition of the GFX0 Method. Of course. There are a couple of other changes, but nothing really spectacular.
Want to have a look for yourself? Ok. First download acpi-extract.pl and run it in a terminal window:
sudo [perl] acpi-extract.pl
Make sure you run it from the folder with the extracted ROM files in it. You can extract the IM141_0118_B00_LOCKED.scap and/or IM142_0118_B00_LOCKED.scap file(s) with help of Andy’s PhoenixTools.
Please note that Sam’s Perl script (thanks to BlackOSX for sharing the link to the original file) only works with the extracted ROM files, but it did extract the following ACPI tables from the .scap files:
DMAR.aml
DSDT.aml
SSDT-ApCst.aml
SSDT-ApIst.aml
SSDT-Cpu0Cst.aml
SSDT-Cpu0Ist.aml
SSDT-Cpu0Tst.aml
SSDT-CpuPm.aml
SSDT-CtdpB.aml
SSDT-LakeTiny.aml
SSDT-PcieTbt.aml
SSDT-SataAhci.aml
SSDT-SDUmuxUsb.aml
SSDT-SDUsbLpt.aml
SSDT-Sdxc.aml
SSDT-TbtPEG10.aml
SSDT-TbtPEG11.aml
SSDT-UsbLpt.aml
SSDT-UsbMuxLp.aml
You can locate the files in the AML folder, but Sam’s Perl script also decompiles the ACPI tables, automatically, in a DSL folder. This way you can open them straight away. Right after the extracting processes has finished.
Ok folks. This has to be it for now. I may update this blog post at a later date, but now I have work to do (the new server finally arrived).
Update
I already changed Sam’s Perl script a little (now also extracts the DMAR table) but I have changed it even more and added the following (missing) tables to the list: APIC, ECDT, FACP, FACS, HPET, MCFG and SBST.
The problem with the data is that we need to patch it up before we compile it, and even then everything won’t be there. This because the missing address data is unknown until the EFI startup process.
Running a new updated version of Sam’s Perl script did extract all tables, but it also showed me that some of the available tools, notably IOJones, still fail to extract some essential ACPI tables. Which is too bad for such a nice tool, but using IOJones to extract the tables from newly released hardware, especially when you are looking for the data to patch your ACPI tables for power management… that won’t get extracted. Luckily we can put the data together with both tools. A bit of work, but it works.
I haven’t checked Darwin Dumper myself, but if you used it to extract data on a new MacBookAir and/or iMac then please share your results so that I can check it. Thanks!
Update-2:
The latest version of acpi-extract.pl is available for download here.