Есть SCSI контроллер BusLogic FlashPoint LW (чипсет BA81C15) на ней флешка AT29C256
Решил заменить флешку на AT29C512 (место под установку предусмотрено) чтобы прошить BIOS 64Kб и избавиться от необходимости использовать дискету для входа в настройки контроллера.
Впаял отсутствующюю перемычку на линию A15
Запустил утилиту FPCONFIG.exe которой можно указать размер биоса 32кб или 64кб
Она прописала в EEPROM по адресу 2Bh значение 81h
Выдержка из даташита на BA81C15
The BIOS Size Register is one bit (bit 7), of Word Address Ox2B. FlashPoint currently
requests a 32K ROM space and in the future, we may need to request 64K. If the
byte in the SEEPROM contains OxOO, then ROM address bit 15 is writable and PCI
Configuration will assign 32K. If the SEEPROM contains Ox8X, then bit 15 of the
ROM address is not writable and PCI Configuration will assign 64K. The values of
the SEEPROM register will not affect bit 2 of the Feature Ctrl (Reg. Ox29) BIOS
SHADOW (0 = 32K, 1 = 64K), but in the case of 64K it will have no effect.
И все равно программы (icdiag, uniflash) показывают что BIOS размером 32Кб
Если считать эти 32Кб, то это будут вторые 32Кб BIOS'а первые 32Кб куда-то пропадают
Может знающие люди скажут куда еще копнуть?
Обновлено:
Добавил PDF на BA81C15 и фото платы. Может на какие мысли наведет.
Фото
Вложение | Размер |
---|---|
ba81c15.pdf | 6.15 МБ |
Так, ну если я правильно прочитал номер ревизии
выдало 0Fh
Интегрировать можно было бы, но она периодически мигрирует от компа к компу
Может штатный прошивальщик, каким-то специфическим образом прошивку по флешке раскидывает?(Поковырялся в отладчике, исключил)Нашел тут что-то вроде Q&A
Проверил первый пункт:
На материнке где проверяю как раз чипсет VIA (VT82C694X)
Взял материнку с nForce 430, все аналогично как и на VIA
Проверил второй пункт:
У меня же тоже выдает "bios size invalid"
Залил прошивку 2.02O (64кб), все без изменений
Проверено на VIA и nForce
Видимо проблема все же железная, а не программная.
Походу надо забить и пользоваться тем что есть. Думал дело на 5 минут, выпаять старую, впаять новую и все.
А уже вторая неделя пошла
Вот как выглядит карта памяти на VIA
У Вас есть осциллограф, чтобы проверить есть ли фактическое изменение логического уровня на
ROM_AD15 микросхемы?
Осциллографа к сожалению нет
Если нет осциллографа, можно какой-нибудь триггер ловушку соорудить, для обнаружения факта
логического перепада при инициализации(отработке boot-ROM). Проверить и 0->1 и 1->0
А что нам это даст?
Варианты:
- ROM_AD15 не дергается. Вывод N1 - виноват BA81C15?
- ROM_AD15 дергается. Но в комп попадают 0xFF. Вывод N2 - виноват BA81C15?
Интересно, как создать условия для 1->0?
Так нету отработки-то. Не запускает основной BIOS этот, ибо CRC не сходится.
Есть только чтение флешки через ROM-BAR, насколько я понимаю.
А кому счас легко...
Ну по крайней мере при подсчете контрольной суммы обращение должно быть,
иначе как основной BIOS "узнает" что option-ROM corrupted?
А таки да, проблема вероятно железная и как Вы писали, наиболее реальный способ решения
проблемы - "ужимание" нового BIOS до 32Kb , если это возможно.
На сколько я понял BIOS контроллера запускается, но не находит нужных данных и выходит с ошибкой
Была мысль, но даже 7zip до 47кб сжал, там походу уже пожатые данные
А, ну да. Main BIOS часто грешат непроверкой CRC.
При инициализации пишет "'ERROR: BIOS SIZE INVALID. PRESS ANY KEY TO CONTINUE", да?
Ну, проверяет сигнатуру 0xAA55 по cs:word_8CDB (т.е. за 32К, ее там нет, вот и пишет).
Т.е. до уровня функционала образа в 32K его можно попатчить, похоже, но смысл? При нажатии Ctrl-B код идет за 0x8000, а там будет пусто.
А кому счас легко...
Я имел ввиду дизассемблирование новой прошивки и ее оптимизацию с целью
уменьшения размера.
В принципе можно попробовать вообще удалить BIOS с контроллера и интегрировать его
в motherboard BIOS. Но тогда это будет работать только на той материнке, BIOS которой имеет
интегрированный модуль.
Баян!
А кому счас легко...
Отправить комментарий