Jump to content

DSDT fixes for Gigabyte boards


iSoprano
 Share

1,909 posts in this topic

Recommended Posts

The first thing I thought after looking at that code was: "Why not two 16 bit registers?":

 

kPIIX_PCI_IDETIM = 0x40, // (16) IDE timing registers (pri)

kPIIX_PCI_IDETIM_S = 0x42, // (16) IDE timing registers (sec)

 

Because that is what AppleIntelPIIXATA.kext is looking for. Not to mention that the Offset(0xnn)'s are totally useless, and that the code can be reduced by nine lines. And before you think: "But that's not AppleIntelPIIXPATA" well... that is just the name of the IOClass.

 

p.s. And _DSM should really have been _INI (no need for unused arguments).

Link to comment
Share on other sites

CIA2 is auto-overclock function, it only increase fsb speed.

 

After reading this thread I decided to poke about in the bios settings of my GA-EP45-DS3L with a Q6600 G0.

 

C1E and EIST are enabled (have always been, I think it's the default).

I left CIA2 well alone :)

I changed the setting for the CPU Fan from bios controlled (default) to smart control where the mobo alters fan speed according to CPU temp etc.

 

Before CPU-i wasn't reporting any P-States.

After changing this fan setting it was!

 

# Frequency Multiplier Voltage Control CID

1 2394 MHz x 9.0 1.276 V 0x924 0x12

2 2128 MHz x 8.0 1.244 V 0x822 0x11

3 1862 MHz x 7.0 1.196 V 0x71F 0xF

4 1596 MHz x 6.0 1.148 V 0x61C 0xD

 

 

Which is just Bizarre. :/

Link to comment
Share on other sites

Hello fellow hack(intosh)ers!

 

I have some questions there, mostly strange ones. Here comes the most important one: If I tell OS X to shutdown my PC, after shutdown, USB power will be still on, so if I press a key on my keyboard I see its' numlock led lighting up (as long as I hold the key pressed), or if I click with my mouse I can see its' red light (just for a fraction of a second, then it goes off). Any ideas there? (And of course, using windows there is no such problem.)

I've got a bit of coder's questions, which should be easy ones:

  • in my DSDT there are some really idiotic _CRS methods in device FWHB and PCI0.EXPL, the thing I'm asking you is the return's importancy - wouldn't it be more logical if the code would be there without the need to return?
  • near the above mentioned devices there is a MEM device too. Is there any use of it on Mac OS X, or can I just remove it?

I've attached my DSDT there, and thanks in advance to the readers and helpers!

 

P.S: Ah, and Master Chief, thanks for your great methods, especially MCDP!

 

Matthew

Source.dsl.zip

Link to comment
Share on other sites

Hello everybody, firstly thanks for your great works with DSDT fixes and for leave it more clean and understandable..

I have been following the topic(when i can..a lot of work), but what do you think of better organizing the discussion, putting the fixes that have already been tested on the first page, for better visualization of who is reading the topic for the first time ..

It's just a suggestion ..

 

Regards for all..

Thiago.

Link to comment
Share on other sites

Here's a problem which I think is a DSDT problem. I just bought a Magic Mouse and wanted to get it to wake via Bluetooth (D-Link DBT-120, hardware revision B4). Currently I don't have a problem waking my machine via wired mouse or keyboard. And this is the only approved Bluetooth dongle that will allow wake from USB. So when I plug the dongle into my MacBook, Mac Mini or eMac the "Allow Bluetooth devices to wake this computer" is available. However when I plug it into my OSX86 machine it's greyed out. Anyone have any ideas? I have all my USB/EHCI/UHCI devices show up as built-in.

 

Anyone have any ideas?

post-16858-1257523892_thumb.png

 

            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 (EHC1)
           {
               Name (_ADR, 0x001D0007)
               Method (_S3D, 0, NotSerialized)
               {
                   If (LEqual (OSFL, 0x02))
                   {
                       Return (0x02)
                   }

                   Return (0x03)
               }

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

               Method (_DSM, 4, NotSerialized)
               {
                   Store (Package (0x02)
                       {
                           "AAPL,clock-id", 
                           Buffer (0x01)
                           {
                               0x01
                           } 
                       }, Local0)
                   DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                   Return (Local0)
               }
           }

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

                   Return (0x03)
               }

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

               Method (_DSM, 4, NotSerialized)
               {
                   Store (Package (0x06)
                       {
                           "AAPL,clock-id", 
                           Buffer (0x01)
                           {
                               0x02
                           }
                       }, Local0)
                   DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                   Return (Local0)
               }
           }

Link to comment
Share on other sites

Hi Kdawg

 

