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