By ROMby Unknown , 30 August 2006
Уважаемые мемберы и в особенности модеры!
Не спешите закидывать меня ссылками на основополагающие доки.
Во времена своей молодости дружил с ассемблером, с 16 битным правда, потому как мой первый комп ЕС1840. :roll:
Но со временем пошел по другим стопам...
Задача в принципе проста. Нужно проинициализировать значение тайминга для чипсета/встроенного контроллера памяти К8 через PCI-регистры.
По даташиту я нашел что нужно поменять.
Но как это сделать в АМИБИОС???
На AWARD мануалов полно и все понятно, а вот это долбаный АМИБИОС... :twisted:
У меня есть tool_8_RC1, AMIBCP, вкладка Register Edit пуста, и ничего сделать нельзя. PCI IRQ Routing вроде не то что нужно.
В PDF'e из tool_8_RC1 к AMIBCP говорится о вкладке Register Edit что мол редактирование "регистров АМИБИОСа".
В PDF'e есть скрины, на вкладке Register Edit там есть опции, но не густо. :cry:
Получается это вроде как регистры АМИБИОСа которые сам АМИБИОС и дает редактировать, и я предполагаю возможность изменять регистры реализуется каким либо модулем АМИБИОСа.

Так вот даже не знаю что делать, подскажите, умоляю!

Неужели в АМИБИОС нельзя менять PCI регистры каким либо не сложным способом? В аварде это легко делать.

В какой-то статье вычитал, что можно написать свой модуль и на асме непосредственно загнать через порт значение регистра.
В принципе там, около 5-ти строк кода, семечки.
Только вот как правильно этот модуль запихнуть в АМИБИОС,
точка входа, как осуществляется возврат.

Еще раз прошу, я знаю, вы спецы в своем деле, помогите конкретными советами.
The content of this field is kept private and will not be shown publicly.

BBCode

  • No HTML tags allowed.
  • 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]
  • Web page addresses and email addresses turn into links automatically.

icbook

19 years 6 months ago

С помощью AMIBCP (AMI BIOS Configuration Programm) Вы можете, как это и следует из названия, конфигурировать некоторые параметры, которые визуализируются в модулем ezPORT (другое название - ADM) в процессе диалога CMOS Setup. Прошу обратить внимание - параметры(!). Из этого не следует, что пользователь ч/з CMOS Setup управляет конкретными битами заданных регистров. Хотя это, как частный случай, и не исключается.

Для решения Вашей задачи требуется написать программный PCI ROM, с помощью AMIMM встроить его в тело BIOS и, как Вы совершенно справедливо отметили, эта простая в принципе задача будет решена.

Anonymous (not verified)

19 years 6 months ago

Спасибо, версию с правкой регистров как в AWARD отбрасываю.
Уже помогли. ;)
Для решения Вашей задачи требуется написать программный PCI ROM, с помощью AMIMM встроить его в тело BIOS и, как Вы совершенно справедливо отметили, эта простая в принципе задача будет решена.

Ну а на небольшую помощь земляку я могу расчитывать? :roll: Меня даже устроит режим холодно/горячо :mrgreen:
Ох, нужно покупать вторую микруху биоса и можно начинать эксперементы.

Почему PCI ROM a не ISA ROM?
Вроде ISA легше делать.

И нет ли у кого у же подобного готового модуля?

icbook

19 years 6 months ago

Почему PCI ROM a не ISA ROM?
Вроде ISA легше делать.

Потому что даже тот, который на ISA, все равно PCI ROM :)

xKVtor

19 years 6 months ago

В какой-то статье вычитал, что можно написать свой модуль и на асме непосредственно загнать через порт значение регистра.
В принципе там, около 5-ти строк кода, семечки.

И нет ли у кого у же подобного готового модуля?


Примерчик ISA-модуля: http://www.xtremesystems.org/forums/showthread.php?p=474847

+ объяснение назначения регистров, отвечающих за настроки контроллера памяти на AMD K8 (DDR1).

Первоисточник, так сказать. :)

PS: До кучи: http://www.wasm.ru/print.php?article=1013001

Anonymous (not verified)

19 years 6 months ago

Спасибо, буду ковырять. Я так понял для АМИБИОС все это тоже самое что и для AWARD.
По самому модулю вроде как все более менее понятно.
Появились вопросы насчет вставки модуля в биос.
В MMTOOL есть уже три модуля с ID 20.
Подсмотрел в PDF'e к tool 8 RC1, модули с ID 20 - PCI ROM.
Но есть вопрос по вставке модуля в MMTOOL
http://flashpoint.addr.ru/e107_images/mmtool.GIF
Откуда брать Offset/VID и Seg./DID?
Link Present я так понял не используем.

xKVtor

19 years 6 months ago

HELLBIT

В MMTOOL есть уже три модуля с ID 20.
Подсмотрел в PDF'e к tool 8 RC1, модули с ID 20 - PCI ROM.

А есть ли в этом PDF'е упоминание про идентификатор ISA ROM ? Надеюсь, что есть.

Можно, конечно, попробовать подсунуть вместо PCI -> ISA ROMку под тем же ID=20.

Но дело в том, что у PCI ROMки есть структуры, которые напрочь отсутствуют у ISA ROM ("PCIR", например). И вполне вероятно, что если биос не обнаружит этих структур, то он просто-напросто проигнорирует эту ROMку и не передаст ей управление. По крайней мере, по стандарту именно так он и должен поступить. :)

Откуда брать Offset/VID и Seg./DID?

VendorID и DeviceID PCI-устройств можно глянуть в WPCREDIT'е.
Подозреваю, что можно выбрать любое из присутствующих в системе PCI устройств. А может, только "любое из незанятых", чьих PCI ROM еще нет в биосе.

Anonymous (not verified)

19 years 6 months ago

Собственно:

Module ID (hex) Description
04 Setup Engine (Client).
06 DMI Data (SMBIOS Data).
08 BootBlock-POST Interface module.
0C ROM ID Module (BIOS Tag).
0E OEM Logo (large) for Silent Boot.
10 ACPI AML.
11 CPU Microcode patches.
15 External Memory Detection module.
18 ADM.
19 ADM Font.
1A OEM Small Logo.
1B Main BIOS (SLAB).
1C BCP Information Module (Created by AMIBCP).
1D DUAL Logo
1E INTEL OSB (On Screen Branding)
1F Currently unassigned
20 PCI Addon ROM (Same for all PCI Option ROMs).
21 Language Module (Same for all languages).
22 - 25 Currently unassigned
26 Source Level Debugger.
27 Source Level Debugger transport layer.
28 BMC Output Redirection Module.
29 MBI File.
2A MBI Test Pattern.
2B More than 4GB memory test.
2C – 2D Currently unassigned
2E PXE Base ROM.
2F Serial Redirection module.
30 Parties Logo.
31 NEC CIM Module (Used by AMI Taiwan).
32 NEC battery refresh support (Used by AMI Taiwan).
38 Auto flash EC firmware (Used by AMI Taiwan).
80 BIOS Information Module.
F0-FF OEM Modules.

Заманчивые F0-FF - OEM Modules. :)

Вообще какая разница какой юзать? Для меня главное что бы мой код выполнился, а весь функционал в нем.
Есть два нюанса.
Настройки которые делает код не должны быть перезаписаны позднее самим биосом.
Второе. Т.к. настройки касаются разгона(тайминги), как бы не было ситуации когда настройка срабатывает поздно и система успевает зависнуть. Это есть плохо.