You shouldn't need device id BUT Try this:

 

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

                   Return (0x03)
               }

               Method (_DSM, 4, NotSerialized)
               {
                   Store (Package (0x02)
                       {
                           "device-id", 
                           Buffer (0x04)
                           {
                               0x34, 0x3A, 0x00, 0x00
                           }
                       }, Local0)
                   DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                   Return (Local0)
               }

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

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

                   Return (0x03)
               }

               Method (_DSM, 4, NotSerialized)
               {
                   Store (Package (0x02)
                       {
                           "device-id", 
                           Buffer (0x04)
                           {
                               0x35, 0x3A, 0x00, 0x00
                           }
                       }, Local0)
                   DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                   Return (Local0)
               }

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

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

                   Return (0x03)
               }

               Method (_DSM, 4, NotSerialized)
               {
                   Store (Package (0x02)
                       {
                           "device-id", 
                           Buffer (0x04)
                           {
                               0x36, 0x3A, 0x00, 0x00
                           }
                       }, Local0)
                   DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                   Return (Local0)
               }

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

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

                   Return (0x03)
               }

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

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

                   Return (0x03)
               }

               Method (_DSM, 4, NotSerialized)
               {
                   Store (Package (0x02)
                       {
                           "device-id", 
                           Buffer (0x04)
                           {
                               0x37, 0x3A, 0x00, 0x00
                           }
                       }, Local0)
                   DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                   Return (Local0)
               }

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

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

                   Return (0x03)
               }

               Method (_DSM, 4, NotSerialized)
               {
                   Store (Package (0x02)
                       {
                           "device-id", 
                           Buffer (0x04)
                           {
                               0x38, 0x3A, 0x00, 0x00
                           }
                       }, Local0)
                   DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                   Return (Local0)
               }

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

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

                   Return (0x03)
               }

               Method (_DSM, 4, NotSerialized)
               {
                   Store (Package (0x02)
                       {
                           "device-id", 
                           Buffer (0x04)
                           {
                               0x39, 0x3A, 0x00, 0x00
                           }
                       }, Local0)
                   DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                   Return (Local0)
               }

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

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

                   Return (0x03)
               }

               Method (_DSM, 4, NotSerialized)
               {
                   Store (Package (0x06)
                       {
                           "AAPL,clock-id", 
                           Buffer (One)
                           {
                               0x01
                           }, 

                           "device_type", 
                           Buffer (0x05)
                           {
                               "EHCI"
                           }, 

                           "device-id", 
                           Buffer (0x04)
                           {
                               0x3A, 0x3A, 0x00, 0x00
                           }
                       }, Local0)
                   DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                   Return (Local0)
               }

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

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

                   Return (0x03)
               }

               Method (_DSM, 4, NotSerialized)
               {
                   Store (Package (0x06)
                       {
                           "AAPL,clock-id", 
                           Buffer (One)
                           {
                               0x02
                           }, 

                           "device_type", 
                           Buffer (0x05)
                           {
                               "EHCI"
                           }, 

                           "device-id", 
                           Buffer (0x04)
                           {
                               0x3C, 0x3A, 0x00, 0x00
                           }
                       }, Local0)
                   DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                   Return (Local0)
               }

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

 

