Jump to content
InsanelyMac Forum
  • Announcements

    • Allan

      Solution to create a topic or post.   04/24/2018

      Hello guys. The majority of you are having issues to create a topic or post here. This are a problem with our current theme InsanelyMac.  Now the theme will be the Default IPS. Sorry for any inconvenience.
kitmac

What method works best for ALC888 sound....?

Recommended Posts

Advertisement

Hey, wondering if anyone can help me out here. I have a GA-EX58-UD3R (Gigabyte) which as far as I believe uses the ALC888 codec (ICH10R chipset) and so far none of the kexts available from this thread have worked, that is, unless I've installed them to the wrong place... I'm using 32-bit Snow Leopard.

 

Where should the kexts be installed to? I assume they should all go to S/L/E, but then again I'm not entirely sure. I have also tried VoodooHDA.kext which doesn't work correctly for my board - so that option is ruled out.

 

I had a perfectly working set of kexts when I was running 10.5.8 so I'm quite annoyed that they haven't continued to work, but I thought I would upload them for anyone that's really eager to lend a hand in figuring this out.

 

https://dl.getdropbox.com/u/790162/UD3R_10.5_audio_kexts.zip

 

The above download is not Snow Leopard related, so please don't download for that reason!

 

I have looked into patching AppleHDA.kext for SL and patching DSDT (as cparm's post details) which I am way too much of a novice for.

 

If anyone could offer any help/guidance at all and I would be infinitely greatful. I could especially use some advice from people with the same board!

 

Thanks in advance!

Share this post


Link to post
Share on other sites
lol, this is my patched applehda, i can recognize it because of the codecverb, and some ".other" little things :D

 

if this one work for you in 32bit, u can use vanilla snow leopard applehda , and my legacy kext, with dsdt or the kabyl HDAenabler for 64bit

 

You sir rock! I got it working. I had a few issues but I will show you my HDEF based on your snippit. You must put this in the entire area. I got errors with the code you gave but I figured it out. For the noobs like me:

			Device (HDEF)
		{
			Name (_ADR, 0x001B0000)
			Method (_PRW, 0, NotSerialized)
			{
				Return (Package (0x02)
				{
					0x0D, 
					0x05
				})
			}

		  Method (_DSM, 4, NotSerialized)
			{
				Store (Package (0x0C)
					{
						"codec-id", 
						Buffer (0x04)
						{
							0x88, 0x08, 0xEC, 0x10
						}, 

						"layout-id", 
						Buffer (0x04)
						{
							0x78, 0x03, 0x00, 0x00
						}, 

						"device-type", 
						Buffer (0x07)
						{
							"ALC888"
						}, 

						"PinConfigurations", 
						Buffer (0x28)
						{
							/* 0000 */	0x50, 0x41, 0x01, 0x01, 0x50, 0x40, 0x21, 0x02, 
							/* 0008 */	0x30, 0x01, 0x10, 0x90, 0x20, 0x60, 0x01, 0x01, 
							/* 0010 */	0x70, 0x20, 0x01, 0x01, 0xA0, 0x90, 0xA1, 0x02, 
							/* 0018 */	0x10, 0x30, 0x81, 0x01, 0x40, 0x90, 0xA1, 0x01, 
							/* 0020 */	0x60, 0x61, 0x4B, 0x01, 0xF0, 0x01, 0xCB, 0x01
						}, 

						"reg", 
						Buffer (0x28)
						{
							/* 0000 */	0x00, 0xD8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
							/* 0008 */	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
							/* 0010 */	0x00, 0x00, 0x00, 0x00, 0x10, 0xD8, 0x00, 0x02, 
							/* 0018 */	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
							/* 0020 */	0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00
						}, 

						"platformFamily", 
						Buffer (One)
						{
							0x00
						}
					}, Local0)
				DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
				Return (Local0)
			}

			Method (DTGP, 5, NotSerialized)
			{
				If (LEqual (Arg0, Buffer (0x10)
						{
							/* 0000 */	0xC6, 0xB7, 0xB5, 0xA0, 0x18, 0x13, 0x1C, 0x44, 
							/* 0008 */	0xB0, 0xC9, 0xFE, 0x69, 0x5E, 0xAF, 0x94, 0x9B
						}))
				{
					If (LEqual (Arg1, One))
					{
						If (LEqual (Arg2, Zero))
						{
							Store (Buffer (One)
								{
									0x03
								}, Arg4)
							Return (One)
						}

						If (LEqual (Arg2, One))
						{
							Return (One)
						}
					}
				}

				Store (Buffer (One)
					{
						0x00
					}, Arg4)
				Return (Zero)
			}
		}

 

Thanks again for getting me onboard sound!

 

Hey, wondering if anyone can help me out here. I have a GA-EX58-UD3R (Gigabyte) which as far as I believe uses the ALC888 codec (ICH10R chipset) and so far none of the kexts available from this thread have worked, that is, unless I've installed them to the wrong place... I'm using 32-bit Snow Leopard.

 

Where should the kexts be installed to? I assume they should all go to S/L/E, but then again I'm not entirely sure. I have also tried VoodooHDA.kext which doesn't work correctly for my board - so that option is ruled out.

 

I had a perfectly working set of kexts when I was running 10.5.8 so I'm quite annoyed that they haven't continued to work, but I thought I would upload them for anyone that's really eager to lend a hand in figuring this out.

 

https://dl.getdropbox.com/u/790162/UD3R_10.5_audio_kexts.zip

 

The above download is not Snow Leopard related, so please don't download for that reason!

 

I have looked into patching AppleHDA.kext for SL and patching DSDT (as cparm's post details) which I am way too much of a novice for.

 

If anyone could offer any help/guidance at all and I would be infinitely greatful. I could especially use some advice from people with the same board!

 

Thanks in advance!

 

I would use cparm's files and the code he posted to patch your dsdt.aml file. If you need help patching let me know I can point you in the right direction. I did not use VoodooHDA and working with vanilla AppleHDA.kext

 

Put these in your S/L/E folder and rebuild your kextcache with Kext Utility.

 

  • LegacyAppleHDAHardwareConfigDriver.kext
  • LegacyHDAController.kext
  • LegacyHDAPlatformDriver.kext
  • LegacyHDA.kext (not sure about this one)

 

Good Luck!

Share this post


Link to post
Share on other sites

here's from my dsdt:

			Device (AZAL)
		{
			Name (_ADR, 0x001B0000)
			Method (_PRW, 0, NotSerialized)
			{
				Return (Package (0x02)
				{
					0x05, 
					0x05
				})
			}
		}

		Name (BUFA, ResourceTemplate ()
		{
			IRQ (Level, ActiveLow, Shared, )
				{3,4,5,6,7,9,10,11,12,14,15}
		})
		Name (BUFB, ResourceTemplate ()
		{
			IRQ (Level, ActiveLow, Shared, )
				{}
		})
		CreateWordField (BUFB, One, IRQV)

anyone who can help me how to proceed?

 

i'm using jinnggoff's patched applehda matched w/ the hdaenabler. sounds work better than voodoohda where audio is already shown as built-in and it doesn't get distorted after waking up from sleep. mic-in still won't work though.

 

@jinnggoff

 

do u have ur mic-in working?

Share this post


Link to post
Share on other sites

How does this dongle work? Is it Plug and Play? Does it require any kexts? Does it work on SL 64bit?

 

Thanks

 

I took your advice... got the same exact dongle.... problem solved!!!!! :D

Share this post


Link to post
Share on other sites
lol, this is my patched applehda, i can recognize it because of the codecverb, and some ".other" little things ;)

 

...

 

Oops -- Sorry cparm -- I made a mistake. My audio works after adding the Legacy kexts to S/L/E. However, I can't help but notice that the sound is very harsh, kind of like it is being overdriven. Any ideas?

 

 

Thanks in advance!

Share this post


Link to post
Share on other sites
I would use cparm's files and the code he posted to patch your dsdt.aml file. If you need help patching let me know I can point you in the right direction. I did not use VoodooHDA and working with vanilla AppleHDA.kext

 

Put these in your S/L/E folder and rebuild your kextcache with Kext Utility.

 

  • LegacyAppleHDAHardwareConfigDriver.kext
  • LegacyHDAController.kext
  • LegacyHDAPlatformDriver.kext
  • LegacyHDA.kext (not sure about this one)

 

Good Luck!

 

Hey, I've just tried patching my DSDT using iaslMe but it's giving me errors. I did exactly what was said (search for AZAL, replace etc.) and added in the Device (HDEF) section... Here's the log.

 

Intel ACPI Component Architecture
ASL Optimizing Compiler version 20080926 [Oct  4 2008]
Copyright (C) 2000 - 2008 Intel Corporation
Supports ACPI Specification Revision 3.0a

/Users/Callum/Desktop/DSDT.dsl   227:	 Method (_WAK, 1, NotSerialized)
Warning  1080 -  Reserved method must return a value ^  (_WAK)

---

/Users/Callum/Desktop/DSDT.dsl  5080:					 DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Error	4063 -						Object does not exist ^  (DTGP)

---

ASL Input:  /Users/Callum/Desktop/DSDT.dsl - 5657 lines, 182353 bytes, 2216 keywords
Compilation complete. 1 Errors, 1 Warnings, 0 Remarks, 20 Optimizations

 

Apparently this part:

 

					DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
				Return (Local0)

 

Can anyone help me on this?

Share this post


Link to post
Share on other sites

you forgot to add Method DTGP :)

