Нестандартное использование BOOTROM сетевых карт.


    На многих сетевых картах имеется панель для установки микросхемы ПЗУ удаленной загрузки (BOOTROM). Для функционирования самой карты данная микросхема не имеет никакого значения, и используется как носитель специальной программы для загрузки компьютера (например, бездисковой станции) с использованием локальной сети.
    Работает это следующим образом – после включения компьютера, сначала получает управление программа, прошитая в основном ПЗУ (Main BIOS) материнской платы, выполняющая тестирование и инициализацию оборудования компьютера. Однако на определенном этапе ее выполнения, производится поиск так называемых расширений BIOS (Extended BIOS), в качестве которых могут быть прошивки микросхем постоянных запоминающих устройств (ПЗУ) видеоадаптеров, контроллеров жестких дисков, микросхем BOOTROM сетевых карт и т.п. Такие прошивки располагаются в определенном адресном пространстве (например, BIOS видеоадаптера находится по адресу C000:0000) и всегда в первых 2-х байтах имеют специальный код - сигнатуру 55AA. Найдя такое расширение, основная программа передает управление программе, прошитой в дополнительном ПЗУ. Таким образом, в процессе выполнения основной программы, прошитой в Main BIOS (называемой POST - Power On Self Test) выполняются и дополнительные подпрограммы, прошитые в ПЗУ расширений BIOS, выполняющих, как правило тестирование и инициализацию контроллеров, не поддерживаемых основным BIOS. Таким образом, можно исполнить любую, специальным образом оформленную подпрограмму, записанную в ПЗУ и опознаваемую в качестве расширения BIOS.
В природе существуют контроллеры SCSI-дисков без BIOS (without BIOS). Загрузиться с диска, подключенного к такому контроллеру невозможно, хотя, после загрузки ОС с диска, подключенного к контроллеру, имеющему BIOS (with BIOS) или поддерживаемому BIOS’ом материнской платы, можно получить доступ к дискам через драйвер производителя. Это разумно, если у вас несколько контроллеров. Однако, использовать контроллер without BIOS в одиночку не получится. И тут на выручку приходит обычная сетевая карта с BOOTROM. Вместо нужной для удаленной загрузки прошивки, используете прошивку для аналогичного дискового контроллера с BIOS. Большинство контроллеров имеют варианты исполнения с BIOS и без него. Информацию о типах контроллеров и бинарные файлы для прошивок можно найти на сайте производителя оборудования. Например, есть контроллер Tecram DC-315 без BIOS и есть его вариант с BIOS (Tecram DC-395, точно не помню). Скачиваете с сайта производителя прошивку для DC-395, записываете ее в ПЗУ, а ПЗУ устанавливаете в панельку сетевой карты. Для некоторых сетевых карт надо еще установить с помощью специальной утилиты режим “ENABLE BOOTROM” и, возможно, адрес сегмента памяти для кода прошивки. Теперь вместо программы удаленной загрузки будет работать BIOS дискового контроллера.
    Можно также создать программатор Flash-памяти, если раздобыть сетевую карту с возможность программирования BOOTROM, как это делается на современных материнских платах.
    Используя данный подход, можно заменить неудачно прошитую или неисправную микросхему расширения BIOS. В этом случае важно обеспечить кроме всего прочего еще и недоступность сбойной прошивки. Подобный подход использовался для ремонта SCSI контроллера с недоступным BIOS, содержимое которого было прошито вместо содержимого BOOTROM сетевой карты.








В начало страницы | На главную страницу


Hosted by uCoz