Jump to content

Asus P8Z77-V LK


k3nny
 Share

114 posts in this topic

Recommended Posts

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 later
2014-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 1001
2013-12-27:
  • Further module updates for BIOS version 1001
2013-11-20:
  • Module updates for BIOS version 1001
2013-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 by k3nny
  • Like 8
Link to comment
Share on other sites

  • 3 weeks later...

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

@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.

  • Like 2
Link to comment
Share on other sites

@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 :hammer:

 

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

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 by k3nny
  • Like 2
Link to comment
Share on other sites

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

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 by k3nny
Link to comment
Share on other sites

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 :help:

Link to comment
Share on other sites

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

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

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

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 :thumbsup_anim:

P.S. I apologize again for my bad english, now i have not used Google Translate...

Link to comment
Share on other sites

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

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

  • Like 1
Link to comment
Share on other sites

 Share

×
×
  • Create New...