Or This (remember you need to replace all USB* with UHC* and EHC* with this one!!)

 

            Device (UHC1)
           {
               Name (_ADR, 0x001D0000)
               OperationRegion (BAR0, PCI_Config, 0xC4, One)
               Field (BAR0, ByteAcc, NoLock, Preserve)
               {
                   USBW,   2, 
                           Offset (0x01)
               }

               Method (_PSW, 1, NotSerialized)
               {
                   If (Arg0)
                   {
                       Store (0x03, USBW)
                   }
                   Else
                   {
                       Store (Zero, USBW)
                   }
               }

               Name (_PRW, Package (0x02)
               {
                   0x03, 
                   0x04
               })
               Method (_DSM, 4, NotSerialized)
               {
                   Store (Package (0x02)
                       {
                           "device-id", 
                           Buffer (0x04)
                           {
                               0x34, 0x3A, 0x00, 0x00
                           }
                       }, Local0)
                   DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                   Return (Local0)
               }
           }

           Device (UHC2)
           {
               Name (_ADR, 0x001D0001)
               OperationRegion (BAR0, PCI_Config, 0xC4, One)
               Field (BAR0, ByteAcc, NoLock, Preserve)
               {
                   USBW,   2, 
                           Offset (0x01)
               }

               Method (_PSW, 1, NotSerialized)
               {
                   If (Arg0)
                   {
                       Store (0x03, USBW)
                   }
                   Else
                   {
                       Store (Zero, USBW)
                   }
               }

               Name (_PRW, Package (0x02)
               {
                   0x04, 
                   0x04
               })
               Method (_DSM, 4, NotSerialized)
               {
                   Store (Package (0x02)
                       {
                           "device-id", 
                           Buffer (0x04)
                           {
                               0x35, 0x3A, 0x00, 0x00
                           }
                       }, Local0)
                   DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                   Return (Local0)
               }
           }

           Device (UHC3)
           {
               Name (_ADR, 0x001D0002)
               OperationRegion (BAR0, PCI_Config, 0xC4, One)
               Field (BAR0, ByteAcc, NoLock, Preserve)
               {
                   USBW,   2, 
                           Offset (0x01)
               }

               Method (_PSW, 1, NotSerialized)
               {
                   If (Arg0)
                   {
                       Store (0x03, USBW)
                   }
                   Else
                   {
                       Store (Zero, USBW)
                   }
               }

               Name (_PRW, Package (0x02)
               {
                   0x0C, 
                   0x04
               })
               Method (_DSM, 4, NotSerialized)
               {
                   Store (Package (0x02)
                       {
                           "device-id", 
                           Buffer (0x04)
                           {
                               0x36, 0x3A, 0x00, 0x00
                           }
                       }, Local0)
                   DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                   Return (Local0)
               }
           }

           Device (UHC4)
           {
               Name (_ADR, 0x001A0000)
               OperationRegion (BAR0, PCI_Config, 0xC4, One)
               Field (BAR0, ByteAcc, NoLock, Preserve)
               {
                   USBW,   2, 
                           Offset (0x01)
               }

               Method (_PSW, 1, NotSerialized)
               {
                   If (Arg0)
                   {
                       Store (0x03, USBW)
                   }
                   Else
                   {
                       Store (Zero, USBW)
                   }
               }

               Name (_PRW, Package (0x02)
               {
                   0x0E, 
                   0x04
               })
               Method (_DSM, 4, NotSerialized)
               {
                   Store (Package (0x02)
                       {
                           "device-id", 
                           Buffer (0x04)
                           {
                               0x37, 0x3A, 0x00, 0x00
                           }
                       }, Local0)
                   DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                   Return (Local0)
               }
           }

           Device (UHC5)
           {
               Name (_ADR, 0x001A0001)
               OperationRegion (BAR0, PCI_Config, 0xC4, One)
               Field (BAR0, ByteAcc, NoLock, Preserve)
               {
                   USBW,   2, 
                           Offset (0x01)
               }

               Method (_PSW, 1, NotSerialized)
               {
                   If (Arg0)
                   {
                       Store (0x03, USBW)
                   }
                   Else
                   {
                       Store (Zero, USBW)
                   }
               }

               Name (_PRW, Package (0x02)
               {
                   0x05, 
                   0x04
               })
               Method (_DSM, 4, NotSerialized)
               {
                   Store (Package (0x02)
                       {
                           "device-id", 
                           Buffer (0x04)
                           {
                               0x38, 0x3A, 0x00, 0x00
                           }
                       }, Local0)
                   DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                   Return (Local0)
               }
           }

           Device (UHC6)
           {
               Name (_ADR, 0x001A0002)
               OperationRegion (BAR0, PCI_Config, 0xC4, One)
               Field (BAR0, ByteAcc, NoLock, Preserve)
               {
                   USBW,   2, 
                           Offset (0x01)
               }

               Method (_PSW, 1, NotSerialized)
               {
                   If (Arg0)
                   {
                       Store (0x03, USBW)
                   }
                   Else
                   {
                       Store (Zero, USBW)
                   }
               }

               Name (_PRW, Package (0x02)
               {
                   0x20, 
                   0x04
               })
               Method (_DSM, 4, NotSerialized)
               {
                   Store (Package (0x02)
                       {
                           "device-id", 
                           Buffer (0x04)
                           {
                               0x39, 0x3A, 0x00, 0x00
                           }
                       }, Local0)
                   DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                   Return (Local0)
               }
           }

           Device (EHCI)
           {
               Name (_ADR, 0x001D0007)
               OperationRegion (PMCS, PCI_Config, 0x54, 0x02)
               Field (PMCS, WordAcc, NoLock, Preserve)
               {
                       ,   15, 
                   PMES,   1
               }

               OperationRegion (PWCR, PCI_Config, 0x62, 0x02)
               Field (PWCR, AnyAcc, NoLock, Preserve)
               {
                   URE2,   9
               }

               Method (_PSW, 1, NotSerialized)
               {
                   If (LEqual (Arg0, Zero))
                   {
                       Store (Zero, URE2)
                   }

                   If (LEqual (Arg0, One))
                   {
                       Store (0x01FF, URE2)
                   }
               }

               Name (_PRW, Package (0x02)
               {
                   0x0D, 
                   0x03
               })
               Method (_DSM, 4, NotSerialized)
               {
                   Store (Package (0x04)
                       {
                           "device-id", 
                           Buffer (0x04)
                           {
                               0x3A, 0x29, 0x00, 0x00
                           }, 

                           "AAPL,clock-id", 
                           Buffer (One)
                           {
                               0x01
                           }
                       }, Local0)
                   DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                   Return (Local0)
               }
           }

           Device (UHCI)
           {
               Name (_ADR, 0x001A0007)
               OperationRegion (PMCS, PCI_Config, 0x54, 0x02)
               Field (PMCS, WordAcc, NoLock, Preserve)
               {
                       ,   15, 
                   PMES,   1
               }

               OperationRegion (PWCR, PCI_Config, 0x62, 0x02)
               Field (PWCR, AnyAcc, NoLock, Preserve)
               {
                   URE2,   9
               }

               Method (_PSW, 1, NotSerialized)
               {
                   If (LEqual (Arg0, Zero))
                   {
                       Store (Zero, URE2)
                   }

                   If (LEqual (Arg0, One))
                   {
                       Store (0x01FF, URE2)
                   }
               }

               Name (_PRW, Package (0x02)
               {
                   0x0D, 
                   0x03
               })
               Method (_DSM, 4, NotSerialized)
               {
                   Store (Package (0x04)
                       {
                           "device-id", 
                           Buffer (0x04)
                           {
                               0x3C, 0x29, 0x00, 0x00
                           }, 

                           "AAPL,clock-id", 
                           Buffer (One)
                           {
                               0x02
                           }
                       }, Local0)
                   DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                   Return (Local0)
               }
           }

 

D.

Link to comment
Share on other sites

...

 

