xref: /openbsd/sys/arch/armv7/include/vmparam.h (revision 13675c0c)
1 /* 	$OpenBSD: vmparam.h,v 1.8 2023/11/12 16:37:28 kettenis Exp $	*/
2 /*	$NetBSD: vmparam.h,v 1.23 2003/05/22 05:47:07 thorpej Exp $	*/
3 
4 /*
5  * Copyright (c) 1988 The Regents of the University of California.
6  * All rights reserved.
7  *
8  * Redistribution and use in source and binary forms, with or without
9  * modification, are permitted provided that the following conditions
10  * are met:
11  * 1. Redistributions of source code must retain the above copyright
12  *    notice, this list of conditions and the following disclaimer.
13  * 2. Redistributions in binary form must reproduce the above copyright
14  *    notice, this list of conditions and the following disclaimer in the
15  *    documentation and/or other materials provided with the distribution.
16  * 3. Neither the name of the University nor the names of its contributors
17  *    may be used to endorse or promote products derived from this software
18  *    without specific prior written permission.
19  *
20  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
21  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
24  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
26  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
27  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
28  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
29  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
30  * SUCH DAMAGE.
31  */
32 
33 #ifndef	_MACHINE_VMPARAM_H_
34 #define	_MACHINE_VMPARAM_H_
35 
36 #define	ARM_KERNEL_BASE		0xc0000000U
37 
38 /* Allow armv7 to have bigger limits than generic arm, allow user to override */
39 #ifndef	MAXDSIZ
40 #define	MAXDSIZ		(2UL*1024*1024*1024)	/* max data size */
41 #endif
42 #ifndef BRKSIZ
43 #define	BRKSIZ		MAXDSIZ			/* heap gap size */
44 #endif
45 #ifndef	DFLSSIZ
46 #define	DFLSSIZ		(4*1024*1024)		/* initial stack size limit */
47 #endif
48 #ifndef	MAXSSIZ
49 #define	MAXSSIZ		(32*1024*1024)		/* max stack size */
50 #endif
51 
52 #include <arm/vmparam.h>
53 
54 #ifdef _KERNEL
55 /*
56  * Address space constants
57  */
58 
59 /*
60  * The line between user space and kernel space
61  * Mappings >= KERNEL_BASE are constant across all processes
62  */
63 #define	KERNEL_BASE		ARM_KERNEL_BASE
64 
65 #define VM_KERNEL_SPACE_SIZE	0x20000000
66 
67 /*
68  * Override the default pager_map size, there's not enough KVA.
69  */
70 #define PAGER_MAP_SIZE		(4 * 1024 * 1024)
71 
72 /*
73  * Size of User Raw I/O map
74  */
75 
76 #define USRIOSIZE       300
77 
78 /* virtual sizes (bytes) for various kernel submaps */
79 
80 #define VM_PHYS_SIZE		(USRIOSIZE*PAGE_SIZE)
81 
82 /*
83  * max number of non-contig chunks of physical RAM you can have
84  */
85 
86 #define	VM_PHYSSEG_MAX		32
87 #define	VM_PHYSSEG_STRAT	VM_PSTRAT_BSEARCH
88 
89 /*
90  * this indicates that we can't add RAM to the VM system after the
91  * vm system is init'd.
92  */
93 
94 #define	VM_PHYSSEG_NOADD
95 
96 #endif /* _KERNEL */
97 
98 #endif	/* _MACHINE_VMPARAM_H_ */
99