Устройство PCIe может иметь конфигурационное пространство типа 0 (конечные точки) или Type-1 (RC или коммутаторы или мосты).
- Устройство типа-0 может иметь в общей сложности 6 БАР, в то время как Тип-1 может иметь только 2 БАР.
--BAR предоставляет информацию об адресном пространстве, необходимые устройству.
- Каждый BAR имеет 32 бит, из которых первые 4 бит 3: 0 всегда доступны только для чтения.
- 2^(Положение последних бит R/W от младшего значащего разряда) = Окно адреса, требуемое конкретным БАР.
Как узнать окно адреса или размер области represneted любым BAR:
1) Первоначально Читайте любой BAR (Предположим BAR0 в нашем случае), мы получили значение 32'h0000_000F. (Помните: последние 4 бита только для чтения !!).
2) Напишите все 1 в BAR0.
3) Снова прочитайте BAR0 и предположим, что мы получили значение 32'h0000_FFFF.So бит 16 - это последний бит R/W от LSB. Таким образом, адресное пространство, требуемое BAR0, будет 2^16.