设备:AMD Radeon HD 7770(Cape Verde 核心 / GCN 1.0)
目标:主板关闭 CSM 后,显卡使用 UEFI 方式与平台握手(启用纯 UEFI 快速启动)
刷写工具:amdvbflash(GUI / CLI 均可)
结果:开机正常显示UEFI 界面,GPU-Z 中查看显卡已勾选 UEFI,显卡驱动正常。
前情:
前一阵不是装了台E2234 志强U + H310M的魔改BIOS 主机么。没有核显,自然40HX 就下岗了。
后来翻出 一张10年前的老显卡 HD7770 再就业,就是这家伙——
因为显卡太过老旧,没有UEFI驱动,导致一旦主板 BIOS 中关闭CSM 兼容选项,就无法进入 BIOS 图形化界面了。
戏剧性的是:
后来事实证明,出厂BIOS 中并不是没有 UEFI GOP (Graphics Output Protocol) 驱动。
而且考虑到后续 可以用这张卡 做40HX 的补帧卡,到那个时候还是需要启用显卡的 UEFI GOP 驱动。
综合以上情况,就有了以下的折腾。
踩坑记录:
尝试让老显卡 UEFI 启动时,往往会踩到以下两个典型的坑:
坑 1:老卡BIOS 芯片容量有限,升级GOP版本导致容量溢出
- 现象:
你一定和我一样在网上找到很多用 GOPupd 或 GOPlegacy 工具刷入&更新显卡 BIOS的方法。
经过测试:更新后的 BIOS 大小会超出芯片存储空间限制。
使用 amdvbflash 工具刷入时,出现警告:
|
|
- 本质原因:
HD 7770 这类老卡板载的 SPI Flash 通常只有 128 KB(0x20000 字节)。
其中前 64 KB 是 Legacy BIOS,末尾 0x1E200 ~ 0x20000(约 7.5 KB)是显卡厂商存放供电芯片、时序控制和校验的私有数据。
留给GOP 的驱动大约只剩下 56.5 KB 空间。
使用GOPupd 工具更新 1.69.x 等新版 GOP 后,会撑爆了 这个128KB 的限制。
坑 2:直接刷“同品牌/同架构”跨型号的 BIOS 导致硬件 43 错误
- 现象:
既然 GOPupd 这条大多数人可行的道路走不通,刷入同品牌同架构的 显卡BIOS 是不是就可以了呢?
经过测试&验证:这么操作后 开机可亮屏,但分辨率不正常。
并且 Windows 设备管理器中显卡报代码 43 错误,GPU-Z中查看显卡状态:显存颗粒可以识别到,但是GPU Clock 与 Memory Clock 均为 0 MHz。
- 本质原因:
显存颗粒虽匹配,但板载供电控制芯片(PWM IC / VRM)或电压表不一致。
驱动在加载时通过 I2C 与供电芯片握手失败,触发了显卡底层自我保护,驱动拒绝加载并锁定频率为 0 MHz。
那该怎么办呢?
这个办法一开始我也没想到:
AI 建议我 把备份出来的 出厂BIOS 文件直接发给它,它帮我查看 和修改。
AI (Gemini 3.8 )给出的分析如下——
分析提取出的原厂 HD7770_Cape Verde.rom 发现BIOS 空间布局:
|
|
它内部已经包含了 AMD 官方的 EFI GOP 1.53 驱动,但由于出厂固件写错了两处元数据,导致主板无法引导:
- Legacy 镜像指示符错误(Last-Image Bit):
Legacy 部分的 PCIR 结构体标志位被错误地置为了 0x80(代表该镜像是 ROM 的最后一个镜像)。
主板 UEFI BIOS 读完 Legacy 后认为后面已经没有内容,直接放弃向下加载 EFI 模块。
- EFI 模块 Device ID 错配:
EFI 模块的 PCIR Header 中,设备 ID 被误写成了 0x6610(对应 R7 240/250),而 HD 7770 实际硬件 ID 为 0x683D,握手识别失败。
合着是出厂BIOS 中有GOP 驱动啊!!! 但是配错了。
解决方案:精准修复原BIOS 中的4个字节
有了上面的分析,修改起来就简单了——
不替换 GOP 模块,不破坏任何原有供电/频率/风扇策略,直接针对原厂 ROM 修正 4 个控制引导链的字节:
修改明细对照表
| 偏移地址 (Offset) | 原始字节 | 修改后 | 作用与原理 |
|---|---|---|---|
0x00021 |
0xB7 |
0x37 |
Legacy Checksum 重平衡:因修改了 0x231,需在校验偏移处补偿 +0x80,使前 64KB 校验和(Sum % 256)重新归零,防止主板报错。 |
0x00231 |
0x80 |
0x00 |
重置 Last-Image 标志:指示主板后面紧跟后续镜像(EFI GOP 模块)。 |
0x10022 |
0x10 |
0x3D |
修正 EFI Device ID 低位:将 0x6610 改为 0x683D。 |
0x10023 |
0x66 |
0x68 |
修正 EFI Device ID 高位:使 EFI 驱动精准匹配显卡硬件 ID。 |
AI 甚至还给出了修改脚本:
|
|
有了这个修正后的 BIOS 文件 [HD7770_UEFI_Fixed.rom], 刷入它就应该可以正常调用显卡 UEFI GOP 接口了。
具体刷入与验证步骤
具体刷入方法有两种:一个是图形化操作的方法,一个是命令行操作。
但是用到的工具包是同一个。
所以,需要先下载这个工具包,链接。
下载完成后需要解压这个工具包。

