Вернемся к моему первому сообщению, в котором я сообщил, что путём "прогрева" мульта удалось победить проблему.
В ответ меня просветили, что "мульт тут не при делах" (очень образно, понравилось мне это выражение), мол не тот у него функционал.
Я же при помощи своей программы показал, что с функционалом мульта всё в порядке: регистры, использующиеся для работы с CaseOpen, на месте и всё также доступны программно. Данный факт, с учётом того, что в биосе сохранился код по работе с CaseOpen (который собственно и выводит Chassis Intruded! на экран) делает мою гипотезу, согласно которой причина глюка была связана именно с мультом, вполне правдоподобной. Глюк мог быть связан как с самим чипом, так и с проблемными контактами (напомню, что кроме прогрева чипа я пропаивал контакты с 65 до примерно 80...85).
Если кому-то не нравится моя гипотеза -- ну чтож поделать... С практикой она вполне согласуется.
Боюсь более точную причину глюка мы уже никогда не узнаем. Во-первых, потому что проблема была решена и больше не возникала. Во-вторых, материнка уже 2 дня как отдана довольному клиенту.
----------
А теперь обещанная программа. Может кому пригодится в плане решения обсуждаемых в этой теме проблем.
Простейшая программа для тестирования функции CaseOpen (Chassis Intrusion)
Winbond'овских "мультиков" W83627DHG.
Программа умеет:
1) отображать статус CaseOpen;
2) сбрасывать этот статус (двумя способами);
3) включать/отключать звуковой сигнал, оповещающий об открытой крышке.
Программа работает только под чистым DOS'ом,
так что для запуска потребуется загрузочная флэшка.
Запуск этой программы под Win и на виртуальных машинах бессмысленен.
Ещё одно [очевидное] необходимое условие: на материнской плате компьютера должен
присутствовать чип с маркировкой W83627DHG.
================================================================================
После запуска программа выдает на экран текущее состояние интересующих нас
регистров, точнее битов, имеющих отношение к CaseOpen.
---
CaseOpen Interrupt Status: 0 [ 1 = Case has been opened ]
CaseOpen HW Status Reg : 0 [ 1 = CaseOpen detected and latched ]
CaseOpen SMI mask : 1 [ 1 = disables coresp-ing INT status bit for SMI ]
CaseOpen Beep Control : 1 [ 1 = enable BEEP output ]
---
Здесь в квадратных скобках отображается памятка/комментарий.
Перед скобками -- значение интересующих битов.
Значения в первых двух строках обычно дублируют друг друга:
0 -> крышка корпуса ни разу не открывалась;
1 -> крышка корпуса хотя бы раз открывалась или даже до сих пор открыта;
В четвёртой строке отображается состояние звуковой сигнализации:
0 -> при открытии крышки звуки не издаются;
1 -> при открытии крышки начнёт звучать тревожный сигнал до тех пор,
пока состояние первых двух регистров не будет сброшено;
Естественно, при отсутствии спикера, подключенного к материнке, никакого
сигнала вы не услышите.
После отображения состояния регистров программа переходит в режим ожидания ввода команды.
Команды ОДНОсимвольные (латиницей) регистроЗависимые, выполняются по нажатию клавиши Enter.
s или S - отображение состояния упомянутых выше регистров
B - включение звуковой сигнализации на открытие корпуса
b - отключение звуковой сигнализации на открытие корпуса
C - засылаем в регистр сброса 1
c - засылаем в регистр сброса 0
Команды 'C' и 'c' крайне желательно выполнять последовательно!
!!! В результате последовательного выполнения команд 'C' и 'c' произойдет
сброс состояния "корпус открыт"
Причем в момент выполнения команд крышка корпуса должна быть закрыта !!!
(точнее, датчик открытия корпуса должен находиться в состоянии, соответствующем
закрытой крышке корпуса)
R и r - аналогично командам 'C' и 'c' - альтернативный вариант сброса
(через контрольный регистр CR)
X или x - выход из программы.
--------------------------------------------------------------------------------
Программу можно использовать для изучения работы Chassis Intrusion.
Примерный порядок использования.
1) Грузимся с флэшки в ДОС, запускаем программу.
2) Если звуковая сигнализация не включена, вводим команду "B" (без кавычек);
3) "Открываем" крышку корпуса
или снимаем, затем обратно одеваем перемычку
(или наоборот: одеваем ненадолго - обратно снимаем перемычку)
на разъёме Chassis/CI/JCI на материнке.
Слышим звуковую сигнализацию.
4) Смотрим состояние регистров (команда "S" без кавычек) -- видим, что состояние
первых двух изменилось с 0 на 1.
5) Сбрасываем состояние "корпус открыт" либо последовательностью команд "C" и "c",
либо последовательностью команд "R" и "r".
6) Звук сигнализации должен исчезнуть. Проверяем состояние регистров:
первые два вернулись в исходное состояние (1->0)
7) Выход из программы (команда "X")
Понятно, что ход выполнения программы предсказуем.
В этом и состоит одна из задач программы -- проверка того,
что работа с Chassis Intrusion происходит именно через винбондовский мультик.
Ибо проскакивает информация о том, что на некоторых материнках
не смотря на наличие на их борту мультика W83627DHG(-A),
за работу с Chassis Intrusion отвечает южный мост.
Основная же причина написания программы: показать, что программный интерфейс
чипов W83627DHG и W83627DHG-A для работы с Chassis Intrusion (CaseOpen)
идентичен!
Единственное отличие: в W83627DHG-A пока не удалось включить звуковую
сигнализацию на "открытие корпуса".
-------------------------------------------------------------------------------
Тестирование производилось на следующих материнских платах:
MSI K9VGM-V (с Winbond W83627DHG )
ASUS P5K-VM (с Winbond W83627DHG-А)
В микростаровской материнке в биосе присутствует пункт меню, позволяющий
включить/отключить/сбросить использование Chassis Intrusion, что очень удобно.
Во время POST, если крышка была открыта, биос любезно предлагает
либо продолжить работу, либо зайти в настройки.
Асусовская материнка всех этих плюсов лишена:
1) в настройках биоса соответствующий пункт отсутствует;
2) в случае "открытия корпуса" на этапе POST биос, выдав соответствующее
предупреждение, прекращет свою работу (фактически подвешивает комп).
Чтобы выйти из этой затруднительной ситуации необходимо:
а) "закрыть крышку корпуса", нажать кнопку RESET;
б) дождаться, пока биос снова ругнется и подвесит комп;
в) снова нажать кнопку RESET на корпусе;
В ближайшее время постараюсь протестить прогу на др. материнках с Winbond W83627DHG(-А) на борту.
Но честно говоря, особых сюрпризов не ожидаю.
===============================================================================
VadimK60 (oct2015)
Чувствую, обсуждение ушло не в ту степь...
Вернемся к моему первому сообщению, в котором я сообщил, что путём "прогрева" мульта удалось победить проблему.
В ответ меня просветили, что "мульт тут не при делах" (очень образно, понравилось мне это выражение), мол не тот у него функционал.
Я же при помощи своей программы показал, что с функционалом мульта всё в порядке: регистры, использующиеся для работы с CaseOpen, на месте и всё также доступны программно. Данный факт, с учётом того, что в биосе сохранился код по работе с CaseOpen (который собственно и выводит Chassis Intruded! на экран) делает мою гипотезу, согласно которой причина глюка была связана именно с мультом, вполне правдоподобной. Глюк мог быть связан как с самим чипом, так и с проблемными контактами (напомню, что кроме прогрева чипа я пропаивал контакты с 65 до примерно 80...85).
Если кому-то не нравится моя гипотеза -- ну чтож поделать... С практикой она вполне согласуется.
Боюсь более точную причину глюка мы уже никогда не узнаем. Во-первых, потому что проблема была решена и больше не возникала. Во-вторых, материнка уже 2 дня как отдана довольному клиенту.
----------
А теперь обещанная программа. Может кому пригодится в плане решения обсуждаемых в этой теме проблем.