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_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