k3nny Posted January 16, 2013 Share Posted January 16, 2013 (edited) This is a small guide to get as much as possible out of this motherboard. The focus is set on the board itself, not pluggable devices like CPUs or GPUs, meaning you will have to take care of the processor and video properties by yourself - if needed. All further settings are chosen to run the board in full UEFI mode without legacy support. The chosen boot manager is Clover. I use it to run Windows, OS X and Arch Linux. All links and attachments are collected at the bottom of this post. General information: To boot OS X you need an SMC emulator, that is handled by the FakeSMC.kext extension and also a way to overcome ASUS' MSR 0xE2 write protection, that causes a kernel panic issued by AppleIntelCPUPowerManagement.kext and prevents you from running OS X. You have two choices: Patch the kext to avoid writing, or patch the BIOS to allow writing to this register. Patching the kext can be done in memory by Clover without touching any system files and is the easier one. Refer to Clover's option AsusAICPUPM. Starting with BIOS version 1103 ASUS introduced a write protection preventing unauthorized BIOS modifications. Additionally writing to NVRAM from OS X is not possible anymore. My recommendation is to stay with version 1001 and avoid all the new security/protection {censored} to keep the most compatibility to OS X. Alternatively you can use the newest BIOS version in combination with a test build of OsxAptioFix, which seems to work very well. Make sure not to have "slide=0" in your boot arguments. BIOS patch: Patching the BIOS is riskier and more time consuming than patching a kext. Should you decide to go for it, here is what needs to be done. You can use the UEFIPatch utility by CodeRush on an official BIOS file from ASUS to do the patch yourself, or use the attached modified BIOS version 1402. It additionally includes other modifications: ---------------------- Asus P8Z77-V LK - 1402 ---------------------- Modifications: * ME firmware 8.1.2.1318 -> 8.1.52.1496 (transferred settings) * Option ROMs [8086:2822] Intel SATA 11.0.0.1339 -> 12.9.0.2006 [8086:0162] Intel VGA 2143 -> 2170 (CSMCORE & padding, transferred settings) [8086:1502] Intel PXE 1.3.81 -> 1.5.67 [10EC:8168] Realtek PXE 2.43 -> 2.61 * EFI modules [90C8D394] Intel SATA 11.5.0.1582 -> 12.9.0.2006 [8D59EBC8] Intel VGA Sandy Bridge 2.0.1019 -> 2.0.1024 [5BBA83E6] Intel VGA Ivy Bridge 3.0.1016 -> 3.0.1027 [2EAA04AA] Realtek UNDI 2.013 -> 2.035 * CPU microcode [206A7] Sandy Bridge 0x28 -> 0x29 [306A9] Ivy Bridge 0x17 -> 0x1B * Misc - Prevent MSR 0xE2 lock in PowerManagement module [8C783970] - Disabled BIOS write protection by unsetting BLE and SMI locks * Credits Many thanks to all involved with UEFI BIOS Updater: http://forums.overclockers.ru/viewtopic.php?t=479847 Regardless of the chosen method, use Flash Toolkit (FTK) to flash it. More information in the link section. Read carefully, chances you can screw up something are high! BIOS settings: There is not much to say here. Initially I set most options to manual to ensure Mac won't have any problems recognizing them, but it seems this is not needed. Feel free to adjust them to your liking. Overclocking is not a problem either, you just need to have the matching performance state array for your CPU supplied automatically by Clover or by injecting an SSDT. If you have a dedicated video card and do not need the built-in GPU (like HD4000): Advanced \ System Agent Configuration \ Graphics Configuration > Primary Display: PCIE iGPU Multi-Monitor: Disabled USB compatibility settings:Advanced \ USB Configuration > Enable all options - USB2.0 ECHI Controller, Legacy USB/USB3.0 support, xHCI Mode, EHCI Hand-off Adjusting UEFI settings:Boot > Boot Logo Display: Disabled (Prevents Clover from displaying an incorrect resolution.) Boot \ CSM (Compatibility Support Module) >Launch CSM: Disabled (Disables legacy support. Only EFI application can be started now.) Boot \ Secure Boot menu >OS Type: Other OS (Disables Secure Boot and allows Clover to start.) Clover configuration: The attached configuration file is kept minimal. The most important settings are the DSDT patches and the device properties string. You will need to create an SMBIOS section with your own generated serial number. Have a look at the wiki, it should answer most of your questions regarding settings. DSDT: Clover has a huge amount of options to patch the DSDT and other tables on the fly and we will make use of it. This way no BIOS update or hardware change will break your setup. All modifications done to the DSDT can be found commented in Clover's config under the array ACPI\DSDT\Patches. Most of them are very common, others only remove errors and warnings. However, no device properties are injected here. For reference, I will keep my earlier made patched DSDT, that I don't use anymore. The changes made were: The attached DSDT was extracted from BIOS v0908 and decompiled using iasl version 20130214-64. It can probably be used with ongoing versions. v1001 and v1103 didn’t bring any DSDT changes for example. As of 10.8.3 this board works quite well including Sleep without a custom DSDT. I found these modifications to be useful, though: - Intel USB3 backwards compatibility, credits to Mieze - Rearranged interrupts (IRQNoFlags) for TIMR, RTC, HPET, IPIC - HDEF layout-id 1 for use with patched AppleHDA - ASMedia USB3 device-id and automatic wake fix - Ethernet device properties. Still requires an additional driver - Added MCHC (DRAM controller) and IMEI (Intel Management Engine Interface) devices - Disabled several unused devices - Status _STA set to Zero - OSYS variable set to 07D2 - Windows 2001 SP1 - Cosmetic device name changes - Fixed RAMB namespace lookup failure - Fixed compilation errors and warnings, added optimizations - Added DTGP method Additionally, I included the original unmodified DSDT table, if you want to see the exact changes. Do not to use my DSDT without revaluation. Search for: SystemMemory RAMB .. and replace these lines with the ones you got from your own self-extracted DSDT table.Use a new iasl version to compile the .dsl file. You shouldn't get any errors, warnings or optimization messages. DSDT_22.zip Device Properties: Recently I switched from a patched DSDT to Clover's method of DSDT patches and had to abandon the _DSM way of injecting device properties. Using an EFI string seems to be a very good alternative, as the properties are not bound to a DSDT anymore and can be modified in a more convenient way - in my opinion. The string is stored at Devices\Properties in hexadecimal format. Use gfxutil by mcmatrix to adjust the string to your needs. Here is a an overview of the important devices and their names (in square brackets), as defined by the DSDT: PciRoot(0x00)/Pci(0x01,0x00) - Dedicated video card [PEGP], renamed [GFX0] PciRoot(0x00)/Pci(0x02,0x00) - Integrated video card [GFX0], renamed [iGPU] PciRoot(0x00)/Pci(0x14,0x00) - USB Intel [XHC] PciRoot(0x00)/Pci(0x1a,0x00) - USB Intel [EHC2] PciRoot(0x00)/Pci(0x1b,0x00) - Sound [HDEF] PciRoot(0x00)/Pci(0x1c,0x04)/Pci(0x00,0x00) - Ethernet [RP05\PXSX] PciRoot(0x00)/Pci(0x1c,0x05)/Pci(0x00,0x00) - PCI Bridge ASMedia [RP06\PXSX] PciRoot(0x00)/Pci(0x1c,0x07)/Pci(0x00,0x00) - USB ASMedia [RP08\PXSX] PciRoot(0x00)/Pci(0x1d,0x00) - USB Intel [EHC1] Ethernet: The built in ethernet chip Realtek RTL8168 needs a driver. Several extensions exist and personally I can recommend Mieze’s version, which is linked below. It performs great under load and has no IP assignment problems. Sound: The sound chip ALC892 needs a patched AppleHDA.kext and a way to inject the layout-id, which is already present in my device properties string. You can find a link to a patched AppleHDA by toleda below. It works great, including microphone and front panel. USB: USB3 Intel: Intel USB3 ports work out of the box. However, they are not backwards compatible and you won't be able to run any USB2 devices. An option to fix this is to use Zenith432's GenericUSBXHCI USB 3.0 driver. USB3 ASMedia: The ASM1042 USB3 chip will be controlled by Zenith432's driver, too. USB2 Intel: Intel USB2 ports work natively. Reboot/Shutdown: Using Clover in UEFI mode will cause a bad reboot/shutdown with OS X in approximately one out of ten times and no fix exists for this issue yet. The OS has already exited, you see a black screen, fans spin up and you can only do a hard reset. Sleep: Sleep works well here. The provided device properties string includes "AAPL,clock-id" keys, which prevent Sleep to be interrupted by any USB device - meaning you will have to press the Sleep/Power button to wake up the system. If you don't want this behavior, remove these keys. --- Have fun setting things up. Link section: (Bootloader) Clover: http://clover-wiki.zetam.org/Home (BIOS) Power management patch: http://www.insanelym...tching-utility , http://hardforum.com...d.php?t=1726429 (Device properties) gfxutil: http://forum.netkas.org/index.php/topic,64.0.html (Ethernet) driver: http://www.insanelymac.com/forum/topic/287161-new-driver-for-realtek-rtl8111 (FakeSMC) driver: https://sourceforge.net/projects/hwsensors/ (Sound) driver: http://www.insanelymac.com/forum/files/file/147-applehda-for-realtek-alc892/ (USB3) driver: http://www.insanelymac.com/forum/topic/286860-genericusbxhci-usb-30-driver-for-os-x-with-source/ History: 2015-05-28: module updates for the BIOS all attachments are back online 2015-04-09:Re-uploaded all attachments except the config, it will follow later2014-10-18: Updated Clover config for recent revision 2953 Removed recommendation to disable VT-d. Added dart=0 to config.plist instead BIOS 1402 NVRAM writes do work with dmazar's OsxAptioFix test driver More: 2014-03-20: Aaand again: module updates for BIOS version 10012013-12-27:Further module updates for BIOS version 10012013-11-20:Module updates for BIOS version 10012013-10-16:Changes in config.plist: Corrected device properties string, added AppleRTC patch for 10.9, removed SSDT settings.2013-10-05:New link to patched AppleHDA extension for the upcoming 10.9 Mavericks GM.2013-10-03: Recommendation to use BIOS version 1001 due to BIOS and NVRAM write protections of later versions. Updated Clover config.plist with more DSDT patches to disable unused devices. Some weird news regarding reboot and shutdown in UEFI mode. Clover_r2953_config.zip P8Z77VLK_1402_mod.zip Edited May 28, 2015 by k3nny 8 Link to comment Share on other sites More sharing options...
buoo Posted January 17, 2013 Share Posted January 17, 2013 Could you add the GeekBench score please? Link to comment Share on other sites More sharing options...
k3nny Posted January 17, 2013 Author Share Posted January 17, 2013 (edited) Sure: http://browser.prima...kbench2/1555823 No overclock, no main applications running. Edited January 20, 2013 by k3nny 1 Link to comment Share on other sites More sharing options...
carbo178 Posted February 7, 2013 Share Posted February 7, 2013 Hi Kenny, i have a similar system, but i don't understand why it does not work the sleep. My system is signed, the BIOS is changed, I disabled the usb3 asmedia and I'm using Clover EFI bootloader. With Clover In UEFI mode I extracted the DSDT, correct errors and warnings, added DTGP, HDEF, ALC892, injected HDMI audio. What is missing to run the sleep? If you have time and want to help me and I can attach DSDT IOreg Thank you for the interest, sorry for my bad english (google translate) Marco Link to comment Share on other sites More sharing options...
LatinMcG Posted February 7, 2013 Share Posted February 7, 2013 i did LX model and sleep was fun to get to work... very similar setup of bios, i think i didnt use USB3 in bios. and i had to use SSDT.aml made with a script. 1 Link to comment Share on other sites More sharing options...
k3nny Posted February 7, 2013 Author Share Posted February 7, 2013 @carbo178: As far as I remember Sleep started working without any additional modifications with 10.8.3. My first guess would be - as LatinMcG said - power management. The IOReg would be nice to have. Currently I'm using these SSDTs: http://www.projectos...643 Additionally you need to use one of the Board-IDs provided by X86PlatformPlugin. iMac13,1 is one of them for example - Board-ID: Mac-00BE6ED71E35EB86. You will need to adjust the steps for your processor but I believe you can use RevoGirl's script to generate them. PS: Google seems to do a good job so far EDIT: Just found LatinMcG's thread. According to him he needed to patch AppleRTC to get Sleep working. I encountered some BIOS setting resets with the LK, too. So I guess it is a good thing to keep it patched and you can even use Clover to do it on the fly. EDIT2: Forgot to add that I had many random kernel panics when using Clover UEFI together with Compatibility Support Module (CSM). Turning it off fixed almost all my problems. 2 Link to comment Share on other sites More sharing options...
carbo178 Posted February 7, 2013 Share Posted February 7, 2013 @Kenny: Thanks for the reply, I checked out the SSDT with the script Revogirl (I forgot to mention in the first post), but I only have 2 steps (16 and 34) occurred with msrdumper; selecting or deselecting generated p-states/c-states in the Clover startup options does not change anything. I added the string board-id -Mac 00BE6ED71E35EB86 in config.plist under SMBIOS but still I see no changes, the sleep does not work I enclose DSDT, SSDT and IOreg, if you can see if there is something wrong ... thanks again DSDT-SSDT-IOreg.zip Link to comment Share on other sites More sharing options...
k3nny Posted February 7, 2013 Author Share Posted February 7, 2013 (edited) Please try to enable the AppleRTC patch in Clover. Next step is to disable CSM. For this to work you will need a video card that supports UEFI Graphics Output Protocol (GOP). As far as I know, gigabyte is giving out new VBIOS versions with GOP support on request. Write an email to their support and you should receive one. With CSM disabled you will be able to boot much faster and - according to my experience - fix many random kernel panics. By the way, i didn't ask yet: What happens if you try to enter sleep mode? I will look into your files later. EDIT: Regarding your DSDT: You could try using the _PTS method from my board. I doubt it will change much though. SSDT: Change SMBIOS to iMac13,1 with Board-ID: Mac-00BE6ED71E35EB86 and try these: SSDT_Core-i7-3770.zip Do not drop existing OEM SSDTs and turn off the generate functions in Clover. You should reach 3,9 GHz at least, maybe even get SpeedStep. Let me explain the structure of ssdt-0: 1) Method _DSM changes the CPU plugin-type to X86PlatformPlugin instead of ACPI_SMC_PlatformPlugin. It seems to be fairly new and it is used in Ivy Bridge iMac models. 2) APSS is the usual array with performance states in 100 MHz steps; one state must be doubled for it to work. I chose 0x00000320 (800 MHz) for this. 3) Name (APSN, 0x05) is the amount of turbo speed states. In this case they range from 3,4 GHz to 3,9 GHz -> 5 4) Name (APLF, 0x04) adds steps to the lowest frequency in APSS and defines the final lowest frequency which will be used. Example: 0x00000320 (800 MHz) is the lowest in this case. Add 0x04 (4) steps to it and you get 1200 MHz -> The CPU will never go under 1200 MHz. The first thing to check if it worked, is to verify ioreg. 1) CPU0@0: "plugin-type" must be 0x1. 2) CPU0@0 > X86PlatformPlugin > CPUCStates should be filled 3) CPU0@0 > X86PlatformPlugin > CPUPstates should be filled 4) SpeedStep, obviously. Source: http://www.applelife...rboboost.38283/ Last but not least - if nothing else works - wait for 10.8.3 :-) Edited February 10, 2013 by k3nny 2 Link to comment Share on other sites More sharing options...
LatinMcG Posted February 7, 2013 Share Posted February 7, 2013 i used imac 12.2 with ati 6870 dsdt device id changed Link to comment Share on other sites More sharing options...
carbo178 Posted February 9, 2013 Share Posted February 9, 2013 K3nny @, @ LatinMcG: Thanks to both, I'll try as soon as advised, but first I have a couple of questions: 1) The tables SSDT and SSDT-1 attached are used to replace or supplement the one I use now? I have to rename them? 2) I put board-id in config.plist: SMBIOS ProductName iMac13,1 Board-ID Mac-00BE6ED71E35EB86 Is that correct? 3) I use AppleACPIPlatform.kext original 10.8.2 (ver. 1.7), but if I do not use the option Drop OEM DMAR in Clover I do not get to the desktop, I put this string in config.plist but does not work: ACPI DropOEMDMAR Yes I doing something wrong (i'm so noob....)? What Happens when trying in sleep mode... With Chameleon: It turns off everything, but after a few seconds the system wakes up except Monitor and USB, and this operation is repeated for 3 times then finally wakes up except Monitor and USB and I have to force shutdown. With Clover: The system is trying to go to sleep, but you only turn off Monitor and USB, the rest stays on, I have to force shutdown. Thanks again. Greetings Marco Link to comment Share on other sites More sharing options...
k3nny Posted February 9, 2013 Author Share Posted February 9, 2013 (edited) 1) They supplement the BIOS SSDT tables. If you have any other SSDT files in ACPI\patched, remove them. Set DropOemSSDT, GenerateCStates, GeneratePStates = No. You can leave the names, Clover will find them. 2) That should be enough. I additionally set things like SerialNumber but i do not believe they are important in this case. 3) Try to disable VT-d in BIOS (Advanced -> CPU Configuration -> Intel Virtualization Technology), you will not need DropDMAR anymore, I think. 4) Advanced -> Onboard Device Configuration -> ASmedia USB 3.0 Controller: Please check again if you disabled it, as it causes problems with proper sleep mode. 5) Do you have any modified system extensions? I see you use an additional driver for the Marvell controller. My board does not have it. Are you sure it is working as it should? I have no experience with this. 6) Did you install the newest Nvidia drivers? 7) Out of curiosity, try this please. Boot -> UEFI/Legacy Boot: Disable Legacy. If it does not boot, set PCI ROM Priority: EFI Compatible ROM. EDIT: One thing I am curious about. If everything else fails, please try to boot without a DSDT file and see if Sleep works. Thanks. Edited February 9, 2013 by k3nny Link to comment Share on other sites More sharing options...
carbo178 Posted February 9, 2013 Share Posted February 9, 2013 Thank you for reply, 1) OK, i tried, but only 16 - 34 steps :-( 2) OK 3) VT-D disabled, but without DMAR the system won't boot (it's not a problem) 4)-5) AsMedia and Marvell disabled, deleted kext marvell, sleep not work :-( 6) Drivers originals by Apple 7) Tried, system boot fine, integrated HD4000 graphics work with wrong resolution (see this) sleep not work :-( Tried boot without DSDT, HD4000 not recognized, Gtx650 OK, sleep not work :-( I don't know which way to turn Link to comment Share on other sites More sharing options...
k3nny Posted February 9, 2013 Author Share Posted February 9, 2013 1) Can you please upload an ioreg when using my SSDT files? 6) I don't have an Nvidia card and don't have experience with installing them but I think there is a driver package available at nvidia.com. Probably you meant the same Did you try using the _PTS method from my DSDT? Hm, you didn't try one thing yet: 10.8.3. That might be the solution. Link to comment Share on other sites More sharing options...
carbo178 Posted February 9, 2013 Share Posted February 9, 2013 Hi, Official nVidia drivers are for Mac Pro 3,1, i don't install this because the boot fail with my SMBIOS. I don't tried method _PTS from your DSDT, as soon as I can, I try it. At the very least, wait for the update Wow, App Store notify me an update: Firmware EFI for iMac last 2012... Thank you iMac di Carbo.ioreg.zip Link to comment Share on other sites More sharing options...
k3nny Posted February 9, 2013 Author Share Posted February 9, 2013 It will place a Firmware.scap in your EFI partition but will not be able to apply the update. Just hide it when it appears again. I believe I read that you must delete the AppleTYMCE.kext when using a MacPro SMBIOS. Link to comment Share on other sites More sharing options...
carbo178 Posted February 9, 2013 Share Posted February 9, 2013 I believe I read that you must delete the AppleTYMCE.kext when using a MacPro SMBIOS. Only for versions 4,1 and 5,1 (in first install, i using 3,1) Link to comment Share on other sites More sharing options...
k3nny Posted February 9, 2013 Author Share Posted February 9, 2013 (edited) Did a mistake with the DTGP method in the SSDTs. They should work now :-) Edited February 10, 2013 by k3nny Link to comment Share on other sites More sharing options...
carbo178 Posted February 10, 2013 Share Posted February 10, 2013 Did a mistake with the DTGP method in the SSDTs. They should work now :-) Yeah, finally i see 4 steps (12 37 38 39), but now I'm at work until tomorrow and I can not give you more informations; in ioreg I see 8 values in P-states and C-states, I can just attach the new ioreg and do a test for sleep: Thanks P.S. I apologize again for my bad english, now i have not used Google Translate... Link to comment Share on other sites More sharing options...
LatinMcG Posted February 11, 2013 Share Posted February 11, 2013 EFI update = SMBIOS.plist is using older identifier. Link to comment Share on other sites More sharing options...
carbo178 Posted February 11, 2013 Share Posted February 11, 2013 EFI update = SMBIOS.plist is using older identifier. Hi all, @ LatinMcG: Thank you for clarification @ K3nny: I did some quick tests, I haven't modified DSDT because I haven't got time, we'll talk about it in a couple of days. I attach Bootmessages, an image of MSRDumper and the new ioreg. Thank you very much for the aid Archivio.zip Link to comment Share on other sites More sharing options...
k3nny Posted February 11, 2013 Author Share Posted February 11, 2013 The boot log looks good. This message is common: X86PlatformPlugin::setRingTable - No ring table found! X86PlatformPlugin::configResourceHandler - Failed to set ring table! According to the ioreg you got 33 PStates and 3 CStates for each CPU core which means the SSDT files were recognized. I prepared two DSDTs for you. Both have rearranged interrupts (IRQNoFlags) 0 and 8. v1: Original _PTS method v2: _PTS method from P8Z77-V LK DSDT.zip 1 Link to comment Share on other sites More sharing options...
carbo178 Posted February 11, 2013 Share Posted February 11, 2013 Thank you, I can just feel them.P.S. The boot log was generated after editing my DSDT with _PTS extracted by your DSDTGreetings Link to comment Share on other sites More sharing options...
k3nny Posted February 11, 2013 Author Share Posted February 11, 2013 Does Sleep work now? You didn't write anything about it yet. Link to comment Share on other sites More sharing options...
carbo178 Posted February 11, 2013 Share Posted February 11, 2013 Does Sleep work now? You didn't write anything about it yet. Hi, the sleep doesn't work (again), but I have not done all tests. Link to comment Share on other sites More sharing options...
LatinMcG Posted February 12, 2013 Share Posted February 12, 2013 if u compare dsdt.dsl of the P8Z7-v LX i did u might get sleep working. 1 Link to comment Share on other sites More sharing options...
Recommended Posts