zephyr/include/arch
Andy Ross 97ada8bc04 arch/xtensa: Promote adsp RPO/cache utilities to an arch API
This is trick (mapping RAM twice so you can use alternate Region
Protection Option addresses to control cacheability) is something any
Xtensa hardware designer might productively choose to do.  And as it
works really well, we should encourage that by making this a generic
architecture feature for Zephyr.

Now everything works by setting two kconfig values at the soc level
defining the cached and uncached regions.  As long as these are
correct, you can then use the new arch_xtensa_un/cached_ptr() APIs to
convert between them and a ARCH_XTENSA_SET_RPO_TLB() macro that
provides much smaller initialization code (in C!) than the HAL
assembly macros.  The conversion routines have been generalized to
support conversion between any two regions.

Note that full KERNEL_COHERENCE still requires support from the
platform linker script, that can't be made generic given the way
Zephyr does linkage.

Signed-off-by: Andy Ross <andrew.j.ross@intel.com>
2022-01-11 11:53:53 +01:00
..
arc clock: add k_cycle_get_64 2021-11-08 13:41:53 -05:00
arm/aarch32 arch: arm: aarch32: cortex_m: nvic: make header self-contained 2022-01-11 11:52:27 +01:00
arm64 clock: add k_cycle_get_64 2021-11-08 13:41:53 -05:00
common include: common: Add sys_set_bits and set_clear_bits inline functions 2021-10-12 08:37:03 -04:00
nios2 clock: add k_cycle_get_64 2021-11-08 13:41:53 -05:00
posix linker: update posix linker template, linker.ld 2022-01-07 17:00:28 +01:00
riscv arch: riscv: pmp: simplify pmp region number computation 2022-01-11 11:47:03 +01:00
sparc clock: add k_cycle_get_64 2021-11-08 13:41:53 -05:00
x86 kernel: Fix typo in macro name 2022-01-07 11:20:46 -05:00
xtensa arch/xtensa: Promote adsp RPO/cache utilities to an arch API 2022-01-11 11:53:53 +01:00
arch_inlines.h arm/arm64: Make ARM64 a standalone architecture 2021-03-31 10:34:33 -05:00
cpu.h arm/arm64: Make ARM64 a standalone architecture 2021-03-31 10:34:33 -05:00
structs.h kernel: add an architecture specific structs header 2021-04-21 09:03:47 -04:00
syscall.h arm/arm64: Make ARM64 a standalone architecture 2021-03-31 10:34:33 -05:00