英特尔微码更新可以回滚吗?

Bee*_*ope 6 cpu intel-core-i7 x86

假设我申请(或已通过自动更新过程为我申请)微代码更新,该更新修复了例如我的 Skylake 芯片上的超线程错误

这种更新是不可逆的,还是我以后可以切换回较早的微码?

小智 4

微代码更新本身始终可以回滚,因为它不是持久性的,但如果该更新是从固件(即 UEFI/BIOS)进行的,您可能会刷新修改后的固件来执行此操作:

在较新的英特尔平台上,出于安全原因,微代码更新可能会禁止热降级(有三个微代码版本字段:修订版、“SVN”和“VCN”,后两个是非官方名称,因为它们没有记录。您不应该由于安全和/或稳定性原因,热降级VCN 或 SVN(请参阅 [1])。这意味着您需要修改固件映像中的微代码才能降级。请注意,操作系统内核本身已经拒绝降级微代码修订版,因此无论如何您都必须解决它。

此外,一些代码更新[迄今为止从未分发给公众,仅分发给固件 OEM,例如 Intel Westmere 0x206c2 微代码更新]具有持久的副作用,例如通过更改存储在平台中的数据TPM。这些持久的副作用的存在是出于安全原因,以避免对英特尔 TXT 和/或英特尔 SGX 的“降级攻击”。在这种情况下,微代码更新可以轻松回滚,但可能会在系统中留下持久的副作用,从而禁止回滚其他固件组件(例如,用于 Intel TXT 的 SINIT ACM)——如果您确实回滚这些固件组件返回后,处理器将在任何微代码修订中禁用 Intel TXT,直到您再次升级固件组件。

[1] https://github.com/platomav/MCExtractor/wiki/Intel-Microcode-Extra-Undocumented-Header