just add under HDEF, for example,

		
Device (HDEF)
  {
.....
  }

  Method (DTGP, 5, NotSerialized)
  {
	If (LEqual (Arg0, Buffer (0x10)
			{
				/* 0000 */	0xC6, 0xB7, 0xB5, 0xA0, 0x18, 0x13, 0x1C, 0x44, 
				/* 0008 */	0xB0, 0xC9, 0xFE, 0x69, 0x5E, 0xAF, 0x94, 0x9B
			}))
	{
		If (LEqual (Arg1, One))
		{
			If (LEqual (Arg2, Zero))
			{
				Store (Buffer (One)
					{
						0x03
					}, Arg4)
				Return (One)
			}

			If (LEqual (Arg2, One))
			{
				Return (One)
			}
		}
	}

	Store (Buffer (One)
		{
			0x00
		}, Arg4)
	Return (Zero)
}

Share this post


Link to post
Share on other sites
Hey, I've just tried patching my DSDT using iaslMe but it's giving me errors. I did exactly what was said (search for AZAL, replace etc.) and added in the Device (HDEF) section... Here's the log.

 

Intel ACPI Component Architecture
ASL Optimizing Compiler version 20080926 [Oct  4 2008]
Copyright (C) 2000 - 2008 Intel Corporation
Supports ACPI Specification Revision 3.0a

/Users/Callum/Desktop/DSDT.dsl   227:	 Method (_WAK, 1, NotSerialized)
Warning  1080 -  Reserved method must return a value ^  (_WAK)

---

/Users/Callum/Desktop/DSDT.dsl  5080:					 DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Error	4063 -						Object does not exist ^  (DTGP)

---

ASL Input:  /Users/Callum/Desktop/DSDT.dsl - 5657 lines, 182353 bytes, 2216 keywords
Compilation complete. 1 Errors, 1 Warnings, 0 Remarks, 20 Optimizations

 

Apparently this part:

 

					DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
				Return (Local0)

 

Can anyone help me on this?

so u "natively" have both Device (AZAL) and Device (HDEF) in your dsdt?

Share this post


Link to post
Share on other sites
voodohda, efi strings, or tarugas patch....???

 

voodoo seems to work nicely until you put the machine to sleep.

Sound distortion upon wake .....

 

Tarugas patch gives me a KP as soon it patches applehda.kext

 

Not too familiar with the efi string method for sound.....

 

 

Here is what I found and use and there is no the crisp sound at the beginning

 

http://www.mediafire.com/download.php?gihnyzggy1z

 

it just work perfet, BUT first remove the same filename kext, before install this ones

 

 

cheers

Share this post


Link to post
Share on other sites
cparm's method works for me on Snow 64, sleep and all. Thanks cparm.

 

can u post a link to this cparm method..........???

Share this post


Link to post
Share on other sites
I had a hard time finding a working ALC888

My dsdt does not have AZA

 

I removed the AppleHDA from S/L/E and replaced with the one from this file.

http://www.insanelymac.com/forum/index.php...t=#entry1253650

 

I Also used the HDenabler from this file but nothing else.

 

worked for single line out only but i have sound now, better then none.

 

Try these. They work VERY well for my ALC1200 and the ALC888 is supposed to be almost (if not ) exactly the same.

Apparently a lot of other UNIX distro's use the same kernel module for both devices.

 

 

I get the following using these kexts. Sound is better than it was in Leopard.. in fact.. its superior to anything I have had running on the board (ASUS P6T-non-Deluxe)

Intel High Definition Audio:

 

Device ID: 0x10438357

Audio ID: 12

Available Devices:

S/P-DIF Out:

Connection: Internal

Line Out:

Connection: 1/8-Inch Jack

External Microphone:

Connection: 1/8-Inch Jack

Headphone:

Connection: 1/8-Inch Jack

S/P-DIF Out:

Connection: Combo

S/P-DIF In:

Connection: Combo

AppleHDA.kext.zip

LegacyHDA.kext.zip

Share this post


Link to post
Share on other sites

I've been trying to get my ALC888 (EX58-UD3R) to work using DSDT. However some things are still unclear to me, I've patched the DSDT with several Device (HDEF) lay-outs and tried multiple kexts to get it working but none resulted in working audio under Snow Leopard.

 

I hope someone here can direct me to information involved on discovering codec-id, layout-id, device-type, pinconfiguration addresses and layout information under Device (HDEF).

 

