1 /*
2  * Copyright (c) 2021 BayLibre SAS
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  */
6 
7 /**
8  * @file
9  * @brief tpidrro_el0 bits allocation
10  *
11  * Among other things, the tpidrro_el0 holds the address for the current
12  * CPU's struct _cpu instance. But such a pointer is at least 8-bytes
13  * aligned, and the address space is 48 bits max. That leaves plenty of
14  * free bits for other purposes.
15  */
16 
17 #ifndef ZEPHYR_INCLUDE_ARCH_ARM64_TPIDRRO_EL0_H_
18 #define ZEPHYR_INCLUDE_ARCH_ARM64_TPIDRRO_EL0_H_
19 
20 #define TPIDRROEL0_IN_EL0	0x0000000000000001
21 
22 #define TPIDRROEL0_CURR_CPU	0x0000fffffffffff8
23 
24 #define TPIDRROEL0_EXC_DEPTH	0xff00000000000000
25 #define TPIDRROEL0_EXC_UNIT	0x0100000000000000
26 #define TPIDRROEL0_EXC_SHIFT	56
27 
28 #endif /* ZEPHYR_INCLUDE_ARCH_ARM64_TPIDRRO_EL0_H_ */
29