summaryrefslogtreecommitdiffstats
path: root/bsps
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2020-02-10 10:35:11 +0100
committerChristian Mauderer <christian.mauderer@embedded-brains.de>2020-02-11 09:17:02 +0100
commit8854a2b54be7f9fd74589605d19cae823827eb1b (patch)
tree975d545cd6ec74bb5e44d47d5d168fd0d1e32c78 /bsps
parentsptests/spregion_err01: Reduce memory demands (diff)
downloadrtems-8854a2b54be7f9fd74589605d19cae823827eb1b.tar.bz2
bsp/imx: Avoid hard-coded GIC base address
Update #3869.
Diffstat (limited to 'bsps')
-rw-r--r--bsps/arm/imx/include/bsp.h6
-rw-r--r--bsps/arm/imx/start/bspstart.c11
2 files changed, 15 insertions, 2 deletions
diff --git a/bsps/arm/imx/include/bsp.h b/bsps/arm/imx/include/bsp.h
index 4ed35c68fe..134b3fd858 100644
--- a/bsps/arm/imx/include/bsp.h
+++ b/bsps/arm/imx/include/bsp.h
@@ -47,9 +47,11 @@
extern "C" {
#endif /* __cplusplus */
-#define BSP_ARM_GIC_DIST_BASE 0x31001000
+extern uintptr_t imx_gic_dist_base;
-#define BSP_ARM_GIC_CPUIF_BASE 0x31002000
+#define BSP_ARM_GIC_DIST_BASE imx_gic_dist_base
+
+#define BSP_ARM_GIC_CPUIF_BASE (BSP_ARM_GIC_DIST_BASE + 0x1000)
#define BSP_ARM_A9MPCORE_GT_BASE 0
diff --git a/bsps/arm/imx/start/bspstart.c b/bsps/arm/imx/start/bspstart.c
index 046336655b..3a87c437d2 100644
--- a/bsps/arm/imx/start/bspstart.c
+++ b/bsps/arm/imx/start/bspstart.c
@@ -82,8 +82,19 @@ void arm_generic_timer_get_config(
*irq = imx_get_irq_of_node(fdt, node, 0) - 16;
}
+uintptr_t imx_gic_dist_base;
+
+static void imx_find_gic(const void *fdt)
+{
+ int node;
+
+ node = fdt_path_offset(fdt, "/interrupt-controller");
+ imx_gic_dist_base = (uintptr_t) imx_get_reg_of_node(fdt, node);
+}
+
void bsp_start(void)
{
+ imx_find_gic(bsp_fdt_get());
bsp_interrupt_initialize();
rtems_cache_coherent_add_area(
bsp_section_nocacheheap_begin,