九邪 发表于 2022-12-13 17:19

请教一下如何,才能把pci-bridge改名为peg1啊,我的显卡路径太长了

请教一下如何,才能把pci-bridge改名为peg1啊,我的显卡路径太长了
看下图,很明显,多了一层了啊



我用了改名补丁后,还是没有缩短路径



请大神指点一下

beloved敏 发表于 2022-12-13 17:27

路径只能改名,不能变短

九邪 发表于 2022-12-13 17:34

beloved敏 发表于 2022-12-13 17:27 https://bbs.pcbeta.com/static/image/common/back.gif
路径只能改名,不能变短

主要是,这个重复了一层,其实PCI-bridge@0应该就是peg1

macleane 发表于 2022-12-13 18:08

你确定要peg1, 而不是BRG0? 这里两个ssdt同时使用试试, 自己改下路径和device-id
SSDT-PEG1

DefinitionBlock ("", "SSDT", 2, "ACDT", "PEG1", 0x00000000)
{
    External (_SB_.PC00.PEG1.PEGP, DeviceObj)
    External (DTGP, MethodObj)    // 5 Arguments

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

            Device (GFX0)
            {
                Name (_ADR, Zero)// _ADR: Address
                Method (_DSM, 4, NotSerialized)// _DSM: Device-Specific Method
                {
                  Local0 = Package (0x06)
                        {
                            "AAPL,slot-name",
                            Buffer (0x07)
                            {
                              "Slot-1"
                            },

                            "device-id",
                            Buffer (0x04)
                            {
                                 0xBF, 0x73, 0x00, 0x00                           // .s..
                            },

                            "@0,AAPL,boot-display",
                            Buffer (Zero){}
                        }
                  DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                  Return (Local0)
                }
            }
      }
    }
}


另外,还有一个, 你的显卡SSDT, 自己改下你的显卡路径, model和device-id

SSDT-XXX
DefinitionBlock ("", "SSDT", 2, "ACDT", "PEG1", 0x00000000)
{
    External (_SB_.PC00.PEG1.PEGP, DeviceObj)
    External (DTGP, MethodObj)    // 5 Arguments

    Scope (\_SB.PC00.PEG1.PEGP)
    {
      Device (PEG1)
      {
            Name (_ADR, Zero)// _ADR: Address
            Device (GFX0)
            {
                Name (_ADR, Zero)// _ADR: Address
                Method (_DSM, 4, NotSerialized)// _DSM: Device-Specific Method
                {
                  Local0 = Package (0x08)
                        {
                            "AAPL,slot-name",
                            Buffer (0x07)
                            {
                              "Slot-1"
                            },

                            "model",
                            Buffer (0x17)
                            {
                              "AMD Radeon Pro W6900X "
                            },

                            "device-id",
                            Buffer (0x04)
                            {
                                 0xBF, 0x73, 0x00, 0x00                           // .s..
                            },

                            "@0,AAPL,boot-display",
                            Buffer (Zero){}
                        }
                  DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                  Return (Local0)
                }
            }
      }
    }
}


两个同时使用, 这样确保显卡有metal 3支持



macleane 发表于 2022-12-13 18:11

对了, 还需要SSDT-DTPG搭配


九邪 发表于 2022-12-13 18:46

macleane 发表于 2022-12-13 18:11 https://bbs.pcbeta.com/static/image/common/back.gif
对了, 还需要SSDT-DTPG搭配

大哥,你这个加了,不起作用,

hugarninwow 发表于 2022-12-13 18:55

Scope (\_SB.PCI0.PEG1.PEGP)
    {
      Device (EGP1)
      {
            Name (_ADR, Zero)// _ADR: Address
            Method (_STA, 0, NotSerialized)// _STA: Status
            {
                If (_OSI ("Darwin"))
                {
                  Return (0x0F)
                }
                Else
                {
                  Return (Zero)
                }
            }

            Device (GFX0)
            {

hugarninwow 发表于 2022-12-13 18:56

需要在添加嵌套的两个device,其中最后那个是GFX0

cnchensh 发表于 2022-12-13 19:39

本帖最后由 cnchensh 于 2022-12-13 19:40 编辑

楼上两位大神之前在家政做过保姆吗?好牛逼矣~!


{:5_280:}话说我一直不会搞DSDT这些

九邪 发表于 2022-12-13 19:58

macleane 发表于 2022-12-13 18:08 https://bbs.pcbeta.com/static/image/common/back.gif
你确定要peg1, 而不是BRG0? 这里两个ssdt同时使用试试, 自己改下路径和device-id
SSDT-PEG1




按大神的建议这样修改
DefinitionBlock ("", "SSDT", 2, "ACDT", "PEG1", 0x00000000){    External (_SB_.PCI0.PEG1.PEGP, DeviceObj)    External (DTGP, MethodObj)    // 5 Arguments
    Scope (\_SB.PCI0.PEG1.PEGP)    {      Device (PEG1)      {            Name (_ADR, Zero)// _ADR: Address            Method (_STA, 0, NotSerialized)// _STA: Status            {                If (_OSI ("Darwin"))                {                  Return (0x0F)                }                Else                {                  Return (Zero)                }            }
            Device (GFX0)            {                Name (_ADR, Zero)// _ADR: Address                Method (_DSM, 4, NotSerialized)// _DSM: Device-Specific Method                {                  Local0 = Package (0x06)                        {                            "AAPL,slot-name",                             Buffer (0x07)                            {                              "Slot-1"                            },
                            "device-id",                             Buffer (0x04)                            {                                 0x40, 0x73, 0x00, 0x00                           // @s..                            },
                            "@0,AAPL,boot-display",                             Buffer (Zero){}                        }                  DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))                  Return (Local0)                }            }      }    }}
