После нехитрого преобразования персональная платформа выводит контрольные точки POST-процедур на светодиод Power LED, а сервисный инженер мониторит старт компьютера удаленно, наблюдая их на устройстве, похожем на пульт дистанционного управления.
Безумная идея? Нет. Технология, реализованная компанией Intel в наборах системной логики.
История эволюции
Сервисное обслуживание персональных платформ сегодня трудно представить без использования диагностических контрольных точек. Главный принцип остался неизменным со времен IBM PC: инициализация оборудования, выполняемая процедурами BIOS или UEFI, представляется как последовательность шагов. При этом после выполнения каждого шага выводится диагностический POST-код. В случае остановки или зависания на одном из шагов, диагностический код укажет на причину проблемы. Для фиксации и отображения таких кодов используют POST-карты.
История эволюции таких устройств, началась с 8-битного регистра, адресуемого на шине ISA в качестве порта вывода с фиксированным адресом 80h, затем появились решения для PCI-шины, и наконец, современным трендом является использование USB-порта с возможностью передачи не только цифровых кодов, но и текстовых строк.
Особенности переходного периода
Итак, POST-диагностика переезжает с PCI на USB. Но сегодня существует немалое количество стационарных и мобильных платформ, на которых PCI-слоты уже отсутствуют, как устаревшие, а firmware еще не адаптировано для перехода на USB-диагностику.
В таких случаях разработчики устройств вынуждены временно свернуть с магистрального пути и использовать собственные, platform-specific решения. В устройствах верхнего ценового сегмента, ориентированных на энтузиастов, можно увидеть встроенные индикаторы POST-кодов, обычно подключенные к LPC-шине. Другой вариант — вывести LPC-сигналы на разъем, допускающий подключение POST-карты. Недостатки очевидны — отсутствие унификации. А все потому, что LPC (Low Pin Count) — внутренняя шина системной логики, используемая для связи южного моста и микросхемы Super I/O (на некоторых платформах к LPC также подключена микросхема BIOS).
Оптическая передача POST-кодов
Итак, обратимся к документации на чипсет 8-й серии от Intel, где можно почерпнуть сведения о схемотехнике оптодиагностики.
Рис 1. Схема включения светодиода
Схема проста – светодиод LED через резистор R питается от источника дежурного напряжения +3.3V Standby. К точке соединения светодиода и резистора подключены сигнальные цепи микросхем PCH (Platform Control Hub или южный мост) и Super I/O. Если эти цепи выключены (находятся в Z-состоянии), то на светодиод подается напряжение, и он горит. Если любое из двух указанных устройств выдает логический «ноль» в сигнальную цепь, светодиод оказывается зашунтированным и гаснет. Чередуя «ноль» и Z-состояние с заданной частотой можно генерировать импульсные последовательности, пригодные для восприятия внешним фотоприемником. Нагрузочная способность интерфейсных цепей, необходимая для устойчивой работы – 24 mA. Очевидно, ограничения скорости передачи данных, связанные с инерционностью излучателя и фотоприемника – 1 переключение в микросекунду, – не являются препятствием для передачи диагностической информации.
Рис 2. Передача данных с использованием манчестерского кода
Для управления светодиодом используются сигналы GPIO (General Purpose Input-Output) позволяющие реализовывать программно-читаемые входные линии или выходные линии с программно-управляемым состоянием. Как следует из названия, их назначение не детерминируется при разработке микросхем PCH и Super I/O, а определяется разработчиком платформы.
Использование сигналов GPIO требует некоторой осторожности при реализации процедур firmware, управляющих этими сигналами. Так, например, в рассматриваемой схеме, выдача логической «единицы» на светодиод одним из агентов (PCH или SIO) может привести к прохождению через светодиод повышенного тока. А одновременная выдача логического «нуля» со стороны PCH и «единицы» со стороны SIO (или наоборот) может привести к короткому замыканию цепей питания на общий провод через выходные транзисторы рассматриваемых агентов.
Для управления передачей данных в микросхеме PCH предусмотрен ряд программно-доступных регистров. Основной из которых – General Purpose Serial Blink Command Status Register.
Рис 2. Назначение битовых полей в регистре General Purpose Serial Blink Command Status Register
Резюме
Решения, предназначенные для безболезненного преодоления переходного периода, по определению не могут быть идеальными. Но мы посчитали, что одно из них все же заслуживает детального рассмотрения, во-первых, в силу своей необычности, а во-вторых, инициатива исходит от самой корпорации Intel и впервые упомянута в документации на чипсет 5-й серии. Это дает временному решению шансы стать постоянным долговременным. Правда, пока неясно, как будет реализована опто-диагностика на мобильных платформах. Как всегда, ноутбуки в зоне риска :)
Желающим проверить собственную платформу на предмет оптической выдачи POST кодов, не обязательно конструировать фотоприемник. Начать можно с подключения логического пробника к коммутируемой точке цепи питания светодиода Power Led.