并安装 驱动。

方式 A:GUI / WebUI 刷写(图形界面——推荐)
-
启动上面工具目录中的
amdvbflashWin.exe。 -
在界面上方选中需要刷写的 HD 7770 显卡。
-
点击 Load Image 载入
HD7770_UEFI_Fixed.rom。 -
点击 Program 执行写入,等待提示 Success 即可。
方式 B:命令行(CLI)刷写
必须以管理员身份打开 CMD 或 PowerShell,并进入对应工具目录:
1. 查询显卡索引
|
|
找到目标卡的 adapter 编号(通常为 0)。
若提示未安装驱动,执行:
|
|
2. 备份当前固件( !!一定要做!! )
|
|
3. 解锁 ROM 写入保护
|
|
4. 刷入修改后的固件
|
|
核心参数说明: -
-p <num> <file>:执行写入(Program)。 --fp:强制写入(Force Program),绕过硬件/校验拦截。 --unlockrom <num>:解除 SPI 芯片写保护。
终端返回 `Verify: OK` 后,重启电脑。
验证与主板设置
上面提到的两种刷入方法都可以,推荐第一种——简单直观。
刷写成功后,如何检查呢?
1. 系统内验证
使用 GPU-Z 软件:
-
UEFI 选项:右上角的
UEFI复选框正常勾选。 -
频率与驱动:核心频率(GPU Clock)与显存频率(Memory Clock)恢复正常读数,设备管理器无黄色感叹号。
安装AMD 官方驱动(下载地址):
-
安装过程不报错,并且可以正常设置 显卡。
2. 主板 BIOS 验证
-
重启进入主板 BIOS,将 CSM Support 设为 Disabled(关闭)。
-
关闭 Secure Boot,保存退出。
重启后,开机按 DEL 仍然可以进入图形话 BIOS 界面,也证明显卡目前是通过 UEFI GOP 驱动的。
完结撒花。
Q&A
Q:是否有必要更新 GOP 版本呢?
A:盲目升级新版本的收益极低:
-
GOP 驱动在显卡上的使命周期很短:只在开机点亮主板 Logo 到进入 Windows 滚动圈这 3~5 秒内工作。一旦进入系统,全权交由 AMD 显卡驱动接管。
-
1.53 已经完整支持 4K 原生分辨率输出、UEFI 2.0+ 规范和 Fast Boot。升级到 1.6x 不会增加哪怕 1 帧的游戏性能。