Mac OS X on x86 Hardware 2008–2024 Technical Archive
InfiniteMac OSx86 › OSx86 Core & 10.X › unable to fix USB ports in DSDT
9,506 reads · 2009-10-23
Dossier 10.X Core DSDT

unable to fix USB ports in DSDT

plz help ! i´m unable to fix the USB ports to work as integrated. (always get a device removal warning at wakeup from sleep) i try every fix i could find, without sucess. in most cases i get the error i have a bit of c++/c# knolege, but i…

Primary Author
@CEOS Published 2009-10-23
Collection
OSx86 Core & 10.X
Archival Footprint
9,506 historical reads · 2 curated field notes (from 5 dispatches) · 2009-10-23
Credited Voices (3)
@CEOS (3)@thorazine74@sk1nhd33t

plz help !

i´m unable to fix the USB ports to work as integrated.
(always get a device removal warning at wakeup from sleep)

i try every fix i could find, without sucess.
in most cases i get the error

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

i have a bit of c++/c# knolege, but i dont know what i´m doing wrong.

this is the usb part of the DSDT:

            Device (USB0)
            {
                Name (_ADR, 0x001D0000)
                Method (_S3D, 0, NotSerialized)
                {
                    If (LEqual (OSFL, 0x02))
                    {
                        Return (0x02)
                    }

                    Return (0x03)
                }

                Name (_PRW, Package (0x02)
                {
                    0x03, 
                    0x03
                })
            }

            Device (USB1)
            {
                Name (_ADR, 0x001D0001)
                Method (_S3D, 0, NotSerialized)
                {
                    If (LEqual (OSFL, 0x02))
                    {
                        Return (0x02)
                    }

                    Return (0x03)
                }

                Name (_PRW, Package (0x02)
                {
                    0x04, 
                    0x03
                })
            }

            Device (USB2)
            {
                Name (_ADR, 0x001D0002)
                Method (_S3D, 0, NotSerialized)
                {
                    If (LEqual (OSFL, 0x02))
                    {
                        Return (0x02)
                    }

                    Return (0x03)
                }

                Name (_PRW, Package (0x02)
                {
                    0x0C, 
                    0x03
                })
            }

            Device (USB3)
            {
                Name (_ADR, 0x001A0000)
                Method (_S3D, 0, NotSerialized)
                {
                    If (LEqual (OSFL, 0x02))
                    {
                        Return (0x02)
                    }

                    Return (0x03)
                }

                Name (_PRW, Package (0x02)
                {
                    0x0E, 
                    0x03
                })
            }

            Device (USB4)
            {
                Name (_ADR, 0x001A0001)
                Method (_S3D, 0, NotSerialized)
                {
                    If (LEqual (OSFL, 0x02))
                    {
                        Return (0x02)
                    }

                    Return (0x03)
                }

                Name (_PRW, Package (0x02)
                {
                    0x05, 
                    0x03
                })
            }

            Device (USB5)
            {
                Name (_ADR, 0x001A0002)
                Method (_S3D, 0, NotSerialized)
                {
                    If (LEqual (OSFL, 0x02))
                    {
                        Return (0x02)
                    }

                    Return (0x03)
                }

                Name (_PRW, Package (0x02)
                {
                    0x20, 
                    0x03
                })
            }

            Device (USBE)
            {
                Name (_ADR, 0x001D0007)
                Method (_S3D, 0, NotSerialized)
                {
                    If (LEqual (OSFL, 0x02))
                    {
                        Return (0x02)
                    }

                    Return (0x03)
                }

                Name (_PRW, Package (0x02)
                {
                    0x0D, 
                    0x03
                })
            }

            Device (USE2)
            {
                Name (_ADR, 0x001A0007)
                Method (_S3D, 0, NotSerialized)
                {
                    If (LEqual (OSFL, 0x02))
                    {
                        Return (0x02)
                    }

                    Return (0x03)
                }

                Name (_PRW, Package (0x02)
                {
                    0x0D, 
                    0x03
                })
            }

i attached the dsdt i try to patch and the ioreg dump
please help a DSDT noob

Synthesized Community Field Notes

2 technical responses curated from 5 original dispatches

Field Note #1 @thorazine74 2009-10-23

I think you forgot to add the DTGP method to your code.

Field Note #2 @sk1nhd33t 2009-10-23

read more here ↗, start on post #43 by ApexDE

in most cases i get the error

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

not an expert in dsdt and i could be wrong but i believe you need method DTGP on your dsdt to compile properly, try downloading DSDT-Se (osx 86.es/?p=610), the fix is there under dsdt hacks.

Sources & Contributor Provenance (3 credited usernames · Thread #4497)
UsernameDossier ContributionDispatchesActive Window
@CEOSPrimary Author32009-10-23
@thorazine74Contributor12009-10-23
@sk1nhd33tContributor12009-10-23