forked from Imagelibrary/rtems
bsps: Generalize .nocacheheap to .nocachenoload
Add ability to place data in a non-loadable cache-inhibited area.
This commit is contained in:
@@ -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 \
|
||||
}
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
/** @} */
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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),
|
||||
|
||||
@@ -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")))
|
||||
|
||||
/** @} */
|
||||
|
||||
@@ -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 = .;
|
||||
|
||||
Reference in New Issue
Block a user