4.4.7. Configuration Intercept Interface
The Configuration Intercept Interface (CII) allows the application logic to detect the occurrence of a Configuration (CFG) request on the link and to modify its behavior.
The application logic should detect the CFG request at the rising edge of cii_req_o. Due to the latency of the EMIB, the cii_req_o can be deasserted many cycles after the deassertion of cii_halt_i.
The application logic can use the CII to:
- Delay the processing of a CFG request by the controller. This allows the application to perform any housekeeping task first.
- Overwrite the data payload of a CfgWr request. The application logic can also overwrite the data payload of a CfgRd Completion TLP.
This interface also allows you to implement the Intel Vendor Specific Extended Capability (VSEC) registers. All configuration accesses targeting the Intel VSEC registers (addresses 0xD00 to 0xFFF) are automatically mapped to this interface and can be monitored via this interface.
If you are not using this interface, tie cii_halt_p0/1 to logic 0.
|Signal Name||Direction||Description||EP/RP/BP||Clock Domain|
|pX_cii_req_o||Output||Indicates the CFG request is intercepted and all the other CII signals are valid.||EP||slow_clk|
|pX_cii_hdr_poisoned_o||Output||The poisoned bit in the received TLP header on the CII.||EP||slow_clk|
|pX_cii_hdr_first_be_o[3:0]||Output||The first dword byte enable field in the received TLP header on the CII.||EP||slow_clk|
|pX_cii_func_num_o[2:0]||Output||The function number in the received TLP header on the CII.||EP||slow_clk|
|pX_cii_wr_o||Output||Indicates that cii_dout_p0/1 is valid. This signal is asserted only for a configuration write request.||EP||slow_clk|
|pX_cii_wr_vf_active_o||Output||Indicates that the received TLP targets a virtual function (VF) inside the controller, which is identified by cii_vf_num_o[10:0].||EP||slow_clk|
|pX_cii_vf_num_o[10:0]||Output||Identifies the VF inside the controller that was targeted.||EP||slow_clk|
|pX_cii_addr_o[9:0]||Output||The double-word register address in the received TLP header on the CII.||EP||slow_clk|
|pX_cii_dout_o[31:0]||Output||Received TLP payload data from the link partner to your application client. The data is in little endian format. The first received payload byte is in bits [7:0].||EP||slow_clk|
|pX_cii_override_en_i||Input||Override enable. When the application logic asserts this input, the PCIe Hard IP overrides the CfgWr payload or CfgRd completion using the data supplied by the application logic on cii_override_din_i[31:0].||EP||slow_clk|
|pX_cii_halt_i||Input||Flow control input signal. When cii_halt_p0/1 is asserted, the PCIe Hard IP halts the processing of CFG requests for the PCIe configuration space registers.||EP||slow_clk|
Address ranges are available to provide more flexibility to the application logic to perform the data intercept through the CII. For ranges 0, 1 and 2, the starting addresses and address sizes are predetermined, so you must enter the values shown in the table below in the corresponding boxes in the IP Parameter Editor.
|Range||Starting Address||Address Size|
Below is an image of the screen in the IP Parameter Editor where these values can be entered.
Did you find the information on this page useful?