summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2015-10-08 13:29:56 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2015-10-08 13:34:40 +0200
commitbc820946793426dbdc450dc8bba4a15d01006182 (patch)
tree0f688f3a9a916b69b5da514ed7c57ee1d297a49c
parentbsp/qoriq: Add BMan and QMan Portals (diff)
downloadrtems-bc820946793426dbdc450dc8bba4a15d01006182.tar.bz2
bsps: Add .nocacheheap section
This avoids consumption of a loadable address space for the nocache heap.
-rw-r--r--c/src/lib/libbsp/arm/altera-cyclone-v/startup/bspstart.c6
-rw-r--r--c/src/lib/libbsp/arm/shared/include/linker-symbols.h10
-rw-r--r--c/src/lib/libbsp/arm/shared/startup/linkcmds.base15
-rw-r--r--c/src/lib/libbsp/arm/xilinx-zynq/startup/bspstart.c6
-rw-r--r--c/src/lib/libbsp/powerpc/shared/include/linker-symbols.h8
-rw-r--r--c/src/lib/libbsp/powerpc/shared/startup/linkcmds.base13
6 files changed, 36 insertions, 22 deletions
diff --git a/c/src/lib/libbsp/arm/altera-cyclone-v/startup/bspstart.c b/c/src/lib/libbsp/arm/altera-cyclone-v/startup/bspstart.c
index 52e535c21c..c10dad3b45 100644
--- a/c/src/lib/libbsp/arm/altera-cyclone-v/startup/bspstart.c
+++ b/c/src/lib/libbsp/arm/altera-cyclone-v/startup/bspstart.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2013-2014 embedded brains GmbH. All rights reserved.
+ * Copyright (c) 2013-2015 embedded brains GmbH. All rights reserved.
*
* embedded brains GmbH
* Dornierstr. 4
@@ -22,7 +22,7 @@ void bsp_start( void )
a9mpcore_clock_initialize_early();
bsp_interrupt_initialize();
rtems_cache_coherent_add_area(
- bsp_nocache_heap_begin,
- (uintptr_t) bsp_nocache_heap_size
+ bsp_section_nocacheheap_begin,
+ (uintptr_t) bsp_section_nocacheheap_size
);
}
diff --git a/c/src/lib/libbsp/arm/shared/include/linker-symbols.h b/c/src/lib/libbsp/arm/shared/include/linker-symbols.h
index 8bfa5d172d..7c966d58c3 100644
--- a/c/src/lib/libbsp/arm/shared/include/linker-symbols.h
+++ b/c/src/lib/libbsp/arm/shared/include/linker-symbols.h
@@ -7,7 +7,7 @@
*/
/*
- * Copyright (c) 2008-2014 embedded brains GmbH. All rights reserved.
+ * Copyright (c) 2008-2015 embedded brains GmbH. All rights reserved.
*
* embedded brains GmbH
* Dornierstr. 4
@@ -119,6 +119,10 @@ LINKER_SYMBOL(bsp_section_nocache_size)
LINKER_SYMBOL(bsp_section_nocache_load_begin)
LINKER_SYMBOL(bsp_section_nocache_load_end)
+LINKER_SYMBOL(bsp_section_nocacheheap_begin)
+LINKER_SYMBOL(bsp_section_nocacheheap_end)
+LINKER_SYMBOL(bsp_section_nocacheheap_size)
+
LINKER_SYMBOL(bsp_vector_table_begin)
LINKER_SYMBOL(bsp_vector_table_end)
LINKER_SYMBOL(bsp_vector_table_size)
@@ -130,10 +134,6 @@ LINKER_SYMBOL(bsp_start_vector_table_size)
LINKER_SYMBOL(bsp_translation_table_base)
LINKER_SYMBOL(bsp_translation_table_end)
-LINKER_SYMBOL(bsp_nocache_heap_begin)
-LINKER_SYMBOL(bsp_nocache_heap_end)
-LINKER_SYMBOL(bsp_nocache_heap_size)
-
#define BSP_FAST_TEXT_SECTION __attribute__((section(".bsp_fast_text")))
#define BSP_FAST_DATA_SECTION __attribute__((section(".bsp_fast_data")))
diff --git a/c/src/lib/libbsp/arm/shared/startup/linkcmds.base b/c/src/lib/libbsp/arm/shared/startup/linkcmds.base
index 8a653e9337..cfa9073534 100644
--- a/c/src/lib/libbsp/arm/shared/startup/linkcmds.base
+++ b/c/src/lib/libbsp/arm/shared/startup/linkcmds.base
@@ -7,10 +7,10 @@
*/
/*
- * Copyright (c) 2008-2014 embedded brains GmbH. All rights reserved.
+ * Copyright (c) 2008-2015 embedded brains GmbH. All rights reserved.
*
* embedded brains GmbH
- * Obere Lagerstr. 30
+ * Dornierstr. 4
* 82178 Puchheim
* Germany
* <rtems@embedded-brains.de>
@@ -400,16 +400,19 @@ SECTIONS {
.nocache : ALIGN_WITH_INPUT {
bsp_section_nocache_begin = .;
*(SORT(.bsp_nocache*))
- bsp_nocache_heap_begin = .;
- . += ORIGIN (REGION_NOCACHE) + LENGTH (REGION_NOCACHE) - ABSOLUTE (.);
- bsp_nocache_heap_end = .;
bsp_section_nocache_end = .;
} > REGION_NOCACHE AT > REGION_NOCACHE_LOAD
- bsp_nocache_heap_size = bsp_nocache_heap_end - bsp_nocache_heap_begin;
bsp_section_nocache_size = bsp_section_nocache_end - bsp_section_nocache_begin;
bsp_section_nocache_load_begin = LOADADDR (.nocache);
bsp_section_nocache_load_end = bsp_section_nocache_load_begin + bsp_section_nocache_size;
+ .nocacheheap (NOLOAD) : ALIGN_WITH_INPUT {
+ bsp_section_nocacheheap_begin = .;
+ . += ORIGIN (REGION_NOCACHE) + LENGTH (REGION_NOCACHE) - ABSOLUTE (.);
+ bsp_section_nocacheheap_end = .;
+ } > REGION_NOCACHE AT > REGION_NOCACHE
+ bsp_section_nocacheheap_size = bsp_section_nocacheheap_end - bsp_section_nocacheheap_begin;
+
/* FIXME */
RamBase = ORIGIN (REGION_WORK);
RamSize = LENGTH (REGION_WORK);
diff --git a/c/src/lib/libbsp/arm/xilinx-zynq/startup/bspstart.c b/c/src/lib/libbsp/arm/xilinx-zynq/startup/bspstart.c
index 62511e77b0..14a20df7ef 100644
--- a/c/src/lib/libbsp/arm/xilinx-zynq/startup/bspstart.c
+++ b/c/src/lib/libbsp/arm/xilinx-zynq/startup/bspstart.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2013-2014 embedded brains GmbH. All rights reserved.
+ * Copyright (c) 2013-2015 embedded brains GmbH. All rights reserved.
*
* embedded brains GmbH
* Dornierstr. 4
@@ -28,7 +28,7 @@ void bsp_start(void)
a9mpcore_clock_initialize_early();
bsp_interrupt_initialize();
rtems_cache_coherent_add_area(
- bsp_nocache_heap_begin,
- (uintptr_t) bsp_nocache_heap_size
+ bsp_section_nocacheheap_begin,
+ (uintptr_t) bsp_section_nocacheheap_size
);
}
diff --git a/c/src/lib/libbsp/powerpc/shared/include/linker-symbols.h b/c/src/lib/libbsp/powerpc/shared/include/linker-symbols.h
index 747457e9aa..4eb83be055 100644
--- a/c/src/lib/libbsp/powerpc/shared/include/linker-symbols.h
+++ b/c/src/lib/libbsp/powerpc/shared/include/linker-symbols.h
@@ -7,10 +7,10 @@
*/
/*
- * Copyright (c) 2010-2013 embedded brains GmbH. All rights reserved.
+ * Copyright (c) 2010-2015 embedded brains GmbH. All rights reserved.
*
* embedded brains GmbH
- * Donrierstr. 4
+ * Dornierstr. 4
* 82178 Puchheim
* Germany
* <rtems@embedded-brains.de>
@@ -99,6 +99,10 @@ LINKER_SYMBOL(bsp_section_nocache_size)
LINKER_SYMBOL(bsp_section_nocache_load_begin)
LINKER_SYMBOL(bsp_section_nocache_load_end)
+LINKER_SYMBOL(bsp_section_nocacheheap_begin)
+LINKER_SYMBOL(bsp_section_nocacheheap_end)
+LINKER_SYMBOL(bsp_section_nocacheheap_size)
+
LINKER_SYMBOL(bsp_section_nvram_begin)
LINKER_SYMBOL(bsp_section_nvram_end)
LINKER_SYMBOL(bsp_section_nvram_size)
diff --git a/c/src/lib/libbsp/powerpc/shared/startup/linkcmds.base b/c/src/lib/libbsp/powerpc/shared/startup/linkcmds.base
index 8d85dbf5af..d4f9007ba0 100644
--- a/c/src/lib/libbsp/powerpc/shared/startup/linkcmds.base
+++ b/c/src/lib/libbsp/powerpc/shared/startup/linkcmds.base
@@ -7,10 +7,10 @@
*/
/*
- * Copyright (c) 2011-2013 embedded brains GmbH. All rights reserved.
+ * Copyright (c) 2011-2015 embedded brains GmbH. All rights reserved.
*
* embedded brains GmbH
- * Obere Lagerstr. 30
+ * Dornierstr. 4
* 82178 Puchheim
* Germany
* <rtems@embedded-brains.de>
@@ -342,11 +342,18 @@ SECTIONS {
bsp_section_nocache_load_begin = LOADADDR (.nocache);
bsp_section_nocache_load_end = bsp_section_nocache_load_begin + bsp_section_nocache_size;
+ .nocacheheap (NOLOAD) : ALIGN_WITH_INPUT {
+ bsp_section_nocacheheap_begin = .;
+ . += ORIGIN (REGION_NOCACHE) + LENGTH (REGION_NOCACHE) - ABSOLUTE (.);
+ bsp_section_nocacheheap_end = .;
+ } > REGION_NOCACHE AT > REGION_NOCACHE
+ bsp_section_nocacheheap_size = bsp_section_nocacheheap_end - bsp_section_nocacheheap_begin;
+
.nvram (NOLOAD) : ALIGN_WITH_INPUT {
bsp_section_nvram_begin = .;
*(SORT(.bsp_nvram*))
bsp_section_nvram_end = .;
- } > REGION_NVRAM
+ } > REGION_NVRAM AT > REGION_NVRAM
bsp_section_nvram_size = bsp_section_nvram_end - bsp_section_nvram_begin;
/* FIXME */