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 below table.
Bit | Bit Width | Field Name | Description |
---|---|---|---|
[255:188] | 68 | 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 awcache | |
[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.
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.
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.
Illustration of how a host profile can be programmed and how some queues can be directed to a specific location.
For this Example QDMA0 is used and targets Queues from 0 to 9 to "NoC channel 0" and for Queues from 10 to 19 to "NoC Channle1". Two Host ID's are need to be setup this transfer. One for Queues from 0 to 9 and second for Queues from 10 to 19
- 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 CMP 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
-
- Context DATA Register, program register 0x804 to 0x820
based on the Host Profile table above
- 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 CMP 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
-
- Context DATA Register, program register 0x804 to 0x820
based on the Host Profile table above
- 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.