Автор: Unknown BIOS (не проверено) , 29 июня 2006
Здравствуйте!

Хочу поколупать bios GF6800, что-то не находится описание структуры начального участка, вернее, есть расхождения в найденных материалах. Ну там 55АА, размер, контр. сумма и т.п. Не понятно, откуда стартовать. Кто знает, направьте по истинному пути.
Содержимое данного поля является приватным и не предназначено для показа.

BBCode

  • HTML-теги не обрабатываются и показываются как обычный текст
  • You may use the following BBCode tags:
    • [align]
    • [b]
    • [code]
    • [color]
    • [font]
    • [hr]
    • [i]
    • [img]
    • [list]
    • [quote]
    • [s]
    • [size]
    • [spoiler]
    • [sub]
    • [sup]
    • [table]
    • [u]
    • [url]
  • Адреса веб-страниц и email-адреса преобразовываются в ссылки автоматически.

savely

19 лет 7 месяцев назад

1-ая точка +3 от начала.
2-ая по +20h смотришь слово смещения PnP заголовка, по этому смещению д.б. сигнатура $PnP, дальше
[code:1]
DB '$PnP' ;SIGNATURE
DB 01H ;STRUCTURE VERSION
DB 02H ;LENGTH OF HEADER IN PARS
DW 0 ;OFFSET TO NEXT HEADER
DB 0 ;RESERVED
DB 0 ;+CHECKSUM
DW PCI_VID ;DEVICE ID
DW PCI_DID
DW xxx1 ;MANUFACT NAME
DW xxx2 ;PRODUCT NAME
DB 0FFH ;+DEVICE TYPE CODE (BASE)
DB 0 ;+SUBTYPE
DB 0 ;+SUBSUBTYPE
DB 40H ;+DEVICE INDICATORS (SHADOWED+IPL)
DW InitCode ;+BOOT CONNECTION VECTOR
DW 0 ;DISCONNECT VECTOR
DW 0 ;BOOTSTRAP ENTRY POINT
DW 0 ;RESERVED
DW 0 ;RESOURCE INFO VECTOR
[/code:1]

Смотришь смещения
DW InitCode ;+BOOT CONNECTION VECTOR
DW 0 ;BOOTSTRAP ENTRY POINT

Это еще 2 точки входа. Могут быть равны тому, что по +3, BOOTSTRAP ENTRY POINT может не быть.

Конечно
DEVICE TYPE CODE (BASE) и DEVICE INDICATORS будут другими.

yoric

19 лет 7 месяцев назад

Спасибо, попробую... А это вообще откуда, в смысле, с какого БИОСа/устройства? Может, есть какие конкретные ссылки по теме?

savely

19 лет 7 месяцев назад

C моего :wink: Конкретика заменена xxxx
По теме - спецификации PCI и PnP BIOS (pci21.pdf и pnpbios.rtf в поиске)

yoric

19 лет 7 месяцев назад

Нашёл, углубляюсь, спасибо

Root

19 лет 7 месяцев назад

исходные коды вибеобиоса для GeForce 2? никто не отменял...
http://riva.ixbt.com/soft/bios/nv15_bios_sources.zip [2.3MB]

yoric

19 лет 7 месяцев назад

1-ая точка +3 от начала.
2-ая по +20h смотришь слово смещения PnP заголовка, по этому смещению д.б. сигнатура $PnP


А у меня PCIR, и в этих "pci21.pdf и pnpbios.rtf" расхождения, и смещение на PnP заголовок у меня по 18h. Или мелочи, смело шагать? В общем, трудности с определением формата... Кстати, FreeIDA pro может динамически переключаться с 16-и на 32-х разрядный код? Или какой дизассемблер посоветуете?

savely

19 лет 7 месяцев назад

А у меня PCIR ... и смещение на PnP заголовок у меня по 18h


Ну, по +18h - смещение на PCIR (это PCI-заголовок), верно.
И я 2 раза ступил
1. За 18h идет 1Ah, а не 20h :-))
2. В видеокарточных BIOS вроде как нет PnP-заголовка

Так что стартуй ровненько с +3 от начала.

P.S. Ты исходники-то, что Root дал - скачал? По ним и смотри.

По IDA - вроде нет. Ты, конечно, можешь переделать сегменты в 32 бита, но это равносильно просто перегрузить файл. Другой я не посоветую...

yoric

19 лет 7 месяцев назад

Root> исходные коды вибеобиоса для GeForce 2
savely_s> Ты исходники-то, что Root дал - скачал?

Скачал, но что это за GeForce 2? Применимо ли к gf6800 nv40? Есть там упоминания про nv10, nv15 etc. Про общие принципы понятно...

savely_s> За 18h идет 1Ah, а не 20h

Хе-хе, опять ошибка, за 18h идет 19h, и лишь потом... :mrgreen:

savely_s> По IDA - вроде нет. Ты, конечно, можешь переделать сегменты в 32 бита, но это равносильно просто перегрузить файл.

А как же живут люди, если в процессе отработки биос-кода проц скачет 16-32 бит и назад?