Contribute
Register

DSDT for ASRock Z77 Professional-M

Status
Not open for further replies.
mrengles, I'm guessing this is useless to the ASRock Z77 pro3 motherboard (with the patched BIOS)?

If so, like others have said - any pointers you could give to your method of creating this would be very appreciated as we would like to create our own too.

I dont think my ASRock Z77 Professional-M DSDT will work. Attached is my new DSDT for UEFI (Bios) version 1.90

View attachment ASRock Z77 Professional-M DSDT v1.90.zip

Good luck and enjoy!

Mrengles
 
Here are the Intel USB 3.0 backwards compatibility rework instructions. They are from my personal email sent by forum member Mieze. She's like Super Woman when it comes to ACPI (any type of) development! All of the credit for this work need to be directed to her, She's the brains behind the operation so to speak. ;)

Hello Mrengles!


Attached to this mail you'll find my DSDT with the USB patch (named experimental), the one without the patch to give you a chance to compare both and my main inspiration, the extracted ACPI data of a MacBook Pro 9,2. I also attached the 7 series chipset's datasheet because it was a valuable source of in information which helped me to understand Apple's code.

Lets start with the XHCI-Controller, device XHC. As the MacBook Pro's DSDT calls it HXC1 I renamed it but I don't think that this is crucial but it helped to minimize the changes in the code I took from the MacBook Pro's DSDT.

I removed all of the controller's initialization methods (CUID, POSC, ESEL, XSEL, XWAK) in my DSDT and inserted the _INI and _DSM methods found in the MacBook Pro's DSDT. I also had do edit Operation Region XH1C and add Operation Region XHC2. Please notice that the MacBook Pro's methods also switch some of the chipset's GPIO pins but I'm quite sure that is specific to the MacBook Pro's hardware.
Therefore I removed the instructions accessing the GPIO pins from the methods I copied over. You should be able to copy & paste the methods from my edited DSDT.

Next I added methods XHCA-XHCD and EHCA-EHCD which implement the switch of the ports between the controllers.

Finally I reworked the controllers hub device RHUB to look more like the MacBook Pro's one because MSI's original DSDT used to have a different multiplexing scheme. I removed the high speed ports HSP1-4 and renamed the super speed ports SSP1-4 to PRT1-4. I also removed some multiplexing instructions from each port's _PLD and _UPC methods. Please notice the labels Name (MUXS, "EHCA") to Name (MUXS, "EHCD") I added to the port's devices. They are crucial for the switch to work because they seem to provide information about which methods have to be called in order to perform a switch.

The USB 3.0 controllers ports are multiplexed with the USB 2.0 ports of the controller found at address 0x001D0000 . Look for the code below.

Code:
Name (_ADR, 0x001D0000)

In order to identify it. In my DSDT it's device EHC1 but it might be different in yours. It's the address that matters. Here I added methods XHCA-XHCD, EHCA-EHCD, _DSM and XHCN (copy & past from my DSDT should work). Next I had to add Name (MUXS, "XHCA") to Name (MUXS, "XHCD") to the controller's hub ports but as there are 8 ports and only 4 are multiplexed with the XHCI controller you'll have to find out which ones are the correct one's making this the most difficult part of all. In my case 4 of the ports have method _DSM while the other 4 ones don't. I took the ones without method _DSM and added Name (MUXS, "XHCA") to Name (MUXS, "XHCD") to them. I was lucky because it was the correct choice. It worked but you'll have to trial-and-error in order to find out the correct combination for your board!


Last you might have to make some changes to your original DSDT's code in order to reconcile it with the patches:


1) Add (copy & paste) method OSDW.


2) Edit method _OSC of device PCI0. After carefully comparing Apple's and MSI's implementation I decided to replace MSI's _OSC method with Apple's implementation with minimal changes: I removed only the GPIO related instructions. My advice is to copy & paste mine and see if it works.


3) Under Scope (_SB.PCI0) edit method _INI to include the lines


Code:
               If (_OSI ("Darwin"))
               {
                   Store (0x2710, OSYS)
               }



The method is called during system initialization on order to inform the BIOS of the OS which is running.


4) Resolve any references to the XHCI controller's methods or devices you renamed or removed. For example I had to change method _WAK in order to call \_SB.PCI0.XHC1._INI instead of \_SB.PCI0.XHC.XWAK ().


