Jump to content

EHCI Details Missing in DSDT


  • Please log in to reply
8 replies to this topic

#1
gibsonic

gibsonic

    InsanelyMac Protégé

  • Members
  • Pip
  • 13 posts
Hi all,

Been fishing around in my DSDT.dsl file to get the USB2 ports on my Optiplex 780 to appear as Built-in rather than Expansion Slot. The problem is that there seems to be no information regarding the controllers in the DSDT at all!

In IORegistryExplorer the controllers appear as 'pci8086,3a6a@1D,7' and 'pci8086,3a6c@1A,7' rather than the more usual names like 'USB0@1D' for the UHCI controllers. Searching the DSDT.dsl for the full addresses (e.g. 0x001D0007) finds nothing, while I can find the USB1.1 controllers immediately.

I've been able to get the UHCI controllers to appear Built-in, but I have no idea what's going on with EHCI. Because of this I also get the 'unloaded across sleep' errors on startup for the two controllers and waking from sleep is broken.

I've attached the output from IORegistryExplorer and the vanilla DSDT.dsl from the Optiplex 780 (A09 BIOS) - if anybody has time to compare the two or tell me where else I should be looking, I'd really appreciate it!

Attached File  Optiplex780_IORegEx.ioreg.txt   1.28MB   6 downloads
Attached File  Optiplex780_A09_Clean.dsl.txt   219.48KB   9 downloads

#2
MaLd0n

MaLd0n

    ...filling veins with juice of chaos...

  • Moderators
  • 11,139 posts
  • Gender:Male
  • Location:Rio de Janeiro
try it
EHCIacquire=Yes
EHCI in SSDT?

#3
gibsonic

gibsonic

    InsanelyMac Protégé

  • Members
  • Pip
  • 13 posts

try it

EHCIacquire=Yes

No change with that, I'm afraid. Still 'expansion slot' and still no sign in DSDT. :(

EHCI in SSDT?

I'll investigate how to read that out and post back. Thanks for the suggestions!

#4
gibsonic

gibsonic

    InsanelyMac Protégé

  • Members
  • Pip
  • 13 posts
Okay, I've read out the SSDT tables with DSDTSE, but again can't see any mention of EHCI or USBE, or even those addresses... I've attached the .dsl files (in a .zip this time) - any more suggestions would be great.

Attached File  Optiplex780_A09_DSDT_SSDT.zip   24.55KB   5 downloads

#5
dropkickwalker

dropkickwalker

    InsanelyMac Protégé

  • Members
  • Pip
  • 2 posts
Hi All,

Has Anyone found a way to add USB2 EHCI to an extracted Dell Optiplex DSDT? I have the same problem with my 755. Perhaps it was b/c I extracted A09 BIOS? I have recently upgraded to A19 - should I re-extract DSDT?

Thanks in advance!

#6
MaLd0n

MaLd0n

    ...filling veins with juice of chaos...

  • Moderators
  • 11,139 posts
  • Gender:Male
  • Location:Rio de Janeiro