改完后,效果如下




九邪 发表于 2022-12-13 20:00

hugarninwow 发表于 2022-12-13 18:56 https://bbs.pcbeta.com/static/image/common/back.gif
需要在添加嵌套的两个device,其中最后那个是GFX0

按您的代码,进行修改后,
DefinitionBlock ("", "SSDT", 2, "ACDT", "PEG1", 0x00000000){    External (_SB_.PCI0.PEG1.PEGP, DeviceObj)    External (DTGP, MethodObj)    // 5 Arguments
    Scope (\_SB.PCI0.PEG1.PEGP)    {      Device (EGP1)      {            Name (_ADR, Zero)// _ADR: Address            Method (_STA, 0, NotSerialized)// _STA: Status            {                If (_OSI ("Darwin"))                {                  Return (0x0F)                }                Else                {                  Return (Zero)                }            }
            Device (GFX0)            {                Name (_ADR, Zero)// _ADR: Address                Method (_DSM, 4, NotSerialized)// _DSM: Device-Specific Method                {                  Local0 = Package (0x06)                        {                            "AAPL,slot-name",                             Buffer (0x07)                            {                              "Slot-1"                            },
                            "device-id",                             Buffer (0x04)                            {                                 0x40, 0x73, 0x00, 0x00                           // @s..                            },
                            "@0,AAPL,boot-display",                             Buffer (Zero){}                        }                  DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))                  Return (Local0)                }            }      }    }}



效果是下面这样的

九邪 发表于 2022-12-13 20:03

本帖最后由 九邪 于 2022-12-13 20:06 编辑

楼上两位大神,异曲同工之妙,
最后是验证二楼这位大神的话,路径,只能改名,不能缩短。。

我有贴修改后的效果图,。但系统在审核,还没有出来,,

可能稍后一会显现出来、
最后,谢谢楼上两位大神的帮助!!谢谢你们!!{:5_588:}

ydhmq 发表于 2022-12-13 20:13

学习了学习了

macleane 发表于 2022-12-13 21:25

九邪 发表于 2022-12-13 18:46 https://bbs.pcbeta.com/static/image/common/back.gif
大哥,你这个加了,不起作用,

前面两个ssdt+这个ssdt-DTPG, 三个一起用

Jeffer 发表于 2022-12-13 21:52

有一些更高级的SSDT配置,比如SSDT-VEGA.aml,它除了创建设备外,还模仿真正的Mac的配置方式(EGP0和EGP1设备而不是BRG0)。DefinitionBlock ("", "SSDT", 2, "HACK", "VEGA", 0x00000000)
{
    External (_SB_.PCI0, DeviceObj)
    External (_SB_.PCI0.PEG0, DeviceObj)
    External (_SB_.PCI0.PEG0.PEGP, DeviceObj)

    Scope (\_SB)
    {
      Scope (PCI0)
      {
            Scope (PEG0)
            {
                Scope (PEGP)
                {
                  Method (_STA, 0, NotSerialized)// _STA: Status
                  {
                        If (_OSI ("Darwin"))
                        {
                            Return (Zero)
                        }
                        Else
                        {
                            Return (0x0F)
                        }
                  }
                }

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

                  Device (EGP1)
                  {
                        Name (_ADR, Zero)// _ADR: Address
                        Device (GFX0)
                        {
                            Name (_ADR, Zero)// _ADR: Address
                        }

                        Device (HDAU)
                        {
                            Name (_ADR, One)// _ADR: Address
                        }
                  }
                }
            }
      }
    }
}

Dynamix 发表于 2022-12-13 22:21

本帖最后由 Dynamix 于 2022-12-13 22:49 编辑

这个怎么样,会自己检测独显上有没有 PCI-bridge (AMD PCIe Up/DownStream Port)有就注入 EGP0.EGP1.GFX0 如果显卡插槽没显卡就啥也不注入

Dynamix 发表于 2022-12-13 22:30

九邪 发表于 2022-12-13 17:34 https://bbs.pcbeta.com/static/image/common/back.gif
主要是,这个重复了一层,其实PCI-bridge@0应该就是peg1
其实根本就不用管 A卡 Vega开始就把 AMD祖传混乱的套娃设备连接方法整进了GPU芯片里非得 套两层上游下游PCIe切换器 和AMD的 PCH一个德行 N卡从来都不这样

九邪 发表于 2022-12-13 23:08

Dynamix 发表于 2022-12-13 22:21 https://bbs.pcbeta.com/static/image/common/back.gif
这个怎么样,会自己检测独显上有没有 PCI-bridge (AMD PCIe Up/DownStream Port)有就注入 EGP0.EGP1.GFX0 如 ...

完整代码在哪里呀

九邪 发表于 2022-12-13 23:16

Jeffer 发表于 2022-12-13 21:52 https://bbs.pcbeta.com/static/image/common/back.gif
有一些更高级的SSDT配置,比如SSDT-VEGA.aml,它除了创建设备外,还模仿真正的Mac的配置方式(EGP0和EGP1设 ...

哈哈哈,你这个代码厉害了,直接这样了,是不是接近白果了啊??
手头只有白果本,没有其他机型,所以不知道是不是接近了,





Dynamix 发表于 2022-12-13 23:23

九邪 发表于 2022-12-13 23:08 https://bbs.pcbeta.com/static/image/common/back.gif
完整代码在哪里呀

拿去
页: [1] 2
查看完整版本: 请教一下如何,才能把pci-bridge改名为peg1啊,我的显卡路径太长了