cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
263 Views
Registered: ‎05-10-2018

Adding Security Isolation to Zynq PetaLinux system causes FSBL hang

Hello All,

I have created a multiprocessor system for Zynq in which the APU is running PetaLinux and a RPU is running bare metal.  All is functioning as it should.  My boot is from QSPI memory, booting the APU which in turn boots the RPU and starts it with the remoteproc() function.

The RPU is executing from TCM memory, and I would like to isolate the TCM memory to the RPU such that the APU does not have visibility to the TCM.  For this, I am using the Advanced / Isolation utility in the ZYNQ processor configuration wizard.  I'm using Vivado 2018.2, and some of the documentation I find doesn't fit the 2018.2 version of the isolation utility.  I did, however, find some information on PetaLinux isolation that matches the Vivado 2018 version at https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18842442/Zynq+UltraScale+Isolation+Configuration

They recommended setting up as a secure master 'LINUX', with the QSPI, APU, and other items as sub-masters.  This appears to be in addition to configuring the standard APU, RPU, and PMU masters.  I also isolated the entire TCM (all 4 64KB banks) to the RPU.

In this and several previous attempt, my boot process is hanging at the FSBL whenever I activate any type of isolation.  When I deactivate isolation all returns to normal.  I even tried a very simple isolation in which I only set up the default PMU as well as a RPU with no memory regions defined.  (In every attempt I leave unchecked the box that secures unmentioned memory regions.)   I am unsure if I have a configuration word, memory region, or peripheral improperly configured which is causing the FSBL hang, or if it is because I have blocked APU access to the TCM (I am unclear if the loading of TCM instruction memory for the RPU when using remoteproc() requires APU access to TCM, or if the PMU processor handles TCM configuration).  I have seen there is an alternate boot method in which the RPU runs the FSBL using a .BIF file, however I would like to stay with my current boot sequence if possible.

It is difficult when there are no error messages, and the only result is a hang with no clear way of knowing what area the problem lies in.  Does anyone have any suggestions or documentation to recommend (I have read the Xilinx Isolation document, however this appears to not include the QSPI boot memory needed for PetaLinux).  Possibly one clue is that the boot hangs early on with the FSBL.  Thank you.

Tags (2)
0 Kudos
0 Replies