I changed the setting for the CPU Fan from bios controlled (default) to smart control where the mobo alters fan speed according to CPU temp etc.

 

Before CPU-i wasn't reporting any P-States. After changing this fan setting it was!

 

...

 

Which is just Bizarre. :/

That's odd. Can someone else here reproduce this?

Link to comment
Share on other sites

Hello fellow hack(intosh)ers!

 

I have some questions there, mostly strange ones. Here comes the most important one: If I tell OS X to shutdown my PC, after shutdown, USB power will be still on, so if I press a key on my keyboard I see its' numlock led lighting up (as long as I hold the key pressed), or if I click with my mouse I can see its' red light (just for a fraction of a second, then it goes off). Any ideas there? (And of course, using windows there is no such problem.)

Hi Matthew,

 

Seems like Power Management isn't properly initialized. Maybe your DSDT it a bit too much Asus like now. Let's see if other GB users are having the same kind of problems, or that this "feature" is limited to you DSDT. And this is most likely due to changes to Method _WAK so please check this method once more, and step by step - you might want to wait for now, until someone here confirms it to work properly.

 

I've got a bit of coder's questions, which should be easy ones:

  • in my DSDT there are some really idiotic _CRS methods in device FWHB and PCI0.EXPL, the thing I'm asking you is the return's importancy - wouldn't it be more logical if the code would be there without the need to return?
  • near the above mentioned devices there is a MEM device too. Is there any use of it on Mac OS X, or can I just remove it?

Method _CSR might look like mad to you, but that's because the BIOS can change things. That's why you see things like this:

				CreateDWordField (BUF0, \_SB.PCI0._CRS._Y00._MIN, TCMM)
			CreateDWordField (BUF0, \_SB.PCI0._CRS._Y00._LEN, TOMM)
			Add (AMEM, 0x00010000, TCMM)
			Add (TCMM, 0x00010000, TCMM)
			Subtract (0xFEC00000, TCMM, TOMM)
			Return (BUF0)

And again, because some of these value, like AMEM for example, can be different (and probably is) in your hack than the one of say fellow GB user mm67.

 

I've attached my DSDT there, and thanks in advance to the readers and helpers!

 

P.S: Ah, and Master Chief, thanks for your great methods, especially MCDP!

 

Matthew

Thanks Matthew. And you're welcome anytime. But hopefully next time I have more time to answer your questions per PM, but this way other people can step in and share their thoughts/findings.

 

p.s. DSDT on file for future references.

 

My CPU fan is off (i'm water cooled) in bios and voodoo monitor works ok.

Thanks!

 

Note: CPU-i here has to be re-started sometimes in order to get the P-States table data (output) properly initialized.

Link to comment
Share on other sites

Hi Matthew,

 

Seems like Power Management isn't properly initialized. Maybe your DSDT it a bit too much Asus like now. Let's see if other GB users are having the same kind of problems, or that this "feature" is limited to you DSDT.

Hehe, okay, we'll see.

Method _CSR might look like mad to you, but that's because the BIOS can change things. That's why you see things like this:
				CreateDWordField (BUF0, \_SB.PCI0._CRS._Y00._MIN, TCMM)
			CreateDWordField (BUF0, \_SB.PCI0._CRS._Y00._LEN, TOMM)
			Add (AMEM, 0x00010000, TCMM)
			Add (TCMM, 0x00010000, TCMM)
			Subtract (0xFEC00000, TCMM, TOMM)
			Return (BUF0)

And again, because some of these value, like AMEM for example, can be different (and probably is) in your hack than the one of say fellow GB user mm67.

Understood, thanks!

Thanks Matthew. And you're welcome anytime. But hopefully next time I have more time to answer your questions per PM, but this way other people can step in and share their thoughts/findings.

Oh Sir, you aren't the one who should apologize. I'm a student, a young dude, sometimes with too much free time, and you are the one who's got a job, family, etc. so I'm the one who shouldn't bother you with all those lil' unimportant things.

Link to comment
Share on other sites

Here's a problem which I think is a DSDT problem. I just bought a Magic Mouse and wanted to get it to wake via Bluetooth (D-Link DBT-120, hardware revision B4). Currently I don't have a problem waking my machine via wired mouse or keyboard. And this is the only approved Bluetooth dongle that will allow wake from USB. So when I plug the dongle into my MacBook, Mac Mini or eMac the "Allow Bluetooth devices to wake this computer" is available. However when I plug it into my OSX86 machine it's greyed out. Anyone have any ideas? I have all my USB/EHCI/UHCI devices show up as built-in.

 

Anyone have any ideas?

Interesting. Let's start by teaching me something. How do you get that image to show up there?

 

Anyway. We first need the IORegistryExplorer output of both machines. You may PM me if you want to share it privately, in a place where you can remove it afterwards.

 

p.s. I might get one myself, for my hack, but only after it works for you :)

Link to comment
Share on other sites

One more thing guys!

At the first CPU's C-states I'm seeing different entries.

There are two types:

			Method (_CST, 0, NotSerialized)
		{
			Return (Package (0x02)
			{
				One,
				Package (0x04)
				{
					ResourceTemplate ()
					{
						Register (FFixedHW, 
							0x01,			   // Bit Width
							0x02,			   // Bit Offset
							0x0000000000000000, // Address
							0x01,			   // Access Size
							)
					},
					One, 
					0x9D, 
					0x03E8
				}, 
			})
		}

