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