Попутно вопрос: а как в таких случаях Вы поступаете с недокументированными memory-mapped регистрами чипсета? Ведь по сути - все 800 страниц описания - это не более, чем одна треть реальной документации.
Вы затронули грустную, но пока еще решаемую проблему.
Да, документация не полная. Но и сама задача эмуляции железа в нашей постановке не требует эмуляции всех его функциональных возможностей.
Например, если биос не использует какие-то регистры чипсета, то можно их и не эмулировать. Если же эти регистры используются, но не описаны в документации, то частенько можно догадаться об их "правильном" поведении (код биоса подскажет). В крайнем случае, можно пропатчить биос и "перепрыгнуть" через использование недокументированных возможностей.
Наш эмулятор - это средство для динамического анализа уже написанного кода BIOS. Другие применения эмулятора (патчи, добавление собственных модулей) тоже возможны, но не являются главными.
Вы затронули грустную, но пока еще решаемую проблему.
Да, документация не полная. Но и сама задача эмуляции железа в нашей постановке не требует эмуляции всех его функциональных возможностей.
Например, если биос не использует какие-то регистры чипсета, то можно их и не эмулировать. Если же эти регистры используются, но не описаны в документации, то частенько можно догадаться об их "правильном" поведении (код биоса подскажет). В крайнем случае, можно пропатчить биос и "перепрыгнуть" через использование недокументированных возможностей.
Наш эмулятор - это средство для динамического анализа уже написанного кода BIOS. Другие применения эмулятора (патчи, добавление собственных модулей) тоже возможны, но не являются главными.
А вот эмуляцией полной модели пусть занимаются сами создатели. Что они с успехом и делают:
download.intel.com/technology/itj/q41999/pdf/softSDV.pdf
У них - "Presilicon", у нас - "POSTsilicon"