forked from Imagelibrary/rtems
bsp/atsam: Add nocache region support
This commit is contained in:
@@ -40,6 +40,7 @@
|
||||
#ifndef __rtems__
|
||||
#include "board.h"
|
||||
#else /* __rtems__ */
|
||||
#define MPU_HAS_NOCACHE_REGION
|
||||
#include <chip.h>
|
||||
#include <include/board_lowlevel.h>
|
||||
#endif /* __rtems__ */
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
#include <bsp/bootcard.h>
|
||||
#include <bsp/irq.h>
|
||||
#include <bsp/irq-generic.h>
|
||||
#include <bsp/linker-symbols.h>
|
||||
|
||||
#include <chip.h>
|
||||
|
||||
@@ -29,4 +30,8 @@ void bsp_start(void)
|
||||
bsp_interrupt_initialize();
|
||||
SCB_CleanDCache();
|
||||
SCB_InvalidateICache();
|
||||
rtems_cache_coherent_add_area(
|
||||
bsp_section_nocacheheap_begin,
|
||||
(uintptr_t) bsp_section_nocacheheap_size
|
||||
);
|
||||
}
|
||||
|
||||
@@ -15,7 +15,7 @@ REGION_ALIAS ("REGION_FAST_DATA_LOAD", INTFLASH);
|
||||
REGION_ALIAS ("REGION_BSS", INTSRAM);
|
||||
REGION_ALIAS ("REGION_WORK", INTSRAM);
|
||||
REGION_ALIAS ("REGION_STACK", INTSRAM);
|
||||
REGION_ALIAS ("REGION_NOCACHE", INTSRAM);
|
||||
REGION_ALIAS ("REGION_NOCACHE", NOCACHE);
|
||||
REGION_ALIAS ("REGION_NOCACHE_LOAD", INTFLASH);
|
||||
|
||||
INCLUDE linkcmds.armv7m
|
||||
|
||||
@@ -17,7 +17,7 @@ REGION_ALIAS ("REGION_FAST_DATA_LOAD", INTSRAM);
|
||||
REGION_ALIAS ("REGION_BSS", INTSRAM);
|
||||
REGION_ALIAS ("REGION_WORK", INTSRAM);
|
||||
REGION_ALIAS ("REGION_STACK", INTSRAM);
|
||||
REGION_ALIAS ("REGION_NOCACHE", INTSRAM);
|
||||
REGION_ALIAS ("REGION_NOCACHE", NOCACHE);
|
||||
REGION_ALIAS ("REGION_NOCACHE_LOAD", INTSRAM);
|
||||
|
||||
INCLUDE linkcmds.armv7m
|
||||
|
||||
@@ -2,6 +2,7 @@ MEMORY {
|
||||
ITCM : ORIGIN = 0x00000000, LENGTH = @ATSAM_MEMORY_TCM_SIZE@
|
||||
INTFLASH : ORIGIN = 0x00400000, LENGTH = @ATSAM_MEMORY_INTFLASH_SIZE@
|
||||
DTCM : ORIGIN = 0x20000000, LENGTH = @ATSAM_MEMORY_TCM_SIZE@
|
||||
INTSRAM : ORIGIN = 0x20400000, LENGTH = @ATSAM_MEMORY_INTSRAM_SIZE@ - 2 * @ATSAM_MEMORY_TCM_SIZE@
|
||||
INTSRAM : ORIGIN = 0x20400000, LENGTH = @ATSAM_MEMORY_INTSRAM_SIZE@ - 2 * @ATSAM_MEMORY_TCM_SIZE@ - 4K
|
||||
NOCACHE : ORIGIN = 0x20400000 + @ATSAM_MEMORY_INTSRAM_SIZE@ - 2 * @ATSAM_MEMORY_TCM_SIZE@ - 4K, LENGTH = 4K
|
||||
SDRAM : ORIGIN = 0x70000000, LENGTH = @ATSAM_MEMORY_SDRAM_SIZE@
|
||||
}
|
||||
|
||||
@@ -15,7 +15,7 @@ REGION_ALIAS ("REGION_FAST_DATA_LOAD", SDRAM);
|
||||
REGION_ALIAS ("REGION_BSS", SDRAM);
|
||||
REGION_ALIAS ("REGION_WORK", SDRAM);
|
||||
REGION_ALIAS ("REGION_STACK", SDRAM);
|
||||
REGION_ALIAS ("REGION_NOCACHE", SDRAM);
|
||||
REGION_ALIAS ("REGION_NOCACHE", NOCACHE);
|
||||
REGION_ALIAS ("REGION_NOCACHE_LOAD", SDRAM);
|
||||
|
||||
INCLUDE linkcmds.armv7m
|
||||
|
||||
Reference in New Issue
Block a user