hey gibsonic
try it
Attached File  dsdt.gibsonic.zip   8.51KB   37 downloads
into_all all code_regex _T_0 replaceall_matched begin T_0 end;into_all all code_regex _T_1 replaceall_matched begin T_1 end;into_all all code_regex _T_2 replaceall_matched begin T_2 end;into_all all code_regex _T_3 replaceall_matched begin T_3 end;into_all all code_regex _T_4 replaceall_matched begin T_4 end;into_all all code_regex _T_5 replaceall_matched begin T_5 end;into_all all code_regex _T_6 replaceall_matched begin T_6 end;into_all scope label _PR code_regex Alias\s\([^\n]+\n removeall_matched;into_all scope label \_PR code_regex Alias\s\([^\n]+\n removeall_matched;into method label DTGP remove_entry;into definitionblock code_regex . insertbeginMethod (DTGP, 5, NotSerialized)\n{\n    If (LEqual (Arg0, Buffer (0x10)\n            {\n                /* 0000 */    0xC6, 0xB7, 0xB5, 0xA0, 0x18, 0x13, 0x1C, 0x44, \n                /* 0008 */    0xB0, 0xC9, 0xFE, 0x69, 0x5E, 0xAF, 0x94, 0x9B\n            }))\n    {\n        If (LEqual (Arg1, One))\n        {\n            If (LEqual (Arg2, Zero))\n            {\n                Store (Buffer (One)\n                    {\n                        0x03\n                    }, Arg4)\n                Return (One)\n            }\n            If (LEqual (Arg2, One))\n            {\n                Return (One)\n            }\n        }\n    }\n    Store (Buffer (One)\n        {\n            0x00\n        }, Arg4)\n    Return (Zero)\n}end;into device name_adr 0x001B0000 parent_label PCI0 remove_entry;into device label PCI0 insertbeginDevice (HDEF)\n{\n    Name (_ADR, 0x001B0000)\n    Method (_DSM, 4, NotSerialized)\n    {\n        Store (Package (0x04)\n            {\n                "layout-id", \n                Buffer (0x04)\n                {\n                    0x0C, 0x00, 0x00, 0x00\n                }, \n                "PinConfigurations", \n                Buffer (Zero) {}\n            }, Local0)\n        DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))\n        Return (Local0)\n    }\n}end;into device label PWRB code_regex (Name\s\()_HID(\,\sEisaId\s\(\"PNP0C0C\"\)\)) replace_matched begin %1_CID%2 end;into method label _STA parent_hid PNP0103 remove_entry;into device name_hid PNP0103 insertbeginMethod (_STA, 0, NotSerialized)\n{\n    Return (0x0F)\n}end;into method label _CRS parent_hid PNP0000 code_regex IRQNoFlags\s\(\)\n\s+\{(\d+)\} remove_matched;into method label _CRS parent_hid PNP0100 code_regex IRQNoFlags\s\(\)\n\s+\{(\d+)\} remove_matched;into method label _CRS parent_hid PNP0B00 code_regex IRQNoFlags\s\(\)\n\s+\{(\d+)\} remove_matched;into method label _CRS parent_hid PNP0103 code_regex IRQNoFlags\s\(\)\n\s+\{(\d+)\} removeall_matched;into method label _CRS parent_hid PNP0103 code_regex Name\s\(([^,]+),\sResourceTemplate\s\(\)\n\s+\{((?:.|\n)*)\}\) replace_matchedbeginName (%1, ResourceTemplate ()\n                    {\n                        IRQNoFlags ()\n                            {0}\n                        IRQNoFlags ()\n                            {8}\n                        IRQNoFlags ()\n                            {11}\n                        IRQNoFlags ()\n                            {15}\n%2})end;into method label _DSM parent_adr 0x001F0000 remove_entry;into device name_adr 0x001F0000 insertbeginMethod (_DSM, 4, NotSerialized)\n{\n    Store (Package (0x02)\n        {\n            "device-id", \n            Buffer (0x04)\n            {\n                0x18, 0x3A, 0x00, 0x00\n            }\n        }, Local0)\n    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))\n    Return (Local0)\n}end;into_all all code_regex (Acquire\s\(MUTE,\s0x)....\)replace_matchedbegin%1FFFF)end;into_all scope label _SB.PCI0.PCI5 code_regex Name\s\(PIC5,\sPackage\s\(0x00\) replaceall_matchedbeginName (PIC5, Package (Zero)end;into_all scope label _SB.PCI0.PCI5 code_regex Name\s\(API5,\sPackage\s\(0x00\) replaceall_matchedbeginName (API5, Package (Zero)end;into_all scope label _SB.PCI0.PCI6 code_regex Name\s\(PIC6,\sPackage\s\(0x00\) replaceall_matchedbeginName (PIC6, Package (Zero)end;into_all scope label _SB.PCI0.PCI6 code_regex Name\s\(API6,\sPackage\s\(0x00\) replaceall_matchedbeginName (API6, Package (Zero)end;into DefinitionBlock code_regex_not PBIF code_regex Package\s\(0x0D\) replaceall_matchedbeginPackage ()end;into device label SPKR remove_entry;into device label FDC remove_entry;into device label FDC0 remove_entry;into device label LPT1 remove_entry;into device label LPTE remove_entry;into device label LPT remove_entry;into device label ECP1 remove_entry;into device label MEM remove_entry;into device label ^^RMEM remove_entry;into method label _CRS parent_hid PNP0B00 code_regex (IO\s\((?:\s*[^,]+,\s*(?:\/\/\s.*)?\s*\n)+\s*)(\dx\d+)(,\s*(?:\/\/\s.*)?\s*\n\s*\)) replace_matched begin %10x02%3 end;into device name_adr 0x001F0003 parent_label PCI0 remove_entry;into device label PCI0 insertbeginDevice (SBUS)\n{\n    Name (_ADR, 0x001F0003)\n    Device (BUS0)\n    {\n        Name (_CID, "smbus")\n        Name (_ADR, Zero)\n        Device (DVL0)\n        {\n            Name (_ADR, 0x57)\n            Name (_CID, "diagsvault")\n        }\n    }\n    Method (_DSM, 4, NotSerialized)\n    {\n        Store (Package (0x02)\n            {\n                "device-id", \n                Buffer (0x04)\n                {\n                    0x30, 0x3A, 0x00, 0x00\n                }\n            }, Local0)\n        DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))\n        Return (Local0)\n    }\n}end;into method label _PTS code_regex_not If\s*\(LEqual\s*\(Arg0,\s*0x05\)\) code_regex ^((?:.|\n)*)$ replace_matchedbegin        If (LEqual (Arg0, 0x05))\n        {\n            Store (Zero, SLPE)\n            Sleep (0x10)\n        }\n        Else\n        {\n%1        }end;into definitionblock code_regex . code_regex_not OperationRegion\s*\(PMRS insertbeginOperationRegion (PMRS, SystemIO, 0x0430, One)\nField (PMRS, ByteAcc, NoLock, Preserve)\n{\n        ,   4, \n    SLPE,   1\n}end;into method label _DSM parent_adr 0x001D0000 remove_entry;into device name_adr 0x001D0000 insertbeginMethod (_DSM, 4, NotSerialized)\n{\n    Store (Package (0x02)\n        {\n            "device-id", \n            Buffer (0x04)\n            {\n                0x34, 0x3A, 0x00, 0x00\n            }\n        }, Local0)\n    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))\n    Return (Local0)\n}end;into method label _DSM parent_adr 0x001D0001 remove_entry;into device name_adr 0x001D0001 insertbeginMethod (_DSM, 4, NotSerialized)\n{\n    Store (Package (0x02)\n        {\n            "device-id", \n            Buffer (0x04)\n            {\n                0x35, 0x3A, 0x00, 0x00\n            }\n        }, Local0)\n    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))\n    Return (Local0)\n}end;into method label _DSM parent_adr 0x001D0002 remove_entry;into device name_adr 0x001D0002 insertbeginMethod (_DSM, 4, NotSerialized)\n{\n    Store (Package (0x02)\n        {\n            "device-id", \n            Buffer (0x04)\n            {\n                0x36, 0x3A, 0x00, 0x00\n            }\n        }, Local0)\n    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))\n    Return (Local0)\n}end;into method label _DSM parent_adr 0x001A0000 remove_entry;into device name_adr 0x001A0000 insertbeginMethod (_DSM, 4, NotSerialized)\n{\n    Store (Package (0x02)\n        {\n            "device-id", \n            Buffer (0x04)\n            {\n                0x37, 0x3A, 0x00, 0x00\n            }\n        }, Local0)\n    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))\n    Return (Local0)\n}end;into method label _DSM parent_adr 0x001A0001 remove_entry;into device name_adr 0x001A0001 insertbeginMethod (_DSM, 4, NotSerialized)\n{\n    Store (Package (0x02)\n        {\n            "device-id", \n            Buffer (0x04)\n            {\n                0x38, 0x3A, 0x00, 0x00\n            }\n        }, Local0)\n    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))\n    Return (Local0)\n}end;into method label _DSM parent_adr 0x001A0002 remove_entry;into device name_adr 0x001A0002 insertbeginMethod (_DSM, 4, NotSerialized)\n{\n    Store (Package (0x02)\n        {\n            "device-id", \n            Buffer (0x04)\n            {\n                0x39, 0x3A, 0x00, 0x00\n            }\n        }, Local0)\n    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))\n    Return (Local0)\n}end;into method label _DSM parent_adr 0x001D0003 remove_entry;into device name_adr 0x001D0003 insertbeginMethod (_DSM, 4, NotSerialized)\n{\n    Store (Package (0x02)\n        {\n            "device-id", \n            Buffer (0x04)\n            {\n                0x37, 0x3A, 0x00, 0x00\n            }\n        }, Local0)\n    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))\n    Return (Local0)\n}end;into device label PCI0 insertbeginDevice (EHC1)\n            {\n                Name (_ADR, 0x001D0007)\n                Name (_PRW, Package (0x02)\n                {\n                    0x0D, \n                    0x03\n                })\n                Method (_DSM, 4, NotSerialized)\n                {\n                    Store (Package (0x04)\n                        {\n                            "device-id", \n                            Buffer (0x04)\n                            {\n                                0x3C, 0x3A, 0x00, 0x00\n                            }, \n                            "AAPL,clock-id", \n                            Buffer (One)\n                            {\n                                0x01\n                            }\n                        }, Local0)\n                    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))\n                    Return (Local0)\n                }\n}end;into device label PCI0 insertbeginDevice (EHC2)\n            {\n                Name (_ADR, 0x001A0007)\n                Name (_PRW, Package (0x02)\n                {\n                    0x0D, \n                    0x03\n                })\n                Method (_DSM, 4, NotSerialized)\n                {\n                    Store (Package (0x04)\n                        {\n                            "device-id", \n                            Buffer (0x04)\n                            {\n                                0x3C, 0x3A, 0x00, 0x00\n                            }, \n                            "AAPL,clock-id", \n                            Buffer (One)\n                            {\n                                0x01\n                            }\n                        }, Local0)\n                    DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))\n                    Return (Local0)\n                }\n}end

Hi All,

Has Anyone found a way to add USB2 EHCI to an extracted Dell Optiplex DSDT? I have the same problem with my 755. Perhaps it was b/c I extracted A09 BIOS? I have recently upgraded to A19 - should I re-extract DSDT?

Thanks in advance!

send me DSDT
what is the chipset?
ICH9?

#7
gibsonic

gibsonic

    InsanelyMac Protégé

  • Members
  • Pip
  • 13 posts

hey gibsonic
try it

That's it! Fantastic! Thank you for your help on this - both 'USB Bus' and 'USB High-Speed Bus' show properly using this DSDT. I'll try apply the patch alongside the others I use now. :(

#8
gibsonic

gibsonic

    InsanelyMac Protégé

  • Members
  • Pip
  • 13 posts

I'll try apply the patch alongside the others I use now. :D

The only other change I needed after applying the patch was to change 'Name (_UID, 0x4)' to 'Name (_UID, Zero)' under 'Device (PCI0)'. After that, App Store began working correctly and HD5450 graphics card is detected. Perfect!

Not tried sleep support as yet, but that would just be a bonus; I never actually use it. :thumbsup_anim:

#9
Maroc-OS

Maroc-OS

    InsanelyMac Protégé

  • Members
  • Pip
  • 29 posts
  • Gender:Male
  • Location:Casablanca, Casablanca, Morocco
  • Interests:P5KPL-AM SE
Try This :

it's my perfect worked One, and change your device name to EHC1 or EHCI and do not foget to change all related names in the rest of your dsdt.

				Method (_DSM, 4, NotSerialized)
				{
					Store (Package (0x0C)
						{
							"AAPL,current-available",
							0x05DC,
							"AAPL,current-extra",
							0x04B0,
							"AAPL,current-in-sleep",
							0x09C4,
							"AAPL,clock-id",
							Buffer (One)
							{
								0x01
							},
							"device-id",
							Buffer (0x04)
							{
								0xCC, 0x27, 0x00, 0x00
							},
							"device_type",
							Buffer (0x05)
							{
								"EHCI"
							}
						}, Local0)
					DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
					Return (Local0)
				}

YOU CAN ADD THIS IF YOU WANT :

							"built-in",
							Buffer (One)
							{
								0x00
							},






0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

© 2014 InsanelyMac  |   News  |   Forum  |   Downloads  |   OSx86 Wiki  |   Mac Netbook  |   PHP hosting by CatN  |   Designed by Ed Gain  |   Logo by irfan  |   Privacy Policy