При копании в гигабайтовских трупиках с таким мостом обнаружились десяток экземпляров естественно с выбитым USB, но где ЮМ греется не слишком сильно. Это меня натолкнуло на мысль, а можно ли разобрав биос, пропустить этот код 25 и продолжить инициализацию всего остального?
Переместил в Редактирование BIOS'а.
2008/04/05 maco
Хотелось бы поднять материнку (с кодом 25), хоть и без USB, и использовать как проверочную под сокет478. Скажем процы проверять. В моем небогатом арсенале диагностического оборудования до сих пор нет тестовой матплаты под сокет 478. Если такой патч будет, то многоим людям он немало поможет...
С уважением, Владимир.
Если Вы внимательно читали предыдущее сообщение, то кроме 25-го кода найдется еще несколько точек, где есть манипуляции с USB.
Это идея хороша для i386...
.
С нетерпением ждем результатов :)
Не бут-блок... Это точно...
А как приблизительно выглядит код при инициализации на пост 25?
Тк устройств опрашивать предстоит много чтото типа
CALL иниц. PCI устройства 0
JMP по какому-то флагу на останов
CALL иниц. PCI устройства 1
...............?
2 applerom:
да, я имел ввиду пропускать не весь 25, а просто скажем позаменять условные переходы (если такие имеются)
Читал внимательно, все зависит от пряморукости написания биос, идейно было-бы правильно со стороны биос - пропускать весь инит при usb задизабленном ;) Но скорее всего пряморукие писатели биоса смос не проверяют и придется ловить все записи по соответствующим портам, хуже но решаемо ;)
.
почему?
Это и останавливает, я для тестера памяти бут-блок ковырял, там все было-бы быстрее
Добавлено спустя 4 минуты 55 секунд:
IMHO Там скорее не jmp на останов, а бесконечное ожидание ответа от сгоревшего контроллера, или подвисон чипа при попытке его программмирования
Бутблок тоже давненько ковырял от SISа для сокет7... но до USB дело не доходило. Я мыслю так. Допустим инициализируется контроллер USB а далее читается(ются) байт(ы) состояния. Например должно быть FFFF, а в битом контроллере приходит с нулевыми битами (например FFFE или т.п.)... ну и соответственно прграмма поста далее стопорится. Какая ширина шины данных при этом - не знаю, пишу для примера...
Есть ещё идея. Закорачиваем одну (или несколько) ног D+ / D- на землю и пытаемся делать рестарт материнки. Код 25 появится или нет? Читал несколько постов на этом форуме, что если в разъеме USB коротит один из сигналов "D", то при старте материнки глюки могут быть самые разнообразные.... Проверить эту идею пока не могу т.к. нет под рукой рабочей материнки с ICH6/ICH7.
2 All: Если кто-нибудь из заинтересовавшихся проверит и напишет результат, буду очень признателен.
P.S. Кстати, лет 5 назад, тоже тестер памяти хотел сделать из рабочей материнки путём патчения БИОСА, чтобы выводил шину данных (на экран или в свой собственный технологический порт) при ошибке и по сигнатуре можно было бы искать битый чип... так и не дошли руки до этой идеи. У Вас что-то на этот счёт получилось?
С уважением, Владимир.
Ваша непосредственность просто шокирует. Как впрочем и активное, но беспредметное последующее обсуждение. Я в данной ситуации посоветую "курить сырцы".
А код выглядит приблизительно, а для платы KM400-M2 абсолютно точно, так:
[code:1]E000:2103 POST_25 proc near
E000:2103 push ds
E000:2104 push 0E000h
E000:2107 push offset Ret_addr
E000:210A push 0EC31h
E000:210D push Ct_Early_Shadow
E000:2110 jmp far ptr 0F000h:0EC30h
E000:2115 Ret_addr:
E000:2115 pop ds
E000:2116 clc
E000:2117 retn
E000:2117 POST_25 endp[/code:1]
А Вы чего ожидали? Линейного тривиального кода с комментариями? Такого нет и не предвидится...
apple_rom, думаю, такие патчи, хотя бы для распространённых вариантов типа P4p800, 8IPE1000 могли бы помочь разобраться в проблеме.