Partial reconfiguration on ZynqMP

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi everyone,

We are currently trying to use partial reconfiguration for our ZynqMP-
based system (part is xczu6eg) and device-tree overlay based
reconfiguration crashes.
Our Linux system is using 5.10.0-xilinx-v2021.1.

The reconfigurable partition is decoupled from the rest of the design
with an AXI-shutdown manager IP and a DFX decoupler (the
shutdown_requested signal of the AXI shutdown manager is used to drive
the request_shutdown of the DFX decoupler).

The relevant parts of the device tree are:

---- BEGIN SNIP ----
fpga_full: fpga-full {
		status = "okay";
		reconf_region: reconf_region0 {
			  compatible = "fpga-region";
			  fpga-bridges = <&reconf_bridge0>;
		};
       };

reconf_bridge0: reconf_bridge@a0080000  {
			status = "okay";
			compatible = "xlnx,dfx-axi-shutdown-manager-
1.00";
			reg = <0x0 0xa0080000 0x0 0x10>;
			clock-names = "aclk";
			clocks = <&zynqmp_clk 73>;
			bridge-enable = <1>;
		};
---- END SNIP ----

To reconfigure, I tested the following cases:

1. manual reconfiguration: WORKS
   - decouple by writing to the register directly
   - reconfigure directly with the fpga-manager
   - recouple by writing directly to the register
   
2. full reconfiguration with device-tree overlay: WORKS
   - we feed the full bitstream to the FPGA manager
   - using the following device-tree overlay:
---- BEGIN SNIP ----
/dts-v1/;
/plugin/;

&reconf_region {
	firmware-name = "full.bit";
};
---- BEGIN SNIP ----

3. partial reconfiguration with device-tree overlay:
   - we feed the full bitstream to the FPGA manager
   - using the following device-tree overlay:
---- BEGIN SNIP ----
/dts-v1/;
/plugin/;

&reconf_region {
	partial-fpga-config;
	fpga-bridges = <&reconf_bridge0>;
	firmware-name = "partial.bit";
};
---- BEGIN SNIP ----

In this case, the whole system crashes (even the platform cable does
not respond anymore).
When setting an ILA trigger on the write valid signal of the AXI
control path of the AXI Shutdown manager, the ILA appears to trigger
but crashes before the data is shown in the hardware manager window of
Vivado.

When the partial bitstream written by the overlay is already loaded (by
hand, as is case 1), the reconfiguration using an overlay works and the
AXI Shutdown manager is written to as expected.

Do you have an idea on what is going wrong here ?
As I manage to do the reconfiguration by hand, I suspect a
configuration/device-tree/software error.

Best regards

Simon Doppler




[Index of Archives]     [LM Sensors]     [Linux Sound]     [ALSA Users]     [ALSA Devel]     [Linux Audio Users]     [Linux Media]     [Kernel]     [Gimp]     [Yosemite News]     [Linux Media]

  Powered by Linux