I am trying to run fsbl from R5 with isolation methods. I'm working on zynq Ultrascale+ MPSoC zcu102.
In Vivado I have two subsystems: APU and RPU.
Unfortunately, I don't have all the different configurations I've tried in which I get the same error.
I just have the latest test configuration (which generates the same error):
Then I generate the fsbl on SDK, and I program the flash with just the fsbl and the .bit file.
The execution goes without problems up to to Stage 4 in which there is an error:
------------------ In Stage 4 -------------------------
PMU-FW is not running, certain applications may not be supported.
XFSBL_ERROR_DATA_ABORT_EXCEPTION
Fsbl Error Status: 0x0000001E
XFSBL_ERROR_DATA_ABORT_EXCEPTION
Fsbl Error Status: 0x0000001E
XFSBL_ERROR_DATA_ABORT_EXCEPTION
Fsbl Error Status: 0x0000001E
XFSBL_ERROR_DATA_ABORT_EXCEPTION
Fsbl Error Status: 0x0000001E
XFSBL_ERROR_DATA_ABORT_EXCEPTION
Fsbl Error Status: 0x0000001E
....
I've noticed that the error occur in the xfsbl_handoff.c when is called the function psu_protection() of psu_init.c
psu_protection()
- psu_apply_master_tz();
- psu_ddr_protection();
- psu_ocm_protection();
- psu_fpd_protection();
- psu_lpd_protection();
More precisely in the psu_apply_master_tz() the first two instuctions are:
PSU_Mask_Write(LPD_SLCR_SECURE_SLCR_RPU_OFFSET, 0x00000003U,0x00000003U); //this instruction works
PSU_Mask_Write(FPD_SLCR_SECURE_SLCR_DPDMA_OFFSET, 0x00000001U,0x00000001U); //this instruction causes the error
I cannot figure out why this happens, also beacuse that adding a code to read and write the register FPD_SLCR_SECURE_SLCR_DPDMA_OFFSET (0xFD690040) before psu_protection(), the r/w seems to work.
Unfortunately, I had to write the error code by hand since I do not currently have access to the pc on which I was working.
However, I hope someone has an idea on how I can solve the problem.