Перейти к содержанию
    

PCI/PCI Express TYPE 1 Configuration Header

Как используются регистры I/O, Memory, Prefetchable Memory Base/Limit?

 

Используются ли они вообще в PCI-Express Root Complex?

 

И как организовать адресное пространство для такого устройства?

 

Заранее спасибо)))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В обычном PCI (про экспресс пока не в курсе) BAR регистры бриджа программируются так,

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

 

Для иллюстрации, если устройства X,Y,Z на вторичной шине живут по адресам 0x80000000, 0x80100000 и 0x80200000 и каждое требует 1М адресного пространства, то бридж должен быть сконфигурурован так, чтобы отвечал не запросы до адресам всех устройств на вторичной шине. В данном случае 0x80000000..0x802fffff.

 

[host]  
|
-----------------
    |
   [B]
    |
-----------------
|     |    |
[X]  [Y]  [Z]

 

Это все можно представить так, что для всех устройств по одну сторону бриджа бридж выглядит как одно устройства. Если кто-нибудь к нему обращается, то бридж начинает соответствующую транзакцию на другой стороне. Соответственно, чтобы с одной стороны запросы могли добраться до всех устройств на другой стороне, бридж должен отвечать на запросы с адресами любого из устройств на вторичной шине.

 

Эта процедура применяется ко всем типам адресов - I/O, prefetchable и non-prefetchable memory.

 

Если интересны детали, можете заглянуть в исходники NetBSD - там все довольно наглядно.

 

http://cvsweb.netbsd.org/bsdweb.cgi/src/sy...x-cvsweb-markup

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У Root Complex конфигурационные регистры относятся к RCRB. В базовом адресе значения Bus Number и Device Number как правило равны '0'.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

" В базовом адресе значения Bus Number и Device Number как правило равны '0'."

Что значит в базовом адресе? Не понял, объясните плз))

 

И еще вопрос:

 

Стандартные PCI Capabilities (MSI, Power management) где должны расролагаться (в конфигурационном пространстве Host Bridge или Root Port (PCI-PCI Bridge)) ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

RCRB -Конфигурационные регистры Root complex'а опциональны (можно не реализовывать), как выполнить доступ к ним - на усмотрение разработчика. Самому Host/PCI bridge обычно присваивается Bus number = '0', device number = '0', а PCI/PCI bridge (в Root Complex'е) - Bus number = '0' , device number = '1'.

 

 

> Стандартные PCI Capabilities (MSI, Power management) где должны расролагаться (в конфигурационном

> пространстве Host Bridge или Root Port (PCI-PCI Bridge)) ?

 

Если RCRB реализуется, то и там и там.

 

.. вроде так...

Изменено пользователем Link

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

> Стандартные PCI Capabilities (MSI, Power management) где должны расролагаться (в конфигурационном

> пространстве Host Bridge или Root Port (PCI-PCI Bridge)) ?

 

Если RCRB реализуется, то и там и там.

 

.. вроде так...

 

 

Нет,в RCRB могут находиться только PCI Express Enhanced Capabilities и implementation specific - регистры (PCI Express Base Specification 1.0a, p315):

"These registers are used in a manner similar to configuration space and can include PCI Express extended capabilities and other implementation specific registers that apply to the Root Complex."

 

Насчет MSI я разобрался - у нас свой механизм сообщения прерываний, через in-band сообщения по системной шине.Т.е. MSI мне реализовывать не нужно.

 

А вот насчет PCI Power Management Capability я думаю,что ее необходимо реализовать только в регистрах Root Port'a. Как мне кажется, нет смысла реализовывать PM Capabilities для "виртуальной" шины (Host Bridge - PCI-PCI Bridge).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Фраза

 

"These registers are used in a manner similar to configuration space and can include PCI Express extended capabilities and other implementation specific registers that apply to the Root Complex."

 

означает что RCRB используются аналогично регистрам конфигурационного пространства и могут содержать PCI Express extended capabilities и т.д.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Фраза

 

"These registers are used in a manner similar to configuration space and can include PCI Express extended capabilities and other implementation specific registers that apply to the Root Complex."

 

означает что RCRB используются аналогично регистрам конфигурационного пространства и могут содержать PCI Express extended capabilities и т.д.

 

1. Implementation Specific Registers - внутренние регистры устройства, в котрых прописываются различные опции (специфичные для конкретного устройства), которые могут и не влиять на работу PCI-E. Я думаю,если бы они имели в виду PCI Capabilities, они бы так и написали.

2. А что мешает расположить PCI Capabilities в стандартном конф пространстве Host Bridge (ниже границы 256 байт)?Имело бы смысл располагать их в RCRB, если бы в этих Capabilities содержалась информация,относящяяся к Root Port'ам(например, Virtual Channel Capability).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...