and

		Method (_CST, 0, NotSerialized)
	{
		Return (Package (0x02)
		{
			One,
			Package (0x04)
			{
				ResourceTemplate ()
				{
					Register (FFixedHW, 
					0x00,			   // Bit Width
					0x00,			   // Bit Offset
					0x0000000000000000, // Address
					,)
				}, 
				One,
				0x9D,
				0x03E8
			}
		})
	}

Which one is correct?

Link to comment
Share on other sites

Hi, I have a gigabyte p35 ds3, E6300, 8600gt.. I have SL 10.6.1 and I would like to know which is the best/latest DSDT.aml I have to use..

I have used the SL package in this post http://www.insanelymac.com/forum/index.php?showtopic=184367

thanks

 

Interesting. Let's start by teaching me something. How do you get that image to show up there?

 

Anyway. We first need the IORegistryExplorer output of both machines. You may PM me if you want to share it privately, in a place where you can remove it afterwards.

 

p.s. I might get one myself, for my hack, but only after it works for you :D

Link to comment
Share on other sites

Could somebody kindly have a look at this for me: dsdt04_11_09.dsl.zip

 

This has Most of MC's changes - Again everything works apart from CPU PM !!

 

I think I've tried everything but would appreciate any suggestions !

 

Cheers

D.

You're not using any of my Methods, which make things a lot easier to read, and yet you write about tidying up your DSDT?!? You lazy... :D

 

    Scope (_PR)
   {
       Processor (CPU1, 0x00, 0x00000410, 0x06)
       {
           Method (_PSS, 0, NotSerialized)
           {
               Return (Package (0x03)
               {
                   Package (0x06) { Zero, Zero, 10, 10, 0x0820, Zero }, 
                   Package (0x06) { Zero, Zero, 10, 10, 0x071C,  One }, 
                   Package (0x06) { Zero, Zero, 10, 10, 0x061A, 0x02 }
               })
           }

           Method (_CST, 0, NotSerialized)
           {
               Return (Package (0x04)
               {
                   0x03, 
                   Package (0x04) { ResourceTemplate () { Register (FFixedHW, 0x01, 0x02, 0x000, ,) }, 0x01, 0x00, 0x3E8 }, 
                   Package (0x04) { ResourceTemplate () { Register (FFixedHW, 0x08, 0x00, 0x414, ,) }, 0x02, 0x01, 0x1F4 }, 
                   Package (0x04) { ResourceTemplate () { Register (FFixedHW, 0x08, 0x00, 0x415, ,) }, 0x03, 0x55, 0x0FA } 
               })
           }
       }

       Processor (CPU2, 0x01, 0x00000410, 0x06)
       {
           Alias (\_PR.CPU1._PSS, _PSS)
           Alias (\_PR.CPU1._CST, _CST)
       }

       Processor (CPU3, 0x02, 0x00000410, 0x06)
       {
           Alias (\_PR.CPU1._PSS, _PSS)
           Alias (\_PR.CPU1._CST, _CST)
       }

       Processor (CPU4, 0x03, 0x00000410, 0x06)
       {
           Alias (\_PR.CPU1._PSS, _PSS)
           Alias (\_PR.CPU1._CST, _CST)
       }
   }

 

That any my PNOT block:

    // Newly added – Power Management Notifier.
   Method (PNOT, 0, Serialized)
   {
       Notify (\_PR.CPU1, 0x80) // Notify OSPM - this triggers a re-evaluation of our _PPC object (all states available).
       Sleep (0x64) // Let it sleep for 100us - giving it some time to response to our previous notification.
       Notify (\_PR.CPU1, 0x81) // Notify OSPM once more, this time to trigger a re-evaluation of our _CST object.

       Notify (\_PR.CPU2, 0x80)
       Sleep (0x64)
       Notify (\_PR.CPU2, 0x81)

       Notify (\_PR.CPU3, 0x80)
       Sleep (0x64)
       Notify (\_PR.CPU3, 0x81)

       Notify (\_PR.CPU4, 0x80)
       Sleep (0x64)
       Notify (\_PR.CPU4, 0x81)
   }

 

One more thing guys!

At the first CPU's C-states I'm seeing different entries. There are two types:

 

...

 

Which one is correct?

The one that works for you? :P

Link to comment
Share on other sites

