forked from Imagelibrary/rtems
bsp/altera-cyclone-v: Make FDT support optional
This commit is contained in:
@@ -27,8 +27,6 @@
|
|||||||
|
|
||||||
#define BSP_FEATURE_IRQ_EXTENSION
|
#define BSP_FEATURE_IRQ_EXTENSION
|
||||||
|
|
||||||
#define BSP_FDT_IS_SUPPORTED
|
|
||||||
|
|
||||||
#ifndef ASM
|
#ifndef ASM
|
||||||
|
|
||||||
#include <rtems.h>
|
#include <rtems.h>
|
||||||
|
|||||||
@@ -15,6 +15,8 @@
|
|||||||
|
|
||||||
#include <libfdt.h>
|
#include <libfdt.h>
|
||||||
|
|
||||||
|
#ifdef BSP_FDT_IS_SUPPORTED
|
||||||
|
|
||||||
#define AREA_COUNT_MAX 16
|
#define AREA_COUNT_MAX 16
|
||||||
|
|
||||||
static const char memory_path[] = "/memory";
|
static const char memory_path[] = "/memory";
|
||||||
@@ -147,17 +149,26 @@ static size_t remove_reserved_memory(
|
|||||||
return area_count;
|
return area_count;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#else /* !BSP_FDT_IS_SUPPORTED */
|
||||||
|
|
||||||
|
#define AREA_COUNT_MAX 1
|
||||||
|
|
||||||
|
#endif /* BSP_FDT_IS_SUPPORTED */
|
||||||
|
|
||||||
void bsp_work_area_initialize(void)
|
void bsp_work_area_initialize(void)
|
||||||
{
|
{
|
||||||
const void *fdt;
|
|
||||||
Heap_Area areas[AREA_COUNT_MAX];
|
Heap_Area areas[AREA_COUNT_MAX];
|
||||||
size_t area_count;
|
size_t area_count;
|
||||||
|
#ifdef BSP_FDT_IS_SUPPORTED
|
||||||
|
const void *fdt;
|
||||||
size_t i;
|
size_t i;
|
||||||
|
#endif
|
||||||
|
|
||||||
areas[0].begin = bsp_section_work_begin;
|
areas[0].begin = bsp_section_work_begin;
|
||||||
areas[0].size = (uintptr_t) bsp_section_work_size;
|
areas[0].size = (uintptr_t) bsp_section_work_size;
|
||||||
area_count = 1;
|
area_count = 1;
|
||||||
|
|
||||||
|
#ifdef BSP_FDT_IS_SUPPORTED
|
||||||
fdt = bsp_fdt_get();
|
fdt = bsp_fdt_get();
|
||||||
|
|
||||||
adjust_memory_size(fdt, &areas[0]);
|
adjust_memory_size(fdt, &areas[0]);
|
||||||
@@ -170,6 +181,7 @@ void bsp_work_area_initialize(void)
|
|||||||
ARMV7_MMU_READ_WRITE_CACHED
|
ARMV7_MMU_READ_WRITE_CACHED
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
bsp_work_area_initialize_with_table(areas, area_count);
|
bsp_work_area_initialize_with_table(areas, area_count);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,6 +21,7 @@
|
|||||||
|
|
||||||
#include <libfdt.h>
|
#include <libfdt.h>
|
||||||
|
|
||||||
|
#ifdef BSP_FDT_IS_SUPPORTED
|
||||||
uint32_t bsp_fdt_map_intr(const uint32_t *intr, size_t icells)
|
uint32_t bsp_fdt_map_intr(const uint32_t *intr, size_t icells)
|
||||||
{
|
{
|
||||||
return intr[1] + 32;
|
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_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");
|
set_clock_by_output_name(fdt, ALT_CLK_F2H_SDRAM_REF, "hps_0_f2s_sdram_ref_clk-clk");
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
void bsp_start(void)
|
void bsp_start(void)
|
||||||
{
|
{
|
||||||
|
#ifdef BSP_FDT_IS_SUPPORTED
|
||||||
update_clocks();
|
update_clocks();
|
||||||
|
#endif
|
||||||
bsp_interrupt_initialize();
|
bsp_interrupt_initialize();
|
||||||
rtems_cache_coherent_add_area(
|
rtems_cache_coherent_add_area(
|
||||||
bsp_section_nocacheheap_begin,
|
bsp_section_nocacheheap_begin,
|
||||||
|
|||||||
@@ -27,6 +27,9 @@ RTEMS_BSPOPTS_HELP([BSP_DATA_CACHE_ENABLED],[enable data cache])
|
|||||||
RTEMS_BSPOPTS_SET([BSP_INSTRUCTION_CACHE_ENABLED],[*],[1])
|
RTEMS_BSPOPTS_SET([BSP_INSTRUCTION_CACHE_ENABLED],[*],[1])
|
||||||
RTEMS_BSPOPTS_HELP([BSP_INSTRUCTION_CACHE_ENABLED],[enable instruction cache])
|
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_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])
|
RTEMS_BSPOPTS_HELP([BSP_START_COPY_FDT_FROM_U_BOOT],[copy the U-Boot provided FDT to an internal storage])
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user