cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Participant
Participant
451 Views
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:

bstype |= BIT(ZYNQMP_FPGA_BIT_NS);

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
1 Reply
Highlighted
Visitor
Visitor
140 Views
Registered: ‎09-20-2019

Re: Interfacing PMU from 32 bit OS to load bitstream

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 https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18841847/Solution+ZynqMP+PL+Programming, 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