board: lx2160a: Align RD tables address to 64KB
authorHou Zhiqiang <Zhiqiang.Hou@nxp.com>
Tue, 28 Apr 2020 02:19:30 +0000 (10:19 +0800)
committerPriyanka Jain <priyanka.jain@nxp.com>
Tue, 28 Apr 2020 12:16:46 +0000 (17:46 +0530)
As the lower 16bit of the redistributor pending table is reserved
for describing the memory attributes, we must give a 64KB aligned
address to the GIC LPI initialization function.

Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou@nxp.com>
Reviewed-by: Wasim Khan <wasim.khan@nxp.com>
Signed-off-by: Priyanka Jain <priyanka.jain@nxp.com>
board/freescale/lx2160a/lx2160a.c

index eafd530..5da74aa 100644 (file)
@@ -16,6 +16,7 @@
 #include <asm/io.h>
 #include <fdt_support.h>
 #include <linux/libfdt.h>
+#include <linux/sizes.h>
 #include <fsl-mc/fsl_mc.h>
 #include <env_internal.h>
 #include <efi_loader.h>
@@ -694,7 +695,7 @@ int ft_board_setup(void *blob, bd_t *bd)
        }
 
 #ifdef CONFIG_GIC_V3_ITS
-       gic_lpi_base = gd->arch.resv_ram - GIC_LPI_SIZE;
+       gic_lpi_base = ALIGN(gd->arch.resv_ram - GIC_LPI_SIZE, SZ_64K);
        ret = fdt_fixup_gic_lpi_memory(blob, gic_lpi_base);
        if (!ret && gic_lpi_tables_init(gic_lpi_base, cpu_numcores()))
                debug("%s: failed to init gic-lpi-tables\n", __func__);