Ok, I hope this information will be enough for you to successfully complete the patch. Feel free to contact me again if you have further questions or get stuck at some point. It will probably take some hours to get the work done.


Good luck!


Mieze

View attachment DSDT-MSI-B75MA-P45-V1.4a.aml.zip
View attachment MacBookPro9_2-ACPI.zip
View attachment DSDT-MSI-B75MA-P45-V1.4-Experimental.aml.zip


I'm unable to upload the Intel 7 Series data sheet, because of the attachment size restrictions. I'll try to find a link online, or upload somewhere.

You can also have a look at the DSDT's that i've patched using Mieze's method below.

View attachment ASRock Z77 Professional-M DSDT v1.90.zip

Hers's just another email with some more information about the multiplexing of the USB3.0 and USB2.0 ports.

Hello Robert,


There are eight ports on EHC1's hub device, four of them are paired with XHC1's ports, while the other four of them are not and should be connected to USB 2.0 ports or may be left unconnected. First of all you'll have to collect some data about the port mapping of EHC1. Try to identify the ports using IORegistryExplorer and USB Prober, available on Apple's developer website, by connecting a USB 2.0 device to each available port (USB3.0 and USB2.0).


This is the mapping I assumed when I created the DSDT:


Code:
XHC1            EHC1
--------        --------
PRT1     <->    PR11
PRT2     <->    PR12
PRT3     <->    PR13
PRT4     <->    PR18

Mieze

Good Luck & Godspeed!

Mrengles (Robert)
 
It would be great if someone could make a IvyBridgeUSB3.0.txt patch for DSDT Editor or the like. It would make life so much easier and allow more custom Mac builders to have working backward compatible USB 3.0 to 2.0/1.0 ports with there IB hacks.
 
It would be great if someone could make a IvyBridgeUSB3.0.txt patch for DSDT Editor or the like. It would make life so much easier and allow more custom Mac builders to have working backward compatible USB 3.0 to 2.0/1.0 ports with there IB hacks.

Unfortunately I don't have enough skills to do such a cool job. But maybe Mieze could help us? what do you think?
 
Mrengles,

Thank you for taking the time creating your DSDT, and for posting all of the info for this board. I have used a hackintosh for over two years now and have been a mac user for about 6. I really love the specs and red look of the ASRock Z77 Professional-M, and would love to use it for my new build. I was discouraged of buying it though because of the Broadcom chipset. After seeing this thread I have a new hope. I have a few questions about your build and this motherboard, if you dont mind?

1) How do you like the mobo overall? Any stability issues? How is the sound? Any issues with the i/o ports or any quirks that you have seen since you started using it?

2) Did you patch the bios prior to install? IE:http://legacy.tonymacx86.com/viewtopic.php?f=14&t=54196

3) Did you use multibeast for this? I see that you use Clover to boot, i havent used it before, but I am not afraid to experiment with a new bootloader. I guess what I'm really asking is do you mind posting your install process?

4) At what point did you install the Broadcom Kext during the process?

I currently have a Gigabyte GA-H67MA-UD2H-B3, sandy i3-2100, 16Mb DD3, and either a HD 5770 1Gb (batmobile) or a Sapphire HD 6850 2Gb for video (currently learning on how to get this card fully up and running :lol:)

I am going to buy a new Ivy i5-3750k and a SSD (looking at one of the new samsung pro drives) for this build while canabalizing the rest of my hardware from the old comp.


If you can answer any or all of the questions, I would greatly appreciate it. I look forward to hearing back from you.

Thanks again
~soul
 
Mrengles,

Thank you for taking the time creating your DSDT, and for posting all of the info for this board. I have used a hackintosh for over two years now and have been a mac user for about 6. I really love the specs and red look of the ASRock Z77 Professional-M, and would love to use it for my new build. I was discouraged of buying it though because of the Broadcom chipset. After seeing this thread I have a new hope. I have a few questions about your build and this motherboard, if you dont mind?

1) How do you like the mobo overall? Any stability issues? How is the sound? Any issues with the i/o ports or any quirks that you have seen since you started using it?

2) Did you patch the bios prior to install? IE:http://legacy.tonymacx86.com/viewtopic.php?f=14&t=54196

3) Did you use multibeast for this? I see that you use Clover to boot, i havent used it before, but I am not afraid to experiment with a new bootloader. I guess what I'm really asking is do you mind posting your install process?

