Hi,
I see below code for manifest address calculation in arm platform. But it is ARM platform specific. I am not sure how the manifest load address is decided when BL2 loads it. There is no image address in this code. https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git/tree/plat/arm/co.... Below calculation is wrong on iMX platform and cause below error.
bl32_image_ep_info.args.arg0 = BL32_BASE + BL32_SIZE - PAGE_SIZE;
125 /* SPM (hafnium in secure world) expects SPM Core manifest base address 126 * in x0, which in !RESET_TO_BL31 case loaded after base of non shared 127 * SRAM(after 4KB offset of SRAM). But in RESET_TO_BL31 case all non 128 * shared SRAM is allocated to BL31, so to avoid overwriting of manifest 129 * keep it in the last page. 130 */ 131 bl32_image_ep_info.args.arg0 = ARM_TRUSTED_SRAM_BASE + 132 PLAT_ARM_TRUSTED_SRAM_SIZE - PAGE_SIZE;
ERROR: Error while mapping SPM Core manifest (-1). WARNING: No or invalid SPM Core manifest image provided by BL2 WARNING: Booting device without SPM initialization. ERROR: Error initializing runtime service std_svc INFO: BL31: Preparing for EL3 exit to normal world
Regards, Jun