Есть: мамка PCA-6178, на ней имеется аппаратный Watchdog timer (если в течении определённого времени в определённый порт не запишется некое значение, то комп ресетится).
Цель: включить этот самый Watchdog timer до попытки загрузки ОС.
Предполагаю дополнить код BIOS, но даже незнаю с какой стороны подойти, как найти последние инструкции выполняемые BIOS-ом перед тем как передать управление загрузчику?... Нашёл код, который грузит в 0000:7C00 первый сектор с дисков, но у меня загрузка происходит но сети
Есть кто нибуть, кто такое уже делал? или может кто-то поможет дельным советом?
BIOS AWARV v4.51 (2A69KAKG)
Тут бы тебе реально смог бы помочь создатель ... но он в последнее время не часто нас жалует своим присутствием.
скорее всего один сторожевой порт отключить не удастся - он ведь часть ACPI, да и винда его возможно опять сама найдет и включит - ищите даташиты на сей девайс...расположен в суперио...
Про винду можно не беспокоиться. На этой машине крутится собственно написаная ОС. А мне необходимо до загрузки ОС выполнить комманды по запуску Watchdog.
Который встроен в генератор? Тогда найдите даташит на оный и программите на здоровье...
п.с. и нафиг он вас сдался???
Чувствую нужно разложить всё по полочкам (чтоб все поняли и прониклись проблемой
Есть стойка из N компьютеров такого типа (без дисков). Каждый комп в сети. Сеть этих компьютеров объединяется с другой сетью через радиолинк. В удалённой сети есть сервер с которого N компьютеров загружают ОС (по сети).
Я пытаюсь решить проблему следующего плана: если какомуто из N-компьютеров требуется перегрузиться (а такое бывает часто) и если на какоето время нет радиолинка (сервер не доступен), то компьютер в итоге напишит "Press any key" и будет ждать вмешательство оператора...
Так вот зачем мне здался этот Watchdog - чтобы комп автоматически уходил в ребут по истечении заданного времени.
Программировать Watchdog очень просто:
out 0443h,значение, где (значение) есть время в секундах до ресета.
in reg,0443h - выключает watchdog.
Мне нужно вставить код активизации Watchdog до того как комп поппытается загрузить ОС по сетке! Вот.
Или скажу по другому - мне нужно найти в биосе где он закончил POST и пытается определить (исходя из настроек) с чего грузить ОС (Fdd,HDD,CD-ROM,LAN,...).
Заранее спасибо.
напишите на асме модулек расширения биос с данным кодом и приклейте его сибиромом.
модуль должен располагаться в памяти в адресах с C0000h по EFFFFh на 2-х килобайтной границе.
в начале расширения биос стоит слово $AA55, после которого идет jmp на точку входа
Я понял! Но вот вопрос - а куда потом передать управление? или чем завершить код (не RETF случайно)?
вы необычайно догадливы
изучите все тонкости на примере дизассемблирования сходного модулька из биоса
вы необычайно догадливы
изучите все тонкости на примере дизассемблирования сходного модулька из биоса
Спасибо!
Прикрепил cbrom-ом свой кусочек кода со всеми (кажется) премудростями. cbrom /D - показывает что код упаковал, но просматривая образ биоса, обнаружил, что упакован он с не с сигнатурой lh5, а LH0...
В итоге - не работает и в памяти моего куска нету
PS: Там нет никаких контрольных сумм, проверки и т.д?
PS2: Танцы с бубном по замене LH0 на LH5 + update file MODBIN-ом желаемого результата не дают.
...как я уже запарился флешки перетыкать что бы эксперементальную машину восстанавливать... :twisted:
lh0 - это другой метод упаковки - по идее биос должен понимать lh5 и lh0 - можно попробоватб упаковать lha и модифицировать заголовок под нужный для биос
lh0 - это вроде store? нафигачьте пустого места чтоб было что жать
по поводу модулька - вот есть статейка - почитайте - может чего полезного почерпнете
geocities.com/mamanzip/Articles/Bios_Tricks.txt
Отправить комментарий