We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

Showing results for 
Search instead for 
Did you mean: 
Observer aroytman
Registered: ‎12-07-2017

Interfacing PMU from 32 bit OS to load bitstream

Hello all,


I work with the ZCU102 evaluation board.

I have a problem interfacing PMU firmware from a 32 bit commercial OS, a.k.a. ARMv7 mode.

U-boot runs, loads the OS that starts running. It switches the CPU to 32 bit.


I need to load the FPGA dynamically from OS. This is the service that is requested from PMU. The BOOT.BIN is packaged w/o any bitstream.

No authentication/encryption is used. It worked with version 2017.2, but does not work with 2018.2.

With complete package (fsbl, pmu, u-boot) from 2018.2 I get this failure message: “Crypto flags not matched with Image crypto operation”.

This comes from XFpga_PL_BitSream_Load (xilfpga_pcap.c).


However, u-boot is able to load the FPGA via command at the prompt.

The bit file was created by 2017.2 version – seems not to matter since u-boot can load it.

Using a file created by 2018.2 gives same results.


I did not find an updated documentation regarding PMU interface change, however, after some debugging I see that parameter that used to hold the

length of bitstream now holds  a pointer to length. I did not find other differences except this one: the zynqmp_load  (zynqmppl.c) routine now has this line:


just before calling invoke_smc.


I changed my code to do the same, but seems that this is not what is eventually goes to PmIpiHandler (xpfw_mod_pm.c) -  I printed the what is pointed to by the Payload parameter.


Any thoughts, pointers where to look, documentation of updated interface, etc. are most welcome.


Kind regards

Tags (1)
0 Kudos