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/powerpc | |
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/powerpc')
-rw-r--r-- | c/src/lib/libbsp/powerpc/qoriq/startup/mmu-config.c | 2 | ||||
-rw-r--r-- | c/src/lib/libbsp/powerpc/shared/include/linker-symbols.h | 6 | ||||
-rw-r--r-- | c/src/lib/libbsp/powerpc/shared/startup/linkcmds.base | 6 |
3 files changed, 12 insertions, 2 deletions
diff --git a/c/src/lib/libbsp/powerpc/qoriq/startup/mmu-config.c b/c/src/lib/libbsp/powerpc/qoriq/startup/mmu-config.c index 550202e018..a0b58451cf 100644 --- a/c/src/lib/libbsp/powerpc/qoriq/startup/mmu-config.c +++ b/c/src/lib/libbsp/powerpc/qoriq/startup/mmu-config.c @@ -111,7 +111,7 @@ static const entry DATA config [] = { ENTRY_RW(bsp_section_work_begin, bsp_section_work_size), ENTRY_RW(bsp_section_stack_begin, bsp_section_stack_size), ENTRY_IO(bsp_section_nocache_begin, bsp_section_nocache_size), - ENTRY_IO(bsp_section_nocacheheap_begin, bsp_section_nocacheheap_size), + ENTRY_IO(bsp_section_nocachenoload_begin, bsp_section_nocachenoload_size), #if QORIQ_CHIP_IS_T_VARIANT(QORIQ_CHIP_VARIANT) /* BMan Portals */ ENTRY_DEV_CACHED(0xf4000000, 0x01000000), 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 4eb83be055..06f11655f6 100644 --- a/c/src/lib/libbsp/powerpc/shared/include/linker-symbols.h +++ b/c/src/lib/libbsp/powerpc/shared/include/linker-symbols.h @@ -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_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) @@ -113,6 +117,8 @@ LINKER_SYMBOL(bsp_section_nvram_size) #define BSP_NOCACHE_SECTION __attribute__((section(".bsp_nocache"))) +#define BSP_NOCACHENOLOAD_SECTION __attribute__((section(".bsp_noload_nocache"))) + #define BSP_NVRAM_SECTION __attribute__((section(".bsp_nvram"))) /** @} */ diff --git a/c/src/lib/libbsp/powerpc/shared/startup/linkcmds.base b/c/src/lib/libbsp/powerpc/shared/startup/linkcmds.base index d4f9007ba0..7070cb09fa 100644 --- a/c/src/lib/libbsp/powerpc/shared/startup/linkcmds.base +++ b/c/src/lib/libbsp/powerpc/shared/startup/linkcmds.base @@ -342,12 +342,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; .nvram (NOLOAD) : ALIGN_WITH_INPUT { bsp_section_nvram_begin = .; |