- 积分
- 907
- 最后登录
- 2023-10-29
- 精华
- 0
- 阅读权限
- 40
- 主题
- 111
- UID
- 4583288
- 帖子
- 2267
- PB币
- 1640
- 威望
- 0
- 贡献
- 0
- 技术
- 1
- 活跃
- 3175
- UID
- 4583288
- 帖子
- 2267
- PB币
- 1640
- 贡献
- 0
- 技术
- 1
- 活跃
- 3175
|
发表于 2017-10-31 13:40:13
IP属地湖北
|显示全部楼层
bizongyi 发表于 2017-10-24 17:43
该方法的作者是Mieze大神,就是那位写过很多网卡驱动的德国大姑娘。她是通过Vit9696的whatevergreen得到思路 ...
我看过原贴,其实作者的意图是重新使显卡回到不被bios初始化的状态,她采用了BAR5标记来判断显卡的新旧,如果是新卡(HD8xxx及以上)则对BAR5寄存器的缓冲区进行归位操作。如果是老卡(HD6xxx~HD7xxx)则对BAR2的寄存器进行归位,归位的目前是让OSX重新来对这些显卡进行初始化,抹去之前BIOS的初始化动作,以使ATI显卡能正常工作。
If (LEqual (BAR5, Zero)) //如果BAR5(新卡)没有被初始化,里面没有数据
{
Store (BAR2, Local0) //则对BAR2(老卡)进行重新归位并用OSX的方式初始化
}
Else //发现BAR5以被初始化(里面存在之前被初始化的数据),说明是新卡
{
Store (BAR5, Local0) //则对BAR5(新卡)进行归位,重新用OSX的方式初始化
}
|
|