Дизассемблирование EC BIOS

Здравствуйте.
Возникла необходимость разобраться в принципах работы Embedded Controller'а (EC) встроенного в ноутбук Dell Latitude E5500. Модель EC: SMSC MEC5035-NU.

Из BIOS ноутбука была выдрана прошивка этого контроллера. Судя по всему, это код под 8051-й МП.
Даташиты или другую полезную информацию об этом контроллере найти не удалось, из за этого разобраться в его прошивке с помощью дизассемблера очень сложно. Кто-нибудь работал с этим контроллером?


С учетом деструктивной деятельности автора (hvmetal) удалил его авторство в данной теме и восстановил сообщения.


maco

Если данная информация оказалась полезной/интересной - плюсаните, пожалуйста:

Вот сама прошивка

ВложениеРазмер
e5500a17_kbc.rar 63.56 КБ

С документацией напряженка. Может, если подойти к этому вопросу со стороны схемы на платформу, легче будет?

Меня интересует специфика программного интерфейса этого EC, предоставляемого через специальные порты ввода-вывода. Схема тут не поможет, к сожалению.

вы бы хоть интересующие вас "специальные порты" озвучили да задачу обрисовали
на схеме хоть распиновка имеется да порты обозначены, все больше чем ничего

Аватар пользователя STRAIDER

Могу попробовать сконвертить в язык Ассемблера... Вы в нём разберётесь?

Я вам помог и вы хотите поблагодарить? BitCoin адрес: 15eE9G1eECrrRcFxtcGu57pg48nwjHzNmC

Я тролль, лжец и девственник, а ещё мне 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

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
  • Разрешённые HTML-теги: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <img>
  • You can use BBCode tags in the text. URLs will automatically be converted to links.

Подробнее о форматировании текста

Антибот - введите цифру.
Ленты новостей