7.2 Port List

The following tables list the User Cryptoprocessor port list for the PolarFire family.

Table 7-3. PolarFire® FPGA and RT PolarFire FPGA CRYPTO Port List
Port NameDirectionDescription
AHB_SLAVEBusAHB-Lite slave interface, which is used for control, and primary data input and output.
AHB_MASTERBusAHB-Lite master DMA interface, which may optionally be used for data input and output.
DRI_SLAVEBusControl and status signals are accessible through the DRI.
HCLKInputAHB bus clock.
HRESETNInputThe reset signal, CRYPTO_HRESETN, is active low, synchronous, and is sampled on the rising edge of the clock. Asserts the functional reset of the User Cryptoprocessor block and zeroizes all the internal RAM and registers as PURGE signal. It is necessary to assert this signal for a minimum of two clock cycles to reset the core.
STARTInputExternal execution initiation input when the User Cryptoprocessor operates in the standalone configuration without a host processor connected to the bus interface. Asserting the START signal causes the User Cryptoprocessor to initiate execution. During execution, the status of the User Cryptoprocessor is reflected by the BUSY and DLL_LOCK ports. This signal must be tied low when the User Cryptoprocessor is used as a co-processor.
PURGEInputWhen the signal is set to '1', it initializes the Zeroization of User Cryptoprocessor internal RAM and registers. For normal operation, this signal must be tied low. The PURGE input is level sensitive, and if the PURGE pin is still asserted when a purge operation completes, another purge operation is initiated.
Note: In PolarFire devices, the PF_DRI macro can be used from the fabric to exercise the PURGE functionality of the User Cryptoprocessor. It is important to note that once the data is purged, it cannot be recovered, so it is essential to use this functionality with caution.
STALLInputStalls the User Cryptoprocessor for a clock cycle, to introduce variance in the external signatures. The STALL input is expected to be generated by a LFSR circuit in the fabric and asserted randomly for a single cycle to achieve the required stall rates. The STALL input must not be asserted until at least three clock cycles after the HRESETN is de-asserted and the DLL has indicated LOCK for three cycles.
ALARMOutputAsserted to indicate an uncorrectable memory error condition. An uncorrectable memory error causes the Crypto core to perform a reset and purge. This reset terminates any in-progress operation. For most CAL operations, the CALPKTrfRes() function is used to complete the operation and generates a hardware fault code in the event of an alarm.
BUS_ERROROutputAsserted when a HRESP response error is detected by the User Cryptoprocessor AHB master. When set, a reset is required to clear.
BUSYOutputExecution status signal
COMPLETEOutputActive high signal, asserted on raising edge of CRYPTO_HCLK to indicate that the User Cryptoprocessor has completed an operation. This signal can be connected to the host microprocessor as an interrupt request signal, enabling the User Cryptoprocessor to interrupt the processor when it completes an operation.
DLL_LOCKOutputDLL lock status
Important: In PolarFire FPGA and RT PolarFire FPGA devices, the User Crypto processor's control and status registers are accessible to the user logic through DRI interface. See PolarFire Device Register Map for more information about the User Crypto registers.
Table 7-4. PolarFire SoC FPGA CRYPTO Port List 1
Port NameDirectionDescription
CRYPTO_AHB_SLAVEBusAHB-Lite slave interface, which is used for control, and primary data input and output.
CRYPTO_AHB_MASTERBusAHB-Lite master DMA interface, which may optionally be used for data input and output.
CRYPTO_HCLKInputAHB bus clock.
CRYPTO_HRESETNInputThe reset signal, CRYPTO_HRESETN, is active low, synchronous, and is sampled on the rising edge of the clock. Asserts the functional reset of the User Cryptoprocessor block and zeroizes all the internal RAM and registers as PURGE signal. It is necessary to assert this signal for a minimum of two clock cycles to reset the core.
CRYPTO_GO_F2MInputExternal execution initiation input when the User Cryptoprocessor operates in the standalone configuration without a host processor connected to the bus interface. Asserting the GO signal causes the User Cryptoprocessor to initiate execution. During execution, the status of the User Cryptoprocessor is reflected by the BUSY and DLL_LOCK ports. This signal must be tied low when the User Cryptoprocessor is used as a co-processor.
CRYPTO_PURGE_F2MInputWhen the signal is set to '1', it initializes the Zeroization of User Cryptoprocessor internal RAM and registers. For normal operation, this signal must be tied low. The PURGE input is level sensitive, and if the PURGE pin is still asserted when a purge operation completes, another purge operation is initiated.
CRYPTO_STALL_F2MInputStalls the User Cryptoprocessor for a clock cycle, to introduce variance in the external signatures. The STALL input is expected to be generated by a LFSR circuit in the fabric and asserted randomly for a single cycle to achieve the required stall rates. The STALL input must not be asserted until at least three clock cycles after the HRESETN is de-asserted and the DLL has indicated LOCK for three cycles.
CRYPTO_ALARM_M2FOutputAsserted to indicate an uncorrectable memory error condition. An uncorrectable memory error causes the Crypto core to perform a reset and purge. This reset terminates any in-progress operation. For most CAL operations, the CALPKTrfRes() function is used to complete the operation and generates a hardware fault code in the event of an alarm.
CRYPTO_BUSERROR_M2FOutputAsserted when a HRESP response error is detected by the User Cryptoprocessor AHB master. When set, a reset is required to clear.
CRYPTO_BUSY_M2FOutputExecution status signal
CRYPTO_COMPLETE_M2FOutputActive high signal, asserted on raising edge of CRYPTO_HCLK to indicate that the User Cryptoprocessor has completed an operation. This signal can be connected to the host microprocessor as an interrupt request signal, enabling the User Cryptoprocessor to interrupt the processor when it completes an operation.
CRYPTO_DLL_LOCK_M2FOutputDLL lock status
CRYPTO_MESH_CLEAR_F2MInputCrypto Mesh error clear should be asserted for at least 5 ns
CRYPTO_MESH_ERROR_M2FOutputIndicates that the security mesh detected an error because of wires are cut or shorted. When set, stays set until cleared.
Cryptoprocessor Ownership Handshake Interface
CRYPTO_REQUEST_F2MInputFabric request or is using the Cryptoprocessor
CRYPTO_MSS_REQUEST_M2FOutputMSS request or is using the Cryptoprocessor
CRYPTO_RELEASE_F2MInputFabric released the Cryptoprocessor
CRYPTO_MSS_RELEASE_M2FOutputMSS released the Cryptoprocessor
CRYPTO_OWNER_M2FOutputIndicates that the Fabric owns the Cryptoprocessor and the fabric interface is enabled
CRYPTO_MSS_OWNER_M2FOutputIndicates that the MSS owns the Cryptoprocessor and the fabric interface is disabled
CRYPTO_REQUEST_F2MInputFabric request or is using the Cryptoprocessor
CRYPTO_MSS_REQUEST_M2FOutputMSS request or is using the Cryptoprocessor
Cryptoprocessor Streaming Interface
CRYPTO_XWDATA_F2MInputTransfer in data
CRYPTO_XWADDR_M2FOutputTransfer in data address output
CRYPTO_XENABLE_F2MInputTransfer in data request
CRYPTO_XINACCEPT_M2FOutputTransfer in data accept
CRYPTO_XRDATA_M2FOutputTransfer out data
CRYPTO_XRADDR_M2FOutputTransfer out data address output
CRYPTO_XVALIDOUT_M2FOutputTransfer out data valid output
CRYPTO_XOUTACK_F2MInputTransfer out data acknowledgment
Note: 1. Input refers to an input port to MSS from Fabric and output refers to an output port from MSS to Fabric.