В профессиональном плане меня интересуют взаимодействие и влияние на Addon BIOSы основного...
Это отдельный и огромный мир. Вопрос действительно интересный.
А теперь по сути темы. Разрабатывая тестовый BIOS преследовалась цель на самом раннем этапе старта получить софтверное подтверждение не только работоспособности платформы (ну, например, в тривиальном случае - системный BIOS искажен до неузнаваемости), но и диагностику неисправности.
Для диагностики необходимо использовать аппаратное устройство, это понятно, т.к. в момент старта о видео говорить не приходится. POST-карты, как устройста, отображающего состояние порта 80h - мало. Было принято решение дополнить функционал нашей POST-карты отображением состояния портов 110h...117h (как редко используемых). Хотя можно было бы использовать и любой другой подходящий диапазон портов.
1) Каким образом работать через 110h...117h?
А очень, оказывается, просто. Конструкция
MOV eax, 55AA00FFh
MOV dx, 110h
OUT dx, eax
обеспечивает наличие в портах 110h...117h байтов, из которых состоит EAX. Факт может очевидный, а может и не очевидный. Не могу сказать, что додумались, просто - написали и все тут.
2) Как искать неисправность?
Это оказалось тоже несложно. Идея такая:
MOV eax, 55AA00FFh
MOV dx, 110h ; первая 32-х битная посылка
OUT dx, eax
MOV dx, 114h ; вторая 32-х битная посылка
OUT dx, eax
Что в результате? Если данные не искажены, это значит, что в цепочке до Южного моста (шина 64 бита, с оговорками) ->PCI (шина 32 бита) -> ISA (шина 16 бит) -> BIOS (8 бит, с оговорками) проблем нет. Для надежности необходимо повторить эту же операуцию с инверсными данными, например 0AA55FF00h. Если есть четыре симметричных искажения, то проблема в связке ISA-BIOS, если два, то в PCI-ISA и т.д. (Хотя на практике все немного сложнее).
Если все понятно, то будем обсуждать далее. Если есть вопросы, то готов на них ответить.
Это отдельный и огромный мир. Вопрос действительно интересный.
А теперь по сути темы. Разрабатывая тестовый BIOS преследовалась цель на самом раннем этапе старта получить софтверное подтверждение не только работоспособности платформы (ну, например, в тривиальном случае - системный BIOS искажен до неузнаваемости), но и диагностику неисправности.
Для диагностики необходимо использовать аппаратное устройство, это понятно, т.к. в момент старта о видео говорить не приходится. POST-карты, как устройста, отображающего состояние порта 80h - мало. Было принято решение дополнить функционал нашей POST-карты отображением состояния портов 110h...117h (как редко используемых). Хотя можно было бы использовать и любой другой подходящий диапазон портов.
1) Каким образом работать через 110h...117h?
А очень, оказывается, просто. Конструкция
MOV eax, 55AA00FFh
MOV dx, 110h
OUT dx, eax
обеспечивает наличие в портах 110h...117h байтов, из которых состоит EAX. Факт может очевидный, а может и не очевидный. Не могу сказать, что додумались, просто - написали и все тут.
2) Как искать неисправность?
Это оказалось тоже несложно. Идея такая:
MOV eax, 55AA00FFh
MOV dx, 110h ; первая 32-х битная посылка
OUT dx, eax
MOV dx, 114h ; вторая 32-х битная посылка
OUT dx, eax
Что в результате? Если данные не искажены, это значит, что в цепочке до Южного моста (шина 64 бита, с оговорками) ->PCI (шина 32 бита) -> ISA (шина 16 бит) -> BIOS (8 бит, с оговорками) проблем нет. Для надежности необходимо повторить эту же операуцию с инверсными данными, например 0AA55FF00h. Если есть четыре симметричных искажения, то проблема в связке ISA-BIOS, если два, то в PCI-ISA и т.д. (Хотя на практике все немного сложнее).
Если все понятно, то будем обсуждать далее. Если есть вопросы, то готов на них ответить.