Автор: agapon , 14 сентября 2009
Дано: GA-MA780G-UD3H с функцией DualBIOS, не виртуальной, на плате реально две SPI flash схемы.
Почти случайно обнаружил комбинации Alt+F11, Alt+F12.
Поисследовал - похоже переключение между схемами производится через бит #0 (самый младший) регистра EFh логического устройства #7 Super I/O контроллера IT8718. Доступ к ROM осуществляется через SPI контроллер в этом же чипе (IT8718).
В документации, которую я смог найти, этот регистр не описан.
Может кто может помочь с более правильной/полной документацией? На самом чипе написано ITE IT8718F-S.
Если кому интересно дальнейшее исследование этой темы - давайте поисследуем вместе.
Сейчас я смотрю на стартовый код биоса и то как/когда он делает переключение между flash чипами.
Похоже, что можно форсировать такое переключение с помощью сигнала RI2 упомянутого Super I/O (pin 127).
Содержимое данного поля является приватным и не предназначено для показа.

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-адреса преобразовываются в ссылки автоматически.

николай (не проверено)

16 лет 5 месяцев назад

нужна программа которая бы редактировала дату биос на материнских платах GA-MA780G и аналогичных ей.

биос Award, но те программы, что выложены на этом сайте не помогают

bublik (не проверено)

16 лет 3 месяца назад

У меня плата GA-G31M-ES2L, конечно, процессор Intel, это не совсем в тему, но тоже dual bios с двумя SPI флэшами MX25L4005. Не знаю, как вы вышли на RI2. На моей плате CS 2-го биоса звонится с 97 ногой it8718, что просто озадачивает, потому что это же вход VIN1, просто вход АЦП. Т.е. должен идти еще куда-нибудь.

И каким образом может осуществляться доступ к флэшкам через it87, если доступ к основному биосу осуществляется через южный мост, причем SO,SI,CLK обеих запараллелены, а к it87 вообще не подключены? Или чипсет для AMD абсолютно по-другому устроен и мы говорим о совершенно разных вещах?

maco

16 лет 3 месяца назад

[off]
На моей плате CS 2-го биоса звонится с 97 ногой it8718, что просто озадачивает, потому что это же вход VIN1, просто вход АЦП.
Нумерация может быть смещена в случае заказа партии микросхем специально для конкретного производителя (Gigabyte как раз таким забавлялся - можете поискать по форуму информацию о Gigabyte и IT8712). Проверьте соответствие (или несоответствие) по выводам питания, земли, COM/LPT/floppy.[/off]

agapon

16 лет 3 месяца назад


Не знаю, как вы вышли на RI2.

Дизассемблированием кода (очень) ранней инициализации в БИОСе.


Или чипсет для AMD абсолютно по-другому устроен и мы говорим о совершенно разных вещах?

Мы говорим о совершенно разных платах.
На моей встроенный SPI контроллер SB700 не используется, доступ к БИОС адресам направляется в LPC и ловится SPI контроллером IT8718F-S.

maco

16 лет 3 месяца назад

[off]agapon
IMHO в таком случае стоит говорить не о RI2, а о GP66. Это исключительно терминологическая поправка.


bublik
Забыл указать в предыдущем сообщении - обычно Gigabyte в предоставляемой документации на матплату неплохо (в плане общей ориентации по связям между отдельными компонентами) показывает структурную схему.[/off]

Root

16 лет 3 месяца назад

не знаю откуда взялась ссылка на RI2. Реально все завязано на пины 97 и 61. Тоже GPIO. Но это для MA790X-DS4.
А сам выбор загрузочной флэшки делается с помощью strapping'а

maco

16 лет 3 месяца назад

[off]Root
...GB or not ...GB?[/off]

agapon

16 лет 3 месяца назад


не знаю откуда взялась ссылка на RI2. Реально все завязано на пины 97 и 61. Тоже GPIO. Но это для MA790X-DS4.
А сам выбор загрузочной флэшки делается с помощью strapping'а


Взялось от меня, для моей мат. платы (MA780G-UD3H), на основании нижеприведенного кода из БИОСа (комментарии и имена мои).
Возможно, что я неправильно его истолковал.
Буду рад услышать о вашем опыте более подробно.

