Jump to content

ACPI (DSDT) Patcher for BIOS and AML


koalala
 Share

845 posts in this topic

Recommended Posts

WinstonAce,

 

Just got back from long vacation...

First of all great research.. tried on my ALC889A.. works exactly as you described.

 

Great finding! Works without any kexts... Really great! :)

 

Its all about PinConfigurations now... Ill try to fix it tomorrow.

 

btw, my codec looks like this and works without any errors in log:

 

Device (HDEF)
		 {

		 }

 

Thanks !

Do you mean with Works without any kexts... , any extra kexts like enablers / injectors ?

AppleHDA.kext is needed i think or even that not ?

 

Whats about the layoutid for usage of unedited AppleHDA .plists - must i edit there something or can i use the orig. ?

Until now i use also some hda dsdt but i have to change some in that two .plists of AppleHDA plugins.

Link to comment
Share on other sites

Thanks !

Do you mean with Works without any kexts... , any extra kexts like enablers / injectors ?

AppleHDA.kext is needed i think or even that not ?

 

Whats about the layoutid for usage of unedited AppleHDA .plists - must i edit there something or can i use the orig. ?

Until now i use also some hda dsdt but i have to change some in that two .plists of AppleHDA plugins.

It should works without any injector (ALCinject.kext or HDAEnabler.kext). It also replaced patched/legacy AppleHDA.kext.

 

As a layout-id, try to use layout that is similar to your audio layout (mic, headphone & etc) in the vanilla AppleHDAPlatformDriver.kext. However, if you have to use custom layout, you probably still need at least patched/legacy AppleHDAPlatformDriver kext unless DSDT can inject that value too.

 

To understand the process, first try to pacthed the AppleHDA.kext yourself.

 

kizwan

Link to comment
Share on other sites

Unfortunately, it's seems that only peoeple with alc885 (or other chipsets used on real macs) can

"enjoy" this method completely.

the pin configuration/configdata isn't injected through the dsdt

it's just taken from the original plist of AppleHDAController.

actually, even if you don't use any pinconfig/configdata in your dsdt, the result will be the same

it's just using the one from layout 0 (or any other layout you choose) in original plist of AppleHDAController.

All that said:

I hope I'm wrong and there is a way to override it and inject pinconfiguration.

or that maybe new MACPRO's use ALC889a instead of alc885 ;)

Link to comment
Share on other sites

........

the pin configuration/configdata isn't injected through the dsdt

it's just taken from the original plist of AppleHDAController.

actually, even if you don't use any pinconfig/configdata in your dsdt, the result will be the same

it's just using the one from layout 0 (or any other layout you choose) in original plist of AppleHDAController.

...........

By using this method pin configuration/ConfigData actually injected by DSDT. The only thing that is not injected is layout.

Link to comment
Share on other sites

When you use layout 0 in your dsdt, your pinconfig is overridden by the one's in the original plist

