summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bsps/arm/altera-cyclone-v/include/bsp.h2
-rw-r--r--bsps/arm/altera-cyclone-v/start/bspgetworkarea.c14
-rw-r--r--bsps/arm/altera-cyclone-v/start/bspstart.c4
-rw-r--r--c/src/lib/libbsp/arm/altera-cyclone-v/configure.ac3
4 files changed, 20 insertions, 3 deletions
diff --git a/bsps/arm/altera-cyclone-v/include/bsp.h b/bsps/arm/altera-cyclone-v/include/bsp.h
index 92bc95531b..06e68bbfe1 100644
--- a/bsps/arm/altera-cyclone-v/include/bsp.h
+++ b/bsps/arm/altera-cyclone-v/include/bsp.h
@@ -27,8 +27,6 @@
#define BSP_FEATURE_IRQ_EXTENSION
-#define BSP_FDT_IS_SUPPORTED
-
#ifndef ASM
#include <rtems.h>
diff --git a/bsps/arm/altera-cyclone-v/start/bspgetworkarea.c b/bsps/arm/altera-cyclone-v/start/bspgetworkarea.c
index a3c702de98..8628fb0b46 100644
--- a/bsps/arm/altera-cyclone-v/start/bspgetworkarea.c
+++ b/bsps/arm/altera-cyclone-v/start/bspgetworkarea.c
@@ -15,6 +15,8 @@
#include <libfdt.h>
+#ifdef BSP_FDT_IS_SUPPORTED
+
#define AREA_COUNT_MAX 16
static const char memory_path[] = "/memory";
@@ -147,17 +149,26 @@ static size_t remove_reserved_memory(
return area_count;
}
+#else /* !BSP_FDT_IS_SUPPORTED */
+
+#define AREA_COUNT_MAX 1
+
+#endif /* BSP_FDT_IS_SUPPORTED */
+
void bsp_work_area_initialize(void)
{
- const void *fdt;
Heap_Area areas[AREA_COUNT_MAX];
size_t area_count;
+#ifdef BSP_FDT_IS_SUPPORTED
+ const void *fdt;
size_t i;
+#endif
areas[0].begin = bsp_section_work_begin;
areas[0].size = (uintptr_t) bsp_section_work_size;
area_count = 1;
+#ifdef BSP_FDT_IS_SUPPORTED
fdt = bsp_fdt_get();
adjust_memory_size(fdt, &areas[0]);
@@ -170,6 +181,7 @@ void bsp_work_area_initialize(void)
ARMV7_MMU_READ_WRITE_CACHED
);
}
+#endif
bsp_work_area_initialize_with_table(areas, area_count);
}
diff --git a/bsps/arm/altera-cyclone-v/start/bspstart.c b/bsps/arm/altera-cyclone-v/start/bspstart.c
index c7eae97fdc..ac84f54147 100644
--- a/bsps/arm/altera-cyclone-v/start/bspstart.c
+++ b/bsps/arm/altera-cyclone-v/start/bspstart.c
@@ -21,6 +21,7 @@
#include <libfdt.h>
+#ifdef BSP_FDT_IS_SUPPORTED
uint32_t bsp_fdt_map_intr(const uint32_t *intr, size_t icells)
{
return intr[1] + 32;
@@ -90,10 +91,13 @@ static void update_clocks(void)
set_clock_by_output_name(fdt, ALT_CLK_F2H_PERIPH_REF, "hps_0_f2s_periph_ref_clk-clk");
set_clock_by_output_name(fdt, ALT_CLK_F2H_SDRAM_REF, "hps_0_f2s_sdram_ref_clk-clk");
}
+#endif
void bsp_start(void)
{
+#ifdef BSP_FDT_IS_SUPPORTED
update_clocks();
+#endif
bsp_interrupt_initialize();
rtems_cache_coherent_add_area(
bsp_section_nocacheheap_begin,
diff --git a/c/src/lib/libbsp/arm/altera-cyclone-v/configure.ac b/c/src/lib/libbsp/arm/altera-cyclone-v/configure.ac
index c6d8dec7ce..0fa7f66af5 100644
--- a/c/src/lib/libbsp/arm/altera-cyclone-v/configure.ac
+++ b/c/src/lib/libbsp/arm/altera-cyclone-v/configure.ac
@@ -27,6 +27,9 @@ RTEMS_BSPOPTS_HELP([BSP_DATA_CACHE_ENABLED],[enable data cache])
RTEMS_BSPOPTS_SET([BSP_INSTRUCTION_CACHE_ENABLED],[*],[1])
RTEMS_BSPOPTS_HELP([BSP_INSTRUCTION_CACHE_ENABLED],[enable instruction cache])
+RTEMS_BSPOPTS_SET([BSP_FDT_IS_SUPPORTED],[*],[1])
+RTEMS_BSPOPTS_HELP([BSP_FDT_IS_SUPPORTED],[define if FDT is supported])
+
RTEMS_BSPOPTS_SET([BSP_START_COPY_FDT_FROM_U_BOOT],[*],[1])
RTEMS_BSPOPTS_HELP([BSP_START_COPY_FDT_FROM_U_BOOT],[copy the U-Boot provided FDT to an internal storage])