Как "забить" PCI-регистры в AMIBIOS

Уважаемые мемберы и в особенности модеры!
Не спешите закидывать меня ссылками на основополагающие доки.
Во времена своей молодости дружил с ассемблером, с 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-ти строк кода, семечки.
Только вот как правильно этот модуль запихнуть в АМИБИОС,
точка входа, как осуществляется возврат.

Еще раз прошу, я знаю, вы спецы в своем деле, помогите конкретными советами.

Аватар пользователя icbook

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

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

Спасибо, версию с правкой регистров как в AWARD отбрасываю.
Уже помогли.;)

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

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

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

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

Аватар пользователя icbook

HELLBIT писал(-а):
Почему PCI ROM a не ISA ROM?
Вроде ISA легше делать.

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

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

HELLBIT писал(-а):
И нет ли у кого у же подобного готового модуля?

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

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

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

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

Спасибо, буду ковырять. Я так понял для АМИБИОС все это тоже самое что и для AWARD.
По самому модулю вроде как все более менее понятно.
Появились вопросы насчет вставки модуля в биос.
В MMTOOL есть уже три модуля с ID 20.
Подсмотрел в PDF'e к tool 8 RC1, модули с ID 20 - PCI ROM.
Но есть вопрос по вставке модуля в MMTOOL

Откуда брать Offset/VID и Seg./DID?
Link Present я так понял не используем.

HELLBIT

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ку и не передаст ей управление. По крайней мере, по стандарту именно так он и должен поступить.:)

HELLBIT писал(-а):
Откуда брать Offset/VID и Seg./DID?

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

Собственно:

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.:)

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

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
  • Разрешённые HTML-теги: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <img>
  • You can use BBCode tags in the text. URLs will automatically be converted to links.

Подробнее о форматировании текста

Антибот - введите цифру.
Ленты новостей