Contribute
Register

Fixing Apple SMBUS using SSDT-SBUS-MCHC.aml

Status
Not open for further replies.
Joined
Dec 25, 2015
Messages
321
Motherboard
Gigabyte Z690 UD AX
CPU
i5-12400F
Graphics
Readon RX 6600
Mobile Phone
  1. Android
Hi there,

I was following Dortania's Fixing SMBus guide. So before the .aml patch I just ran the following command as mentioned:

Code:
kextstat | grep -E "AppleSMBusController|AppleSMBusPCI"

And got this:
No variant specified, falling back to release
138 0 0xffffff7f98f8e000 0x1000 0x1000 com.apple.driver.AppleSMBusPCI (1.0.14d1) B34AAD69-4A29-3463-8A4C-0E7890FFF929 <16 7 6 3>
165 1 0xffffff7f98f82000 0x7000 0x7000 com.apple.driver.AppleSMBusController (1.0.18d1) 524232C0-73C9-3130-A258-1EE71F7110C6 <164 16 15 7 6 3>

Honestly don't know if my SMBus is working or not.
Now I grabbed the SSDT-SBUS-MCHC.dsl to make the necessary changes. FYI, from Windows & hackintool I found that my SMBUS is
PC00.SBUS and I changed accordingly:

Code:
DefinitionBlock ("", "SSDT", 2, "ACDT", "MCHCSBUS", 0x00000000)
{
    External (_SB_.PC00, DeviceObj)
    External (_SB_.PC00.SBUS, DeviceObj)

    Scope (_SB.PC00)
    {
        Device (MCHC)
        {
            Name (_ADR, Zero)  // _ADR: Address
            Method (_STA, 0, NotSerialized)  // _STA: Status
            {
                If (_OSI ("Darwin"))
                {
                    Return (0x0F)
                }
                Else
                {
                    Return (Zero)
                }
            }
        }
    }

    Device (_SB.PC00.SBUS.BUS0)
    {
        Name (_CID, "smbus")  // _CID: Compatible ID
        Name (_ADR, Zero)  // _ADR: Address
        Device (DVL0)
        {
            Name (_ADR, 0x57)  // _ADR: Address
            Name (_CID, "diagsvault")  // _CID: Compatible ID
            Method (_DSM, 4, NotSerialized)  // _DSM: Device-Specific Method
            {
                If (!Arg2)
                {
                    Return (Buffer (One)
                    {
                         0x57                                             // W
                    })
                }

                Return (Package (0x02)
                {
                    "address",
                    0x57
                })
            }
        }
        Method (_STA, 0, NotSerialized)  // _STA: Status
        {
            If (_OSI ("Darwin"))
            {
                Return (0x0F)
            }
            Else
            {
                Return (Zero)
            }
        }
    }
}

But after using this I also got the same result as above. Can anyone help me to find out if SMBUS working or not?
 

Attachments

  • SBus.png
    SBus.png
    13 KB · Views: 77
I have the same issue exactly. I took yours, edited it for PCI0 rather than PC00 (PCI0 just happens to be the default, AND it's what my MB wants) and ... no change, just like yours.

OC87. ...not sure what's going on.
 
Status
Not open for further replies.
Back
Top