I assume my issue is caused by trying DSDT meant for other motherboards, I just have no clue on how to gather all this information myself.

 

				  "codec-id",
						Buffer (0x04)
						{
							0x88, 0x08, 0xEC, 0x10
						},

				   "layout-id",
						Buffer (0x04)
						{
							0x78, 0x03, 0x00, 0x00
						},

				"device-type",
						Buffer (0x07)
						{
							"ALC888"
						},

						"PinConfigurations",
						Buffer (0x28)
						{
							/* 0000 */	0x50, 0x41, 0x01, 0x01, 0x50, 0x40, 0x21, 0x02,
							/* 0008 */	0x30, 0x01, 0x10, 0x90, 0x20, 0x60, 0x01, 0x01,
							/* 0010 */	0x70, 0x20, 0x01, 0x01, 0xA0, 0x90, 0xA1, 0x02,
							/* 0018 */	0x10, 0x30, 0x81, 0x01, 0x40, 0x90, 0xA1, 0x01,
							/* 0020 */	0x60, 0x61, 0x4B, 0x01, 0xF0, 0x01, 0xCB, 0x01
						},

						"reg",
						Buffer (0x28)
						{
							/* 0000 */	0x00, 0xD8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
							/* 0008 */	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
							/* 0010 */	0x00, 0x00, 0x00, 0x00, 0x10, 0xD8, 0x00, 0x02,
							/* 0018 */	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
							/* 0020 */	0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00
						},

Share this post


Link to post
Share on other sites
I've been trying to get my ALC888 (EX58-UD3R) to work using DSDT. However some things are still unclear to me, I've patched the DSDT with several Device (HDEF) lay-outs and tried multiple kexts to get it working but none resulted in working audio under Snow Leopard.

 

I hope someone here can direct me to information involved on discovering codec-id, layout-id, device-type, pinconfiguration addresses and layout information under Device (HDEF).

 

I assume my issue is caused by trying DSDT meant for other motherboards, I just have no clue on how to gather all this information myself.

 

				  "codec-id",
						Buffer (0x04)
						{
							0x88, 0x08, 0xEC, 0x10
						},

				   "layout-id",
						Buffer (0x04)
						{
							0x78, 0x03, 0x00, 0x00
						},

				"device-type",
						Buffer (0x07)
						{
							"ALC888"
						},

						"PinConfigurations",
						Buffer (0x28)
						{
							/* 0000 */	0x50, 0x41, 0x01, 0x01, 0x50, 0x40, 0x21, 0x02,
							/* 0008 */	0x30, 0x01, 0x10, 0x90, 0x20, 0x60, 0x01, 0x01,
							/* 0010 */	0x70, 0x20, 0x01, 0x01, 0xA0, 0x90, 0xA1, 0x02,
							/* 0018 */	0x10, 0x30, 0x81, 0x01, 0x40, 0x90, 0xA1, 0x01,
							/* 0020 */	0x60, 0x61, 0x4B, 0x01, 0xF0, 0x01, 0xCB, 0x01
						},

						"reg",
						Buffer (0x28)
						{
							/* 0000 */	0x00, 0xD8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
							/* 0008 */	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
							/* 0010 */	0x00, 0x00, 0x00, 0x00, 0x10, 0xD8, 0x00, 0x02,
							/* 0018 */	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
							/* 0020 */	0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00
						},

 

The audio works fine for me on an EX58-UD3R, in fact, it's great quality. I even listen to music on it.

 

Look back a couple of pages at my posts. I used cparm's ALC888 DSDT solution. You need to use all three kexts he has provided in that post, and SL's original AppleHDA all in S/L/E, patch your DSDT and it should work fine. Hope that helps!

Share this post


Link to post
Share on other sites
The audio works fine for me on an EX58-UD3R, in fact, it's great quality. I even listen to music on it.

 

Look back a couple of pages at my posts. I used cparm's ALC888 DSDT solution. You need to use all three kexts he has provided in that post, and SL's original AppleHDA all in S/L/E, patch your DSDT and it should work fine. Hope that helps!

 

Yeah I tried it. It's good to hear someone with the board has it going, it gives me hope! :D

I'm going to give it another try and start from scratch!

 

At least I know I don't have to lookup all that information.

Share this post


Link to post
Share on other sites
The audio works fine for me on an EX58-UD3R, in fact, it's great quality. I even listen to music on it.

 

Look back a couple of pages at my posts. I used cparm's ALC888 DSDT solution. You need to use all three kexts he has provided in that post, and SL's original AppleHDA all in S/L/E, patch your DSDT and it should work fine. Hope that helps!

 

I tried it once more without results.

 

Redid my whole Snow Leopard installation and rebuild the DSDT from scratch once more.

Now I'm up and running with audio, thanks callum and cparm :)

Would still love to know why it wouldn't work earlier as I'm pretty sure my current config is the same as the previous.

 

I have attached my DSDT.dsl which is using cparm's modified Device (HDEF) section, it also includes the CMOS reset fix. I'm not completely familiar with interchanging DSDT's on the same motherboard but it would be advised to build your own. This is working on EX58-UD3R with ALC888.

 

Required tool: DSDT_Patcher1.0.1e

 

In short the instructions are as following, partly provided by the "How to patch DSDT with LAN and HDEF functions".

Since I'm using Digital_Dreamers script to install Snow Leopard I ran the DSDT patcher option from the script.

I took dsdt_fixed.txt from X58_Mobo_Patcher_Installer/~extra/DSDT_Patcher/Debug/ directory and renamed it to DSDT.dsl.

 

If you do not have the script you will need to do the following yourself:

Download DSDT Patcher and unpack, open a terminal and navigate to the directory.

Execute:

./DSDT\ Patcher -newHPET

and press 0, you should now have a dsdt_fixed.txt in your Debug directory, rename to DSDT.dsl.

 

Open up DSDT.dsl and search for the line

Notify (\_SB.PCI0.USB0, Zero)

