BDF Table - 2.0 English

Versal Adaptive SoC DMA and Bridge Subsystem for PCI Express Product Guide (PG344)

Document ID
PG344
Release Date
2024-11-22
Version
2.0 English

Address translations for AXI address is done based on BDF table programming (0x2420 to 0x2434). These BDF table entries can be programmed through the AXI Slave CSR interface, s_axil_csr_*. There are three regions that you can use for slave data transfers. Each region can be further divided into many windows for a different address translation. These regions and number of windows should be configured in the IP wizard configuration. Each entry in the BDF table programming represents one window. If a you need 2 windows then 2 entries need to be programmed and so on.

There are some restrictions in programming BDF table.

  1. All PCIe slave bridge data transfers must be quiesced before programming the BDF table.
  2. There are six registers for each BDF table entry. All six registers must be programmed to make a valid entry. Even if some registers have 0s, you need to program 0s in those registers.
  3. All the six registers need to be programmed in an order for an entry to be valid. Order is listed below.
    1. 0x2420
    2. 0x2424
    3. 0x2428
    4. 0x242C
    5. 0x2430
    6. 0x2434

BDF table entry start address = 0x2420 + (0x20 * i), where i = table entry number.