xref: /qemu/target/arm/cpu-param.h (revision f07a5674cf97b8473e5d06d7b1df9b51e97d553f)
1 /*
2  * ARM cpu parameters for qemu.
3  *
4  * Copyright (c) 2003 Fabrice Bellard
5  * SPDX-License-Identifier: LGPL-2.0-or-later
6  */
7 
8 #ifndef ARM_CPU_PARAM_H
9 #define ARM_CPU_PARAM_H
10 
11 #ifdef TARGET_AARCH64
12 # define TARGET_PHYS_ADDR_SPACE_BITS  52
13 # define TARGET_VIRT_ADDR_SPACE_BITS  52
14 #else
15 # define TARGET_PHYS_ADDR_SPACE_BITS  40
16 # define TARGET_VIRT_ADDR_SPACE_BITS  32
17 #endif
18 
19 #ifdef CONFIG_USER_ONLY
20 # ifdef TARGET_AARCH64
21 #  define TARGET_TAGGED_ADDRESSES
22 # ifdef __FreeBSD__
23 #  define TARGET_PAGE_BITS 12
24 # else
25 /* Allow user-only to vary page size from 4k */
26 #  define TARGET_PAGE_BITS_VARY
27 #  define TARGET_PAGE_BITS_MIN  12
28 # endif
29 # else
30 #  define TARGET_PAGE_BITS 12
31 # endif
32 #else /* !CONFIG_USER_ONLY */
33 /*
34  * ARMv7 and later CPUs have 4K pages minimum, but ARMv5 and v6
35  * have to support 1K tiny pages.
36  */
37 # define TARGET_PAGE_BITS_VARY
38 # define TARGET_PAGE_BITS_MIN  10
39 #endif /* !CONFIG_USER_ONLY */
40 
41 /* ARM processors have a weak memory model */
42 #define TCG_GUEST_DEFAULT_MO      (0)
43 
44 #endif
45