bsps: Rework cache manager implementation

The previous cache manager support used a single souce file
(cache_manager.c) which included an implementation header (cache_.h).
This required the use of specialized include paths to find the right
header file.  Change this to include a generic implementation header
(cacheimpl.h) in specialized source files.

Use the following directories and files:

* bsps/shared/cache

* bsps/@RTEMS_CPU@/shared/cache

* bsps/@RTEMS_CPU@/@RTEMS_BSP_FAMILY/start/cache.c

Update #3285.
This commit is contained in:
Sebastian Huber
2018-01-27 14:37:51 +01:00
parent d8d6a08d46
commit 4cf93658ef
133 changed files with 382 additions and 1032 deletions

View File

@@ -0,0 +1,51 @@
/*
* SPARC Cache Manager Support
*/
/*
* CACHE MANAGER: The following functions are CPU-specific.
* They provide the basic implementation for the rtems_* cache
* management routines. If a given function has no meaning for the CPU,
* it does nothing by default.
*
* FIXME: Some functions simply have not been implemented.
*/
#include <stddef.h>
#define CPU_INSTRUCTION_CACHE_ALIGNMENT 0
#define CPU_CACHE_SUPPORT_PROVIDES_RANGE_FUNCTIONS
static inline void _CPU_cache_invalidate_entire_instruction ( void )
{
__asm__ volatile ("flush");
}
static inline void _CPU_cache_invalidate_instruction_range(
const void *i_addr,
size_t n_bytes
)
{
__asm__ volatile ("flush");
}
/* XXX these need to be addressed */
static inline void _CPU_cache_freeze_instruction ( void )
{
}
static inline void _CPU_cache_unfreeze_instruction ( void )
{
}
static inline void _CPU_cache_enable_instruction ( void )
{
}
static inline void _CPU_cache_disable_instruction ( void )
{
}
#include "../../../shared/cache/cacheimpl.h"