Здравствуйте.
Возникла необходимость разобраться в принципах работы Embedded Controller'а (EC) встроенного в ноутбук Dell Latitude E5500. Модель EC: SMSC MEC5035-NU.
Из BIOS ноутбука была выдрана прошивка этого контроллера. Судя по всему, это код под 8051-й МП.
Даташиты или другую полезную информацию об этом контроллере найти не удалось, из за этого разобраться в его прошивке с помощью дизассемблера очень сложно. Кто-нибудь работал с этим контроллером?
С учетом деструктивной деятельности автора (hvmetal) удалил его авторство в данной теме и восстановил сообщения.
maco
на схеме хоть распиновка имеется да порты обозначены, все больше чем ничего
1) порт данных (EC_DATA) [R/W];
2) порт состояния [R] и управления [W] (EC_SC).
В моём случае это 0x930 и 0x934, соответственно (следует отметить, что, чаще всего, это порты 0x62 и 0x66).
Этот интерфейс присутствует во всех ACPI-совместимых встроенных контроллерах и используется для доступа к 256-Байтовому внутреннему адресному пространству EC, которое представляет собой набор неких регистров (часть которых тоже описана в спецификации на ACPI EC, однако, их состав всегда специфичен для каждого производителя ноутбука (и даже модели)).
Применительно к моему случаю, мне удалось понять назначение некоторых из них - это отображение различных характеристик аккумуляторной батареи (например, текущее и максимальное напряжение, ток, ёмкость, оставшийся заряд в процентах, идентификатор производителя и т.п.) считываемые EC'ом с самой батареи по шине SMBus.
Я хочу разобрать код (прошивку) этого EC и понять (а может и модифицировать) назначение остальных регистров в адресном пространстве EC. Именно прошивка EC отвечает за взаимодействие с процессором (хостом) через порты ввода-вывода.
Если говорить про схему, то ситуация, скорее всего, похожа на такую:
http://doubleclickittofixit.com/img/notebook_schematics/Compaq_HP/DVx-xxxx/DV7%20LA-4042P%20ICH9m.pdf
В моём ноутбуке тоже MEC5035 в роли EC, тоже ECE1077 в роли KBC, тоже MEC5028 в роли SIO и тоже ICH9M. Схему для своего ноутбука найти не удалось, поэтому пришлось разбирать ноутбук, чтобы увидеть это.
Всмысле сконвертить?
Код я загонял в дизассемблер IDA в режиме 8051. Проблема в том, что без даташита на эту модель EC (описывающую его внутреннюю архитектуру, регистры и т.п.) очень сложно разбирать этот код.
Это просто мое любопытство, и ничего более, ибо я эти контроллеры вижу только с точки зрения:
сдох -> сменил на новый -> все работает, все счастливы. Специфика работы такая.
а вот ето удивило ... "Из BIOS ноутбука была выдрана прошивка этого контроллера"
... и давно в БИОС FW для ЕС пихать начали?? я что то пропустил??
Простой пример - KB926 - http://mobrepair.ru/files/Literature/Datasheets/KB926D-ds-11.pdf