Уважаемые Ромовцы! Прошу у вас помощи. Описываю по порядку.
Был приобретен SATARAID PCI контроллер для подключения SATA винта на старую мать. Но при подключении именно того винта, с которым предполагалось его (контроллер) использовать (Samsung HD160JJ), выяснилось, что винт под виндой не определяется. При загрузке BIOS-а контроллера (при старте), он отображается, также он показывается в утилите RAID загрузчика. Но так как RAID не был нужен, то надо было что-то делать. При подключении других винтов (и 300-гигового самсунга и 80-гигового вестерна) все было ОК - винты находились и подключались.
Было решено обновить прошивку контроллера. Но. Из-под винды штатными средствами сие не удалось. Во вкладке свойств контроллера все было сереньким и, соответственно никаких доступных устройств не отображалось. Так же и стандартный прошивальщик силикон имидж (чип контроллера - SiI 3512) SiFlashTool не находил доступых для прошивки устройств.
Пошел в Дос. Скачал последний доступный Биос (4.3.84) и прошивальщик (updflash) с сайта силикона. Выбрал для начала RAID-версию биоса, так как плата изначально была RAID (кстати версия биоса была 4.3.534, на сайте такой вообще не обнаружилось, были младше, были старше, но такой не было):
updflash r4384.bin -a -d
Нашлось устроство 3512, в меню выбрал наиболее подходящий тип флэшки SST 39VF040 (4 Mbit compatible). На плате стоит SST 39VF512. Поехали. Приехали. Зашилось до адреса 10000h, дальше посыпались ошибки. Сама прошивка 131072 байта. В общем Loading BIOS failed, Code=1. Перегружаюсь - при загрузке после БИОСа матери отображается загрузчик контроллера, вместо надписи "...SATARAID BIOS..." появилось "...SATALink...", опять отобразился подключенный винт Samsunf HD160JJ. Далее все грузилось, винда проглотила драйвера нон-рейд, но диск опять не увиделся, но оно понятно, если прошилась только часть биоса.
Решено было попробовать зашить uniflash.
uniflash -pcirom
Нашлось устройство 3512, правильно определилась флешка, но шить отказалось из-за несовпадения размеров прошивки и флешки, попробовал запустить
uniflash -E r4384.bin -pcirom
При прошивке запищало и выдало ошибку, после этого при загрузке компа, при переходе на загрузчик контроллера моргающий курсор и все, далее не грузится ничего. В БИОСЕ отключал загрузку с других устройств, не помогло.
Что теперь можно сделать?
Попутно вопросы.
1. Как можно было привести в сответствие размеры прошивки и флешки? Тупо добив нулями (или эф-эфами?) до 512 кбайт (на форуме здесь вычитал)? Или надо в середину вбивать эф-эфы?
2. Как теперь грузануть дискету, ведь поломанный загрузчик контроллера не даёт дойти до неё?
На ум приходят варианты один тупее другого. Или нагорячуюю воткнуть плату после старта дискеты. Но тогда можно (наверное) или мать спалить, или плату. Или как то размыкать линию питания на плату контроллера? Или как то флешку обесточить на этапе загрузки системы? Размыканием какой-либо её ножки, хотя это уже точно отрежет мне путь к возвращению контроллера по гарантии, что нежелательно. Еще приходит на ум интеграции биоса контроллера с биосом матери, но это уже совсем не хочется, проще тогда отнести контроллер по гарантии или вообще выкинуть.
Заранее спасибо и извините, если это уже обсуждалось, вроде перечел много, но определенности не нашел...
Мораль - когда руки не чешутся, надо думать головой. Когда руки чешутся - тем более надо думать головой :)
По поводу родной рпошивки - попробуйте написать в техподдержку. Сначала на нашем сайте, а если не ответят, то на глобальный на английском.
Коротить лучше всего линие данных в случае параллельной флэшки.
[off]Из 128кб сделать 64 можно - несоклько лет изучения низкоуровневого программирования, железа и много чего еще, потом годик-другой дизассемблирования полного, потом смотрение, что выкинуть можно, потом компиляция, и вуаля :) Вообще сомтреть надо, что в тех 128кб, что вы скачали :)[/off]
Так, значит, коротить ВСЕ линии данных? Между собой понятно, а больше никуда? На землю там или на питание? Ну, там чтобы как воспринимались байтики лучше - как 0 или как FF, чтобы опять не повесить загрузку... Доку на флешку завтра гляну на работе, у меня там коллега - электронщик.
И еще, исходя из того, что, в принципе плата нужна мне только как САТА-контроллер (или если не удастся найти прошивку, и при условии, что контроллер будет работать из-под винды как не-рейд без прошитого биоса), какие могут быть действия, которые бы были эквивалентны выпайке флешки (чтоб гарантию не терять) - обнуление не пойдет?
The UpdBios.exe DOS utility can be used to create BIOS binary code for add-on card from the motherboard BIOS binary code. The correct signature will be created and saved in the output BIOS binary code based on user inputs.Что-то я не смог найти на силиконе этой утилиты :-(
Только вот судя по описанию, не мой случай - она же выдирает код САТА-контроллера из биоса матери, а он у меня уже как бы выдран :-)
не совсем. Она делает из _модуля_ для системного БИОСа файл для зашивки в отдельный контроллер. Обратите внимание, что в архиве с силикона есть три прошивки:
- рейдовая SATARAID для отдельных контроллеров (rxxxx.bin)
- SATALink (без ф-ций RAID) для отдельных контроллеров (bxxxx.bin)
- модуль для интеграции в БИОС мамки (xxxx.bin).
PS: разницы по идее между 3112 и 3512 не так много...
Спасибо за файлы
В общем, новости с работы. Есть хорошие, есть плохие :-)
Хорошие - другая материнка (865PE чипсет, Asus P4P800SE, с набортным контроллером) проглотила контроллер, я обнулил флешку на нем updflash-ем, под виндой теперь он видится как SATALink Controller, все работает, проверил на нем еще один САТА диск - Seagate 7200.10, на нем даже и джампера нет, скорость обмена раза в два выше, чем если бы его подключить к набортному САТА-контроллеру.
Плохие - Samsung HD160JJ так и не желает работать с контроллером, еще раз подключил его к набортному, проверил, работает. Пробовал выставлять САТА 1 на нем утилитой от самсунга estool, пробовал hutil (тоже самсовая, кажется более ранняя, чем estool) ставить даже UDMA66, и UDMA100, и UDMA133. Ни. че. го. Что за брэд с этим диском... Фактически же контроллер был куплен из-за него...
Выставлять надо подключив к контроллеру, с которым винт нормально работает. ОРпишите подробно, что делали.