колупал парсер AML, понял, что он застряёт в куске кода, который должен (судя по названию метода) генерировать SMI и читать результат, но по какой-то причине SMI не приходят, что на qemu, что на реальном железе. Колупая исходники qemu, нашёл, что там можно включить SMI, сделав outl(0x630, inl(0x630) | (1 << 5)), но я абсолютно не уверен, что это какие-то фиксированные порты и документации по этому я не нашёл
Трюк с портом 0x630 рабоатет только в qemu, очевидно
В коде qemu почитал, там оказалось, что SMI заглушены. Включить я их смог только костылём с портом 0x630, который работает только в QEMU и только с ICH9
вроде где-то есть SMI_Enable где и как не особо пока понимаю
В FADT есть SMI_cmd (I/O порт) и ACPI_ENABLE/ACPI_DISABLE (значения), но там другой порт
И в AMD SimNow тоже "всё плохо" ?
AMD походу убрали его с сайта, все линки ведут просто на главную
А на Archive.org ? В любом случае, я его откуда-то скачал ( причём, с родного сайта). Посмотрим, что можно сделать
На archive.org только страница загрузки архивирована, файлов нет
Жаль. ( на неделе посмотрю, что можно предпринять)
а как на реальном железе вообще определить, что smi приходят?
Smi должен быть прозрачен для системы, возможны сдвиги времени, но это такое себе
только недавно про это читал на форуме одном, там утверждалось что из-за кривого кода smm разница между временем прихода прерывания таймера может доходить до 1000 тактов проца
осциллограф на SMI# ногу проца )
Там нет кривого кода особо-то, но там переключение в режим smi ( включая wbinvd) , потом из реального в 64битный, потом работа, потом обратно и rsm. Это может случиться в зависимости от причины на одном или всех процах. Быстро это не сделать
некоторые утверждают что в обработчике можно было найти циклы ожидания на основе loop и я почему-то верю что это могло быть. А про то что нет кривого кода - не верю, в любом большом проекте да найдётся какая-то заноза
так я на это и намекаю
вариант, если знаешь где на плате нужный тестпоинт
зачем из реального в 64битный? там вроде сразу идёт переход в режим smm, который по характеристикам напоминает unreal mode
Обсуждают сегодня