В этом посте продолжение разбора микропрограммы жесткого диска WD21000. Этот жесткий диск выбран для демонстрации повторения платы электроники на современной элементной базе. Чтобы это сделать нужно подробнейшим образом разобрать его программу управления в дизассемблере IDA. Так что продолжаем разбор программ. В прошлый раз мы смотрели команду 0xEC. Вот она: И сейчас интересно вот что посмотреть… У жесткого диска есть микросхема… Read more »
Комментарии к видео: https://youtu.be/mZe_tzGsqeU Рассохся диск?! Это как? Стекло-металло-керамика? Изменилась геометрия начались промахи… там же соленоид стоит, который следит за дорожкой. Он то как может начать промахиваться? Дело в том, что в магнитной головке расстояние между элементами чтения и записи измеряется на заводе после сборки и считается константой. Из-за того, что головка перемещается по дуге изменение взаимного расположения центров диска… Read more »
Итак, новости проекта. Вначале по закупкам и розыскам материалов. 1) Пришел генератор на 100 МГЦ и диоды из «чип и дип» — можно запустить АЦП AD6645. Параллельно нашел, что генератор на 106 МГц можно выпаять из старых Fibre Channel дисков. 2) Раздобыл еще 3 диска из того же семейства, что и изначальный WD21000. Вот какие диски и версии ПЗУ сейчас… Read more »
А вот и потерявшаяся часть 8, которая идет после 9-ой! В нашем распоряжении имеется документация от микросхемы AD7775, но в исследуемом нами диске установлена ADSC900JR с виду очень напоминающая первую. Есть ли между ними схожие функции и отличающиеся? Давайте разбираться.
В этой серии при помощи дизассемблера IDA Pro и плагина процессора i80C196NU находим заводскую технологическую команду перезагрузки диска и тестируем ее работу при помощи PC-3000 в режиме ATA commander. Предыдущий пост серии.
В предыдущих частях мы начали дизассемблирование на основе только документации к процессору. Однако, хорошо бы посмотреть как программа управления связана с остальной аппаратурой. Для этого вооружимся тестером с пищалкой, платой WD21000, документацией на микросхемы и начнем рисовать схему электрических соединений. Так как в данном исследовании мне хотелось бы по максимуму использовать операционную систему Linux, то рисовать схему будем в KiCad…. Read more »
Обмен данными с жестким диском производится через интерфейс IDE, SATA (или какой-либо другой) при помощи стандартизированных команд. Чтобы прочитать данные с диска достаточно использовать всего две команды: идентификации и, собственно, чтения. Первая нужна для получения размера диска и определения типа команды чтения, которая будет работать со всей поверхностью диска. Если помните, то за историю своего существования жесткие диски преодолевали целый… Read more »
Итак, приступим к самому магическому действу, а именно, исследованию прошивки нашего подопытного накопителя. Для этого будем использовать IDA disassembler. Запускаем сей продукт, выбираем «открыть файл» и указываем файл считанный из ПЗУ(см. часть 3 данного опуса). Далее появляется вот такое окно: Изменяем тип процессора на «Intel 80196NP». Хотя на нашей плате стоит версия NU, однако, с точки зрения разбора кода программы… Read more »
Перед тем как переходить к детальному разбору конструкции и программы управления жесткого диска WD AC21000 добавим к проекту всю имеющуюся документацию на микросхемы. Файлы загружены на GitHub: https://github.com/rlabru/WD21000/tree/master/doc Файлы имеющие префикс «t_» — это попытки перевести документацию на русский язык.