Make this section look as following(basically you add the Return (Package (0x02) { ... }:

		Notify (\_SB.PCI0.USB0, Zero)
	Notify (\_SB.PCI0.USB1, Zero)
	Notify (\_SB.PCI0.USB2, Zero)
	Notify (\_SB.PCI0.USB3, Zero)
	Notify (\_SB.PCI0.USB4, Zero)
	Notify (\_SB.PCI0.USB5, Zero)
	Return (Package (0x02)
			{
				 0x00, 
				 0x00
			})

 

Now search for AZAL and replace it with HDEF. In my case there are 2 instances.

First one:

			Notify (\_SB.PCI0.AZAL, 0x02)

Change this to:

			Notify (\_SB.PCI0.HDEF, 0x02)

 

Second one:

			Device (AZAL)
		{
			Name (_ADR, 0x001B0000)
			Method (_PRW, 0, NotSerialized)
			{
				Return (Package (0x02)
				{
					0x0D, 
					0x05
				})
			}
		}

 

Replace with the following:

			Device (HDEF)
		{
			Name (_ADR, 0x001B0000)
			Method (_PRW, 0, NotSerialized)
			{
				Return (Package (0x02)
				{
					0x0D,
					0x05
				})
			}

			Method (_DSM, 4, NotSerialized)
			{
				Store (Package (0x0C)
					{
						"codec-id",
						Buffer (0x04)
						{
							0x88, 0x08, 0xEC, 0x10
						},

						"layout-id",
						Buffer (0x04)
						{
							0x78, 0x03, 0x00, 0x00
						},

						"device-type",
						Buffer (0x07)
						{
							"ALC888"
						},

						"PinConfigurations",
						Buffer (0x28)
						{
							/* 0000 */	0x50, 0x41, 0x01, 0x01, 0x50, 0x40, 0x21, 0x02,
							/* 0008 */	0x30, 0x01, 0x10, 0x90, 0x20, 0x60, 0x01, 0x01,
							/* 0010 */	0x70, 0x20, 0x01, 0x01, 0xA0, 0x90, 0xA1, 0x02,
							/* 0018 */	0x10, 0x30, 0x81, 0x01, 0x40, 0x90, 0xA1, 0x01,
							/* 0020 */	0x60, 0x61, 0x4B, 0x01, 0xF0, 0x01, 0xCB, 0x01
						},

						"reg",
						Buffer (0x28)
						{
							/* 0000 */	0x00, 0xD8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
							/* 0008 */	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
							/* 0010 */	0x00, 0x00, 0x00, 0x00, 0x10, 0xD8, 0x00, 0x02,
							/* 0018 */	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
							/* 0020 */	0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00
						},

						"platformFamily",
						Buffer (One)
						{
							0x00
						}
					}, Local0)
				DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
				Return (Local0)
			}
		}

  Method (DTGP, 5, NotSerialized)
  {
	If (LEqual (Arg0, Buffer (0x10)
			{
				/* 0000 */	0xC6, 0xB7, 0xB5, 0xA0, 0x18, 0x13, 0x1C, 0x44,
				/* 0008 */	0xB0, 0xC9, 0xFE, 0x69, 0x5E, 0xAF, 0x94, 0x9B
			}))
	{
		If (LEqual (Arg1, One))
		{
			If (LEqual (Arg2, Zero))
			{
				Store (Buffer (One)
					{
						0x03
					}, Arg4)
				Return (One)
			}

			If (LEqual (Arg2, One))
			{
				Return (One)
			}
		}
	}

	Store (Buffer (One)
		{
			0x00
		}, Arg4)
	Return (Zero)
}

 

Unrelated to the audio but a must if you're going to run Snow Leopard is the CMOS Reset Fix. If you're using Digital_Dreamers install script this is already done, this should only be necessary if you manually run DSDT Patcher.

 

Search dsdt.dsl for

Device (RTC)

Change the 0x04 you can see under Name (ATT0, ResourceTemplate () and under Name (ATT1, ResourceTemplate () to 0x02

 

Final result in my case:

				Device (RTC)
			{
				Name (_HID, EisaId ("PNP0B00"))
				Name (ATT0, ResourceTemplate ()
				{
					IO (Decode16,
						0x0070,			 // Range Minimum
						0x0070,			 // Range Maximum
						0x00,			   // Alignment
						0x02,			   // Length
						)
				})
				Name (ATT1, ResourceTemplate ()
				{
					IO (Decode16,
						0x0070,			 // Range Minimum
						0x0070,			 // Range Maximum
						0x00,			   // Alignment
						0x02,			   // Length
						)
				})
				Method (_CRS, 0, NotSerialized)

 

Save and close DSDT.dsl

Open up a terminal and navigate to the directory, make sure you have the iasl executable from DSDT Patcher in the same directory and execute the command: ./iasl -sa DSDT.dsl

 

If everything went oke you should have no errors. Now copy DSDT.aml to your desired location, in my case this is /Extra. Place the included kext files in /S/L/E or /Extra, rebuild caches and reboot.

 

Kexts and Device (HDEF) thanks to CPARM and thanks to tmongkol for the patching instructions.

dsdt.dsl.zip

LegacyHDA_alc888_address_2__for_snow.zip

Share this post


Link to post
Share on other sites

I have a question : if i add the part of your dsdt related to audio :

   Device (HDEF)
		{
			Name (_ADR, 0x001B0000)
			Method (_PRW, 0, NotSerialized)
			{
				Return (Package (0x02)
				{
					0x0D,
					0x05
				})
			}

			Method (_DSM, 4, NotSerialized)
			{
				Store (Package (0x0C)
					{
						"codec-id",
						Buffer (0x04)
						{
							0x88, 0x08, 0xEC, 0x10
						},

						"layout-id",
						Buffer (0x04)
						{
							0x78, 0x03, 0x00, 0x00
						},

						"device-type",
						Buffer (0x07)
						{
							"ALC888"
						},

						"PinConfigurations",
						Buffer (0x28)
						{
							/* 0000 */	0x50, 0x41, 0x01, 0x01, 0x50, 0x40, 0x21, 0x02,
							/* 0008 */	0x30, 0x01, 0x10, 0x90, 0x20, 0x60, 0x01, 0x01,
							/* 0010 */	0x70, 0x20, 0x01, 0x01, 0xA0, 0x90, 0xA1, 0x02,
							/* 0018 */	0x10, 0x30, 0x81, 0x01, 0x40, 0x90, 0xA1, 0x01,
							/* 0020 */	0x60, 0x61, 0x4B, 0x01, 0xF0, 0x01, 0xCB, 0x01
						},

						"reg",
						Buffer (0x28)
						{
							/* 0000 */	0x00, 0xD8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
							/* 0008 */	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
							/* 0010 */	0x00, 0x00, 0x00, 0x00, 0x10, 0xD8, 0x00, 0x02,
							/* 0018 */	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
							/* 0020 */	0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00
						},

						"platformFamily",
						Buffer (One)
						{
							0x00
						}
					}, Local0)
				DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
				Return (Local0)
			}
		}

  Method (DTGP, 5, NotSerialized)
  {
	If (LEqual (Arg0, Buffer (0x10)
			{
				/* 0000 */	0xC6, 0xB7, 0xB5, 0xA0, 0x18, 0x13, 0x1C, 0x44,
				/* 0008 */	0xB0, 0xC9, 0xFE, 0x69, 0x5E, 0xAF, 0x94, 0x9B
			}))
	{
		If (LEqual (Arg1, One))
		{
			If (LEqual (Arg2, Zero))
			{
				Store (Buffer (One)
					{
						0x03
					}, Arg4)
				Return (One)
			}

			If (LEqual (Arg2, One))
			{
				Return (One)
			}
		}
	}

	Store (Buffer (One)
		{
			0x00
		}, Arg4)
	Return (Zero)
}

is this related to only alc888 or it depends on your motherboard too ?

in fact, will this fix work on a different gigabyte mobo but with alc888 sound chipset ?

Share this post


Link to post
Share on other sites
Glad to see you got it working.

 

DSDT/Kexts seem to have improved the volume as well compared to my 10.5.7 install. Slightly louder now so I don't have to crank up the speakers as much anymore.

 

And that's a great guide by the way, nice work!

Thanks! It was just a matter of gathering all the information. The credited people in my post did all the hard work. ;)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


  • Recently Browsing   0 members

    No registered users viewing this page.



  • Posts

    • Hackintosh High Sierra 10.13.3 USB Installer Boot Into USB DIrectly Enter Exit Option Menu. Clover Boot Menu Not Showing. Plz Help .................     My System Specification :

      CPU : Core i5 6400
      MB : Asus H110M-CS
      RAM : 8GB DDR 4
      HDD : WD 1TB For Windows And WD 500 GB For Hackintosh
      Bootloader : Clover
    • I think I found a way to use an nvidia helper card... On the internet they say if you cut the end of the PCI-e x1 slot, an x16 PCI-e video card will work in it. I have an 8600gt which works OOB in high sierra, but I'm not sure if I can set it as primary since in bios I have only PEG/PCI or PCI/PEG primary video. Maybe I can set it as primary from DSDT or clover?
    • My guide was good for ElCapitan where Nvidia 5200M works fine. But now I decided to install HighSierra and I found that Nvidia family Fermi will not work in the OS anyway. So I switched Optimus ON in my BIOS so I have Intel HD4000 as main graphics and switched off Nvidia by ACPI methods. Here it is.   ACPI_for HSierra.zip
    • As Apple added support for eGPUs with 10.13.4 and recommends Sapphire's Pulse RX570 and RX580 series cards for use in external cases you don't need to be an expert in order to conclude that there must be native support for these cards.   Mieze
    •     Yes sir!!!!   The THB_C cable between the TBEX 3 and the motherboard prevents TB hot plug!    After removing this cable I have full TBEX3 TB and TB XHC USB hot plug functionality with my SSDT-X299-iMacPro.aml, which I distributed several months ago (http://www.insanelymac.com/forum/topic/331658-how-to-build-your-own-imac-pro-successful-buildextended-guide/). I never realised why my TBEX3 TB and TB XHC USB SSDT implementation was working on some systems and on others not ... you provided the answer :-)  I am convinced that the SSDT now will even work with TB implementations different from the TBEX 3.   TB and TB-XHC hotplug.mov   I programmed and implemented the TBEX 3 TB SSDT implementation based on former attempts by @Mork vom Ork and @Matthew82. If I understand correctly, @Matthew82 's former work further bases on some implementations by  @maleorderbride and  @TheRacerMaster.   Note that with the TBEX 3 TB SSDT implementation detailed below, also any "Arbitrary" TB entry in the config plist in Section "Devices" of Clover Configurator is totally obsolete.          SSDT-X299-iMacPro.aml /* * Intel ACPI Component Architecture * AML/ASL+ Disassembler version 20160422-64(RM) * Copyright (c) 2000 - 2016 Intel Corporation * * Disassembling to non-symbolic legacy ASL operators * * Disassembly of iASLdOJAsj.aml, Wed Apr 25 10:27:52 2018 * * Original Table Header: * Signature "SSDT" * Length 0x00001B7B (7035) * Revision 0x01 * Checksum 0x42 * OEM ID "NICO" * OEM Table ID "X299" * OEM Revision 0x00000000 (0) * Compiler ID "INTL" * Compiler Version 0x20160422 (538313762) */ DefinitionBlock ("", "SSDT", 1, "NICO", "X299", 0x00000000) { External (_SB_.PC01.BR1A, DeviceObj) // (from opcode) External (_SB_.PC01.BR1A.PEGP, DeviceObj) // (from opcode) External (_SB_.PC01.BR1A.SL01, DeviceObj) // (from opcode) External (_SB_.PC01.BR1A.UPSB, DeviceObj) // (from opcode) External (_SB_.PC02.BR2A, DeviceObj) // (from opcode) External (_SB_.PC02.BR2A.GFX0, DeviceObj) // (from opcode) External (_SB_.PC03.BR3D.ARPT, DeviceObj) // (from opcode) External (_SB_.PCI0.ETH0, DeviceObj) // (from opcode) External (_SB_.PCI0.HDEF, DeviceObj) // (from opcode) External (_SB_.PCI0.PMCR, DeviceObj) // (from opcode) External (_SB_.PCI0.RP01.PXSX, DeviceObj) // (from opcode) External (_SB_.PCI0.RP01.XHC2, DeviceObj) // (from opcode) External (_SB_.PCI0.RP02.ETH1, DeviceObj) // (from opcode) External (_SB_.PCI0.RP05.PXSX, DeviceObj) // (from opcode) External (_SB_.PCI0.RP05.XHC3, DeviceObj) // (from opcode) External (_SB_.PCI0.RP07.PXSX, DeviceObj) // (from opcode) External (_SB_.PCI0.RP07.XHC4, DeviceObj) // (from opcode) External (_SB_.PCI0.RP09.ANS2, DeviceObj) // (from opcode) External (_SB_.PCI0.RP09.PXSX, DeviceObj) // (from opcode) External (_SB_.PCI0.SAT1, DeviceObj) // (from opcode) External (_SB_.PCI0.XHCI, DeviceObj) // (from opcode) External (GFX0, DeviceObj) // (from opcode) External (GPRW, MethodObj) // 2 Arguments (from opcode) External (OSDW, MethodObj) // 0 Arguments (from opcode) External (OSYS, UnknownObj) // (from opcode) External (PEGP, DeviceObj) // (from opcode) External (SL01, DeviceObj) // (from opcode) External (UPSB, DeviceObj) // (from opcode) Scope (\_SB.PCI0.HDEF) { Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method { Store (Package (0x16) { "AAPL,slot-name", Buffer (0x09) { "Built In" }, "model", Buffer (0x1C) { "Realtek ALC S1220A HD Audio" }, "name", Buffer (0x27) { "Realtek ALC S1220A HD Audio Controller" }, "hda-gfx", Buffer (0x0A) { "onboard-1" }, "device_type", Buffer (0x14) { "HD-Audio-Controller" }, "device-id", Buffer (0x04) { 0xF0, 0xA2, 0x00, 0x00 }, "compatible", Buffer (0x0D) { "pci8086,0C0C" }, "MaximumBootBeepVolume", Buffer (One) { 0xEE }, "MaximumBootBeepVolumeAlt", Buffer (One) { 0xEE }, "layout-id", Buffer (0x04) { 0x07, 0x00, 0x00, 0x00 }, "PinConfigurations", Buffer (Zero) {} }, Local0) DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0)) Return (Local0) } } Scope (_SB.PC02.BR2A) { Scope (GFX0) { OperationRegion (PCIS, PCI_Config, Zero, 0x0100) Field (PCIS, AnyAcc, NoLock, Preserve) { PVID, 16, PDID, 16 } Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake { Return (GPRW (0x69, 0x04)) } Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method { Store (Package (0x14) { "built-in", Buffer (One) { 0x00 }, "device-id", Buffer (0x04) { 0x06, 0x1B, 0x00, 0x00 }, "hda-gfx", Buffer (0x0A) { "onboard-2" }, "AAPL,slot-name", Buffer (0x07) { "Slot-1" }, "@0,connector-type", Buffer (0x04) { 0x00, 0x08, 0x00, 0x00 }, "@1,connector-type", Buffer (0x04) { 0x00, 0x08, 0x00, 0x00 }, "@2,connector-type", Buffer (0x04) { 0x00, 0x08, 0x00, 0x00 }, "@3,connector-type", Buffer (0x04) { 0x00, 0x08, 0x00, 0x00 }, "@4,connector-type", Buffer (0x04) { 0x00, 0x08, 0x00, 0x00 }, "@5,connector-type", Buffer (0x04) { 0x00, 0x08, 0x00, 0x00 } }, Local0) DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0)) Return (Local0) } } Device (HDAU) { Name (_ADR, One) // _ADR: Address Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method { Store (Package (0x0C) { "built-in", Buffer (One) { 0x00 }, "device-id", Buffer (0x04) { 0xEF, 0x10, 0x00, 0x00 }, "AAPL,slot-name", Buffer (0x07) { "Slot-1" }, "device_type", Buffer (0x16) { "Multimedia Controller" }, "name", Buffer (0x1D) { "NVIDIA High Definition Audio" }, "hda-gfx", Buffer (0x0A) { "onboard-2" } }, Local0) DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0)) Return (Local0) } } } Scope (\_SB.PCI0.PMCR) { Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method { Store (Package (0x0E) { "AAPL,slot-name", Buffer (0x09) { "Built In" }, "model", Buffer (0x1E) { "Intel X299 Series Chipset PMC" }, "name", Buffer (0x0A) { "Intel PMC" }, "device-id", Buffer (0x04) { 0xA1, 0xA2, 0x00, 0x00 }, "device_type", Buffer (0x0F) { "PMC-Controller" }, "built-in", Buffer (One) { 0x00 }, "compatible", Buffer (0x0D) { "pci8086,a2a1" } }, Local0) DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0)) Return (Local0) } } Device (_SB.USBX) { Name (_ADR, Zero) // _ADR: Address Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method { If (LNot (Arg2)) { Return (Buffer (One) { 0x03 }) } Return (Package (0x08) { "kUSBSleepPortCurrentLimit", 0x0834, "kUSBSleepPowerSupply", 0x13EC, "kUSBWakePortCurrentLimit", 0x0834, "kUSBWakePowerSupply", 0x13EC }) } } Scope (\_SB.PCI0.XHCI) { Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method { Store (Package (0x1B) { "AAPL,slot-name", Buffer (0x09) { "Built In" }, "built-in", Buffer (One) { 0x00 }, "device-id", Buffer (0x04) { 0xAF, 0xA2, 0x00, 0x00 }, "name", Buffer (0x34) { "ASMedia / Intel X299 Series Chipset XHCI Controller" }, "model", Buffer (0x34) { "ASMedia ASM1074 / Intel X299 Series Chipset USB 3.0" }, "AAPL,current-available", 0x0834, "AAPL,current-extra", 0x0A8C, "AAPL,current-in-sleep", 0x0A8C, "AAPL,max-port-current-in-sleep", 0x0834, "AAPL,device-internal", Zero, "AAPL,clock-id", Buffer (One) { 0x01 }, "AAPL,root-hub-depth", 0x1A, "AAPL,XHC-clock-id", One, Buffer (One) { 0x00 } }, Local0) DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0)) Return (Local0) } } Device (\_SB.PCI0.RP01.XHC2) { Name (_ADR, Zero) // _ADR: Address Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method { If (LEqual (Arg2, Zero)) { Return (Buffer (One) { 0x03 }) } Store (Package (0x1B) { "AAPL,slot-name", Buffer (0x09) { "Built In" }, "built-in", Buffer (One) { 0x00 }, "device-id", Buffer (0x04) { 0x42, 0x21, 0x00, 0x00 }, "name", Buffer (0x17) { "ASMedia XHC Controller" }, "model", Buffer (0x2F) { "ASMedia ASM3142 #1 1x USB 3.1 Type-C Internal " }, "AAPL,current-available", 0x0834, "AAPL,current-extra", 0x0A8C, "AAPL,current-in-sleep", 0x0A8C, "AAPL,max-port-current-in-sleep", 0x0834, "AAPL,device-internal", Zero, "AAPL,clock-id", Buffer (One) { 0x01 }, "AAPL,root-hub-depth", 0x1A, "AAPL,XHC-clock-id", One, Buffer (One) { 0x00 } }, Local0) DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0)) Return (Local0) } } Name (_SB.PCI0.RP01.PXSX._STA, Zero) // _STA: Status Device (\_SB.PCI0.RP05.XHC3) { Name (_ADR, Zero) // _ADR: Address Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method { If (LEqual (Arg2, Zero)) { Return (Buffer (One) { 0x03 }) } Store (Package (0x1B) { "AAPL,slot-name", Buffer (0x09) { "Built In" }, "built-in", Buffer (One) { 0x00 }, "device-id", Buffer (0x04) { 0x42, 0x21, 0x00, 0x00 }, "name", Buffer (0x17) { "ASMedia XHC Controller" }, "model", Buffer (0x2E) { "ASMedia ASM3142 #2 2x USB 3.1 Type-A External" }, "AAPL,current-available", 0x0834, "AAPL,current-extra", 0x0A8C, "AAPL,current-in-sleep", 0x0A8C, "AAPL,max-port-current-in-sleep", 0x0834, "AAPL,device-internal", Zero, "AAPL,clock-id", Buffer (One) { 0x01 }, "AAPL,root-hub-depth", 0x1A, "AAPL,XHC-clock-id", One, Buffer (One) { 0x00 } }, Local0) DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0)) Return (Local0) } } Name (_SB.PCI0.RP05.PXSX._STA, Zero) // _STA: Status Device (\_SB.PCI0.RP07.XHC4) { Name (_ADR, Zero) // _ADR: Address Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method { If (LEqual (Arg2, Zero)) { Return (Buffer (One) { 0x03 }) } Store (Package (0x1B) { "AAPL,slot-name", Buffer (0x09) { "Built In" }, "built-in", Buffer (One) { 0x00 }, "device-id", Buffer (0x04) { 0x42, 0x21, 0x00, 0x00 }, "name", Buffer (0x17) { "ASMedia XHC Controller" }, "model", Buffer (0x4A) { "ASMedia ASM3142 #3 1x USB 3.1 Type-A / ASM1543 1x USB 3.1 Type-C External" }, "AAPL,current-available", 0x0834, "AAPL,current-extra", 0x0A8C, "AAPL,current-in-sleep", 0x0A8C, "AAPL,max-port-current-in-sleep", 0x0834, "AAPL,device-internal", Zero, "AAPL,clock-id", Buffer (One) { 0x01 }, "AAPL,root-hub-depth", 0x1A, "AAPL,XHC-clock-id", One, Buffer (One) { 0x00 } }, Local0) DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0)) Return (Local0) } } Name (_SB.PCI0.RP07.PXSX._STA, Zero) // _STA: Status Device (\_SB.PCI0.RP09.ANS2) { Name (_ADR, Zero) // _ADR: Address Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method { If (LEqual (Arg2, Zero)) { Return (Buffer (One) { 0x03 }) } Store (Package (0x08) { "AAPL,slot-name", Buffer (0x09) { "Built In" }, "built-in", Buffer (One) { 0x00 }, "name", Buffer (0x14) { "AppleANS2Controller" }, "model", Buffer (0x12) { "Apple SSD AP1024M" } }, Local0) DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0)) Return (Local0) } } Name (_SB.PCI0.RP09.PXSX._STA, Zero) // _STA: Status Scope (\_SB.PCI0.SAT1) { Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method { Store (Package (0x0C) { "AAPL,slot-name", Buffer (0x09) { "Built In" }, "built-in", Buffer (One) { 0x00 }, "name", Buffer (0x16) { "Intel AHCI Controller" }, "model", Buffer (0x1F) { "Intel X299 Series Chipset SATA" }, "device_type", Buffer (0x15) { "AHCI SATA Controller" }, "device-id", Buffer (0x04) { 0x82, 0xA2, 0x00, 0x00 } }, Local0) DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0)) Return (Local0) } } Scope (\_SB.PCI0.ETH0) { Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method { Store (Package (0x10) { "AAPL,slot-name", Buffer (0x09) { "Built In" }, "built-in", Buffer (One) { 0x00 }, "name", Buffer (0x16) { "Intel I219V2 Ethernet" }, "model", Buffer (0x2A) { "Intel I219V2 PCI Express Gigabit Ethernet" }, "location", Buffer (0x02) { "1" }, "subsystem-id", Buffer (0x04) { 0x72, 0x86, 0x00, 0x00 }, "device-id", Buffer (0x04) { 0xB8, 0x15, 0x00, 0x00 }, "subsystem-vendor-id", Buffer (0x04) { 0x43, 0x10, 0x00, 0x00 } }, Local0) DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0)) Return (Local0) } } Scope (\_SB.PCI0.RP02.ETH1) { Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method { Store (Package (0x10) { "AAPL,slot-name", Buffer (0x09) { "Built In" }, "built-in", Buffer (One) { 0x00 }, "name", Buffer (0x16) { "Intel I211VA Ethernet" }, "model", Buffer (0x2A) { "Intel I211VA PCI Express Gigabit Ethernet" }, "location", Buffer (0x02) { "2" }, "subsystem-id", Buffer (0x04) { 0xF0, 0x85, 0x00, 0x00 }, "device-id", Buffer (0x04) { 0x39, 0x15, 0x00, 0x00 }, "subsystem-vendor-id", Buffer (0x04) { 0x43, 0x10, 0x00, 0x00 } }, Local0) DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0)) Return (Local0) } } Scope (_SB.PC03.BR3D.ARPT) { OperationRegion (PCIS, PCI_Config, Zero, 0x0100) Field (PCIS, AnyAcc, NoLock, Preserve) { PVID, 16, PDID, 16 } Method (_PRW, 0, NotSerialized) // _PRW: Power Resources for Wake { Return (GPRW (0x69, 0x04)) } Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method { Store (Package (0x0E) { "built-in", Buffer (One) { 0x00 }, "device-id", Buffer (0x04) { 0xA0, 0x43, 0x00, 0x00 }, "AAPL,slot-name", Buffer (0x07) { "Slot-3" }, "device_type", Buffer (0x13) { "AirPort Controller" }, "model", Buffer (0x4A) { "OSX WIFI Broadcom BCM94360CD 802.11 a/b/g/n/ac + Bluetooth 4.0 Controller" }, "compatible", Buffer (0x0D) { "pci14e4,43a0" }, "name", Buffer (0x10) { "AirPort Extreme" } }, Local0) DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0)) Return (Local0) } } Scope (\_SB.PC01.BR1A) { Scope (SL01) { Name (_STA, Zero) // _STA: Status } Scope (PEGP) { Name (_STA, Zero) // _STA: Status } Device (UPSB) { Name (_ADR, Zero) // _ADR: Address Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method { If (LNot (Arg2)) { Return (Buffer (One) { 0x03 }) } Return (Package (0x02) { "PCI-Thunderbolt", One }) } Name (_RMV, One) // _RMV: Removal Status Device (DSB0) { Name (_ADR, Zero) // _ADR: Address Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method { If (LNot (Arg2)) { Return (Buffer (One) { 0x03 }) } Return (Package (0x02) { "PCIHotplugCapable", One }) } Device (NHI0) { Name (_ADR, Zero) // _ADR: Address Name (_STR, Unicode ("Thunderbolt")) // _STR: Description String Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method { If (LEqual (Arg2, Zero)) { Return (Buffer (One) { 0x03 }) } Return (Package (0x0D) { "built-in", Buffer (One) { 0x00 }, "device_type", Buffer (0x19) { "Thunderbolt 3 Controller" }, "AAPL,slot-name", Buffer (0x07) { "Slot-4" }, "model", Buffer (0x30) { "ThunderboltEX 3 Intel DSL6540 Thunderbolt 3 NHI" }, "name", Buffer (0x37) { "ThunderboltEX 3 Intel DSL6540 Thunderbolt 3 Controller" }, "power-save", One, Buffer (One) { 0x00 } }) } } } Device (DSB1) { Name (_ADR, 0x00010000) // _ADR: Address Name (_SUN, 0x04) // _SUN: Slot User Number OperationRegion (A1E0, PCI_Config, Zero, 0x40) Field (A1E0, ByteAcc, NoLock, Preserve) { AVND, 32, BMIE, 3, Offset (0x18), PRIB, 8, SECB, 8, SUBB, 8, Offset (0x1E), , 13, MABT, 1 } Method (_BBN, 0, NotSerialized) // _BBN: BIOS Bus Number { Return (SECB) } Method (_STA, 0, NotSerialized) // _STA: Status { Return (0x0F) } Method (_RMV, 0, NotSerialized) // _RMV: Removal Status { Return (Zero) } Device (UPS0) { Name (_ADR, Zero) // _ADR: Address OperationRegion (ARE0, PCI_Config, Zero, 0x04) Field (ARE0, ByteAcc, NoLock, Preserve) { AVND, 16 } Method (_RMV, 0, NotSerialized) // _RMV: Removal Status { If (OSDW ()) { Return (One) } Return (Zero) } Device (DSB0) { Name (_ADR, Zero) // _ADR: Address OperationRegion (A1E0, PCI_Config, Zero, 0x40) Field (A1E0, ByteAcc, NoLock, Preserve) { AVND, 32, BMIE, 3, Offset (0x18), PRIB, 8, SECB, 8, SUBB, 8, Offset (0x1E), , 13, MABT, 1, Offset (0x3E), , 6, SBRS, 1 } Method (_BBN, 0, NotSerialized) // _BBN: BIOS Bus Number { Return (SECB) } Method (_STA, 0, NotSerialized) // _STA: Status { Return (0x0F) } Method (_RMV, 0, NotSerialized) // _RMV: Removal Status { Return (One) } Device (DEV0) { Name (_ADR, Zero) // _ADR: Address Method (_STA, 0, NotSerialized) // _STA: Status { Return (0x0F) } Method (_RMV, 0, NotSerialized) // _RMV: Removal Status { Return (One) } } } Device (DSB1) { Name (_ADR, 0x00010000) // _ADR: Address OperationRegion (A1E0, PCI_Config, Zero, 0x40) Field (A1E0, ByteAcc, NoLock, Preserve) { AVND, 32, BMIE, 3, Offset (0x18), PRIB, 8, SECB, 8, SUBB, 8, Offset (0x1E), , 13, MABT, 1 } Method (_BBN, 0, NotSerialized) // _BBN: BIOS Bus Number { Return (SECB) } Method (_STA, 0, NotSerialized) // _STA: Status { Return (0x0F) } Method (_RMV, 0, NotSerialized) // _RMV: Removal Status { Return (One) } Device (DEV0) { Name (_ADR, Zero) // _ADR: Address Method (_STA, 0, NotSerialized) // _STA: Status { Return (0x0F) } Method (_RMV, 0, NotSerialized) // _RMV: Removal Status { Return (One) } } } Device (DSB2) { Name (_ADR, 0x00020000) // _ADR: Address OperationRegion (A1E0, PCI_Config, Zero, 0x40) Field (A1E0, ByteAcc, NoLock, Preserve) { AVND, 32, BMIE, 3, Offset (0x18), PRIB, 8, SECB, 8, SUBB, 8, Offset (0x1E), , 13, MABT, 1 } Method (_BBN, 0, NotSerialized) // _BBN: BIOS Bus Number { Return (SECB) } Method (_STA, 0, NotSerialized) // _STA: Status { Return (0x0F) } Method (_RMV, 0, NotSerialized) // _RMV: Removal Status { Return (One) } Device (DEV0) { Name (_ADR, Zero) // _ADR: Address Method (_STA, 0, NotSerialized) // _STA: Status { Return (0x0F) } Method (_RMV, 0, NotSerialized) // _RMV: Removal Status { Return (One) } } } Device (DSB3) { Name (_ADR, 0x00030000) // _ADR: Address OperationRegion (A1E0, PCI_Config, Zero, 0x40) Field (A1E0, ByteAcc, NoLock, Preserve) { AVND, 32, BMIE, 3, Offset (0x18), PRIB, 8, SECB, 8, SUBB, 8, Offset (0x1E), , 13, MABT, 1 } Method (_BBN, 0, NotSerialized) // _BBN: BIOS Bus Number { Return (SECB) } Method (_STA, 0, NotSerialized) // _STA: Status { Return (0x0F) } Method (_RMV, 0, NotSerialized) // _RMV: Removal Status { Return (One) } Device (DEV0) { Name (_ADR, Zero) // _ADR: Address Method (_STA, 0, NotSerialized) // _STA: Status { Return (0x0F) } Method (_RMV, 0, NotSerialized) // _RMV: Removal Status { Return (One) } } } Device (DSB4) { Name (_ADR, 0x00040000) // _ADR: Address OperationRegion (A1E0, PCI_Config, Zero, 0x40) Field (A1E0, ByteAcc, NoLock, Preserve) { AVND, 32, BMIE, 3, Offset (0x18), PRIB, 8, SECB, 8, SUBB, 8, Offset (0x1E), , 13, MABT, 1 } Method (_BBN, 0, NotSerialized) // _BBN: BIOS Bus Number { Return (SECB) } Method (_STA, 0, NotSerialized) // _STA: Status { Return (0x0F) } Method (_RMV, 0, NotSerialized) // _RMV: Removal Status { Return (One) } Device (DEV0) { Name (_ADR, Zero) // _ADR: Address Method (_STA, 0, NotSerialized) // _STA: Status { Return (0x0F) } Method (_RMV, 0, NotSerialized) // _RMV: Removal Status { Return (One) } } } Device (DSB5) { Name (_ADR, 0x00050000) // _ADR: Address OperationRegion (A1E0, PCI_Config, Zero, 0x40) Field (A1E0, ByteAcc, NoLock, Preserve) { AVND, 32, BMIE, 3, Offset (0x18), PRIB, 8, SECB, 8, SUBB, 8, Offset (0x1E), , 13, MABT, 1 } Method (_BBN, 0, NotSerialized) // _BBN: BIOS Bus Number { Return (SECB) } Method (_STA, 0, NotSerialized) // _STA: Status { Return (0x0F) } Method (_RMV, 0, NotSerialized) // _RMV: Removal Status { Return (One) } Device (DEV0) { Name (_ADR, Zero) // _ADR: Address Method (_STA, 0, NotSerialized) // _STA: Status { Return (0x0F) } Method (_RMV, 0, NotSerialized) // _RMV: Removal Status { Return (One) } } } } } Device (DSB2) { Name (_ADR, 0x00020000) // _ADR: Address Device (XHC5) { Name (_ADR, Zero) // _ADR: Address Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method { If (LEqual (Arg2, Zero)) { Return (Buffer (One) { 0x03 }) } Return (Package (0x12) { "built-in", Buffer (One) { 0x00 }, "AAPL,slot-name", Buffer (0x07) { "Slot-4" }, "model", Buffer (0x41) { "ThunderboltEX 3 Texas Instruments TPS65982 USB 3.1 Type-A/Type-C" }, "name", Buffer (0x31) { "ThunderboltEX 3 Texas Instruments XHC Controller" }, "device_type", Buffer (0x13) { "USB 3.1 Controller" }, "device-id", Buffer (0x04) { 0xB6, 0x15, 0x00, 0x00 }, "USBBusNumber", Zero, "UsbCompanionControllerPresent", One, "AAPL,XHCI-clock-id", One }) } Device (RHUB) { Name (_ADR, Zero) // _ADR: Address Device (SSP1) { Name (_ADR, One) // _ADR: Address Name (_UPC, Package (0x04) // _UPC: USB Port Capabilities { 0xFF, 0x09, Zero, Zero }) Name (_PLD, Package (0x01) // _PLD: Physical Location of Device { Buffer (0x10) { /* 0000 */ 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0008 */ 0x31, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } }) Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method { If (LEqual (Arg2, Zero)) { Return (Buffer (One) { 0x03 }) } Return (Package (0x02) { "UsbCPortNumber", One }) } } Device (SSP2) { Name (_ADR, 0x02) // _ADR: Address Name (_UPC, Package (0x04) // _UPC: USB Port Capabilities { 0xFF, 0x09, Zero, Zero }) Name (_PLD, Package (0x01) // _PLD: Physical Location of Device { Buffer (0x10) { /* 0000 */ 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0008 */ 0x31, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } }) Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method { If (LEqual (Arg2, Zero)) { Return (Buffer (One) { 0x03 }) } Return (Package (0x02) { "UsbCPortNumber", 0x02 }) } } Device (HS01) { Name (_ADR, 0x03) // _ADR: Address Name (_UPC, Package (0x04) // _UPC: USB Port Capabilities { 0xFF, 0x09, Zero, Zero }) Name (_PLD, Package (0x01) // _PLD: Physical Location of Device { Buffer (0x10) { /* 0000 */ 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0008 */ 0x31, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } }) } Device (HS02) { Name (_ADR, 0x04) // _ADR: Address Name (_UPC, Package (0x04) // _UPC: USB Port Capabilities { 0xFF, 0x09, Zero, Zero }) Name (_PLD, Package (0x01) // _PLD: Physical Location of Device { Buffer (0x10) { /* 0000 */ 0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0008 */ 0x31, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } }) } } } } Device (DSB3) { Name (_ADR, 0x00030000) // _ADR: Address } Device (DSB4) { Name (_ADR, 0x00040000) // _ADR: Address } } } Method (DTGP, 5, NotSerialized) { If (LEqual (Arg0, ToUUID ("a0b5b7c6-1318-441c-b0c9-fe695eaf949b"))) { If (LEqual (Arg1, One)) { If (LEqual (Arg2, Zero)) { Store (Buffer (One) { 0x03 }, Arg4) Return (One) } If (LEqual (Arg2, One)) { Return (One) } } } Store (Buffer (One) { 0x00 }, Arg4) Return (Zero) } }     SSDT-X299-iMacPro.aml.zip   Cheers,   KGP    
×