4) At what point did you install the Broadcom Kext during the process?

I currently have a Gigabyte GA-H67MA-UD2H-B3, sandy i3-2100, 16Mb DD3, and either a HD 5770 1Gb (batmobile) or a Sapphire HD 6850 2Gb for video (currently learning on how to get this card fully up and running :lol:)

I am going to buy a new Ivy i5-3750k and a SSD (looking at one of the new samsung pro drives) for this build while canabalizing the rest of my hardware from the old comp.


If you can answer any or all of the questions, I would greatly appreciate it. I look forward to hearing back from you.

Thanks again
~soul


Soul,

Your welcome! I'm glad to hear this thread has helped you out in some way. The ASRock Z77 Professional-M has been the most stable Hackintosh i've ever owned. You will not regret using this motherboard for your project. I would recommend it over a Gigabyte board any day of the week.

1) No stability issues at all =), sound work 100% without popping or artifacts, No issues with I/O ports you will need hacked Caldigit 3rd party USB driver for the ASMedia USB 3.0 ports to work.

2) Yes I patched my UEFI (Bios) before installing OS X 10.8.2

3) No I don't use MultiBeast I only Install FakeSMC.kext and Patched IONetworking for Broadcom BCM57781 ethernet with Kext Wizard. Every thing else is handled by Clover Bootloader and a custom bash script that i've made for patching AppleHDA. =)

4) My first boot after installing OS X Mountain Lion 10.8.2 (Same with all the other extensions and patches).

I dont have the time to write out my install process with Clover (I'm swamped with work ATM).

IF you need help with Clover checkout projectosx, because they are the most active with Clover users, plus all the Clover Devs hangout there.

Good luck and godspeed!

Gratitude,

Mrengles

PS. The Broadcom wired NICs work much better then the Realtek garbage on most motherboard, especially with the right drivers.
 
mrengles, thanks to the info provided by Mieze (and posted from you in #12) I edited my dsdt in order to have usb2 backward from usb3.
On the back panel they work both as 2.0 and 3.0. On the front panel via internal header they now work only as 2.0, though. Have you got any suggestion? DSDT editing was not that simple, I'm not sure to have understood everything. Need some little help, here. Could you point me in some direction?
Attached ioreg and DSDT

One more thing: my board in not asrock, it's Zotac Z77-itx WiFi, but I found a lot of stuff in dsdt close to your board.
 

Attachments

  • giacomoleopardo usb3.zip
    437.6 KB · Views: 102
Mrengles,

Hey thank you for the quick response. I hear you about busy with work, and a guide for your process would be massive. Very stoked to get this new mobo now. I spent most of last night reading about clover. Now I am even more determined to get my system closer to a mac. Thank you for pointing me in the right direction:cool:

Take it EZ and Thanks again
~soul
 
mrengles, thanks to the info provided by Mieze (and posted from you in #12) I edited my dsdt in order to have usb2 backward from usb3.
On the back panel they work both as 2.0 and 3.0. On the front panel via internal header they now work only as 2.0, though. Have you got any suggestion? DSDT editing was not that simple, I'm not sure to have understood everything. Need some little help, here. Could you point me in some direction?
Attached ioreg and DSDT

One more thing: my board in not asrock, it's Zotac Z77-itx WiFi, but I found a lot of stuff in dsdt close to your board.


I'll take a look at your USB 3.0 patched DSDT. Hopefully I can find something. I would recommend you go over the guide again with your already patched DSDT, perhaps you missed something?

The first time I used the "Mieze Method" only two of the 4 USB 3.0 ports worked because I missed a step.

Hello Robert,


There are eight ports on EHC1's hub device, four of them are paired with XHC1's ports, while the other four of them are not and should be connected to USB 2.0 ports or may be left unconnected. First of all you'll have to collect some data about the port mapping of EHC1. Try to identify the ports using IORegistryExplorer and USB Prober, available on Apple's developer website, by connecting a USB 2.0 device to each available port (USB3.0 and USB2.0).


This is the mapping I assumed when I created the DSDT:


Code:
XHC1 EHC1
-------- --------
PRT1 <-> PR11
PRT2 <-> PR12
PRT3 <-> PR13
PRT4 <-> PR18


Mieze

Good Luck and keep your fingers crossed that we find somthing.

Mrengles
 
Status
Not open for further replies.
Back
Top