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

Using smc fpga load API from 32 bit OS fails

Hi all,

I am using zcu102 board to develop code that at run-time requests pmu service to load a bitstream into fpga.

My code worked with code released as version 2017.2, but fails with 2018.2.

U-boot has no problem loading this bitstream by commands at its prompt - so the file is correctly generated.

When my code is used for loading it fails with this message: "Crypto flags not matched with Image crypto operation". It comes from XFpga_PL_BitSream_Load.

I traced this to be a parameter passing issue: a parameter that was not used in v2017.2 and was 0 is now used, e.g. by u-boot, to pass the ZYNQMP_FPGA_BIT_NS flag in zynqmp_load.

Hard coding this as flag parameter to be 0x20 in PmFpgaLoad that calls XFpga_PL_BitSream_Load makes the load successfull.


I need help to find where this parameter gets corrupt. It is passed in r4 per smc call API. But, in XIpiPsu_ReadMessage it is read as zero from the message buffer. All other parameters are intact. I was not able to find where the parameters are actually written to this buffer.


Please: any thoughts, pointers to docs, other places to look, whatever can help to understand what am I doing wrong.

Kind regards



Tags (4)
0 Kudos
1 Reply
Registered: ‎09-20-2019

Re: Using smc fpga load API from 32 bit OS fails

I have received this error recently, and have been able to solve it by generating my bin files using the correct command line options for my version of bootgen. According to, bootgen has different input options based on the version of bootgen (2017.4 or earlier vs. 2018.1 or later). After changing the command to generate the bin file, I was able to load the FPGA without a problem. I hope this helps you.

0 Kudos