You're not using any of my Methods, which make things a lot easier to read, and yet you write about tidying up your DSDT?!? You lazy... :D

 

    Scope (_PR)
   {
       Processor (CPU1, 0x00, 0x00000410, 0x06)
       {
           Method (_PSS, 0, NotSerialized)
           {
               Return (Package (0x03)
               {
                   Package (0x06) { Zero, Zero, 10, 10, 0x0820, Zero }, 
                   Package (0x06) { Zero, Zero, 10, 10, 0x071C,  One }, 
                   Package (0x06) { Zero, Zero, 10, 10, 0x061A, 0x02 }
               })
           }

           Method (_CST, 0, NotSerialized)
           {
               Return (Package (0x04)
               {
                   0x03, 
                   Package (0x04) { ResourceTemplate () { Register (FFixedHW, 0x01, 0x02, 0x000, ,) }, 0x01, 0x00, 0x3E8 }, 
                   Package (0x04) { ResourceTemplate () { Register (FFixedHW, 0x08, 0x00, 0x414, ,) }, 0x02, 0x01, 0x1F4 }, 
                   Package (0x04) { ResourceTemplate () { Register (FFixedHW, 0x08, 0x00, 0x415, ,) }, 0x03, 0x55, 0x0FA } 
               })
           }
       }

       Processor (CPU2, 0x01, 0x00000410, 0x06)
       {
           Alias (\_PR.CPU1._PSS, _PSS)
           Alias (\_PR.CPU1._CST, _CST)
       }

       Processor (CPU3, 0x02, 0x00000410, 0x06)
       {
           Alias (\_PR.CPU1._PSS, _PSS)
           Alias (\_PR.CPU1._CST, _CST)
       }

       Processor (CPU4, 0x03, 0x00000410, 0x06)
       {
           Alias (\_PR.CPU1._PSS, _PSS)
           Alias (\_PR.CPU1._CST, _CST)
       }
   }

How come now you allow the first core to go deeper than C1?

 

The one that works for you? :P

Hehe, okay. :P Let me ask you something about MCDP: how can I use it for device customizations longer than a package of 2? (For example, HDEF.)

Link to comment
Share on other sites

Interesting. Let's start by teaching me something. How do you get that image to show up there?

 

Upload an attachment, click 'manage current attachments', click the green thing and then move the link that appears in your post to where you want the image to appear.

Link to comment
Share on other sites

How come now you allow the first core to go deeper than C1?

