summaryrefslogtreecommitdiffstats
path: root/bsps/arm/imx/start/bspstarthooks.c
diff options
context:
space:
mode:
Diffstat (limited to 'bsps/arm/imx/start/bspstarthooks.c')
-rw-r--r--bsps/arm/imx/start/bspstarthooks.c28
1 files changed, 22 insertions, 6 deletions
diff --git a/bsps/arm/imx/start/bspstarthooks.c b/bsps/arm/imx/start/bspstarthooks.c
index 30e03dd788..868da5a192 100644
--- a/bsps/arm/imx/start/bspstarthooks.c
+++ b/bsps/arm/imx/start/bspstarthooks.c
@@ -22,6 +22,8 @@
#include <bsp/arm-cp15-start.h>
#include <bsp/arm-a9mpcore-start.h>
+#include <rtems/sysinit.h>
+
#include <libfdt.h>
BSP_START_DATA_SECTION static arm_cp15_start_section_config
@@ -106,13 +108,27 @@ BSP_START_TEXT_SECTION void bsp_start_hook_1(void)
bsp_start_clear_bss();
}
-void bsp_work_area_initialize(void)
+static Memory_Area _Memory_Areas[1];
+
+static void bsp_memory_initialize(void)
{
- uintptr_t begin;
- uintptr_t end;
+ _Memory_Initialize(
+ &_Memory_Areas[0],
+ imx_mmu_config_table[ARMV7_CP15_START_WORKSPACE_ENTRY_INDEX].begin,
+ imx_mmu_config_table[ARMV7_CP15_START_WORKSPACE_ENTRY_INDEX].end
+ );
+}
+
+RTEMS_SYSINIT_ITEM(
+ bsp_memory_initialize,
+ RTEMS_SYSINIT_MEMORY,
+ RTEMS_SYSINIT_ORDER_MIDDLE
+);
- begin = imx_mmu_config_table[ARMV7_CP15_START_WORKSPACE_ENTRY_INDEX].begin;
- end = imx_mmu_config_table[ARMV7_CP15_START_WORKSPACE_ENTRY_INDEX].end;
+static const Memory_Information _Memory_Information =
+ MEMORY_INFORMATION_INITIALIZER(_Memory_Areas);
- bsp_work_area_initialize_default((void *) begin, end - begin);
+const Memory_Information *_Memory_Get(void)
+{
+ return &_Memory_Information;
}