Browse Source

SPMD: fix boundary check if manifest is page aligned

while mapping SPMC manifest page in the SPMD translation regime the
mapped size was resolved to zero if SPMC manifest base address is PAGE
aligned, causing SPMD to abort.

To fix the problem change mapped size to PAGE_SIZE if manifest base is
PAGE aligned.

Signed-off-by: Manish Pandey <manish.pandey2@arm.com>
Change-Id: I06cd39dbefaf492682d9bbb0c82b950dd31fb416
pull/1979/head
Manish Pandey 4 years ago
parent
commit
fdd5f9e6d6
  1. 8
      plat/common/plat_spmd_manifest.c

8
plat/common/plat_spmd_manifest.c

@ -128,7 +128,13 @@ int plat_spm_core_manifest_load(spmc_manifest_attribute_t *manifest,
*/
pm_base = (uintptr_t)pm_addr;
pm_base_align = page_align(pm_base, UP);
mapped_size = pm_base_align - pm_base;
if (pm_base == pm_base_align) {
/* Page aligned */
mapped_size = PAGE_SIZE;
} else {
mapped_size = pm_base_align - pm_base;
}
/* Check space within the page at least maps the FDT header */
if (mapped_size < sizeof(struct fdt_header)) {

Loading…
Cancel
Save