xref: /openbmc/qemu/target/ppc/cpu-param.h (revision 707ded20)
1 /*
2  * PowerPC cpu parameters for qemu.
3  *
4  * Copyright (c) 2007 Jocelyn Mayer
5  * SPDX-License-Identifier: LGPL-2.0+
6  */
7 
8 #ifndef PPC_CPU_PARAM_H
9 #define PPC_CPU_PARAM_H
10 
11 #ifdef TARGET_PPC64
12 # define TARGET_LONG_BITS 64
13 /*
14  * Note that the official physical address space bits is 62-M where M
15  * is implementation dependent.  I've not looked up M for the set of
16  * cpus we emulate at the system level.
17  */
18 #define TARGET_PHYS_ADDR_SPACE_BITS 62
19 /*
20  * Note that the PPC environment architecture talks about 80 bit virtual
21  * addresses, with segmentation.  Obviously that's not all visible to a
22  * single process, which is all we're concerned with here.
23  */
24 # ifdef TARGET_ABI32
25 #  define TARGET_VIRT_ADDR_SPACE_BITS 32
26 # else
27 #  define TARGET_VIRT_ADDR_SPACE_BITS 64
28 # endif
29 #else
30 # define TARGET_LONG_BITS 32
31 # define TARGET_PHYS_ADDR_SPACE_BITS 36
32 # define TARGET_VIRT_ADDR_SPACE_BITS 32
33 #endif
34 
35 #ifdef CONFIG_USER_ONLY
36 /* Allow user-only to vary page size from 4k */
37 # define TARGET_PAGE_BITS_VARY
38 # define TARGET_PAGE_BITS_MIN 12
39 #else
40 # define TARGET_PAGE_BITS 12
41 #endif
42 
43 #endif
44