Jump to content

How to switch from DSDT edits to SSDT


llamafilm
 Share

3 posts in this topic

Recommended Posts

I had a problem where my system would boot successfully, but the screen was black.  I fixed it by editing the DSDT in two places.  It works fine now, but I would like to write this edit into an SSDT, to share with others.

 

As I understand it, DSDTs are not very portable, because they must match the hardware exactly.  I've never written an SSDT, but it seems like I need some kind of find & replace.  H000 appears in many other places, so I can't use that as the search query.

 

The first edit is changing the device name from H000 to GFX1 in _SB > PCI0 > BR3A:

Device (H000)
{
	Name (_ADR, Zero)
	Method (_SUN, 0, NotSerialized)
	{
		Return (SNUM ())
	}
}

Then change H000 to GFX1 in DSDT > _GPE > _L01

If (LNotEqual (Local0, 0xFF))
{
	Store (0x07, Local1)
	Notify (\_SB.PCI0.BR3A.H000, Local0)
	Notify (\_SB.PCI0.BR3A.H001, Local0)
	Notify (\_SB.PCI0.BR3A.H002, Local0)
	Notify (\_SB.PCI0.BR3A.H003, Local0)
	Notify (\_SB.PCI0.BR3A.H004, Local0)
	Notify (\_SB.PCI0.BR3A.H005, Local0)
	Notify (\_SB.PCI0.BR3A.H006, Local0)
	Notify (\_SB.PCI0.BR3A.H007, Local0)
}
Link to comment
Share on other sites

How can I use Clover DSDT patch for this?  As I said, the H000 device name appears dozens of times, so I can't do a find/replace on that term.  I suppose I could do it for the second part, and write an SSDT for the first part, although that sounds clunky.

 

This is my first attempt at an SSDT for the first part, renaming the device at \SB.PCI0.BR3A.H000 to GFX1.

DefinitionBlock ("iASL0ezsSi.aml", "SSDT", 1, "APPLE", "GFX1", 0x00000006)
{
    External (SNUM, IntObj)
    External (H000, DeviceObj)
    External (\_SB_.PCI0.BR3A, DeviceObj)

    Scope (\_SB.PCI0.BR3A)
    {
        Scope (H000)
        {
            Name (_STA, Zero)
        }

        Device (GFX1)
        {
            Name (_ADR, Zero)
            Method (_SUN, 0, NotSerialized)
            {
                Return (SNUM)
            }
        }
    }
}

For the second part, I tried the following in config.plist:

<key>Find</key><data>XF9TQi5QQ0kwLkJSM0EuSDAwMA==</data>
<key>Replace</key>
<data>XF9TQi5QQ0kwLkJSM0EuR0ZYMQ==</data>

Then I reverted DSDT back to the original, and the system again boots with a black screen.  How can I tell which of these two edits is not working (or maybe it's both).

Link to comment
Share on other sites

 Share

×
×
  • Create New...