Backend ATS Address Map
In the nominal use case with CHI or CCIX protocol context the following registers are handled by firmware executing in the MicroBlaze processor sub-system, and there is nothing the user needs to handle.
Offset | Register Name | Format | Description |
---|---|---|---|
0x1_9800 | PASIDATSEXTCAP | 64 | PASID & ATS Extended Capability Header Note: Currently unused, the external processor handles PCIe configuration in FW. |
0x1_9808 | PASIDATSCAP | 64 | PASID & ATS Capability Header |
0x1_9810 | ATSPAGEREQCAP | 64 | ATS Outstanding Page Request Capacity |
0x1_9818 | ATSPAGEREQALL | 64 | ATS Outstanding Page Request Allocation |
0x1_9820 | ATSPRICTRL | 64 | ATS & PRI Control |
0x1_9828 | PASIDCTRL | 64 | PASID Control |
0x1_9840 | ATSPAGEREQSTAT | 64 | ATS Page Request Status |
0x1_9860 | ATSPCIECTRL | 64 | ATS PCIe Control |
0x1_9870 | ATSPCIEEXTCTRL | 64 | ATS PCIe Extended Control |
PASID & ATS Extended Capability Header Register
This register holds the System Cache PCIe configuration capabilities. Firmware replaces this information with locally defined PCIe endpoint capabilities.
Bits | Name | Reset Value | Access | Description |
---|---|---|---|---|
63:52 | Reserved | |||
51:48 | CAPVER | 0 | R | Capability version |
47:32 | PASIDECID | 0 | R | PASID Extended Capability ID |
31:16 | PRIECID | 0 | R | PRI Extended Capability ID |
15:0 | ATSCID | 0 | R | PASID & ATS Extended Capability Header ID |
PASID & ATS Capability Header Register
This register holds the System Cache PCIe PASID and ATS configuration capabilities. Firmware reads this information and combines it into a System Cache capabilities PCIe Configuration response.
Bits | Name | Reset Value | Access | Description |
---|---|---|---|---|
63:45 | Reserved | |||
44:40 | PASIDMW | 0x14 | R | Max PASID Width (Used when CHI PASID enabled) |
39:35 | Reserved | |||
34 | PRIVMD | 0 | R | Privileged Mode Supported (Used when CHI PASID enabled) |
33 | EXECP | 0 | R | Execute Permission Supported (Used when CHI PASID enabled) |
32:8 | Reserved | |||
7 | MEMATTR | 1 | R | Memory Attributes Supported |
6 | GLOBALINVAL | 1 | R | Global Invalidate Supported (Used when CHI PASID enabled) |
5 | PAGEALIGN | 1 | R | Page Align Request |
4:0 | INVALIDQD | 1 | R | Invalidate Queue Depth |
ATS Outstanding Page Request Capacity Register
This register holds the System Cache ATS PRG configuration capabilities. Firmware reads this information and combines it into a System Cache capabilities PCIe Configuration response.
Bits | Name | Reset Value | Access | Description |
---|---|---|---|---|
63:32 | Reserved | |||
31:0 | ATSOPRC | 0xF | R | ATS Outstanding Page Request Capacity |
ATS Outstanding Page Request Allocation Register
This register holds the System Cache ATS PRG Allocation. Firmware writes this information during configuration, but it is allowed to be changed after System Cache initialization.
Bits | Name | Reset Value | Access | Description |
---|---|---|---|---|
63:32 | Reserved | |||
31:0 | ATSOPRA | 0 | R/W | ATS Outstanding Page Request Allocation |
ATS & PRI Control Register
This register holds the System Cache ATS and PRI control. Firmware writes this information during configuration, but it is allowed to be changed after System Cache initialization.
If ATS Enable is changed from 0 to 1, a silent complete invalidation of the ATC Table is performed.
Bits | Name | Reset Value | Access | Description |
---|---|---|---|---|
63:48 | PRIFailLoopCount | 0 | R/W | Fail Loop Count |
47:34 | Reserved | |||
33 | PRIRES | 0 | R/W | PRI Reset |
32 | PRIEN | 0 | R/W | PRI Enable |
31:16 | Reserved | |||
15 | ATSEN | 0 | R/W | ATS Enable |
14 | MEE | 0 | R/W | Mem Attributes Enable |
13:5 | Reserved | |||
4:0 | ATSSTU | 0 | R/W | ATS Smallest Translation Unit |
PASID Control Register
This register holds the System Cache PASID control. Firmware writes this information as a result of the PCIe enumeration and configuration phase. It should not be changed after System Cache initialization.
Bits | Name | Reset Value | Access | Description |
---|---|---|---|---|
63:3 | Reserved | |||
2 | PASIDPMEN | 0 | R/W | PASID Privilege Mode Enable (Valid in CHI PASID context, otherwise Reserved) |
1 | PASIEPEN | 0 | R/W | PASID Execute Permission Enable (Valid in CHI PASID context, otherwise Reserved) |
0 | PASIDEN | 0 | R/W | PASID Enable (Valid in CHI PASID context, otherwise Reserved) |
ATS Page Request Status Register
This register holds the System Cache ATS PRG status. Firmware writes this information during configuration, but it is allowed to be changed after System Cache initialization.
Bits | Name | Reset Value | Access | Description |
---|---|---|---|---|
63:16 | Reserved | |||
15 | ATSPRGRES | 0 | R | PRG Response PASID Required (Valid in CHI PASID context, otherwise Reset Value) |
14:9 | Reserved | |||
8 | ATSSTOP | 1 | R | PRG Stop |
7:2 | Reserved | |||
1 | ATSUPRGI | 0 | R/W | Unexpected Page Request Group Index |
0 | ATSRESFAIL | 0 | R/W | Response Failure |
ATS PCIe Control Register
This register holds the System Cache ATS PCIe configuration control. Currently the system-level processor firmware writes this information as a result of the PCIe enumeration and configuration phase. It should not be changed after System Cache initialization.
Bits | Name | Reset Value | Access | Description |
---|---|---|---|---|
63:48 | PCIETABDF | 0 | R/W | PCIe TA BDF, Root Complex BDF (used by ATS/CCIX) |
47:44 | Reserved | |||
43 | PCIETD | 0 | R/W | PCIe TD, Optional ECRC Enable |
42:32 | PCIEMPS | 0 | R/W | PCIe MPS, (used by ATS/CCIX) |
31:24 | PCIETAGHI | 0xFF | R/W | PCIe 8bits Tag High, limited unique range if dual System Cache in EP |
23:16 | PCIETAGLO | 0 | R/W | PCIe 8bits Tag Low |
15:0 | PCIEEPBDF | 0 | R/W | PCIe EP BDF, (used by ATS/CCIX) |
ATS PCIe Extended Control Register
This register holds the System Cache ATS PCIe Extended configuration control. Currently, the system level processor firmware writes this additional information as a result of the PCIe enumeration and configuration phase. The extended configuration allows none, partial, full, or enhanced selection of FunctionID for self identification. In addition to legacy EP BDF, the register captures EP FunctionID for EP identification – usage of EP BDF / EP FuntionID depends upon PCIEFUNCIDEN settings.
Optional 10 bits TAG support now enables System Cache to allow the 10 bits TAG option with Host capabilities support (PCIeRev4.0 onwards - System Cache present refer to PCIeRev5.0). With 10 bits TAG mode enabled, this register holds TAG Low and TAG High ranges for 10bits TAG, and supersedes 8bits TAG Low and TAG High ranges in ATS PCIe Control Register. Settings in this register should not be changed after System Cache initialization.
0b00
, will
select the PCIEEPBDF settings.Bits | Name | Reset Value | Access | Description |
---|---|---|---|---|
63:62 | PCIEFUNCIDEN | 0 | R/W | PCIe Function ID Enable, (used by ATS/CCIX)
|
61 | PCIE10bTAGEN | 0 | R/W | PCIe 10bit Tag Enable, (used by ATS/CCIX)
|
60 | PCIEPOISONREQEN | 0 | R/W |
PCIe Poison Request Enable (extend the Poison control if 10bits TAG mode are supported, as field are consumed), (used by ATS/CCIX) bit unused in 8bits TAG mode
|
59:58 | Reserved | |||
57:48 | PCIE10bTAGHIGH | 0x3FF | R/W | PCIe 10bits Tag High, override 8bits Tag Low - if 10bit Tag Enable bit is set. Limited unique range if dual System Cache in EP |
47:42 | Reserved | |||
41:32 | PCIE10bTAGLOW | 0 | R/W | PCIe 10bits Tag Low, override 8bits Tag Low - if 10bit Tag Enable bit is set |
31:15 | Reserved (EP BAR ID, PF# presence) | |||
14:13 | PCIEEPCID | 0 | R/W | PCIe EP Component ID. Reserved - should always be set to 0. |
12:0 | PCIEEPFUNCID | 0 | R/W | PCIe EP FunctionID, (used in partial/full and enhanced mode by ATS/CCIX) |