zephyr/include/arch/arm64
Nicolas Pitre 88477906f0 arm64: hold curr_cpu instance in tpidrro_el0
Let's fully exploit tpidrro_el0 by storing in it the current CPU's
struct _cpu instance alongside the userspace mode flag bit. This
greatly simplifies the code needed to get at the cpu structure, and
this paves the way to much simpler multi cluster support, as there
is no longer the need to decode MPIDR all the time.

The same code is used in the !SMP case as there are benefits there too
such as avoiding the literal pool, and it looks cleaner.

The tpidrro_el0 value is no longer stored in the exception stack frame.
Instead, we simply restore the user mode flag based on the SPSR value.
This way, more flag bits could be used independently in the future.

Signed-off-by: Nicolas Pitre <npitre@baylibre.com>
2021-04-14 15:06:21 -04:00
..
cortex_r/mpu include: arm64: Add mpu data struct definition 2021-04-13 07:47:44 -04:00
scripts include: arm64: Add BSS align when MPU enabled 2021-04-13 07:47:44 -04:00
arch_inlines.h arm64: hold curr_cpu instance in tpidrro_el0 2021-04-14 15:06:21 -04:00
arch.h include: arm64: Fix compile with default MMU off 2021-04-13 07:47:44 -04:00
arm_mmu.h
arm-smccc.h
asm_inline_gcc.h
asm_inline.h
cpu.h arm64: hold curr_cpu instance in tpidrro_el0 2021-04-14 15:06:21 -04:00
error.h
exc.h arm64: hold curr_cpu instance in tpidrro_el0 2021-04-14 15:06:21 -04:00
irq.h
lib_helpers.h arm64: hold curr_cpu instance in tpidrro_el0 2021-04-14 15:06:21 -04:00
macro.inc
misc.h
sys_io.h
syscall.h arm64: hold curr_cpu instance in tpidrro_el0 2021-04-14 15:06:21 -04:00
thread_stack.h
thread.h
timer.h
tpidrro_el0.h arm64: hold curr_cpu instance in tpidrro_el0 2021-04-14 15:06:21 -04:00