- 积分
- 482
- 最后登录
- 2024-3-19
- 精华
- 0
- 阅读权限
- 30
- 主题
- 93
- UID
- 4738670
- 帖子
- 1206
- PB币
- 1706
- 威望
- 0
- 贡献
- 0
- 技术
- 1
- 活跃
- 1803
- UID
- 4738670
- 帖子
- 1206
- PB币
- 1706
- 贡献
- 0
- 技术
- 1
- 活跃
- 1803
|
发表于 2017-10-24 14:13:31
IP属地陕西
|显示全部楼层
本帖最后由 kaeserlin 于 2017-10-28 14:06 编辑
Hotpatch代码已弄好,这个hotpatch没什么难度,完整的hotpatch代码如下,Config不需要,自己对着修改吧。
不带显卡信息代码:
- DefinitionBlock ("", "SSDT", 2, "hack", "Wake", 0x00000000)
- {
- External (_SB_.PCI0.NPE3.GFX0, DeviceObj) // (from opcode)
- Device (_SB.PCI0.NPE3.GFX0)
- {
- Name (_ADR, Zero) // _ADR: Address
- OperationRegion (PCIB, PCI_Config, Zero, 0x0100)
- Field (PCIB, AnyAcc, NoLock, Preserve)
- {
- Offset (0x10),
- BAR0, 32,
- BAR1, 32,
- BAR2, 64,
- BAR4, 32,
- BAR5, 32
- }
- Method (_INI, 0, NotSerialized) // _INI: Initialize
- {
- If (LEqual (BAR5, Zero))
- {
- Store (BAR2, Local0)
- }
- Else
- {
- Store (BAR5, Local0)
- }
- OperationRegion (GREG, SystemMemory, And (Local0, 0xFFFFFFFFFFFFFFF0), 0x8000)
- Field (GREG, AnyAcc, NoLock, Preserve)
- {
- Offset (0x6800),
- GENA, 32,
- GCTL, 32,
- LTBC, 32,
- Offset (0x6810),
- PSBL, 32,
- SSBL, 32,
- PTCH, 32,
- PSBH, 32,
- SSBH, 32,
- Offset (0x6848),
- FCTL, 32,
- Offset (0x6EF8),
- MUMD, 32
- }
- Store (Zero, FCTL)
- Store (Zero, PSBH)
- Store (Zero, SSBH)
- Store (Zero, LTBC)
- Store (One, GENA)
- Store (Zero, MUMD)
- }
- }
- }
复制代码
附带显卡信息代码(具体信息请对照本帖修改):
- DefinitionBlock ("", "SSDT", 2, "hack", "Wake", 0x00000000)
- {
- External (_SB_.PCI0.NPE3.GFX0, DeviceObj) // (from opcode)
- Device (_SB.PCI0.NPE3.GFX0)
- {
- Name (_ADR, Zero) // _ADR: Address
- OperationRegion (PCIB, PCI_Config, Zero, 0x0100)
- Field (PCIB, AnyAcc, NoLock, Preserve)
- {
- Offset (0x10),
- BAR0, 32,
- BAR1, 32,
- BAR2, 64,
- BAR4, 32,
- BAR5, 32
- }
- Method (_DSM, 4, NotSerialized) // _DSM: Device-Specific Method
- {
- If (LEqual (Arg2, Zero))
- {
- Return (Buffer (One)
- {
- 0x03
- })
- }
- Return (Package (0x1C)
- {
- "AAPL,slot-name",
- Buffer (0x07)
- {
- "Slot-1"
- },
- "@0,name",
- Buffer (0x0D)
- {
- "ATY,Futomaki"
- },
- "@1,name",
- Buffer (0x0D)
- {
- "ATY,Futomaki"
- },
- "@2,name",
- Buffer (0x0D)
- {
- "ATY,Futomaki"
- },
- "@3,name",
- Buffer (0x0D)
- {
- "ATY,Futomaki"
- },
- "@4,name",
- Buffer (0x0D)
- {
- "ATY,Futomaki"
- },
- "ATY,Card#",
- Buffer (0x0E)
- {
- "109-B77101-00"
- },
- "ATY,Copyright",
- Buffer (0x25)
- {
- "(C) 1988-2017, AMD Technologies Inc."
- },
- "ATY,Rom#",
- Buffer (0x41)
- {
- "TAHITI XTL PCIE 3G/384B GDDR5 DLDVI-I/HDMI/2XMINI-DP 1050E/1500M"
- },
- "ATY,VendorID",
- Buffer (0x02)
- {
- 0x02, 0x10
- },
- "ATY,DeviceID",
- Buffer (0x02)
- {
- 0x98, 0x67
- },
- "device_type",
- Buffer (0x13)
- {
- "ATY,FutomakiParent"
- },
- "model",
- Buffer (0x17)
- {
- "AMD Radeon HIS R9 280X"
- },
- "hda-gfx",
- Buffer (0x0A)
- {
- "onboard-1"
- }
- })
- }
- Method (_INI, 0, NotSerialized) // _INI: Initialize
- {
- If (LEqual (BAR5, Zero))
- {
- Store (BAR2, Local0)
- }
- Else
- {
- Store (BAR5, Local0)
- }
- OperationRegion (GREG, SystemMemory, And (Local0, 0xFFFFFFFFFFFFFFF0), 0x8000)
- Field (GREG, AnyAcc, NoLock, Preserve)
- {
- Offset (0x6800),
- GENA, 32,
- GCTL, 32,
- LTBC, 32,
- Offset (0x6810),
- PSBL, 32,
- SSBL, 32,
- PTCH, 32,
- PSBH, 32,
- SSBH, 32,
- Offset (0x6848),
- FCTL, 32,
- Offset (0x6EF8),
- MUMD, 32
- }
- Store (Zero, FCTL)
- Store (Zero, PSBH)
- Store (Zero, SSBH)
- Store (Zero, LTBC)
- Store (One, GENA)
- Store (Zero, MUMD)
- }
- }
- }
复制代码
要修改的代码有两行。
- External (_SB_.PCI0.NPE3.GFX0, DeviceObj) // (from opcode)
- Device (_SB.PCI0.NPE3.GFX0)
复制代码
以上是我的代码,NPE3和GFX0部分改为自己获取到的地址和相应的函数名保存即可,有空出一个X79的hotpatch,不过这玩意的hotpatch貌似很简单......
|
|