Dave and I only have C1 support (:

 

Hehe, okay. :( Let me ask you something about MCDP: how can I use it for device customizations longer than a package of 2? (For example, HDEF.)

Good question! And that'll be a next update – already working on it, but I first want to fix MCID (it should accept ID's like: 0x8086269e, too, instead of only 0x269e).

 

Update: I was a bit busy before (setting up Mac OS X Server) but here's an example:

                // Newly added Method.   
               Method (_DSM, 4, NotSerialized)
               {
                   Store (Package (0x06)
                   {
                       "built-in",
                       Buffer (One)
                       {
                           Zero
                       },

                       "layout-id",
                       Buffer (0x04)
                       {
                           /* 883 */	0x73, 0x03, 0x00, 0x00
                       },

                      "PinConfigurations",
                      Buffer (Zero)
                      {
                      }

                   }, Local0)
                   MCDP (Arg2, RefOf (Local0))
                   Return (Local0)
               }

Exactly the same as before, but using my new Method (less arguments), but it might change even more in the (near) future. However, this is how it works right now.

 

Upload an attachment, click 'manage current attachments', click the green thing and then move the link that appears in your post to where you want the image to appear.

Great. Let this old fool bookmark it, because I am likely going to forget about it. Thanks for the tip!

Link to comment
Share on other sites

I changed the setting for the CPU Fan from bios controlled (default) to smart control where the mobo alters fan speed according to CPU temp etc.

 

Before CPU-i wasn't reporting any P-States.

After changing this fan setting it was!

I have the same mobo as ZenGiga and have just tried to replicate this and CPU-i reports P-States regardless of the CPU Fan setting in BIOS. But with the BIOS 'CPU Fan' setting set to Auto (BIOS controlled) I had to load CPU-i twice (as MasterChief mentioned) before it displayed the P-States which could be why Zengiga questioned it.

 

Upload an attachment, click 'manage current attachments', click the green thing and then move the link that appears in your post to where you want the image to appear.

Thanks Beerkex'd, I didn't know that either.. :(

Link to comment
Share on other sites

Hi Masterchief

 

Ever since switching to using your MCID method for my EHCI & UHCI devices, the USB High-Speed Bus in System Profiler is identified as Expansion Slot again. I have gone back through my archive of DSDT files to where I made the change and attached the before & after .dsl files. Can you point me the error of my ways?

 

Thanks :D

Before___After.zip

Link to comment
Share on other sites

Ever since switching to using your MCID method for my EHCI & UHCI devices, the USB High-Speed Bus in System Profiler is identified as Expansion Slot again. I have gone back through my archive of DSDT files to where I made the change and attached the before & after .dsl files. Can you point me the error of my ways?

 

Thanks :)

 

try this below, it works on mine but hey even without the dsdt patch my USB are all built-in except for the flashdisk wake-up issue

 

Device (UHC1)
		{
			Name (_ADR, 0x001D0000)
			OperationRegion (BAR0, PCI_Config, 0xC4, One)
			Field (BAR0, ByteAcc, NoLock, Preserve)
			{
				USBW,   2, 
						Offset (0x01)
			}

			Method (_S3D, 0, NotSerialized)
			{
				Return (0x02)
			}

			Method (_PSW, 1, NotSerialized)
			{
				If (Arg0)
				{
					Store (0x03, USBW)
				}
				Else
				{
					Store (Zero, USBW)
				}
			}

			Name (_PRW, Package (0x02)
			{
				0x03, 
				0x04
			})
			Method (_DSM, 4, NotSerialized)
			{
				Return (MCID (Arg2, 0x3A34))
			}
		}

		Device (UHC2)
		{
			Name (_ADR, 0x001D0001)
			OperationRegion (BAR0, PCI_Config, 0xC4, One)
			Field (BAR0, ByteAcc, NoLock, Preserve)
			{
				USBW,   2, 
						Offset (0x01)
			}

			Method (_S3D, 0, NotSerialized)
			{
				Return (0x02)
			}

			Method (_PSW, 1, NotSerialized)
			{
				If (Arg0)
				{
					Store (0x03, USBW)
				}
				Else
				{
					Store (Zero, USBW)
				}
			}

			Name (_PRW, Package (0x02)
			{
				0x04, 
				0x04
			})
			Method (_DSM, 4, NotSerialized)
			{
				Return (MCID (Arg2, 0x3A35))
			}
		}

		Device (UHC3)
		{
			Name (_ADR, 0x001D0002)
			OperationRegion (BAR0, PCI_Config, 0xC4, One)
			Field (BAR0, ByteAcc, NoLock, Preserve)
			{
				USBW,   2, 
						Offset (0x01)
			}

			Method (_S3D, 0, NotSerialized)
			{
				Return (0x02)
			}

			Method (_PSW, 1, NotSerialized)
			{
				If (Arg0)
				{
					Store (0x03, USBW)
				}
				Else
				{
					Store (Zero, USBW)
				}
			}

			Name (_PRW, Package (0x02)
			{
				0x0C, 
				0x04
			})
			Method (_DSM, 4, NotSerialized)
			{
				Return (MCID (Arg2, 0x3A36))
			}
		}

		Device (UHC4)
		{
			Name (_ADR, 0x001A0000)
			OperationRegion (BAR0, PCI_Config, 0xC4, One)
			Field (BAR0, ByteAcc, NoLock, Preserve)
			{
				USBW,   2, 
						Offset (0x01)
			}

			Method (_S3D, 0, NotSerialized)
			{
				Return (0x02)
			}

			Method (_PSW, 1, NotSerialized)
			{
				If (Arg0)
				{
					Store (0x03, USBW)
				}
				Else
				{
					Store (Zero, USBW)
				}
			}

			Name (_PRW, Package (0x02)
			{
				0x0E, 
				0x04
			})
			Method (_DSM, 4, NotSerialized)
			{
				Return (MCID (Arg2, 0x3A37))
			}
		}

		Device (UHC5)
		{
			Name (_ADR, 0x001A0001)
			OperationRegion (BAR0, PCI_Config, 0xC4, One)
			Field (BAR0, ByteAcc, NoLock, Preserve)
			{
				USBW,   2, 
						Offset (0x01)
			}

			Method (_S3D, 0, NotSerialized)
			{
				Return (0x02)
			}

			Method (_PSW, 1, NotSerialized)
			{
				If (Arg0)
				{
					Store (0x03, USBW)
				}
				Else
				{
					Store (Zero, USBW)
				}
			}

			Name (_PRW, Package (0x02)
			{
				0x05, 
				0x04
			})
			Method (_DSM, 4, NotSerialized)
			{
				Return (MCID (Arg2, 0x3A38))
			}
		}

		Device (UHC6)
		{
			Name (_ADR, 0x001A0002)
			OperationRegion (BAR0, PCI_Config, 0xC4, One)
			Field (BAR0, ByteAcc, NoLock, Preserve)
			{
				USBW,   2, 
						Offset (0x01)
			}

			Method (_S3D, 0, NotSerialized)
			{
				Return (0x02)
			}

			Method (_PSW, 1, NotSerialized)
			{
				If (Arg0)
				{
					Store (0x03, USBW)
				}
				Else
				{
					Store (Zero, USBW)
				}
			}

			Name (_PRW, Package (0x02)
			{
				0x20, 
				0x04
			})
			Method (_DSM, 4, NotSerialized)
			{
				Return (MCID (Arg2, 0x3A39))
			}
		}

		Device (EHCI)
		{
			Name (_ADR, 0x001D0007)
			OperationRegion (PMCS, PCI_Config, 0x54, 0x02)
			Field (PMCS, WordAcc, NoLock, Preserve)
			{
					,   15, 
				PMES,   1
			}

			OperationRegion (PWCR, PCI_Config, 0x62, 0x02)
			Field (PWCR, AnyAcc, NoLock, Preserve)
			{
				URE2,   9
			}

			Method (_PSW, 1, NotSerialized)
			{
				If (LEqual (Arg0, Zero))
				{
					Store (Zero, URE2)
				}

				If (LEqual (Arg0, One))
				{
					Store (0x01FF, URE2)
				}
			}

			Name (_PRW, Package (0x02)
			{
				0x0D, 
				0x03
			})
			Method (_DSM, 4, NotSerialized)
			{
				Store (Package (0x04)
					{
						"device-id", 
						Buffer (0x04)
						{
							0x3A, 0x29, 0x00, 0x00
						}, 

						"AAPL,clock-id", 
						Buffer (One)
						{
							0x01
						}
					}, Local0)
				MCDP (Arg2, RefOf (Local0))
				Return (Local0)
			}
		}

		Device (UHCI)
		{
			Name (_ADR, 0x001A0007)
			OperationRegion (PMCS, PCI_Config, 0x54, 0x02)
			Field (PMCS, WordAcc, NoLock, Preserve)
			{
					,   15, 
				PMES,   1
			}

			OperationRegion (PWCR, PCI_Config, 0x62, 0x02)
			Field (PWCR, AnyAcc, NoLock, Preserve)
			{
				URE2,   9
			}

			Method (_PSW, 1, NotSerialized)
			{
				If (LEqual (Arg0, Zero))
				{
					Store (Zero, URE2)
				}

				If (LEqual (Arg0, One))
				{
					Store (0x01FF, URE2)
				}
			}

			Name (_PRW, Package (0x02)
			{
				0x0D, 
				0x03
			})
			Method (_DSM, 4, NotSerialized)
			{
				Store (Package (0x04)
					{
						"device-id", 
						Buffer (0x04)
						{
							0x3C, 0x29, 0x00, 0x00
						}, 

						"AAPL,clock-id", 
						Buffer (One)
						{
							0x02
						}
					}, Local0)
				MCDP (Arg2, RefOf (Local0))
				Return (Local0)
			}
		}

 

question, any gigabyte user using Apple aluminum keyboard who has successfully waken their system from sleep? this is my problem since i changed my old white apple KB to aluminum one? regular USB mouse, PC keyboard and my white apple KB wakes my system fine except this pesky aluminum one hehe.. also how do you enter your bios? i have the slim keyboard w/o numpad and it doesnt have a delete key (only backspace) so i switch keyboard whenever i wanna enter my bios which is really a pain sometime.. also my boards dsdt has only USB0-USB3 (now UHC1-UHC4) and USBE (now UHCI), could that be the reason maybe?

Link to comment
Share on other sites

Interesting. Let's start by teaching me something. How do you get that image to show up there?

 

Anyway. We first need the IORegistryExplorer output of both machines. You may PM me if you want to share it privately, in a place where you can remove it afterwards.

 

p.s. I might get one myself, for my hack, but only after it works for you :)

