卿云在天
发表于 2017-11-10 18:51
我的AMD 迪兰恒进 RX580 8G 按照楼主教程,加入dsdt代码如下:
Device (PEG0)
{
Name (_ADR, 0x00010000)// _ADR: Address
Device (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)
}
Method (_DSM, 4, NotSerialized)// _DSM: Device-Specific Method
{
If (LEqual (Arg2, Zero))
{
Return (Buffer (One)
{
0x03
})
}
Return (Package (0x26)
{
"AAPL,slot-name",
Buffer (0x07)
{
"PCIe"
},
"VRAM,totalsize",
Buffer (0x04)
{
0x00, 0x00, 0x02, 0x00
},
"@0,name",
Buffer (0x1A)
{
"ATY,AMD,RadeonFramebuffer"
},
"@0,compatible",
Buffer (0x1A)
{
"ATY,AMD,RadeonFramebuffer"
},
"@0,device_type",
Buffer (0x08)
{
"display"
},
"@1,name",
Buffer (0x1A)
{
"ATY,AMD,RadeonFramebuffer"
},
"@2,name",
Buffer (0x1A)
{
"ATY,AMD,RadeonFramebuffer"
},
"@3,name",
Buffer (0x1A)
{
"ATY,AMD,RadeonFramebuffer"
},
"@4,name",
Buffer (0x1A)
{
"ATY,AMD,RadeonFramebuffer"
},
"ATY,Card#",
Buffer (0x14)
{
"WEAR-112-2017-10-22"
},
"ATY,Copyright",
Buffer (0x25)
{
"(C) 1988-2017, AMD Technologies Inc."
},
"ATY,EFIVersion",
Buffer (0x41)
{
"WEAR-112-2017-10-22"
},
"ATY,Rom#",
Buffer (0x14)
{
"WEAR-112-2017-10-22"
},
"ATY,VendorID",
Buffer (0x02)
{
0x02, 0x10
},
"ATY,DeviceID",
Buffer (0x02)
{
0xDF, 0x67
},
"device_type",
Buffer (0x20)
{
"ATY,AMD,RadeonFramebufferParent"
},
"model",
Buffer (0x17)
{
"AMD Radeon Pro RX580"
},
"name",
Buffer (0x15)
{
"AMD Radeon Pro RX580"
},
"hda-gfx",
Buffer (0x0A)
{
"onboard-1"
}
})
}
}
Device (HDAU)
{
Name (_ADR, One)// _ADR: Address
Method (_DSM, 4, NotSerialized)// _DSM: Device-Specific Method
{
Store (Package (0x02)
{
"hda-gfx",
Buffer (0x0A)
{
"onboard-1"
}
}, Local0)
DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
Return (Local0)
}
}
}
结果是:
1. 扔掉了WhateverGreen.kext已经完美驱动
2. 问题是系统信息,显示的显卡型号错误,请看下图正确的和错误的比较:
请大家帮忙分析一下
卿云在天
发表于 2017-11-10 19:06
jiangzhourui 发表于 2017-11-6 22:17 https://www.pcbeta.com/static/image/common/back.gif
显卡是rx580,用whatevergreen时io检测位置在pci0-peg0-gfx0,然后用上面的代码做成hotpatch,然后重启在用 ...
同样的问题,我的显示出来的是:
AMD R9 xxx:
芯片组型号: AMD R9 xxx
类型: GPU
总线: PCIe
插槽: PCIe,,
PCIe Lane 宽度: x16
VRAM(总和): 8 GB
供应商: AMD (0x1002)
设备 ID: 0x67df
修正版 ID: 0x00e7
ROM 修正版: WEAR-112-2017-10-22
EFI 驱动程序版本: WEAR-112-2017-10-22,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Metal: 支持
显示器:
SyncMaster:
分辨率: 1440 x 900 @ 60 Hz
帧缓冲深度: 30 位彩色 (ARGB2101010)
显示器序列号: HVJQ715221
镜像: 关
联机: 是
旋转: 支持
自动调节亮度: 否
连接类型: 模拟 VGA 或模拟 Over DVI-I
适配器固件版本: 0.00
C24F390:
分辨率: 1920 x 1080 @ 60 Hz
帧缓冲深度: 30 位彩色 (ARGB2101010)
显示器序列号: HTQHA00985
主显示器: 是
镜像: 关
联机: 是
旋转: 支持
自动调节亮度: 否
kaeserlin
发表于 2017-11-11 13:22
卿云在天 发表于 2017-11-10 19:06 https://www.pcbeta.com/static/image/common/back.gif
同样的问题,我的显示出来的是:
AMD R9 xxx:
Buffer 值长度设置有误,在我的SSDT中(下面是你的)Return (Package (0x26)这一行,设置超过0x1E后面的内容将无法显示,猜测可能是存在着某种限制,包括后面出现一大堆逗号的也是,字节长度被自动填补。
"AAPL,slot-name",
Buffer (0x06)
{
"PCI-E"
},
"ATY,EFIVersion",
Buffer (0x14)
{
"WEAR-112-2017-10-22"
},
另外,请精简你的注入内容,可能太多了,显卡名称建议保留model去掉name。
maojinbing
发表于 2017-11-11 13:33
本帖最后由 maojinbing 于 2017-11-11 13:39 编辑
“连接类型: 模拟 VGA 或模拟 Over DVI-I.”已经告诉我们,无法对应任何FB,不能跟早期A卡比,那些可以对应到FB,所有显卡能得到正确的芯片型号。已RX560为例
ATOM BIOS Rom:
SubsystemVendorID: 0x1da2 SubsystemID: 0xe348
IOBaseAddress: 0x0000
Filename: 348X05MF.U32
BIOS Bootup Message:
E348030 P21 XT GDDR5 256Mx32 4GB 214e/300m
PCI ID: 1002:67ff
Connector at index 0
Type [@offset 40680]: DisplayPort (10)
Encoder [@offset 40684]: INTERNAL_UNIPHY1 (0x20)
i2cid [@offset 40754]: 0x90, OSX senseid: 0x1
HotPlugID: 5
Connector at index 1
Type [@offset 40690]: HDMI-A (11)
Encoder [@offset 40694]: INTERNAL_UNIPHY1 (0x20)
i2cid [@offset 40781]: 0x93, OSX senseid: 0x4
HotPlugID: 3
Connector at index 2
Type [@offset 40700]: DVI-D (3)
Encoder [@offset 40704]: INTERNAL_UNIPHY (0x1e)
i2cid [@offset 40808]: 0x94, OSX senseid: 0x5
HotPlugID: 4
11348X05MF.U32:
E348030 P21 XT GDDR5 256Mx32 4GB 214e/300m
Subsystem Vendor ID: 1da2
Subsystem ID: e348
Object Header Structure Size: 222
Connector Object Table Offset: 34
Router Object Table Offset: 0
Encoder Object Table Offset: a1
Display Path Table Offset: 12
Connector Object Id which is
encoder obj id which is enc 0x2)] linkb: false
Connector Object Id which is
encoder obj id which is enc 0x3)] linkb: true
Connector Object Id which is
encoder obj id which is enc 0x0)] linkb: false
HDMI端口可以被系统准确识别,其他2个端口我认为需要修改FB值,暂时未获取到资料
disontsie
发表于 2017-11-11 15:53
mark住到时候看看。7670m
卿云在天
发表于 2017-11-12 10:27
kaeserlin 发表于 2017-11-11 13:22 https://www.pcbeta.com/static/image/common/back.gif
Buffer 值长度设置有误,在我的SSDT中(下面是你的)这一行,设置超过0x1E后面的内容将无法显示,猜测可能 ...
感谢楼主回复!
目前还没有测试,已经用回了whatEverGreen了,不折腾了
wyhtc
发表于 2017-11-16 00:00
本帖最后由 wyhtc 于 2017-11-16 00:03 编辑
楼主在吗?我的Vega弄hotpatch后,位置跑到了display@0下,我只是打算改个名,但是跑到这个位置下后,改名无效,依然RX xxx,求解。。附上我的SSDT和IOReg。。
limurphy
发表于 2017-11-16 07:39
wyhtc 发表于 2017-11-16 00:00 https://www.pcbeta.com/static/image/common/back.gif
楼主在吗?我的Vega弄hotpatch后,位置跑到了display@0下,我只是打算改个名,但是跑到这个位置下后, ...
用 hotpatch 的話,clover -> dsdt patch-> 要加入 find 5045 4750 replace 4746 5830commnad PEGP -> GFX0
SSDT-VEGA.aml內 Name (_ADR, Zero)// _ADR: Address <- 把這行註解掉。
wyhtc
发表于 2017-11-16 13:10
limurphy 发表于 2017-11-16 07:39 https://www.pcbeta.com/static/image/common/back.gif
用 hotpatch 的話,clover -> dsdt patch-> 要加入 find 5045 4750 replace 4746 5830commnad PEGP ->...
谢谢~晚上我回家试试看
jie112
发表于 2017-11-19 12:34
谢谢楼主。我去试试
livus
发表于 2017-11-19 18:48
谢谢楼主 使用这个 我变色龙引导的 amd fx 8320 + rx460 可以单卡启动了
zouyanggary
发表于 2017-11-25 02:44
大佬,这个真是极好的
aslhyvv1
发表于 2017-11-28 20:00
谢谢楼主的分享
obenzzz
发表于 2018-1-29 20:56
感谢分享~~~~~
zfqq
发表于 2018-1-30 16:17
太复杂了 有没有傻瓜式的解决办法
comnara
发表于 2018-2-9 20:41
lovest.fdh
发表于 2018-2-13 00:32
comnara 发表于 2018-2-10 00:41 https://www.pcbeta.com/static/image/common/back.gif
Buffer ()里的值是怎么获取的呢?
留空就行,
juyaobin
发表于 2018-2-13 01:42
cosmid
发表于 2018-3-5 14:43
谢谢分享,支持楼主。
zhoufeng1209
发表于 2018-3-25 16:33
hotpatch要如何使用?
页:
1
2
3
4
5
6
[7]
8
9
10