реклама на сайте
подробности

 
 
> Конфигурирование шины PCI, алгоритм работы
voland95
сообщение Oct 14 2009, 07:06
Сообщение #1





Группа: Новичок
Сообщений: 1
Регистрация: 14-10-09
Пользователь №: 52 934



Добрый день. Помогите составить блок-схему или алгоритм конфигурирования устройств на PCI например при взаимодействии с видеоадаптером или контроллером HDD. Никак не могу разобраться(((
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Shivers
сообщение Jan 30 2012, 14:23
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 680
Регистрация: 11-02-08
Из: Msk
Пользователь №: 34 950



Я процитировал стандарт. Сам никогда в дезайн P-EXROM не вставлял, только собирался экспериментировать с сетевой картой и поэтому вдумчиво вчитывался в текст стандарта. EXROM это один из обычных способов хакать биос в РС: берется сетевая карта, в EEPROM прописывается код, который исполняется до передачи управления ОС. Обсуждали на ром.бае и еще кое где. Кто то в EXROM встраивал Линукс и даже ДОС. Но это уже оффтопик.
По теме - не знаю что посоветовать. Вы Memory Space Ena прописываете, перед тем как BAR EXROMа щупать?

И зачем он вам вообще дался, могу полюбопытствовать?

p.s.
> А в BIOS, даже выставляя нулевой бит в 1, я по тому адресу читаю только FFFFFFFFh.
А как вы под биосом читаете этот адрес?
Ведь биос это физические адреса процессора, а PCI - тридесятая шина, доступ к которой осуществляется через мосты. И кроме того, в интелловских контроллерах PCI CFG вообще не меппится в память, а весь доступ проходит через два регистра - адреса и данных ... надеюсь вы все это учитываете.
Go to the top of the page
 
+Quote Post
lsvmo
сообщение Feb 8 2012, 13:30
Сообщение #3





Группа: Новичок
Сообщений: 5
Регистрация: 17-01-12
Пользователь №: 69 637



Цитата(Shivers @ Jan 30 2012, 18:23) *
Я процитировал стандарт. Сам никогда в дезайн P-EXROM не вставлял, только собирался экспериментировать с сетевой картой и поэтому вдумчиво вчитывался в текст стандарта. EXROM это один из обычных способов хакать биос в РС: берется сетевая карта, в EEPROM прописывается код, который исполняется до передачи управления ОС. Обсуждали на ром.бае и еще кое где. Кто то в EXROM встраивал Линукс и даже ДОС. Но это уже оффтопик.
По теме - не знаю что посоветовать. Вы Memory Space Ena прописываете, перед тем как BAR EXROMа щупать?

И зачем он вам вообще дался, могу полюбопытствовать?

p.s.
> А в BIOS, даже выставляя нулевой бит в 1, я по тому адресу читаю только FFFFFFFFh.
А как вы под биосом читаете этот адрес?
Ведь биос это физические адреса процессора, а PCI - тридесятая шина, доступ к которой осуществляется через мосты. И кроме того, в интелловских контроллерах PCI CFG вообще не меппится в память, а весь доступ проходит через два регистра - адреса и данных ... надеюсь вы все это учитываете.


В командном регистре, который в конфигурационном пространстве PCI по смещению 0x04, стоит Memory Space Enable.
Собственно, зачем дался? Разрабатываем PCI-E плату, хочу понять, как этот механизм работает, как вот этот самый код, который выполняется до передачи управления ОС, сочетается с дальнейшим использованием регистра XROMBAR.

Под BIOS'ом читаю через регистры 0xCFC, 0xCF8. Конфигурационное пространство PCI устройств доступно. Да и вообще для этого также существует механизм прерывания 1Ah.
Go to the top of the page
 
+Quote Post
Shivers
сообщение Feb 9 2012, 13:00
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 680
Регистрация: 11-02-08
Из: Msk
Пользователь №: 34 950



Цитата(lsvmo @ Feb 8 2012, 16:30) *
В командном регистре, который в конфигурационном пространстве PCI по смещению 0x04, стоит Memory Space Enable.
Собственно, зачем дался? Разрабатываем PCI-E плату, хочу понять, как этот механизм работает, как вот этот самый код, который выполняется до передачи управления ОС, сочетается с дальнейшим использованием регистра XROMBAR.

Под BIOS'ом читаю через регистры 0xCFC, 0xCF8. Конфигурационное пространство PCI устройств доступно. Да и вообще для этого также существует механизм прерывания 1Ah.

Все верно, в PCI Cfg вы залезаете через указанные вами два смещения. Но смещение в регистре XROMBAR - лежит уже в адресном пространстве PCI Memory! Вы должны сначала узнать с какого адреса в адресах процессора меппится PCI Memory, и потом уже к этому значению добавить свой XROMBAR. Если я правильно вас понял

p.s.
CODE

The PC-compatible specific set of steps for the system POST code when handling each
expansion ROM are:
1. Map and enable the expansion ROM to an unoccupied area of the memory address
space.
2. Find the proper image in the ROM and copy it from ROM into the compatibility area
of RAM (typically 0C0000h to 0E0000h) using the number of bytes specified by
Initialization Size.
3. Disable the Expansion ROM Base Address register.
4. Leave the RAM area writable and call the INIT function.
5. Use the byte at offset 02h (which

В общем, вам нужно узнать куда меппится PCI Memory(или самому настроить окно), самому прописать EXROMBAR(через pci-cfg) и только потом уже делать дамп.

p.p.s. это всё также означает, что EXROMBAR_Ena не обязательно опускать. Если ОС считает, что зарезервированная в PCI MEm область (под EXROM) никому не мешает, то EXROMBAR_Ena можно и не гасить.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 4th August 2025 - 21:48
Рейтинг@Mail.ru


Страница сгенерированна за 0.0139 секунд с 7
ELECTRONIX ©2004-2016