Looks like someone beat me to the "How to post a image tutorial".

 

So I did some research on the Bluetooth issue. It seems I jumped the gun. I had a PM from kmare saying he had the same problem but his worked in Leopard. So I was like wait a minute! I rebooted into my old 10.5.8 Leopard install and sure enough the "allow bluetooth wake" function works. So I took two ioreg dumps. One from 10.6.1 and one from 10.5.8. The best I can make out is they indeed rewrote some of the bluetooth drivers. In 10.5 it's called CSRUSBBluetoothHCIController.kext in 10.6 they're calling it AppleUSBBluetoothHCIController.kext it seems they operate a bit differently. Hopefully this is just a bug Apple will soon fix.

 

MC I sent the ioreg dumps to you via PM for your examination.

Link to comment
Share on other sites

Hi Masterchief

 

Ever since switching to using your MCID method for my EHCI & UHCI devices, the USB High-Speed Bus in System Profiler is identified as Expansion Slot again. I have gone back through my archive of DSDT files to where I made the change and attached the before & after .dsl files. Can you point me the error of my ways?

 

Thanks :)

You are using two and the same device-id's – for both EHCI and UHCI – but some boards want property "AAPL,clock-id" or they won't show up as internal. And thus you'll need to use MCDP instead, but you can use MCID to change the device-id of Device (SATA) for which you now use MCDP.

 

p.s. There are updated Methods available in the P5K PRO Snow Leopard thread!

Link to comment
Share on other sites

Origininally posted this in the wrong place.

 

It occurred to me people may be having firewire problems with their Gigabyte boards.

FireWire runtime power conservation disabled. (2)

 

This is how to fix that.

		Method (_L1A, 0, NotSerialized) // <-- Added for firewire
	{
		Notify (\_SB.PCI0.PCIB.FRWR, 0x00)
		Notify (\_SB.PWRB, 0x02)
	}

 

Within the Device (PCIB) I added another device:

				Device (FRWR) // <--Firewire (check to be sure the _GPE value is OK)
			{
				Name (_ADR, 0x00070000)
				Name (_GPE, 0x1A)
				Method (_DSM, 4, NotSerialized)
				{
					Store (Package (0x02)
						{
							"fwhub", 
							Buffer (0x04)
							{
								0x00, 0x00, 0x00, 0x00
							}
						}, Local0)
					DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
					Return (Local0)
				}
			}

 

Let me know what kind of results people get.

 

dsdt_GA_EP45_UD3P.dsl.zip

Link to comment
Share on other sites

Looks like someone beat me to the "How to post a image tutorial".

 

So I did some research on the Bluetooth issue. It seems I jumped the gun. I had a PM from kmare saying he had the same problem but his worked in Leopard. So I was like wait a minute! I rebooted into my old 10.5.8 Leopard install and sure enough the "allow bluetooth wake" function works. So I took two ioreg dumps. One from 10.6.1 and one from 10.5.8. The best I can make out is they indeed rewrote some of the bluetooth drivers. In 10.5 it's called CSRUSBBluetoothHCIController.kext in 10.6 they're calling it AppleUSBBluetoothHCIController.kext it seems they operate a bit differently. Hopefully this is just a bug Apple will soon fix.

 

MC I sent the ioreg dumps to you via PM for your examination.

One has PowerOptions set to 0 and the other has 15 which also appears to be the working one, so I would start by adding this property in the Info.plist of AppleUSBBluetoothHCIController.kext and see if it changes anything.

Link to comment
Share on other sites

 Share

×
×
  • Create New...