diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2015-10-28 10:18:05 +0100 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2015-10-28 13:04:19 +0100 |
commit | 53c99b8ad131160cff9d62f8da6efdc354f364bb (patch) | |
tree | 615219db7702b912921b006378523bb4bda13acc /c/src/lib/libbsp/arm/shared | |
parent | powerpc: Add FSL cache defines (diff) | |
download | rtems-53c99b8ad131160cff9d62f8da6efdc354f364bb.tar.bz2 |
bsps: Generalize .nocacheheap to .nocachenoload
Add ability to place data in a non-loadable cache-inhibited area.
Diffstat (limited to 'c/src/lib/libbsp/arm/shared')
-rw-r--r-- | c/src/lib/libbsp/arm/shared/include/arm-cp15-start.h | 4 | ||||
-rw-r--r-- | c/src/lib/libbsp/arm/shared/include/linker-symbols.h | 6 | ||||
-rw-r--r-- | c/src/lib/libbsp/arm/shared/startup/linkcmds.base | 6 |
3 files changed, 13 insertions, 3 deletions
diff --git a/c/src/lib/libbsp/arm/shared/include/arm-cp15-start.h b/c/src/lib/libbsp/arm/shared/include/arm-cp15-start.h index 4677bf9078..01fdbb3463 100644 --- a/c/src/lib/libbsp/arm/shared/include/arm-cp15-start.h +++ b/c/src/lib/libbsp/arm/shared/include/arm-cp15-start.h @@ -85,8 +85,8 @@ typedef struct { .end = (uint32_t) bsp_section_nocache_end, \ .flags = ARMV7_MMU_DEVICE \ }, { \ - .begin = (uint32_t) bsp_section_nocacheheap_begin, \ - .end = (uint32_t) bsp_section_nocacheheap_end, \ + .begin = (uint32_t) bsp_section_nocachenoload_begin, \ + .end = (uint32_t) bsp_section_nocachenoload_end, \ .flags = ARMV7_MMU_DEVICE \ } 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 7c966d58c3..a4df81ab71 100644 --- a/c/src/lib/libbsp/arm/shared/include/linker-symbols.h +++ b/c/src/lib/libbsp/arm/shared/include/linker-symbols.h @@ -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_nocachenoload_begin) +LINKER_SYMBOL(bsp_section_nocachenoload_end) +LINKER_SYMBOL(bsp_section_nocachenoload_size) + LINKER_SYMBOL(bsp_section_nocacheheap_begin) LINKER_SYMBOL(bsp_section_nocacheheap_end) LINKER_SYMBOL(bsp_section_nocacheheap_size) @@ -140,6 +144,8 @@ LINKER_SYMBOL(bsp_translation_table_end) #define BSP_NOCACHE_SECTION __attribute__((section(".bsp_nocache"))) +#define BSP_NOCACHENOLOAD_SECTION __attribute__((section(".bsp_noload_nocache"))) + LINKER_SYMBOL(bsp_processor_count) /** @} */ diff --git a/c/src/lib/libbsp/arm/shared/startup/linkcmds.base b/c/src/lib/libbsp/arm/shared/startup/linkcmds.base index cfa9073534..6c17797e0b 100644 --- a/c/src/lib/libbsp/arm/shared/startup/linkcmds.base +++ b/c/src/lib/libbsp/arm/shared/startup/linkcmds.base @@ -406,12 +406,16 @@ 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 { + .nocachenoload (NOLOAD) : ALIGN_WITH_INPUT { + bsp_section_nocachenoload_begin = .; + *(SORT(.bsp_noload_nocache*)) bsp_section_nocacheheap_begin = .; . += ORIGIN (REGION_NOCACHE) + LENGTH (REGION_NOCACHE) - ABSOLUTE (.); bsp_section_nocacheheap_end = .; + bsp_section_nocachenoload_end = .; } > REGION_NOCACHE AT > REGION_NOCACHE bsp_section_nocacheheap_size = bsp_section_nocacheheap_end - bsp_section_nocacheheap_begin; + bsp_section_nocachenoload_size = bsp_section_nocachenoload_end - bsp_section_nocachenoload_begin; /* FIXME */ RamBase = ORIGIN (REGION_WORK); |