you can see that in system profiler (no matter what configdata/pinconfig you use you always get the same result, even if you don't use configdata/pinconfig at all)

only when you use layout 3f (63) which have no built in configdata you get the pinconfig you injected by your dsdt, but your output device can't be set correctly...

Link to comment
Share on other sites

When you use layout 0 in your dsdt, your pinconfig is overridden by the one's in the original plist

you can see that in system profiler (no matter what configdata/pinconfig you use you always get the same result, even if you don't use configdata/pinconfig at all)

only when you use layout 3f (63) which have no built in configdata you get the pinconfig you injected by your dsdt, but your output device can't be set correctly...

It is not true when you say ConfigData/pin configuration is not injected by DSDT. It override AppleHDAController.kext but still use AppleHDAPlatformDriver.kext to 'load' Layout & Pathmap. To get working audio you need to tackle both, AppleHDAController.kext & AppleHDAPlatformDriver.kext. Even we get correct ConfigData but wrong Layout & Pathmap, the audio still not working. For example my audio codec, ALC883, I still need to use patched/legacy AppleHDAPlatformDriver.kext to inject the correct layout & pathmap. Without it, I will get error regarding pathmap because it is not exist in vanilla kext. Only small group of audio codec share same layout & pathmap with original mac.

Link to comment
Share on other sites

I've done a little test to check it

I've edited AppleHDAController and replaced the original configdata with mine

I didn't need any pinconfig/configdata in my dsdt, only selected layout 0 and everything worked and looked (in system preferences and sytem profiler) as it should be without any assertion errors.

On the other hand, when i choose layout 0 (with original AppleHDAController) no matter what pinconfig/configdata (if any) i use i get the same results (on system profiler / system preferences).

Link to comment
Share on other sites

I have read everywhere and can find nothing, except people with the same problem...no solution

 

Where in the hell is pci_bridge@7 in a DSDT, that's where it says my gfx card is I am tryin to get working with DSDT have tried everything to no avail any help would be greatly appreciated.

 

I am attaching my IOReg if that helps.

 

as well as my DSDT

dump.txt

dsdt_fixed.txt

Link to comment
Share on other sites

When you use layout 0 in your dsdt, your pinconfig is overridden by the one's in the original plist

you can see that in system profiler (no matter what configdata/pinconfig you use you always get the same result, even if you don't use configdata/pinconfig at all)

only when you use layout 3f (63) which have no built in configdata you get the pinconfig you injected by your dsdt, but your output device can't be set correctly...

 

Yes i've tested this method, and i have exactly the same results ! It seems that we can't overide values with DSDT, only inject what's missing. By the way, i have SPDIF out working, two diff analog out ports working too and a the front mic is working too (seen as line in system pref).

 

But i don't see the use of injecting "ConfigData" is it changing some thing ?

 

Nice trick any way WinstonAce ;)

 

I think i'm gonna had my configData to the AppleHDAContreler's plist....

Link to comment
Share on other sites

I've done a little test to check it

I've edited AppleHDAController and replaced the original configdata with mine

I didn't need any pinconfig/configdata in my dsdt, only selected layout 0 and everything worked and looked (in system preferences and sytem profiler) as it should be without any assertion errors.

On the other hand, when i choose layout 0 (with original AppleHDAController) no matter what pinconfig/configdata (if any) i use i get the same results (on system profiler / system preferences).

 

WinstonAce,

 

Looking at AppleHDA again based on your probing. Using your DSDT HDEF section I get sound working with the stock AppleHDA (10.5.6) but I need to use different connections for sound than when I boot Win7 (cneter speaker out (black) in stead of headphone out (green) on back panel). Are you saying that if you mod AppleHDAController you don't need to mod AppleHDAPlatformDriver.kext to 'load' Layout & Pathmaps?

 

Thanks,

SMF

Link to comment
Share on other sites

Yeah I figured it out thanks though, turns out that I just needed pegp on pci 0 and point the address to 7 and everything started working

 

How did you 'point the address to 7' ?

My GFX card shows up in IOregistryExplorer as an immediate branch of PCI 0, under the listing [similar to yours] "pci_bridge@1"

 

I tried selecting PCI 0, plus check on the PEGP box... And I'm guessing that you edit the file with a text editor to point the address to 1 [or 7] ?

But if I open my DSDT.aml in WordPad I get all these funky boxes in the text that make it really hard to sort out. [EDIT: Opening the file with OSX TextEdit gets rid of the boxes for the missing font, but replaces them with crazy characters that I still can't interpret] What am I doing wrong?

 

dsdt.txt

Link to comment
Share on other sites

@DarkRaoul

 

You need to edit your DSDT.dsl not the .aml the .aml is compiled and is unreadable to the text editor.

 

Take the .aml you got from ACPI Patcher and use it as your dsdt then use DSDT Patcher for mac and dump your DSDT. Then open the debug folder in DSDT patcher and use the DSDT_Fixed.txt file to edit

 

In the code where it says Name (_ADR, 0x00030000) change the 3 to 1 and everything should work for you as long as you use the right data under GFX0 mine is for 9800gtx+ if that helps

 

When you are done editing in the DSDT Patcher folder under tools drag iasl to terminal then type -tc then a space and then drag your newly edited DSDT_Fixed.txt file to terminal and hit enter and in the debug folder it will make a DSDT.aml file use that and all should be good.

 

  Device (PEGP)
           {
               Name (_ADR, 0x00030000)
               Device (GFX0)
               {
                   Name (_ADR, Zero)
                   Name (_SUN, One)
                   Method (_DSM, 4, NotSerialized)
                   {
                       Store (Package (0x16)
                           {
                               "@0,compatible", 
                               Buffer (0x0B)
                               {
                                   "NVDA,NVMac"
                               }, 

                               "@0,device_type", 
                               Buffer (0x08)
                               {
                                   "display"
                               }, 

                               "@0,name", 
                               Buffer (0x0F)
                               {
                                   "NVDA,Display-A"
                               }, 

                               "@1,compatible", 
                               Buffer (0x0B)
                               {
                                   "NVDA,NVMac"
                               }, 

                               "@1,device_type", 
                               Buffer (0x08)
                               {
                                   "display"
                               }, 

                               "@1,name", 
                               Buffer (0x0F)
                               {
                                   "NVDA,Display-B"
                               }, 

                               "NVCAP", 
                               Buffer (0x18)
                               {
                                   /* 0000 */    0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 
                                   /* 0008 */    0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 
                                   /* 0010 */    0x00, 0x00, 0x00, 0x00
                               }, 

                               "VRAM,totalsize", 
                               Buffer (0x04)
                               {
                                   0x00, 0x00, 0x00, 0x20
                               }, 

                               "device_type", 
                               Buffer (0x0D)
                               {
                                   "NVDA,GeForce"
                               }, 

                               "model", 
                               Buffer (0x18)
                               {
                                   "nVidia GeForce 9800 GTX"
                               }, 

                               "rom-revision", 
                               Buffer (0x06)
                               {
                                   "3172a"
                               }
                           }, Local0)
                       DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                       Return (Local0)
                   }
               }
           }

Link to comment
Share on other sites

Thanks for the tip, man. I will be working on this again after I finish my final school project (graduating college in May! Woot!)

 

@DukeRaoul

 

You need to edit your DSDT.dsl not the .aml the .aml is compiled and is unreadable to the text editor.

 

Take the .aml you got from ACPI Patcher and use it as your dsdt then use DSDT Patcher for mac and dump your DSDT. Then open the debug folder in DSDT patcher and use the DSDT_Fixed.txt file to edit

 

In the code where it says Name (_ADR, 0x00030000) change the 3 to 1 and everything should work for you as long as you use the right data under GFX0 mine is for 9800gtx+ if that helps

 

When you are done editing in the DSDT Patcher folder under tools drag iasl to terminal then type -tc then a space and then drag your newly edited DSDT_Fixed.txt file to terminal and hit enter and in the debug folder it will make a DSDT.aml file use that and all should be good.

 

  Device (PEGP)
           {
               Name (_ADR, 0x00030000)
               Device (GFX0)
               {
                   Name (_ADR, Zero)
                   Name (_SUN, One)
                   Method (_DSM, 4, NotSerialized)
                   {
                       Store (Package (0x16)
                           {
                               "@0,compatible", 
                               Buffer (0x0B)
                               {
                                   "NVDA,NVMac"
                               }, 

                               "@0,device_type", 
                               Buffer (0x08)
                               {
                                   "display"
                               }, 

                               "@0,name", 
                               Buffer (0x0F)
                               {
                                   "NVDA,Display-A"
                               }, 

                               "@1,compatible", 
                               Buffer (0x0B)
                               {
                                   "NVDA,NVMac"
                               }, 

                               "@1,device_type", 
                               Buffer (0x08)
                               {
                                   "display"
                               }, 

                               "@1,name", 
                               Buffer (0x0F)
                               {
                                   "NVDA,Display-B"
                               }, 

                               "NVCAP", 
                               Buffer (0x18)
                               {
                                   /* 0000 */    0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 
                                   /* 0008 */    0x0C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 
                                   /* 0010 */    0x00, 0x00, 0x00, 0x00
                               }, 

                               "VRAM,totalsize", 
                               Buffer (0x04)
                               {
                                   0x00, 0x00, 0x00, 0x20
                               }, 

                               "device_type", 
                               Buffer (0x0D)
                               {
                                   "NVDA,GeForce"
                               }, 

                               "model", 
                               Buffer (0x18)
                               {
                                   "nVidia GeForce 9800 GTX"
                               }, 

                               "rom-revision", 
                               Buffer (0x06)
                               {
                                   "3172a"
                               }
                           }, Local0)
                       DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                       Return (Local0)
                   }
               }
           }

Link to comment
Share on other sites

I have a DFI JR P45-TS2R Motherboard. When I attempt to use this program to do anything with the bios file I get an error and it stops. It complains about the header size to large over original file. Can anyone help?

 

This happens even when I try to just dump the DSDT.DSL file or anything. So I cant even make a file to modify ;\

 

Attached is the Bios File and I am using a Nvidia 8800GS 384 MB video card.

J245D320.BIN.zip

Link to comment
Share on other sites

WinstonAce,

 

Looking at AppleHDA again based on your probing. Using your DSDT HDEF section I get sound working with the stock AppleHDA (10.5.6) but I need to use different connections for sound than when I boot Win7 (cneter speaker out (black) in stead of headphone out (green) on back panel). Are you saying that if you mod AppleHDAController you don't need to mod AppleHDAPlatformDriver.kext to 'load' Layout & Pathmaps?

 

Thanks,

SMF

 

I tried this method suggested by BuildSmart some time ago and I think it got no future to get perfect audio: if you use vanilla AppleHDAPlatform layouts you have to live with what Apple defined for their machines, which can be very different to a PC machine, so you will always miss some inputs/outputs (i.e. front panels), you will have outputs that dont produce/record sounds or they wont match the real functions (i.e. speakers output on line in jack). Well I didnt try all of the layouts but as real Macs only have like 2-3 jacks at most I think thats what will happen...

In case anyone is interested to pursue this further here is a list I compiled of all the layout ids present in 10.5.6 AppleHDAPlatformDriver.kext and their matching codecs, so you can try, some of them got no pinconfig data, other do, thats something to take into account, if they have no pinconfig you would need inject that in dsdt too I think, also remember layoutid must be in hex in dsdt; some of the layouts may look exactly the same as the other, but they differ on the pathmaps they got asigned, that can have an effect on which jack acts as what function by default:

 

Format for each group:

LayoudID (in decimal)
CodecID (in decimal) - CodecID (in hex) - Manufacturer(VendorID) Model(DeviceID)


0 [Each codec on its own PathMapRef]
269697542 - 0x10134206 - Cirrus Logic(1013) Unknown(4206)
283904133 - 0x10EC0885 - Realtek(10EC) ALC885/ALC889(0885)
282984455 - 0x10DE0007 - Nvidia(10DE) MCP7A HDMI(0007)
283902562 - 0x10EC0262 - Realtek(10EC) ALC262(0262)

2
2206496384 - 0x83847680 - Sigmatel(8384) STAC9221 A1(7680)

4
2206496384 - 0x83847680 - Sigmatel(8384) STAC9221 A1(7680)

6
2206496384 - 0x83847680 - Sigmatel(8384) STAC9221 A1(7680)

7
2206496384 - 0x83847680 - Sigmatel(8384) STAC9221 A1(7680)

8
2206496384 - 0x83847680 - Sigmatel(8384) STAC9221 A1(7680)

10
2206496384 - 0x83847680 - Sigmatel(8384) STAC9221 A1(7680)

12
283904133 - 0x10EC0885 - Realtek(10EC) ALC885/ALC889(0885)

14
2206496384 - 0x83847680 - Sigmatel(8384) STAC9221 A1(7680)

15
2206496384 - 0x83847680 - Sigmatel(8384) STAC9221 A1(7680)

16
283904133 - 0x10EC0885 - Realtek(10EC) ALC885/ALC889(0885)

20 [both codecs in same PathMapRef]
2206496384 - 0x83847680 - Sigmatel(8384) STAC9221 A1(7680)
2206496386 - 0x83847682 - Sigmatel(8384) STAC9221 A2(7682)

22
2206496384 - 0x83847680 - Sigmatel(8384) STAC9221 A1(7680)

23
2206496384 - 0x83847680 - Sigmatel(8384) STAC9221 A1(7680)

26
2206496384 - 0x83847680 - Sigmatel(8384) STAC9221 A1(7680)

30
2206496384 - 0x83847680 - Sigmatel(8384) STAC9221 A1(7680)

34
2206496384 - 0x83847680 - Sigmatel(8384) STAC9221 A1(7680)

36
283904133 - 0x10EC0885 - Realtek(10EC) ALC885/ALC889(0885)

38
283904133 - 0x10EC0885 - Realtek(10EC) ALC885/ALC889(0885)

42
283904133 - 0x10EC0885 - Realtek(10EC) ALC885/ALC889(0885)

44
283904133 - 0x10EC0885 - Realtek(10EC) ALC885/ALC889(0885)

46
283904133 - 0x10EC0885 - Realtek(10EC) ALC885/ALC889(0885)

48
283904133 - 0x10EC0885 - Realtek(10EC) ALC885/ALC889(0885)

50
283904133 - 0x10EC0885 - Realtek(10EC) ALC885/ALC889(0885)

52
283904133 - 0x10EC0885 - Realtek(10EC) ALC885/ALC889(0885)

53
283904133 - 0x10EC0885 - Realtek(10EC) ALC885/ALC889(0885)

54
283904133 - 0x10EC0885 - Realtek(10EC) ALC885/ALC889(0885)

56
283904133 - 0x10EC0885 - Realtek(10EC) ALC885/ALC889(0885)

58
283904133 - 0x10EC0885 - Realtek(10EC) ALC885/ALC889(0885)

60
283904133 - 0x10EC0885 - Realtek(10EC) ALC885/ALC889(0885)

62
283904133 - 0x10EC0885 - Realtek(10EC) ALC885/ALC889(0885)

63
283904133 - 0x10EC0885 - Realtek(10EC) ALC885/ALC889(0885)

64
283904133 - 0x10EC0885 - Realtek(10EC) ALC885/ALC889(0885)

65
283904133 - 0x10EC0885 - Realtek(10EC) ALC885/ALC889(0885)

66
283904133 - 0x10EC0885 - Realtek(10EC) ALC885/ALC889(0885)

67
283904133 - 0x10EC0885 - Realtek(10EC) ALC885/ALC889(0885)

69
283904133 - 0x10EC0885 - Realtek(10EC) ALC885/ALC889(0885)

70
283904133 - 0x10EC0885 - Realtek(10EC) ALC885/ALC889(0885)

72
283904133 - 0x10EC0885 - Realtek(10EC) ALC885/ALC889(0885)

73
283904133 - 0x10EC0885 - Realtek(10EC) ALC885/ALC889(0885)

74
283904133 - 0x10EC0885 - Realtek(10EC) ALC885/ALC889(0885)

16392 [2 codecs with each its own pathmap]
269697542 - 0x10134206 - Cirrus Logic(1013) Unknown(4206)
282984455 - 0x10DE0007 - Nvidia(10DE) MCP7A HDMI(0007)

16394
283904133 - 0x10EC0885 - Realtek(10EC) ALC885/ALC889(0885)

Link to comment
Share on other sites

  • 2 weeks later...

I had bad luck with Acer TravelMate 4220 which uses Phoenix BIOS. I can't extract DSDT.dsl file. It shows me "Unable to ope file" error. Is there any way to get DSDT.aml (not flashing bios just use with chameleon 2.0rc1) to get my 10.5.6 working with GMA950 without "blue screen" and two cores enabled? .WPH file is linked below. Thanks!

 

http://rapidshare.com/files/233536121/ZB2_3124.WPH.html

Link to comment
Share on other sites

Hi all, that HDEF code worked peftecly with 10.5.6. Witih all vanilla. With 10.5.7 no sound anymore ??? What happened ?

 

 

I'm almost there ;)

this is my new HDEF

 

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

			 Method (_DSM, 4, NotSerialized)
			 {
				 Store (Package (0x0C)
					 {
						 "built-in",
						 Buffer (One)
						 {
							 0x00
						 },

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

						 "ConfigData",
						 Buffer (0xc0)
						 {
							 /* 0000 */	0x01, 0x47, 0x1c, 0x10, 0x01, 0x47, 0x1d, 0x44, 
							 /* 0008 */	0x01, 0x47, 0x1e, 0x01, 0x01, 0x47, 0x1f, 0x01, 
							 /* 0010 */	0x01, 0x57, 0x1c, 0x12, 0x01, 0x57, 0x1d, 0x14, 
							 /* 0018 */	0x01, 0x57, 0x1e, 0x01, 0x01, 0x57, 0x1f, 0x01, 
							 /* 0020 */	0x01, 0x67, 0x1c, 0x11, 0x01, 0x67, 0x1d, 0x64, 
							 /* 0028 */	0x01, 0x67, 0x1e, 0x01, 0x01, 0x67, 0x1f, 0x01, 
							 /* 0030 */	0x01, 0x77, 0x1c, 0x14, 0x01, 0x77, 0x1d, 0x24, 
							 /* 0038 */	0x01, 0x77, 0x1e, 0x01, 0x01, 0x77, 0x1f, 0x01, 
							 /* 0040 */	0x01, 0x87, 0x1c, 0x40, 0x01, 0x87, 0x1d, 0x9c,
							 /* 0048 */	0x01, 0x87, 0x1e, 0xa1, 0x01, 0x87, 0x1f, 0x01, 
							 /* 0050 */	0x01, 0x97, 0x1c, 0x50, 0x01, 0x97, 0x1d, 0x9c,
							 /* 0058 */	0x01, 0x97, 0x1e, 0xa1, 0x01, 0x97, 0x1f, 0x02,
							 /* 0060 */	0x01, 0xa7, 0x1c, 0x4f, 0x01, 0xa7, 0x1d, 0x34, 
							 /* 0068 */	0x01, 0xa7, 0x1e, 0x81, 0x01, 0xa7, 0x1f, 0x01, 
							 /* 0070 */	0x01, 0xb7, 0x1c, 0x20, 0x01, 0xb7, 0x1d, 0x4c,
							 /* 0078 */	0x01, 0xb7, 0x1e, 0x21, 0x01, 0xb7, 0x1f, 0x02,
							 /* 0080 */	0x01, 0xc7, 0x1c, 0xf0, 0x01, 0xc7, 0x1d, 0x01,
							 /* 0088 */	0x01, 0xc7, 0x1e, 0x33, 0x01, 0xc7, 0x1f, 0x59, 
							 /* 0090 */	0x01, 0xd7, 0x1c, 0x01, 0x01, 0xd7, 0x1d, 0xe6,
							 /* 0098 */	0x01, 0xd7, 0x1e, 0x05, 0x01, 0xd7, 0x1f, 0x40, 
			 /* 0100 */	0x01, 0xe7, 0x1c, 0x30, 0x01, 0xe7, 0x1d, 0x61,
			 /* 0108 */	0x01, 0xe7, 0x1e, 0x4b, 0x01, 0xe7, 0x1f, 0x01,
			  /* 0110 */	0x01, 0xf7, 0x1c, 0x60, 0x01, 0xf7, 0x1d, 0x71, 
			 /* 0118 */	0x01, 0xf7, 0x1e, 0xcb, 0x01, 0xf7, 0x1f, 0x01

						 },

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

						 "device-type",
						 Buffer (0x10)
						 {
							 "Realtek ALC889a"
						 },

							"PinConfigurations",
							Buffer (0x30)
							{
							 /* 0000 */	0x10, 0x44, 0x01, 0x01, 0x12, 0x14, 0x01, 0x01,
							 /* 0008 */	0x11, 0x64, 0x01, 0x01, 0x14, 0x24, 0x01, 0x01,
							 /* 0010 */	0x40, 0x9c, 0xa1, 0x01, 0x50, 0x9c, 0xa1, 0x02,
							 /* 0018 */	0x4f, 0x34, 0x81, 0x01, 0x20, 0x4c, 0x21, 0x02,
							 /* 0020 */	0xf0, 0x01, 0x33, 0x59, 0x01, 0xe6, 0x05, 0x40,
							 /* 0028 */	0x30, 0x61, 0x4b, 0x01, 0x60, 0x71, 0xcb, 0x01

 

I used the configdata and pinconfiguration from "Windows 7" (64bit edition)

I have sound (kext free) and I don't get sound assertion errors anymore

but i had to plug my speakers to line out (blue) instead of speakers (green)

just a little more tweaking...

picture1j.th.png

picture2ykl.th.png

picture3e.th.png

Link to comment
Share on other sites

This will work but have several sound assertion errors upon boot

 

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

			 Method (_DSM, 4, NotSerialized)
			 {
				 Store (Package (0x0C)
					 {
						 "built-in",
						 Buffer (One)
						 {
							 0x00
						 },

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

						 "ConfigData",
						 Buffer (0xA0)
						 {
							 /* 0000 */	0x21, 0x87, 0x1c, 0x10, 0x21, 0x87, 0x1d, 0x90,
							 /* 0008 */	0x21, 0x87, 0x1e, 0xa0, 0x21, 0x87, 0x1f, 0x90,
							 /* 0010 */	0x21, 0x97, 0x1c, 0x20, 0x21, 0x97, 0x1d, 0x90,
							 /* 0018 */	0x21, 0x97, 0x1e, 0xa1, 0x21, 0x97, 0x1f, 0x02,
							 /* 0020 */	0x21, 0xa7, 0x1c, 0x80, 0x21, 0xa7, 0x1d, 0x30,
							 /* 0028 */	0x21, 0xa7, 0x1e, 0x81, 0x21, 0xa7, 0x1f, 0x01,
							 /* 0030 */	0x21, 0xb7, 0x1c, 0x90, 0x21, 0xb7, 0x1d, 0x40,
							 /* 0038 */	0x21, 0xb7, 0x1e, 0x21, 0x21, 0xb7, 0x1f, 0x02,
							 /* 0040 */	0x21, 0x47, 0x1c, 0x30, 0x21, 0x47, 0x1d, 0x40,
							 /* 0048 */	0x21, 0x47, 0x1e, 0x11, 0x21, 0x47, 0x1f, 0x01,
							 /* 0050 */	0x21, 0x57, 0x1c, 0x40, 0x21, 0x57, 0x1d, 0x10,
							 /* 0058 */	0x21, 0x57, 0x1e, 0x01, 0x21, 0x57, 0x1f, 0x01,
							 /* 0060 */	0x21, 0x67, 0x1c, 0x50, 0x21, 0x67, 0x1d, 0x60,
							 /* 0068 */	0x21, 0x67, 0x1e, 0x01, 0x21, 0x67, 0x1f, 0x01,
							 /* 0070 */	0x21, 0x77, 0x1c, 0x60, 0x21, 0x77, 0x1d, 0x20,
							 /* 0078 */	0x21, 0x77, 0x1e, 0x01, 0x21, 0x77, 0x1f, 0x01,
							 /* 0080 */	0x21, 0xe7, 0x1c, 0x70, 0x21, 0xe7, 0x1d, 0x61,
							 /* 0088 */	0x21, 0xe7, 0x1e, 0x4b, 0x21, 0xe7, 0x1f, 0x01,
							 /* 0090 */	0x21, 0xf7, 0x1c, 0xa0, 0x21, 0xf7, 0x1d, 0x01,
							 /* 0098 */	0x21, 0xf7, 0x1e, 0xcb, 0x21, 0xf7, 0x1f, 0x01
						 },

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

						 "device-type",
						 Buffer (0x10)
						 {
							 "Realtek ALC889a"
						 },
							"PinConfigurations",
							Buffer (0x28)
							{
								/* 0000 */	0x10, 0x90, 0xA0, 0x90, 0x20, 0x90, 0xA1, 0x02,
								/* 0008 */	0x80, 0x30, 0x81, 0x01, 0x90, 0x40, 0x21, 0x02,
								/* 0010 */	0x30, 0x40, 0x11, 0x01, 0x40, 0x10, 0x01, 0x01,
								/* 0018 */	0x50, 0x60, 0x01, 0x01, 0x60, 0x20, 0x01, 0x01,
								/* 0020 */	0x70, 0x61, 0x4B, 0x01, 0xA0, 0x01, 0xCB, 0x01


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

there are many other options to try for layout id, for those who have time... ;)

Link to comment
Share on other sites

This will work but have several sound assertion errors upon boot

 

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

			  Method (_DSM, 4, NotSerialized)
			  {
				  Store (Package (0x0C)
					  {
						  "built-in",
						  Buffer (One)
						  {
							  0x00
						  },

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

						  "ConfigData",
						  Buffer (0xA0)
						  {
							  /* 0000 */	0x21, 0x87, 0x1c, 0x10, 0x21, 0x87, 0x1d, 0x90,
							  /* 0008 */	0x21, 0x87, 0x1e, 0xa0, 0x21, 0x87, 0x1f, 0x90,
							  /* 0010 */	0x21, 0x97, 0x1c, 0x20, 0x21, 0x97, 0x1d, 0x90,
							  /* 0018 */	0x21, 0x97, 0x1e, 0xa1, 0x21, 0x97, 0x1f, 0x02,
							  /* 0020 */	0x21, 0xa7, 0x1c, 0x80, 0x21, 0xa7, 0x1d, 0x30,
							  /* 0028 */	0x21, 0xa7, 0x1e, 0x81, 0x21, 0xa7, 0x1f, 0x01,
							  /* 0030 */	0x21, 0xb7, 0x1c, 0x90, 0x21, 0xb7, 0x1d, 0x40,
							  /* 0038 */	0x21, 0xb7, 0x1e, 0x21, 0x21, 0xb7, 0x1f, 0x02,
							  /* 0040 */	0x21, 0x47, 0x1c, 0x30, 0x21, 0x47, 0x1d, 0x40,
							  /* 0048 */	0x21, 0x47, 0x1e, 0x11, 0x21, 0x47, 0x1f, 0x01,
							  /* 0050 */	0x21, 0x57, 0x1c, 0x40, 0x21, 0x57, 0x1d, 0x10,
							  /* 0058 */	0x21, 0x57, 0x1e, 0x01, 0x21, 0x57, 0x1f, 0x01,
							  /* 0060 */	0x21, 0x67, 0x1c, 0x50, 0x21, 0x67, 0x1d, 0x60,
							  /* 0068 */	0x21, 0x67, 0x1e, 0x01, 0x21, 0x67, 0x1f, 0x01,
							  /* 0070 */	0x21, 0x77, 0x1c, 0x60, 0x21, 0x77, 0x1d, 0x20,
							  /* 0078 */	0x21, 0x77, 0x1e, 0x01, 0x21, 0x77, 0x1f, 0x01,
							  /* 0080 */	0x21, 0xe7, 0x1c, 0x70, 0x21, 0xe7, 0x1d, 0x61,
							  /* 0088 */	0x21, 0xe7, 0x1e, 0x4b, 0x21, 0xe7, 0x1f, 0x01,
							  /* 0090 */	0x21, 0xf7, 0x1c, 0xa0, 0x21, 0xf7, 0x1d, 0x01,
							  /* 0098 */	0x21, 0xf7, 0x1e, 0xcb, 0x21, 0xf7, 0x1f, 0x01
						  },

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

						  "device-type",
						  Buffer (0x10)
						  {
							  "Realtek ALC889a"
						  },
							 "PinConfigurations",
							 Buffer (0x28)
							 {
								 /* 0000 */	0x10, 0x90, 0xA0, 0x90, 0x20, 0x90, 0xA1, 0x02,
								 /* 0008 */	0x80, 0x30, 0x81, 0x01, 0x90, 0x40, 0x21, 0x02,
								 /* 0010 */	0x30, 0x40, 0x11, 0x01, 0x40, 0x10, 0x01, 0x01,
								 /* 0018 */	0x50, 0x60, 0x01, 0x01, 0x60, 0x20, 0x01, 0x01,
								 /* 0020 */	0x70, 0x61, 0x4B, 0x01, 0xA0, 0x01, 0xCB, 0x01


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

there are many other options to try for layout id, for those who have time... ;)

 

WinstonAce,

 

I will try this and see what I can find. I did notice that your "count" appears to be off for the number of pinconfigs and config data entries. Shouldn't it be (hex) 0x6A for config data and 0x1C for pinconfigs?

 

Thanks,

SMF

Link to comment
Share on other sites

WinstonAce,

 

I will try this and see what I can find. I did notice that your "count" appears to be off for the number of pinconfigs and config data entries. Shouldn't it be (hex) 0x6A for config data and 0x1C for pinconfigs?

 

Thanks,

SMF

WinstonAce "count" is correct. Use WinstonAce PinCofigurations as an example, it have 5 complete entry of 8 (more accurate to say it have 5 entry): 5 X 8 = 40 (DEC). So, 40 (DEC) = 0x28 (HEX).

 

kizwan

Link to comment
Share on other sites

 Share

×
×
  • Create New...