xref: /freebsd/sys/arm64/include/vmparam.h (revision 3e00c11a4f43bf1c7b88d25638e2bfee399e7674)
1412042e2SAndrew Turner /*-
2412042e2SAndrew Turner  * Copyright (c) 1990 The Regents of the University of California.
3412042e2SAndrew Turner  * All rights reserved.
4412042e2SAndrew Turner  * Copyright (c) 1994 John S. Dyson
5412042e2SAndrew Turner  * All rights reserved.
6412042e2SAndrew Turner  *
7412042e2SAndrew Turner  * This code is derived from software contributed to Berkeley by
8412042e2SAndrew Turner  * William Jolitz.
9412042e2SAndrew Turner  *
10412042e2SAndrew Turner  * Redistribution and use in source and binary forms, with or without
11412042e2SAndrew Turner  * modification, are permitted provided that the following conditions
12412042e2SAndrew Turner  * are met:
13412042e2SAndrew Turner  * 1. Redistributions of source code must retain the above copyright
14412042e2SAndrew Turner  *    notice, this list of conditions and the following disclaimer.
15412042e2SAndrew Turner  * 2. Redistributions in binary form must reproduce the above copyright
16412042e2SAndrew Turner  *    notice, this list of conditions and the following disclaimer in the
17412042e2SAndrew Turner  *    documentation and/or other materials provided with the distribution.
18f72c920cSEd Maste  * 3. Neither the name of the University nor the names of its contributors
19412042e2SAndrew Turner  *    may be used to endorse or promote products derived from this software
20412042e2SAndrew Turner  *    without specific prior written permission.
21412042e2SAndrew Turner  *
22412042e2SAndrew Turner  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
23412042e2SAndrew Turner  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
24412042e2SAndrew Turner  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
25412042e2SAndrew Turner  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
26412042e2SAndrew Turner  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
27412042e2SAndrew Turner  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
28412042e2SAndrew Turner  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
29412042e2SAndrew Turner  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
30412042e2SAndrew Turner  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
31412042e2SAndrew Turner  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
32412042e2SAndrew Turner  * SUCH DAMAGE.
33412042e2SAndrew Turner  *	from: FreeBSD: src/sys/i386/include/vmparam.h,v 1.33 2000/03/30
34412042e2SAndrew Turner  */
35412042e2SAndrew Turner 
36d5d97bedSMike Karels #ifdef __arm__
37d5d97bedSMike Karels #include <arm/vmparam.h>
38d5d97bedSMike Karels #else /* !__arm__ */
39d5d97bedSMike Karels 
40412042e2SAndrew Turner #ifndef	_MACHINE_VMPARAM_H_
41412042e2SAndrew Turner #define	_MACHINE_VMPARAM_H_
42412042e2SAndrew Turner 
43412042e2SAndrew Turner /*
44412042e2SAndrew Turner  * Virtual memory related constants, all in bytes
45412042e2SAndrew Turner  */
46412042e2SAndrew Turner #ifndef MAXTSIZ
47412042e2SAndrew Turner #define	MAXTSIZ		(1*1024*1024*1024)	/* max text size */
48412042e2SAndrew Turner #endif
49412042e2SAndrew Turner #ifndef DFLDSIZ
50412042e2SAndrew Turner #define	DFLDSIZ		(128*1024*1024)		/* initial data size limit */
51412042e2SAndrew Turner #endif
52412042e2SAndrew Turner #ifndef MAXDSIZ
53412042e2SAndrew Turner #define	MAXDSIZ		(1*1024*1024*1024)	/* max data size */
54412042e2SAndrew Turner #endif
55412042e2SAndrew Turner #ifndef DFLSSIZ
56412042e2SAndrew Turner #define	DFLSSIZ		(128*1024*1024)		/* initial stack size limit */
57412042e2SAndrew Turner #endif
58412042e2SAndrew Turner #ifndef MAXSSIZ
59412042e2SAndrew Turner #define	MAXSSIZ		(1*1024*1024*1024)	/* max stack size */
60412042e2SAndrew Turner #endif
61412042e2SAndrew Turner #ifndef SGROWSIZ
62412042e2SAndrew Turner #define	SGROWSIZ	(128*1024)		/* amount to grow stack */
63412042e2SAndrew Turner #endif
64412042e2SAndrew Turner 
65412042e2SAndrew Turner /*
66412042e2SAndrew Turner  * The physical address space is sparsely populated.
67412042e2SAndrew Turner  */
68412042e2SAndrew Turner #define	VM_PHYSSEG_SPARSE
69412042e2SAndrew Turner 
70412042e2SAndrew Turner /*
719ecd7fdeSWarner Losh  * The number of PHYSSEG entries.
72412042e2SAndrew Turner  */
73412042e2SAndrew Turner #define	VM_PHYSSEG_MAX		64
74412042e2SAndrew Turner 
75412042e2SAndrew Turner /*
76b16b4c22SMark Johnston  * Create three free page pools: VM_FREEPOOL_DEFAULT is the default pool from
77b16b4c22SMark Johnston  * which physical pages are allocated and VM_FREEPOOL_DIRECT is the pool from
78b16b4c22SMark Johnston  * which physical pages for page tables and small UMA objects are allocated.
794441dd40SMark Johnston  * VM_FREEPOOL_LAZYINIT is a special-purpose pool that is populated only during
80b16b4c22SMark Johnston  * boot and is used to implement deferred initialization of page structures.
81412042e2SAndrew Turner  */
82b16b4c22SMark Johnston #define	VM_NFREEPOOL		3
83b16b4c22SMark Johnston #define	VM_FREEPOOL_LAZYINIT	0
84b16b4c22SMark Johnston #define	VM_FREEPOOL_DEFAULT	1
85b16b4c22SMark Johnston #define	VM_FREEPOOL_DIRECT	2
86412042e2SAndrew Turner 
87412042e2SAndrew Turner /*
8848d5dab7SMark Johnston  * Create two free page lists: VM_FREELIST_DMA32 is for physical pages that have
8948d5dab7SMark Johnston  * physical addresses below 4G, and VM_FREELIST_DEFAULT is for all other
9048d5dab7SMark Johnston  * physical pages.
91412042e2SAndrew Turner  */
9248d5dab7SMark Johnston #define	VM_NFREELIST		2
93412042e2SAndrew Turner #define	VM_FREELIST_DEFAULT	0
9448d5dab7SMark Johnston #define	VM_FREELIST_DMA32	1
95412042e2SAndrew Turner 
96412042e2SAndrew Turner /*
97e59d2023SAlan Cox  * When PAGE_SIZE is 4KB, an allocation size of 16MB is supported in order
98e59d2023SAlan Cox  * to optimize the use of the direct map by UMA.  Specifically, a 64-byte
99e59d2023SAlan Cox  * cache line contains at most 8 L2 BLOCK entries, collectively mapping 16MB
100e59d2023SAlan Cox  * of physical memory.  By reducing the number of distinct 16MB "pages" that
101e59d2023SAlan Cox  * are used by UMA, the physical memory allocator reduces the likelihood of
102e59d2023SAlan Cox  * both 2MB page TLB misses and cache misses during the page table walk when
103e59d2023SAlan Cox  * a 2MB page TLB miss does occur.
1049fabf976SEliot Solomon  *
1059fabf976SEliot Solomon  * When PAGE_SIZE is 16KB, an allocation size of 32MB is supported.  This
1069fabf976SEliot Solomon  * size is used by level 0 reservations and L2 BLOCK mappings.
107412042e2SAndrew Turner  */
1089fabf976SEliot Solomon #if PAGE_SIZE == PAGE_SIZE_4K
109e59d2023SAlan Cox #define	VM_NFREEORDER		13
1109fabf976SEliot Solomon #elif PAGE_SIZE == PAGE_SIZE_16K
1119fabf976SEliot Solomon #define	VM_NFREEORDER		12
1129fabf976SEliot Solomon #else
1139fabf976SEliot Solomon #error Unsupported page size
1149fabf976SEliot Solomon #endif
115412042e2SAndrew Turner 
116412042e2SAndrew Turner /*
117*3e00c11aSAlan Cox  * Enable superpage reservations: 2 levels.
118412042e2SAndrew Turner  */
119412042e2SAndrew Turner #ifndef	VM_NRESERVLEVEL
120*3e00c11aSAlan Cox #define	VM_NRESERVLEVEL		2
121412042e2SAndrew Turner #endif
122412042e2SAndrew Turner 
123412042e2SAndrew Turner /*
124*3e00c11aSAlan Cox  * Level 0 reservations consist of 16 pages when PAGE_SIZE is 4KB, and 128
125*3e00c11aSAlan Cox  * pages when PAGE_SIZE is 16KB.  Level 1 reservations consist of 32 64KB
126*3e00c11aSAlan Cox  * pages when PAGE_SIZE is 4KB, and 16 2M pages when PAGE_SIZE is 16KB.
127412042e2SAndrew Turner  */
1289fabf976SEliot Solomon #if PAGE_SIZE == PAGE_SIZE_4K
129*3e00c11aSAlan Cox #ifndef	VM_LEVEL_0_ORDER
130*3e00c11aSAlan Cox #define	VM_LEVEL_0_ORDER	4
131*3e00c11aSAlan Cox #endif
132*3e00c11aSAlan Cox #ifndef	VM_LEVEL_1_ORDER
133*3e00c11aSAlan Cox #define	VM_LEVEL_1_ORDER	5
134*3e00c11aSAlan Cox #endif
1359fabf976SEliot Solomon #elif PAGE_SIZE == PAGE_SIZE_16K
136*3e00c11aSAlan Cox #ifndef	VM_LEVEL_0_ORDER
137*3e00c11aSAlan Cox #define	VM_LEVEL_0_ORDER	7
138*3e00c11aSAlan Cox #endif
139*3e00c11aSAlan Cox #ifndef	VM_LEVEL_1_ORDER
140*3e00c11aSAlan Cox #define	VM_LEVEL_1_ORDER	4
141*3e00c11aSAlan Cox #endif
1429fabf976SEliot Solomon #else
1439fabf976SEliot Solomon #error Unsupported page size
1449fabf976SEliot Solomon #endif
145412042e2SAndrew Turner 
146412042e2SAndrew Turner /**
147412042e2SAndrew Turner  * Address space layout.
148412042e2SAndrew Turner  *
149412042e2SAndrew Turner  * ARMv8 implements up to a 48 bit virtual address space. The address space is
150412042e2SAndrew Turner  * split into 2 regions at each end of the 64 bit address space, with an
151412042e2SAndrew Turner  * out of range "hole" in the middle.
152412042e2SAndrew Turner  *
1539853d104SAndrew Turner  * We use the full 48 bits for each region, however the kernel may only use
1549853d104SAndrew Turner  * a limited range within this space.
155412042e2SAndrew Turner  *
1560b4890b0SAndrew Turner  * Upper region:    0xffffffffffffffff  Top of virtual memory
1570b4890b0SAndrew Turner  *
1580b4890b0SAndrew Turner  *                  0xfffffeffffffffff  End of DMAP
15989c52f9dSKyle Evans  *                  0xffffa00000000000  Start of DMAP
16089c52f9dSKyle Evans  *
16152bf6257SMark Johnston  *                  0xffff027fffffffff  End of KMSAN origin map
16252bf6257SMark Johnston  *                  0xffff020000000000  Start of KMSAN origin map
16352bf6257SMark Johnston  *
16452bf6257SMark Johnston  *                  0xffff017fffffffff  End of KMSAN shadow map
16552bf6257SMark Johnston  *                  0xffff010000000000  Start of KMSAN shadow map
16652bf6257SMark Johnston  *
16789c52f9dSKyle Evans  *                  0xffff009fffffffff  End of KASAN shadow map
16889c52f9dSKyle Evans  *                  0xffff008000000000  Start of KASAN shadow map
1690b4890b0SAndrew Turner  *
1700b4890b0SAndrew Turner  *                  0xffff007fffffffff  End of KVA
1710b4890b0SAndrew Turner  *                  0xffff000000000000  Kernel base address & start of KVA
172412042e2SAndrew Turner  *
1739853d104SAndrew Turner  * Hole:            0xfffeffffffffffff
1749853d104SAndrew Turner  *                  0x0001000000000000
175412042e2SAndrew Turner  *
1760b4890b0SAndrew Turner  * Lower region:    0x0000ffffffffffff End of user address space
1770b4890b0SAndrew Turner  *                  0x0000000000000000 Start of user address space
178412042e2SAndrew Turner  *
179412042e2SAndrew Turner  * We use the upper region for the kernel, and the lower region for userland.
180412042e2SAndrew Turner  *
181412042e2SAndrew Turner  * We define some interesting address constants:
182412042e2SAndrew Turner  *
183412042e2SAndrew Turner  * VM_MIN_ADDRESS and VM_MAX_ADDRESS define the start and end of the entire
184412042e2SAndrew Turner  * 64 bit address space, mostly just for convenience.
185412042e2SAndrew Turner  *
186412042e2SAndrew Turner  * VM_MIN_KERNEL_ADDRESS and VM_MAX_KERNEL_ADDRESS define the start and end of
187412042e2SAndrew Turner  * mappable kernel virtual address space.
188412042e2SAndrew Turner  *
189412042e2SAndrew Turner  * VM_MIN_USER_ADDRESS and VM_MAX_USER_ADDRESS define the start and end of the
190412042e2SAndrew Turner  * user address space.
191412042e2SAndrew Turner  */
192412042e2SAndrew Turner #define	VM_MIN_ADDRESS		(0x0000000000000000UL)
193412042e2SAndrew Turner #define	VM_MAX_ADDRESS		(0xffffffffffffffffUL)
194412042e2SAndrew Turner 
1959853d104SAndrew Turner /* 512 GiB of kernel addresses */
1969853d104SAndrew Turner #define	VM_MIN_KERNEL_ADDRESS	(0xffff000000000000UL)
1979853d104SAndrew Turner #define	VM_MAX_KERNEL_ADDRESS	(0xffff008000000000UL)
198412042e2SAndrew Turner 
19989c52f9dSKyle Evans /* 128 GiB KASAN shadow map */
20089c52f9dSKyle Evans #define	KASAN_MIN_ADDRESS	(0xffff008000000000UL)
20189c52f9dSKyle Evans #define	KASAN_MAX_ADDRESS	(0xffff00a000000000UL)
20289c52f9dSKyle Evans 
20352bf6257SMark Johnston /* 512GiB KMSAN shadow map */
20452bf6257SMark Johnston #define	KMSAN_SHAD_MIN_ADDRESS	(0xffff010000000000UL)
20552bf6257SMark Johnston #define	KMSAN_SHAD_MAX_ADDRESS	(0xffff018000000000UL)
20652bf6257SMark Johnston 
20752bf6257SMark Johnston /* 512GiB KMSAN origin map */
20852bf6257SMark Johnston #define	KMSAN_ORIG_MIN_ADDRESS	(0xffff020000000000UL)
20952bf6257SMark Johnston #define	KMSAN_ORIG_MAX_ADDRESS	(0xffff028000000000UL)
21052bf6257SMark Johnston 
2116713be31SAndrew Turner /* The address bits that hold a pointer authentication code */
2126713be31SAndrew Turner #define	PAC_ADDR_MASK		(0xff7f000000000000UL)
2136713be31SAndrew Turner 
214b7a78d57SAndrew Turner /* If true addr is in the kernel address space */
215b7a78d57SAndrew Turner #define	ADDR_IS_KERNEL(addr)	(((addr) & (1ul << 55)) == (1ul << 55))
216b7a78d57SAndrew Turner /* If true addr is in its canonical form (i.e. no TBI, PAC, etc.) */
217b7a78d57SAndrew Turner #define	ADDR_IS_CANONICAL(addr)	\
218b7a78d57SAndrew Turner     (((addr) & 0xffff000000000000UL) == 0 || \
219b7a78d57SAndrew Turner      ((addr) & 0xffff000000000000UL) == 0xffff000000000000UL)
22085b7c566SAndrew Turner #define	ADDR_MAKE_CANONICAL(addr) ({			\
22185b7c566SAndrew Turner 	__typeof(addr) _tmp_addr = (addr);		\
22285b7c566SAndrew Turner 							\
22385b7c566SAndrew Turner 	_tmp_addr &= ~0xffff000000000000UL;		\
22485b7c566SAndrew Turner 	if (ADDR_IS_KERNEL(addr))			\
22585b7c566SAndrew Turner 		_tmp_addr |= 0xffff000000000000UL;	\
22685b7c566SAndrew Turner 							\
22785b7c566SAndrew Turner 	_tmp_addr;					\
22885b7c566SAndrew Turner })
229b7a78d57SAndrew Turner 
230d4d2928aSD Scott Phillips /* 95 TiB maximum for the direct map region */
231d4d2928aSD Scott Phillips #define	DMAP_MIN_ADDRESS	(0xffffa00000000000UL)
2329853d104SAndrew Turner #define	DMAP_MAX_ADDRESS	(0xffffff0000000000UL)
233412042e2SAndrew Turner 
234ac4dad9eSAndrew Turner #define	DMAP_MIN_PHYSADDR	(dmap_phys_base)
235f8a39033SAndrew Turner #define	DMAP_MAX_PHYSADDR	(dmap_phys_max)
236412042e2SAndrew Turner 
2379d40492eSAndrew Turner /*
2389d40492eSAndrew Turner  * Checks to see if a physical address is in the DMAP range.
2399d40492eSAndrew Turner  * - PHYS_IN_DMAP_RANGE will return true that may be within the DMAP range
2409d40492eSAndrew Turner  *   but not accessible through the DMAP, e.g. device memory between two
2419d40492eSAndrew Turner  *   DMAP physical address regions.
2429d40492eSAndrew Turner  * - PHYS_IN_DMAP will check if DMAP address is mapped before returning true.
2439d40492eSAndrew Turner  *
2449d40492eSAndrew Turner  * PHYS_IN_DMAP_RANGE should only be used when a check on the address is
2459d40492eSAndrew Turner  * performed, e.g. by checking the physical address is within phys_avail,
2469d40492eSAndrew Turner  * or checking the virtual address is mapped.
2479d40492eSAndrew Turner  */
2489d40492eSAndrew Turner #define	PHYS_IN_DMAP_RANGE(pa)	((pa) >= DMAP_MIN_PHYSADDR && \
2499853d104SAndrew Turner     (pa) < DMAP_MAX_PHYSADDR)
2509d40492eSAndrew Turner #define	PHYS_IN_DMAP(pa)	(PHYS_IN_DMAP_RANGE(pa) && \
2519d40492eSAndrew Turner     pmap_klookup(PHYS_TO_DMAP(pa), NULL))
25271d72ea1SAndrew Turner /* True if va is in the dmap range */
25371d72ea1SAndrew Turner #define	VIRT_IN_DMAP(va)	((va) >= DMAP_MIN_ADDRESS && \
254f8a39033SAndrew Turner     (va) < (dmap_max_addr))
255412042e2SAndrew Turner 
2569a8196ceSNathan Whitehorn #define	PMAP_HAS_DMAP	1
257412042e2SAndrew Turner #define	PHYS_TO_DMAP(pa)						\
258412042e2SAndrew Turner ({									\
2599d40492eSAndrew Turner 	KASSERT(PHYS_IN_DMAP_RANGE(pa),					\
260412042e2SAndrew Turner 	    ("%s: PA out of range, PA: 0x%lx", __func__,		\
261412042e2SAndrew Turner 	    (vm_paddr_t)(pa)));						\
262e46f2622SWojciech Macek 	((pa) - dmap_phys_base) + DMAP_MIN_ADDRESS;			\
263412042e2SAndrew Turner })
264412042e2SAndrew Turner 
265412042e2SAndrew Turner #define	DMAP_TO_PHYS(va)						\
266412042e2SAndrew Turner ({									\
26771d72ea1SAndrew Turner 	KASSERT(VIRT_IN_DMAP(va),					\
268412042e2SAndrew Turner 	    ("%s: VA out of range, VA: 0x%lx", __func__,		\
269412042e2SAndrew Turner 	    (vm_offset_t)(va)));					\
270e46f2622SWojciech Macek 	((va) - DMAP_MIN_ADDRESS) + dmap_phys_base;			\
271412042e2SAndrew Turner })
272412042e2SAndrew Turner 
273412042e2SAndrew Turner #define	VM_MIN_USER_ADDRESS	(0x0000000000000000UL)
274f2f21fafSAndrew Turner #define	VM_MAX_USER_ADDRESS	(0x0001000000000000UL)
275412042e2SAndrew Turner 
276412042e2SAndrew Turner #define	VM_MINUSER_ADDRESS	(VM_MIN_USER_ADDRESS)
277412042e2SAndrew Turner #define	VM_MAXUSER_ADDRESS	(VM_MAX_USER_ADDRESS)
278412042e2SAndrew Turner 
279412042e2SAndrew Turner #define	KERNBASE		(VM_MIN_KERNEL_ADDRESS)
2804d22d07aSKonstantin Belousov #define	SHAREDPAGE		(VM_MAXUSER_ADDRESS - PAGE_SIZE)
2814d22d07aSKonstantin Belousov #define	USRSTACK		SHAREDPAGE
282412042e2SAndrew Turner 
283412042e2SAndrew Turner /*
284412042e2SAndrew Turner  * How many physical pages per kmem arena virtual page.
285412042e2SAndrew Turner  */
286412042e2SAndrew Turner #ifndef VM_KMEM_SIZE_SCALE
2873e3eb5f4SMark Johnston #define	VM_KMEM_SIZE_SCALE	(1)
288412042e2SAndrew Turner #endif
289412042e2SAndrew Turner 
290412042e2SAndrew Turner /*
291412042e2SAndrew Turner  * Optional ceiling (in bytes) on the size of the kmem arena: 60% of the
292412042e2SAndrew Turner  * kernel map.
293412042e2SAndrew Turner  */
294412042e2SAndrew Turner #ifndef VM_KMEM_SIZE_MAX
295412042e2SAndrew Turner #define	VM_KMEM_SIZE_MAX	((VM_MAX_KERNEL_ADDRESS - \
296412042e2SAndrew Turner     VM_MIN_KERNEL_ADDRESS + 1) * 3 / 5)
297412042e2SAndrew Turner #endif
298412042e2SAndrew Turner 
299412042e2SAndrew Turner /*
300412042e2SAndrew Turner  * Initial pagein size of beginning of executable file.
301412042e2SAndrew Turner  */
302412042e2SAndrew Turner #ifndef	VM_INITIAL_PAGEIN
303412042e2SAndrew Turner #define	VM_INITIAL_PAGEIN	16
304412042e2SAndrew Turner #endif
305412042e2SAndrew Turner 
30689c52f9dSKyle Evans #if !defined(KASAN) && !defined(KMSAN)
307da76d349SBojan Novković #define UMA_USE_DMAP
30889c52f9dSKyle Evans #endif
30936baf858SAndrew Turner 
310c7d4b461SAndrew Turner #ifndef LOCORE
311c7d4b461SAndrew Turner 
312c7d4b461SAndrew Turner extern vm_paddr_t dmap_phys_base;
313f8a39033SAndrew Turner extern vm_paddr_t dmap_phys_max;
314f8a39033SAndrew Turner extern vm_offset_t dmap_max_addr;
315412042e2SAndrew Turner 
316c7d4b461SAndrew Turner #endif
317c7d4b461SAndrew Turner 
318412042e2SAndrew Turner #define	ZERO_REGION_SIZE	(64 * 1024)	/* 64KB */
319412042e2SAndrew Turner 
32030b72b68SRuslan Bukin #define	DEVMAP_MAX_VADDR	VM_MAX_KERNEL_ADDRESS
32130b72b68SRuslan Bukin 
322ab041f71SD Scott Phillips /*
32378257765SMark Johnston  * The pmap can create non-transparent large page mappings.
32478257765SMark Johnston  */
32578257765SMark Johnston #define	PMAP_HAS_LARGEPAGES	1
32678257765SMark Johnston 
32778257765SMark Johnston /*
328ab041f71SD Scott Phillips  * Need a page dump array for minidump.
329ab041f71SD Scott Phillips  */
330ab041f71SD Scott Phillips #define MINIDUMP_PAGE_TRACKING	1
3310a44b8a5SBojan Novković #define MINIDUMP_STARTUP_PAGE_TRACKING 1
332ab041f71SD Scott Phillips 
333412042e2SAndrew Turner #endif /* !_MACHINE_VMPARAM_H_ */
334d5d97bedSMike Karels 
335d5d97bedSMike Karels #endif /* !__arm__ */
336