F000:4C93 ; =============== S U B R O U T I N E ======================================= F000:4C93 F000:4C93 F000:4C93 sio_ri2_chk proc near ; CODE XREF: do_start+20j F000:4C93 shl esp, 10h F000:4C97 mov cx, 0A348h ; enable sio access at 0x2e F000:4C9A mov sp, 4CA0h ; pci 0:20:3 0x48 F000:4C9D jmp pci_cfg_readb F000:4C9D ; --------------------------------------------------------------------------- F000:4CA0 dw 4CA2h F000:4CA2 ; --------------------------------------------------------------------------- F000:4CA2 or al, 1 F000:4CA4 mov sp, 4CAAh F000:4CA7 jmp pci_cfg_writeb F000:4CA7 ; --------------------------------------------------------------------------- F000:4CAA dw 4CACh F000:4CAC ; --------------------------------------------------------------------------- F000:4CAC mov dx, 2Eh ; '.' ; sio config mode F000:4CAF mov al, 87h ; 'ç' F000:4CB1 out dx, al F000:4CB2 F000:4CB2 loc_F4CB2: F000:4CB2 mov al, 1 F000:4CB4 out dx, al F000:4CB5 mov al, 55h ; 'U' F000:4CB7 out dx, al F000:4CB8 mov al, 55h ; 'U' F000:4CBA out dx, al F000:4CBB mov cl, 4 ; select ldn 4 (EC) F000:4CBD mov dx, 2Eh ; '.' F000:4CC0 mov al, 7 F000:4CC2 out dx, al F000:4CC3 out 0EBh, al F000:4CC5 inc dx F000:4CC6 mov al, cl F000:4CC8 out dx, al F000:4CC9 out 0EBh, al F000:4CCB mov cl, 0F1h ; '±' ; ldn 4, reg F1 F000:4CCD mov al, cl F000:4CCF mov dx, 2Eh ; '.' F000:4CD2 out dx, al F000:4CD3 out 0EBh, al F000:4CD5 inc dx F000:4CD6 in al, dx F000:4CD7 out 0EBh, al F000:4CD9 test al, 4 ; check RI2 F000:4CDB jz short end_0 ; RI2 not set F000:4CDD otherwise switch to backup bios F000:4CDD mov cl, 7 ; select ldn 7 (GPIO) F000:4CDF mov dx, 2Eh ; '.' F000:4CE2 mov al, 7 F000:4CE4 out dx, al F000:4CE5 out 0EBh, al F000:4CE7 inc dx F000:4CE8 mov al, cl F000:4CEA out dx, al F000:4CEB out 0EBh, al F000:4CED mov cl, 0EFh ; 'n' ; 0xef register (undocumented) F000:4CEF mov al, cl F000:4CF1 mov dx, 2Eh ; '.' F000:4CF4 out dx, al F000:4CF5 out 0EBh, al F000:4CF7 inc dx F000:4CF8 in al, dx ; current value: 72h F000:4CF9 out 0EBh, al F000:4CFB test al, 1 ; if already backup bios, don't do anything F000:4CFD jnz short end_0 ; exit sio config F000:4CFF mov cl, 0EFh ; 'n' ; working with EF again F000:4D01 mov al, cl F000:4D03 mov dx, 2Eh ; '.' F000:4D06 out dx, al F000:4D07 out 0EBh, al F000:4D09 inc dx F000:4D0A in al, dx ; re-read F000:4D0B out 0EBh, al F000:4D0D or al, 1 ; switch to backup F000:4D0F mov ah, al F000:4D11 mov dx, 2Eh ; '.' F000:4D14 mov al, cl F000:4D16 out dx, al F000:4D17 out 0EBh, al F000:4D19 mov al, ah F000:4D1B inc dx F000:4D1C out dx, al ; write back 'val | 1' F000:4D1D out 0EBh, al F000:4D1F mov al, 2 F000:4D21 mov dx, 0CF9h ; system reset register F000:4D24 out dx, al F000:4D25 mov al, 6 F000:4D27 out dx, al ; do hard reset F000:4D28 F000:4D28 forever: ; CODE XREF: sio_ri2_chk:foreverj F000:4D28 jmp short forever F000:4D2A ; --------------------------------------------------------------------------- F000:4D2A F000:4D2A end_0: ; CODE XREF: sio_ri2_chk+48j F000:4D2A ; sio_ri2_chk+6Aj F000:4D2A mov dx, 2Eh ; '.' ; exit sio config F000:4D2D mov al, 2 F000:4D2F out dx, al F000:4D30 out 0EBh, al F000:4D32 inc dx F000:4D33 mov al, 2 F000:4D35 out dx, al F000:4D36 shr esp, 10h F000:4D3A retn F000:4D3A sio_ri2_chk endp F000:4D3A

agapon

16 лет 3 месяца назад


IMHO в таком случае стоит говорить не о RI2, а о GP66. Это исключительно терминологическая поправка.


Возможно, не уверен - см. вышеприведенный код.

maco

16 лет 3 месяца назад

agapon
Я в общем-то могу код не смотреть :). RI2 - вход, так что управлять переключением Main/Backup с его помощью при всем желании не получится, а вот GPIO - никаких проблем. Хотя кроме кода я бы хотел бы услышать о том, что вы отследили физическое соединение между указанным выводом и выводом(ами) микросхем, содержащих Main/Backup BIOS.