Host Profile - 3.4 English

Versal Adaptive SoC CPM DMA and Bridge Mode for PCI Express Product Guide (PG347)

Document ID
PG347
Release Date
2023-11-20
Version
3.4 English

Host profile must be programmed to represent Root Port host. Host profile can be programmed through indirect Context programming. Select QDMA_CTXT_SELC_HOST_PROFILE (4'hA) in QDMA_IND_CTXT_CMD. Host profile context structure is given in the following table.

Table 1. Host Profile Context Structure
Bit Bit Width Field Name Description
[255:202] 54 Reserved Reserved
[201:192] 10 smid System Management ID.

smid[9] is reserved.

simd[8:0] valid range is 0x100 to 0x1FF

smid bit [8] should to set to 1

[191:188] 4 Reserved Reserved
[187:186] 2   H2C AXI4-MM write awprot
[185:182] 4   H2C AXI4-MM write awcache
[181:178] 4   H2C AXI4-MM Steering
[177:104] 74 Reserved Reserved
[103:102] 2   C2H AXI4-MM read arprot
[101:98] 4   C2H AXI4-MM read arcache
[97:94]] 4   C2H AXI4-MM Steering
[0:93] 94 Reserved Reserved

Host Profile Context needs to be programed for any QDMA AXI4-MM transfers. And it needs to be programmed before any Queue context programming. This effects only AX4-MM DMA transfers not Streaming transfers.

The System Management ID (SMID) is used to uniquely identify all masters in the device. For AXI-MM master bridge transfers SMID (BAR access) is set to 0x100. For all AXI-MM transfer (DMA and BAR access) SMID should be set within the range of 0x100 to 0x1FF (bit 8 should be set to 1).

Steering values should be set based on the address space location in Versal design. Steering Table below shows values that need to be set and its corresponding Versal location.

Table 2. CPM5 QDMA Steering
Steering values Description
4'b0000 NoC Channel 0 (CPM PCIE NoC 0)
4'b0001 NoC channel 1 (CPM PCIE NoC 1)
4'b0010 Coherent PS Channel 0 (CCI PS AXI0)
4'b0100 AXI4-MM PL channel 0 (PL AXI 0) Applicable for only QDMA1
4'b0101 AXI4-MM PL channel 1 (PL AXI 1) Applicable for only QDMA1
All other values are reserved NA

There are some restrictions based on the QDMA selection. For more information, see Controller Steering Options table in Master Bridge section.

The following example illustrates how a host profile can be programmed to direct some queues to a specific location.

The example uses QDMA0 and two Host IDs. Host ID 0 targets Queues from 0 to 9 to NoC Channel 0 and Host ID 1 targets Queues from 10 to 19 to NoC Channel 1.

Host ID 0 for Queues 0 to 9

  • Context DATA Register, program register 0x804 to 0x820 based on the Host Profile table above
    • H2C AXI4-MM Steering and C2H AXI4-MM Steering set to 0x0 to target "NOC Channel0"
    • Set all other values in the table also 0's
  • Context CMD Register, program register 0x844
    • qid [19:7] : 0x0 (Host ID 0)
    • op [6:5] : 0x1 (WR)
    • sel [4:1] : 0xA (Host_PROFILE)
    • busy [0] : x
    write 0x34 to Context CMD register

Host ID 1 for Queues 10 to 19

  • Context DATA Register, program register 0x804 to 0x820 based on the Host Profile table above
    • H2C AXI4-MM Steering and C2H AXI4-MM Steering set to 0x1 to target "NOC Channel1"
    • Set all other values in the table also 0's
    • Context CMD Register, program register 0x844
      • qid [19:7] : 0x1 (Host ID 1)
      • op [6:5] : 0x1 (WR)
      • sel [4:1] : 0xA (HOST_PROFILE)
      • busy [0] : x
      write 0xB4 to Context CMD register
  • This sets up two Host ID, 0 and 1.
  • Use Host ID 0 for setting up Queues 0 to 9. Write 0 in host_id field in context programming.
  • Use Host ID 1 for setting up Queues 10 to 19. Write 1 in host_id field in context programming.