Isolation Scheme for ultra96 Petalinux

Hello,

I’m developing a system based on UltraScale+ and I’m using ultra96-v2 as dev platform. I’m also using ultra96v2_oob_2018_3 as reference design for Vivado block design. This system is supposed to run Petalinux on A53 cores and Real-time application on R5 cores.

My problems begun when I tried to add Isolation Configuration to the Linux, following this guide: https://xilinx-wiki.atlassian.net/wiki/pages/viewpage.action?pageId=18842442&pageVersion=1, first example.

I could synthesize and export the hardware and also built the Petalinux normally, however, i got boot issues:

Since this is being caused after introducing isolation, I suppose that there is some mistake on it. It seems some important memory/register access are being prevented under my isolation scheme, causing this crash.

Is there some specific guideline on how to setup isolation for Petalinux on this specific hardware?

Thanks!

Looking at the ESR, it’s a synchronous external aborts during a write. Looking at other general purpose registers, you probably access something (memory, device) at 0xfffffffffe0…, not sure what is mapped here though, and if it’s reserved for secure domain. Depending what you changed in the mapping, the bootloader (u-boot), or more precisely its devicetree may have to be updated to not expose non-availble areas/devices.

Hi, Loic,

I actually suspected that some of these number stored on the registers could contain the address of the failed access, but no idea which one. However the 0xfffffffffe0… address could not be, because the ZynqUS+ mapping goes up to 0xFF.FFFF.FFFF (1TB).

This failure is happening in a Petalinux project created from scratch after synthesizing the hardware (and .hdf). So it didn’t suffer much customization except the UART channel (Ultra92 routes uart1 to the edge pins but Petalinux selects uart0 by default).

I also tried to create a new Vivado project with a new block design with a minimalist hardware using few PS peripherals and none in PL (instead of use “ultra96v2_oob_2018_3” as I mentioned). I got the same problem: the Petalinux created from .hdf works fine without isolation but show the same failure after apply isolation.