Implementations that use the AMD Zynq™
UltraScale+™ MPSoCs must
provide the SEM Controller access to the ICAP interface. This is performed by clearing
the PCAP PR bit in the PS Configuration Security Unit (CSU) pcap_ctrl
register.
During boot of the Zynq UltraScale+ MPSoC Processing System (PS), access to the configuration logic in the device is given to the PS through the Processor Configuration Access Port (PCAP). This provides a path for the PS bootloader to download a bitstream to the Zynq UltraScale+ MPSoC Programmable Logic (PL). When the PS bootloader is completed, the PS and PCAP remain in control of the configuration logic to support partial reconfiguration of the PL by the PS.
However, while the PS and PCAP are in control
of the configuration logic, the PL and ICAP are locked out of the configuration logic.
For the SEM controller to function, configuration logic access must be transferred to
the ICAP. This is accomplished by clearing the pcap_pr
(Bit[0]) in the PS CSU pcap_ctrl
register (pcap_ctrl
, address 0xFFCA3008
). To confirm that the SEM controller has access to the
configuration logic, ICAP_AVAIL can be monitored. If ICAP_AVAIL = 0, a higher priority
master such as MCAP, PCAP, or JTAG has control of the configuration logic. If ICAP_AVAIL
= 1, the SEM controller has access to the configuration.
For more information regarding PCAP, see the Zynq UltraScale+ Device Technical Reference Manual (UG1085).
When software running on the PS has completed
all necessary PCAP activity, it clears PCAP_PR and sets the GPIO connected to the
controller icap_grant
input, allowing the controller to
proceed with initialization. The signal applied to the icap_grant
input must be properly synchronized to the icap_clk
signal.
Although the software implementation of this behavior is outside the scope of this document, there are two application notes that can provide you with guidance on how to integrate the SEM controller with a PS. See Integrating LogiCORE SEM IP in Zynq UltraScale+ Devices (XAPP1298) and XAPP1303.
For detailed information about software development for Baremetal and Linux environments, see the Zynq UltraScale+ MPSoC: Software Developers Guide (UG1137) and BSP and Libraries Document Collection (UG643).