summaryrefslogtreecommitdiff
path: root/board/freescale/lx2160a/lx2160a.c
diff options
context:
space:
mode:
authorWasim Khan <wasim.khan@nxp.com>2020-02-14 11:04:36 +0530
committerPriyanka Jain <priyanka.jain@nxp.com>2020-03-30 08:06:51 +0530
commit8cf113f473fdb60b62f939a21bc7f51795b168d8 (patch)
tree6a45571c419c1d0110291fe66b9a07119636e93a /board/freescale/lx2160a/lx2160a.c
parente07f30f681b2d6abeaf110094af5da7f6cc3c5c9 (diff)
board: fsl: lx2160a: Add GIC LPI memory reserve fixup
Reserve DDR memory region used for GIC LPI configuration table. Signed-off-by: Wasim Khan <wasim.khan@nxp.com> Reviewed-by: Priyanka Jain <priyanka.jain@nxp.com>
Diffstat (limited to 'board/freescale/lx2160a/lx2160a.c')
-rw-r--r--board/freescale/lx2160a/lx2160a.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/board/freescale/lx2160a/lx2160a.c b/board/freescale/lx2160a/lx2160a.c
index 7ccd2483fb..8e22689ec7 100644
--- a/board/freescale/lx2160a/lx2160a.c
+++ b/board/freescale/lx2160a/lx2160a.c
@@ -631,6 +631,21 @@ void board_quiesce_devices(void)
}
#endif
+#ifdef CONFIG_GIC_V3_ITS
+void fdt_fixup_gic_lpi_memory(void *blob, u64 gic_lpi_base)
+{
+ u32 phandle;
+ int err;
+ struct fdt_memory gic_lpi;
+
+ gic_lpi.start = gic_lpi_base;
+ gic_lpi.end = gic_lpi_base + GIC_LPI_SIZE - 1;
+ err = fdtdec_add_reserved_memory(blob, "gic-lpi", &gic_lpi, &phandle);
+ if (err < 0)
+ debug("failed to add reserved memory: %d\n", err);
+}
+#endif
+
#ifdef CONFIG_OF_BOARD_SETUP
int ft_board_setup(void *blob, bd_t *bd)
{
@@ -665,6 +680,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_tables_init(gic_lpi_base, cpu_numcores());
+ fdt_fixup_gic_lpi_memory(blob, gic_lpi_base);
#endif
#ifdef CONFIG_RESV_RAM