Jump to content

    
Sign in to follow this  
voffka

PCI/PCI Express TYPE 1 Configuration Header

Recommended Posts

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

 

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

 

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

 

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

Share this post


Link to post
Share on other sites

В обычном 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

Share this post


Link to post
Share on other sites

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

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

 

И еще вопрос:

 

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

Share this post


Link to post
Share on other sites

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 реализуется, то и там и там.

 

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

Edited by Link

Share this post


Link to post
Share on other sites

> Стандартные 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).

Share this post


Link to post
Share on other sites

Фраза

 

"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 и т.д.

Share this post


Link to post
Share on other sites
Фраза

 

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this