名词解释


这个事情起源于我闲的没事去华擎官网去看自己主板 BIOS 更新日志的时候:

如果要刷支持 Renoir 和 Vermeer 处理器的 BIOS,你需要用 Matisse CPU 来刷,如果你用的是 Pinnacle Ridge 或 Picasso:

因为 AMD 在 Zen 设计之初,原生只支持 16MB 的 BIOS,所以在 300/400 系列主板上你会看到他们的 BIOS 容量都是 16MB,这并不是因为厂家抠门,而是因为平台限制。Matisse 以后才支持大于 16MB,同时 AMD 在 Matisse 发布的时候告诉主板厂:我们 AM4 平台还会有一代新处理器!

这个时候板厂的 R&D 们开始头疼了:500 系列主机板已经都上了 32MB,但是 300/400 系列主板的存量用户仍然很多,那怎么办呢?由于 BIOS 容量是有限的,为了塞入新处理器的微码,采取了如下思路:

300/400 系列的问题解决了,但是这个时候问题又来了:X570 可以同时支持 Pinnacle、Picasso 和 Matisse 处理器,但正如我上文所说:Pinnacle 和 Picasso 只能支持 16MB 的 BIOS,那怎么办呢?这时候 AMD 给出了这样一个解决方案:AMD Combo AM4 Support

比较有意思的是这个文档是在 Intel 官网找到的,因为 Intel 自己的 NUC 也用 AMI BIOS

简单的来说,500 系列主机板的 32MB Flash 芯片,实际上被划分为了两个 16MB 的逻辑区块:ATR_UATR_D,每个逻辑区块都有自己独立的 NVRAM、FV。

在使用 Matisse 以及更新的 CPU 时,是可以全部读取到的:

但在使用 Picasso / Pinnacle 时:

于是主板厂商将 Pinnacle 和 Picasso 的微码放在 Top 16MB 用于读取,将 Matisse 以及更新的微码放到后 16MB,这样就解决了同时兼容的问题,但是这个时候问题来了:如果要在使用 Pinnacle / Picasso 处理器的情况下更新支持新处理器的 BIOS 怎么办?毕竟后 16MB 在它们眼里是不存在的。

我们来下载一下之前华擎的刷新文件看看:

echo -off
Matisse
if %lasterror% == 0 then
echo Update BIOS for Matisse.
AfuEfix64 X57EX4_2.80 /p /b /n /k /l /x /ATR /CMD:{BOTTOM16M} /RLC:F
AfuEfix64 X57EX4_2.80 /p /b /n /k /l /x /CMD:{TOP16M} /RLC:F
else
echo Update BIOS for Picasso/Pinnacle.
AfuEfix64 X57EX4_2.80 /p /b /n /k /l /x /ATR /CMD:{TOP16M} /RLC:F
AfuEfix64 X57EX4_2.80 /p /b /n /k /l /x /CMD:{BOTTOM16M} /RLC:F
endif

从上面的文档看出使用 5.11.05.1840 以及上版本的 AFUEFI 时,可使用 /CMD: 参数来控制刷新哪一部分,在使用 Matisse 的时候,先刷 Bottom 部分,再刷 Top,而在 Pinnacle 则恰好相反。

参考资料

  1. https://downloadmirror.intel.com/29467/eng/AMI_Aptio_5.x_AFU_User_Guide.pdf

  2. https://download.asrock.com/TSD/X570%20Extreme4.pdf

  3. https://ami.com/en/download-license-agreement/?DownloadFile=Aptio_V_AMI_Firmware_Update_Utility.zip