Порезать BIOS контроллера Sil3114

Столкнулся с проблемой - контроллер "PCI Match Tech FG SA-3114 SATA150 4ports Raid" блокирует загрузку с IDE HDD на Asus P4GE-VM (чипсет i845GE, Award BIOS 256Mb v1014) с ошибкой "DISK BOOT FAILURE, INSERT SYSTEM DISK AND PRESS ENTER" в том случае, когда на нём висит SATA DVD-RW Optiarc (если дисковод отключить - всё будет нормально). Никакое перетыкание платы по слотам или перепрошивка BIOS проблему не решает.

Блокировки удалось избежать, когда я полностью стёр BIOS контроллера - в таком случае контроллер "Mass storage device" всё равно находится при включении и отображается в таблице POST. Но возникает другая проблема - Windows XP перестаёт опознавать тип контроллера, определяет его как неверно работающее устройство "SCSI/RAID mass storage controller" (названия примерно такие - пишу по памяти), это устройство у неё работает с ошибками, не использует ресурсов и установка драйвера не помогает.

Но завести контроллер мне всё же удалось. Когда я неверно прошил его BIOS, машина висла при выполнении POST и нужно было отключить выполнение BIOS контроллера. Я это сделал почти по рекомендации: rom.by/article/Iskusstvo_pereshivki_BIOS_Chast_sedmaja, но позабыл номера ног и замкнул 14 и 15 ноги - LPC DQ1 и DQ2 (rom.by/images/wiki/9/9a/LPC_FWH.gif). Причём размыкать их оказалось не обязательно - с замкнутыми ногами контроллер позволяет грузиться и работает нормально (с помещённой в BIOS рабочей прошивкой v5.5.0.0).

У меня вопрос - можно ли того же самого добиться более легальными методами? То есть - можно ли как-то порезать BIOS контроллера таким образом, чтобы там оставалась часть, необходимая для работы драйвера Windows XP, и в то же время - BIOS контроллера не исполнялась при загрузке системы? (Уж про загрузку с DVD я вообще молчу - хотя бы без неё работало).

AlexDem писал(-а):
но позабыл номера ног и замкнул 14 и 15 ноги - LPC DQ1 и DQ2
Слово "LPC" здесь лишнее:).
На вашем контроллере используется флешка с параллельным интерфейсом.

Можете попробовать убрать сигнатуру 0x55 0xAA в самом начале.

maco, спасибо - проверю чуть попозже, я и не надеялся на такой скорый ответ:)
Сейчас пока вынужден отложить эксперименты...

В даташите на контроллер описана структура, которая размещается в конце флешки, данные из которой контроллер использует в служебных целях (VID, PID и т.д.). Визулально в любом HEX-редакторе откройте прошивку увидите сначала заголовок (сигнатуру) - 2 байт, длину в 512-байтных секторах (или 256?, гуру поправьте) - 1 байт, далее сам код модуля, в конце (перед нулями или FF) - контрольная сумма, далее - блок 00 или FF, потом вот эта необходимая самому чипу структура. Пару месяцев назад ковырял прошивку на предмет принудительного включения кэша записи на сглючившем максторе, пришлось разобораться. ИМХО, структуру оставить - остальное занулить.

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

Соотв - 78h mul 512 = 61440 байт (до 0xF000) - то, что отображатется в адресное пространство как Addon BIOS. Его убрать. Или действительно просто попробовать занулить только первые 3-4 байта.
Далее там (я смотрю IDE-BIOS) 0xF000-0x10000 нечто типа кода - можно оставить, можно попробовать убрать.
потом 0xFF, а в последних 32-х байтах действительно явно просматривается VID/PID - их оставить.

А кому счас легко...

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

А какой VendorId/DeviceId показывает с закороченной микросхемой? Просто интересно. По идее можете феном снять пзу с платы. А RAID модуль вшить cbrom в bios матплаты, и потом прошить bios матплаты.

Дрессируем коров :)

ДШ здесь siliconimage.com/docs/SiI-DS-0103-D.pdf

Цитата:

Auto-Initialization
The SiI3114 supports an external flash and/or EEPROM device for BIOS extensions and user-defined PCI
configuration header data.
Auto-Initialization from Flash
The SiI3114 initiates the flash detection and configuration space loading sequence upon the release of
PCI_RST_N. It begins by reading the highest two addresses (7FFFFH and 7FFFEH), checking for the correct data
signature pattern — AAH and 55H, respectively. If the data signature pattern is correct, the SiI3114 continues to

sequence the address downward, reading a total of sixteen bytes. If the Data Signature is correct (55H at
7FFFCH), the last twelve bytes are loaded into the PCI Configuration Space registers.
Note: If both flash and EEPROM are installed, the PCI Configuration Space registers will be loaded with the
EEPROM’s data.

и ниже

Цитата:

This register defines the Device ID and Vendor ID associated with the SiI3114. The register bits are defined
below.
• Bit [31:16]: Device ID (R/W) – Device ID. This value in this bit field is determined by any one of three
options:
1) This field defaults to 0x3114 to identify the device as a Silicon Image SiI3114.
2) Loaded from an external memory device: If an external memory device — flash or EEPROM — is
present with the correct signature, the Device ID is loaded from that device after reset. See “Auto-
Initialization” section on page 22 for more information.
3) System programmable : If Bit 0 of the Configuration register (40H) is set, the bytes are system
programmable.

Я сегодня только занялся картой опять - победил с вашей помощью, теперь работает без перемычки, спасибо!:)

Больше всего мне помог ответ savely - при обнулении двух-четырёх первых байт (или заполнении их FF) система при загрузке виснет. А вот при заполнении FF всей области до 0xF000 - всё проходит нормально и драйвер ставится потом без проблем.

(Ответ на вопрос про перемычку: Пока стояла перемычка модель определялась как нужно - а то бы драйвер не поставился).

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

Содержание этого поля является приватным и не предназначено к показу.
  • Разрешённые 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.

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

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