我写了一个EFI二进制文件来测试UEFI shell下的物理DIMM,过程非常简单 - 首先将测试模式写入物理地址,然后将其读出并与原始模式进行比较。 但是,DIMM可能会遇到可纠正或无法纠正的错误。通常所有可纠正的ECC都会由硬件自动更正,BIOS会处理这个(记录此错误并清除错误寄存器),无法纠正的错误通常会导致BIOS发出NMI,然后系统挂起。
问题是我的测试程序不知道错误发生 - BIOS FW掩盖了可纠正的错误,并且无法纠正的错误导致系统挂起......
是否有任何方法让测试程序知道ECC错误发生?我很感激您的任何建议。谢谢!
答案 0 :(得分:0)
我相信要做到这一点,你的程序将需要对硬件的最终控制。这意味着它需要完全启动并删除EFI环境。
完成后,程序可以处理所有指示ECC错误的中断和CPU寄存器。
完成后,程序将进行软重置,然后将系统重新引导回EFI。