m68k.h revision 1.10 1 1.10 thorpej /* $NetBSD: m68k.h,v 1.10 2004/08/28 21:31:07 thorpej Exp $ */
2 1.1 thorpej
3 1.1 thorpej /*
4 1.1 thorpej * Copyright (c) 1982, 1990, 1993
5 1.1 thorpej * The Regents of the University of California. All rights reserved.
6 1.9 agc *
7 1.9 agc * This code is derived from software contributed to Berkeley by
8 1.9 agc * the Systems Programming Group of the University of Utah Computer
9 1.9 agc * Science Department.
10 1.9 agc *
11 1.9 agc * Redistribution and use in source and binary forms, with or without
12 1.9 agc * modification, are permitted provided that the following conditions
13 1.9 agc * are met:
14 1.9 agc * 1. Redistributions of source code must retain the above copyright
15 1.9 agc * notice, this list of conditions and the following disclaimer.
16 1.9 agc * 2. Redistributions in binary form must reproduce the above copyright
17 1.9 agc * notice, this list of conditions and the following disclaimer in the
18 1.9 agc * documentation and/or other materials provided with the distribution.
19 1.9 agc * 3. Neither the name of the University nor the names of its contributors
20 1.9 agc * may be used to endorse or promote products derived from this software
21 1.9 agc * without specific prior written permission.
22 1.9 agc *
23 1.9 agc * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
24 1.9 agc * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
25 1.9 agc * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
26 1.9 agc * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
27 1.9 agc * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
28 1.9 agc * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
29 1.9 agc * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
30 1.9 agc * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
31 1.9 agc * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
32 1.9 agc * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
33 1.9 agc * SUCH DAMAGE.
34 1.9 agc *
35 1.9 agc * from: Utah $Hdr: cpu.h 1.16 91/03/25$
36 1.9 agc * from: @(#)cpu.h 8.4 (Berkeley) 1/5/94
37 1.9 agc */
38 1.9 agc /*
39 1.9 agc * Copyright (c) 1988 University of Utah.
40 1.1 thorpej *
41 1.1 thorpej * This code is derived from software contributed to Berkeley by
42 1.1 thorpej * the Systems Programming Group of the University of Utah Computer
43 1.1 thorpej * Science Department.
44 1.1 thorpej *
45 1.1 thorpej * Redistribution and use in source and binary forms, with or without
46 1.1 thorpej * modification, are permitted provided that the following conditions
47 1.1 thorpej * are met:
48 1.1 thorpej * 1. Redistributions of source code must retain the above copyright
49 1.1 thorpej * notice, this list of conditions and the following disclaimer.
50 1.1 thorpej * 2. Redistributions in binary form must reproduce the above copyright
51 1.1 thorpej * notice, this list of conditions and the following disclaimer in the
52 1.1 thorpej * documentation and/or other materials provided with the distribution.
53 1.1 thorpej * 3. All advertising materials mentioning features or use of this software
54 1.1 thorpej * must display the following acknowledgement:
55 1.1 thorpej * This product includes software developed by the University of
56 1.1 thorpej * California, Berkeley and its contributors.
57 1.1 thorpej * 4. Neither the name of the University nor the names of its contributors
58 1.1 thorpej * may be used to endorse or promote products derived from this software
59 1.1 thorpej * without specific prior written permission.
60 1.1 thorpej *
61 1.1 thorpej * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
62 1.1 thorpej * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
63 1.1 thorpej * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
64 1.1 thorpej * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
65 1.1 thorpej * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
66 1.1 thorpej * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
67 1.1 thorpej * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
68 1.1 thorpej * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
69 1.1 thorpej * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
70 1.1 thorpej * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
71 1.1 thorpej * SUCH DAMAGE.
72 1.1 thorpej *
73 1.5 gwr * from: Utah $Hdr: cpu.h 1.16 91/03/25$
74 1.5 gwr * from: @(#)cpu.h 8.4 (Berkeley) 1/5/94
75 1.1 thorpej */
76 1.1 thorpej
77 1.5 gwr #ifndef _M68K_M68K_H_
78 1.5 gwr #define _M68K_M68K_H_
79 1.1 thorpej
80 1.1 thorpej /*
81 1.5 gwr * Declarations for things exported by sources in this directory,
82 1.5 gwr * or required by sources in here and not declared elsewhere.
83 1.1 thorpej *
84 1.5 gwr * These declarations generally do NOT belong in <machine/cpu.h>,
85 1.5 gwr * because that defines the interface between the common code and
86 1.5 gwr * the machine-dependent code, whereas this defines the interface
87 1.5 gwr * between the shared m68k code and the machine-dependent code.
88 1.1 thorpej *
89 1.5 gwr * The MMU stuff is exported separately so it can be used just
90 1.5 gwr * where it is really needed. Same for function codes, etc.
91 1.1 thorpej */
92 1.1 thorpej
93 1.1 thorpej #ifdef _KERNEL
94 1.1 thorpej /*
95 1.1 thorpej * All m68k ports must provide these globals.
96 1.1 thorpej */
97 1.1 thorpej extern int cputype; /* CPU on this host */
98 1.5 gwr extern int ectype; /* external cache on this host */
99 1.1 thorpej extern int fputype; /* FPU on this host */
100 1.1 thorpej extern int mmutype; /* MMU on this host */
101 1.6 gwr #endif /* _KERNEL */
102 1.1 thorpej
103 1.1 thorpej /* values for cputype */
104 1.7 fredette #define CPU_68010 -1 /* 68010 */
105 1.1 thorpej #define CPU_68020 0 /* 68020 */
106 1.1 thorpej #define CPU_68030 1 /* 68030 */
107 1.1 thorpej #define CPU_68040 2 /* 68040 */
108 1.1 thorpej #define CPU_68060 3 /* 68060 */
109 1.1 thorpej
110 1.1 thorpej /* values for ectype */
111 1.1 thorpej #define EC_PHYS -1 /* external physical address cache */
112 1.1 thorpej #define EC_NONE 0 /* no external cache */
113 1.1 thorpej #define EC_VIRT 1 /* external virtual address cache */
114 1.1 thorpej
115 1.1 thorpej /* values for fputype */
116 1.1 thorpej #define FPU_NONE 0 /* no FPU */
117 1.1 thorpej #define FPU_68881 1 /* 68881 FPU */
118 1.1 thorpej #define FPU_68882 2 /* 68882 FPU */
119 1.1 thorpej #define FPU_68040 3 /* 68040 on-chip FPU */
120 1.1 thorpej #define FPU_68060 4 /* 68060 on-chip FPU */
121 1.2 thorpej #define FPU_UNKNOWN 5 /* placeholder; unknown FPU */
122 1.1 thorpej
123 1.1 thorpej /* values for mmutype (assigned for quick testing) */
124 1.1 thorpej #define MMU_68060 -3 /* 68060 on-chip MMU */
125 1.1 thorpej #define MMU_68040 -2 /* 68040 on-chip MMU */
126 1.1 thorpej #define MMU_68030 -1 /* 68030 on-chip subset of 68851 */
127 1.1 thorpej #define MMU_HP 0 /* HP proprietary */
128 1.1 thorpej #define MMU_68851 1 /* Motorola 68851 */
129 1.1 thorpej #define MMU_SUN 2 /* Sun MMU */
130 1.1 thorpej
131 1.1 thorpej
132 1.5 gwr #ifdef _KERNEL
133 1.1 thorpej
134 1.5 gwr struct trapframe;
135 1.1 thorpej
136 1.5 gwr /* copypage.s */
137 1.10 thorpej void copypage040(void *fromaddr, void *toaddr);
138 1.10 thorpej void copypage(void *fromaddr, void *toaddr);
139 1.10 thorpej void zeropage(void *addr);
140 1.4 thorpej
141 1.6 gwr /* locore.s (XXX: move to support.s?) */
142 1.10 thorpej int getdfc(void);
143 1.10 thorpej int getsfc(void);
144 1.8 fredette
145 1.8 fredette /* w16copy.s */
146 1.10 thorpej void w16zero(void *, u_int);
147 1.10 thorpej void w16copy(const void *, void *, u_int);
148 1.5 gwr
149 1.3 thorpej #ifdef MAPPEDCOPY
150 1.5 gwr /* mappedcopy.c */
151 1.10 thorpej int mappedcopyin(void *fromp, void *top, size_t count);
152 1.10 thorpej int mappedcopyout(void *fromp, void *top, size_t count);
153 1.3 thorpej extern u_int mappedcopysize;
154 1.3 thorpej #endif /* MAPPEDCOPY */
155 1.4 thorpej
156 1.5 gwr /* regdump.c */
157 1.10 thorpej void regdump(struct trapframe *, int);
158 1.5 gwr
159 1.3 thorpej #endif /* _KERNEL */
160 1.5 gwr #endif /* _M68K_M68K_H_ */
161