Как обнаружить ошибку ECC при тестировании memroy под оболочкой UEFI
Я написал двоичный файл EFI для тестирования физических модулей DIMM под оболочкой UEFI, процесс довольно прост - сначала запишите тестовый шаблон в физический адрес, затем прочитайте его и сравните с исходным шаблоном. Однако модули DIMM могут сталкиваться с исправляемыми или неисправимыми ошибками. Обычно все исправимые ECC будут исправляться аппаратно автоматически, и BIOS будет обрабатывать это (регистрировать эту ошибку и очищать регистры ошибок), как правило, неисправимые ошибки приводят к тому, что BIOS выдает NMI, а затем зависает система.
Проблема в том, что моя тестовая программа не знает, что происходит ошибка - исправляемые ошибки маскируются BIOS FW, а неисправимые ошибки приводят к зависанию системы...
Есть ли какой-нибудь способ сообщить тестовой программе, что произошла ошибка ECC? Буду признателен за любые советы, которые вы можете иметь. Спасибо!
1 ответ
Я считаю, что для этого вашей программе потребуется полный контроль над оборудованием. Это означает, что он должен полностью загрузиться и удалить среду EFI.
Как только вы это сделаете, ваша программа сможет обрабатывать все прерывания и регистры ЦП, которые указывают на ошибки ECC.
После этого ваша программа выполнит программный сброс и загрузит систему обратно в EFI.