xref: /linux/arch/m68k/include/asm/setup.h (revision 4f2c0a4acffbec01079c28f839422e64ddeff004)
1c5f5d3e6SGreg Ungerer /*
2c5f5d3e6SGreg Ungerer ** asm/setup.h -- Definition of the Linux/m68k setup information
3c5f5d3e6SGreg Ungerer **
4c5f5d3e6SGreg Ungerer ** Copyright 1992 by Greg Harp
5c5f5d3e6SGreg Ungerer **
6c5f5d3e6SGreg Ungerer ** This file is subject to the terms and conditions of the GNU General Public
7c5f5d3e6SGreg Ungerer ** License.  See the file COPYING in the main directory of this archive
8c5f5d3e6SGreg Ungerer ** for more details.
9c5f5d3e6SGreg Ungerer **
10c5f5d3e6SGreg Ungerer ** Created 09/29/92 by Greg Harp
11c5f5d3e6SGreg Ungerer **
12c5f5d3e6SGreg Ungerer ** 5/2/94 Roman Hodek:
13c5f5d3e6SGreg Ungerer **   Added bi_atari part of the machine dependent union bi_un; for now it
14c5f5d3e6SGreg Ungerer **   contains just a model field to distinguish between TT and Falcon.
15c5f5d3e6SGreg Ungerer ** 26/7/96 Roman Zippel:
16c5f5d3e6SGreg Ungerer **   Renamed to setup.h; added some useful macros to allow gcc some
17c5f5d3e6SGreg Ungerer **   optimizations if possible.
18c5f5d3e6SGreg Ungerer ** 5/10/96 Geert Uytterhoeven:
19c5f5d3e6SGreg Ungerer **   Redesign of the boot information structure; moved boot information
20c5f5d3e6SGreg Ungerer **   structure to bootinfo.h
21c5f5d3e6SGreg Ungerer */
22c5f5d3e6SGreg Ungerer #ifndef _M68K_SETUP_H
23c5f5d3e6SGreg Ungerer #define _M68K_SETUP_H
24c5f5d3e6SGreg Ungerer 
2579930084SGeert Uytterhoeven #include <uapi/asm/bootinfo.h>
2610b3a979SDavid Howells #include <uapi/asm/setup.h>
27c5f5d3e6SGreg Ungerer 
28c5f5d3e6SGreg Ungerer 
29c5f5d3e6SGreg Ungerer #define CL_SIZE COMMAND_LINE_SIZE
30c5f5d3e6SGreg Ungerer 
31c5f5d3e6SGreg Ungerer #ifndef __ASSEMBLY__
32c5f5d3e6SGreg Ungerer extern unsigned long m68k_machtype;
33c5f5d3e6SGreg Ungerer #endif /* !__ASSEMBLY__ */
34c5f5d3e6SGreg Ungerer 
35c5f5d3e6SGreg Ungerer #if !defined(CONFIG_AMIGA)
36c5f5d3e6SGreg Ungerer #  define MACH_IS_AMIGA (0)
37c5f5d3e6SGreg Ungerer #elif defined(CONFIG_ATARI) || defined(CONFIG_MAC) || defined(CONFIG_APOLLO) \
38c5f5d3e6SGreg Ungerer 	|| defined(CONFIG_MVME16x) || defined(CONFIG_BVME6000)               \
39c5f5d3e6SGreg Ungerer 	|| defined(CONFIG_HP300) || defined(CONFIG_Q40)                      \
40*05d51e42SLaurent Vivier 	|| defined(CONFIG_SUN3X) || defined(CONFIG_MVME147)                  \
41*05d51e42SLaurent Vivier 	|| defined(CONFIG_VIRT)
42c5f5d3e6SGreg Ungerer #  define MACH_IS_AMIGA (m68k_machtype == MACH_AMIGA)
4349148020SSam Ravnborg #else
44c5f5d3e6SGreg Ungerer #  define MACH_AMIGA_ONLY
45c5f5d3e6SGreg Ungerer #  define MACH_IS_AMIGA (1)
46c5f5d3e6SGreg Ungerer #  define MACH_TYPE (MACH_AMIGA)
4749148020SSam Ravnborg #endif
48c5f5d3e6SGreg Ungerer 
49c5f5d3e6SGreg Ungerer #if !defined(CONFIG_ATARI)
50c5f5d3e6SGreg Ungerer #  define MACH_IS_ATARI (0)
51c5f5d3e6SGreg Ungerer #elif defined(CONFIG_AMIGA) || defined(CONFIG_MAC) || defined(CONFIG_APOLLO) \
52c5f5d3e6SGreg Ungerer 	|| defined(CONFIG_MVME16x) || defined(CONFIG_BVME6000)               \
53c5f5d3e6SGreg Ungerer 	|| defined(CONFIG_HP300) || defined(CONFIG_Q40)                      \
54*05d51e42SLaurent Vivier 	|| defined(CONFIG_SUN3X) || defined(CONFIG_MVME147)                  \
55*05d51e42SLaurent Vivier 	|| defined(CONFIG_VIRT)
56c5f5d3e6SGreg Ungerer #  define MACH_IS_ATARI (m68k_machtype == MACH_ATARI)
57c5f5d3e6SGreg Ungerer #else
58c5f5d3e6SGreg Ungerer #  define MACH_ATARI_ONLY
59c5f5d3e6SGreg Ungerer #  define MACH_IS_ATARI (1)
60c5f5d3e6SGreg Ungerer #  define MACH_TYPE (MACH_ATARI)
61c5f5d3e6SGreg Ungerer #endif
62c5f5d3e6SGreg Ungerer 
63c5f5d3e6SGreg Ungerer #if !defined(CONFIG_MAC)
64c5f5d3e6SGreg Ungerer #  define MACH_IS_MAC (0)
65c5f5d3e6SGreg Ungerer #elif defined(CONFIG_AMIGA) || defined(CONFIG_ATARI) || defined(CONFIG_APOLLO) \
66c5f5d3e6SGreg Ungerer 	|| defined(CONFIG_MVME16x) || defined(CONFIG_BVME6000)                 \
67c5f5d3e6SGreg Ungerer 	|| defined(CONFIG_HP300) || defined(CONFIG_Q40)                        \
68*05d51e42SLaurent Vivier 	|| defined(CONFIG_SUN3X) || defined(CONFIG_MVME147)                    \
69*05d51e42SLaurent Vivier 	|| defined(CONFIG_VIRT)
70c5f5d3e6SGreg Ungerer #  define MACH_IS_MAC (m68k_machtype == MACH_MAC)
71c5f5d3e6SGreg Ungerer #else
72c5f5d3e6SGreg Ungerer #  define MACH_MAC_ONLY
73c5f5d3e6SGreg Ungerer #  define MACH_IS_MAC (1)
74c5f5d3e6SGreg Ungerer #  define MACH_TYPE (MACH_MAC)
75c5f5d3e6SGreg Ungerer #endif
76c5f5d3e6SGreg Ungerer 
77c5f5d3e6SGreg Ungerer #if defined(CONFIG_SUN3)
78c5f5d3e6SGreg Ungerer #define MACH_IS_SUN3 (1)
79c5f5d3e6SGreg Ungerer #define MACH_SUN3_ONLY (1)
80c5f5d3e6SGreg Ungerer #define MACH_TYPE (MACH_SUN3)
81c5f5d3e6SGreg Ungerer #else
82c5f5d3e6SGreg Ungerer #define MACH_IS_SUN3 (0)
83c5f5d3e6SGreg Ungerer #endif
84c5f5d3e6SGreg Ungerer 
85c5f5d3e6SGreg Ungerer #if !defined (CONFIG_APOLLO)
86c5f5d3e6SGreg Ungerer #  define MACH_IS_APOLLO (0)
87c5f5d3e6SGreg Ungerer #elif defined(CONFIG_AMIGA) || defined(CONFIG_MAC) || defined(CONFIG_ATARI) \
88c5f5d3e6SGreg Ungerer 	|| defined(CONFIG_MVME16x) || defined(CONFIG_BVME6000)              \
89c5f5d3e6SGreg Ungerer 	|| defined(CONFIG_HP300) || defined(CONFIG_Q40)                     \
90*05d51e42SLaurent Vivier 	|| defined(CONFIG_SUN3X) || defined(CONFIG_MVME147)                 \
91*05d51e42SLaurent Vivier 	|| defined(CONFIG_VIRT)
92c5f5d3e6SGreg Ungerer #  define MACH_IS_APOLLO (m68k_machtype == MACH_APOLLO)
93c5f5d3e6SGreg Ungerer #else
94c5f5d3e6SGreg Ungerer #  define MACH_APOLLO_ONLY
95c5f5d3e6SGreg Ungerer #  define MACH_IS_APOLLO (1)
96c5f5d3e6SGreg Ungerer #  define MACH_TYPE (MACH_APOLLO)
97c5f5d3e6SGreg Ungerer #endif
98c5f5d3e6SGreg Ungerer 
99c5f5d3e6SGreg Ungerer #if !defined (CONFIG_MVME147)
100c5f5d3e6SGreg Ungerer #  define MACH_IS_MVME147 (0)
101c5f5d3e6SGreg Ungerer #elif defined(CONFIG_AMIGA) || defined(CONFIG_MAC) || defined(CONFIG_ATARI) \
102c5f5d3e6SGreg Ungerer 	|| defined(CONFIG_APOLLO) || defined(CONFIG_BVME6000)               \
103c5f5d3e6SGreg Ungerer 	|| defined(CONFIG_HP300) || defined(CONFIG_Q40)                     \
104*05d51e42SLaurent Vivier 	|| defined(CONFIG_SUN3X) || defined(CONFIG_MVME16x)                 \
105*05d51e42SLaurent Vivier 	|| defined(CONFIG_VIRT)
106c5f5d3e6SGreg Ungerer #  define MACH_IS_MVME147 (m68k_machtype == MACH_MVME147)
107c5f5d3e6SGreg Ungerer #else
108c5f5d3e6SGreg Ungerer #  define MACH_MVME147_ONLY
109c5f5d3e6SGreg Ungerer #  define MACH_IS_MVME147 (1)
110c5f5d3e6SGreg Ungerer #  define MACH_TYPE (MACH_MVME147)
111c5f5d3e6SGreg Ungerer #endif
112c5f5d3e6SGreg Ungerer 
113c5f5d3e6SGreg Ungerer #if !defined (CONFIG_MVME16x)
114c5f5d3e6SGreg Ungerer #  define MACH_IS_MVME16x (0)
115c5f5d3e6SGreg Ungerer #elif defined(CONFIG_AMIGA) || defined(CONFIG_MAC) || defined(CONFIG_ATARI) \
116c5f5d3e6SGreg Ungerer 	|| defined(CONFIG_APOLLO) || defined(CONFIG_BVME6000)               \
117c5f5d3e6SGreg Ungerer 	|| defined(CONFIG_HP300) || defined(CONFIG_Q40)                     \
118*05d51e42SLaurent Vivier 	|| defined(CONFIG_SUN3X) || defined(CONFIG_MVME147)                 \
119*05d51e42SLaurent Vivier 	|| defined(CONFIG_VIRT)
120c5f5d3e6SGreg Ungerer #  define MACH_IS_MVME16x (m68k_machtype == MACH_MVME16x)
121c5f5d3e6SGreg Ungerer #else
122c5f5d3e6SGreg Ungerer #  define MACH_MVME16x_ONLY
123c5f5d3e6SGreg Ungerer #  define MACH_IS_MVME16x (1)
124c5f5d3e6SGreg Ungerer #  define MACH_TYPE (MACH_MVME16x)
125c5f5d3e6SGreg Ungerer #endif
126c5f5d3e6SGreg Ungerer 
127c5f5d3e6SGreg Ungerer #if !defined (CONFIG_BVME6000)
128c5f5d3e6SGreg Ungerer #  define MACH_IS_BVME6000 (0)
129c5f5d3e6SGreg Ungerer #elif defined(CONFIG_AMIGA) || defined(CONFIG_MAC) || defined(CONFIG_ATARI) \
130c5f5d3e6SGreg Ungerer 	|| defined(CONFIG_APOLLO) || defined(CONFIG_MVME16x)                \
131c5f5d3e6SGreg Ungerer 	|| defined(CONFIG_HP300) || defined(CONFIG_Q40)                     \
132*05d51e42SLaurent Vivier 	|| defined(CONFIG_SUN3X) || defined(CONFIG_MVME147)                 \
133*05d51e42SLaurent Vivier 	|| defined(CONFIG_VIRT)
134c5f5d3e6SGreg Ungerer #  define MACH_IS_BVME6000 (m68k_machtype == MACH_BVME6000)
135c5f5d3e6SGreg Ungerer #else
136c5f5d3e6SGreg Ungerer #  define MACH_BVME6000_ONLY
137c5f5d3e6SGreg Ungerer #  define MACH_IS_BVME6000 (1)
138c5f5d3e6SGreg Ungerer #  define MACH_TYPE (MACH_BVME6000)
139c5f5d3e6SGreg Ungerer #endif
140c5f5d3e6SGreg Ungerer 
141c5f5d3e6SGreg Ungerer #if !defined (CONFIG_HP300)
142c5f5d3e6SGreg Ungerer #  define MACH_IS_HP300 (0)
143c5f5d3e6SGreg Ungerer #elif defined(CONFIG_AMIGA) || defined(CONFIG_MAC) || defined(CONFIG_ATARI) \
144c5f5d3e6SGreg Ungerer 	|| defined(CONFIG_APOLLO) || defined(CONFIG_MVME16x) \
145c5f5d3e6SGreg Ungerer 	|| defined(CONFIG_BVME6000) || defined(CONFIG_Q40) \
146*05d51e42SLaurent Vivier 	|| defined(CONFIG_SUN3X) || defined(CONFIG_MVME147) \
147*05d51e42SLaurent Vivier 	|| defined(CONFIG_VIRT)
148c5f5d3e6SGreg Ungerer #  define MACH_IS_HP300 (m68k_machtype == MACH_HP300)
149c5f5d3e6SGreg Ungerer #else
150c5f5d3e6SGreg Ungerer #  define MACH_HP300_ONLY
151c5f5d3e6SGreg Ungerer #  define MACH_IS_HP300 (1)
152c5f5d3e6SGreg Ungerer #  define MACH_TYPE (MACH_HP300)
153c5f5d3e6SGreg Ungerer #endif
154c5f5d3e6SGreg Ungerer 
155c5f5d3e6SGreg Ungerer #if !defined (CONFIG_Q40)
156c5f5d3e6SGreg Ungerer #  define MACH_IS_Q40 (0)
157c5f5d3e6SGreg Ungerer #elif defined(CONFIG_AMIGA) || defined(CONFIG_MAC) || defined(CONFIG_ATARI) \
158c5f5d3e6SGreg Ungerer 	|| defined(CONFIG_APOLLO) || defined(CONFIG_MVME16x)                \
159c5f5d3e6SGreg Ungerer 	|| defined(CONFIG_BVME6000) || defined(CONFIG_HP300)                \
160*05d51e42SLaurent Vivier 	|| defined(CONFIG_SUN3X) || defined(CONFIG_MVME147)                 \
161*05d51e42SLaurent Vivier 	|| defined(CONFIG_VIRT)
162c5f5d3e6SGreg Ungerer #  define MACH_IS_Q40 (m68k_machtype == MACH_Q40)
163c5f5d3e6SGreg Ungerer #else
164c5f5d3e6SGreg Ungerer #  define MACH_Q40_ONLY
165c5f5d3e6SGreg Ungerer #  define MACH_IS_Q40 (1)
166c5f5d3e6SGreg Ungerer #  define MACH_TYPE (MACH_Q40)
167c5f5d3e6SGreg Ungerer #endif
168c5f5d3e6SGreg Ungerer 
169c5f5d3e6SGreg Ungerer #if !defined (CONFIG_SUN3X)
170c5f5d3e6SGreg Ungerer #  define MACH_IS_SUN3X (0)
171c5f5d3e6SGreg Ungerer #elif defined(CONFIG_AMIGA) || defined(CONFIG_MAC) || defined(CONFIG_ATARI) \
172c5f5d3e6SGreg Ungerer 	|| defined(CONFIG_APOLLO) || defined(CONFIG_MVME16x)                \
173c5f5d3e6SGreg Ungerer 	|| defined(CONFIG_BVME6000) || defined(CONFIG_HP300)                \
174*05d51e42SLaurent Vivier 	|| defined(CONFIG_Q40) || defined(CONFIG_MVME147)                   \
175*05d51e42SLaurent Vivier 	|| defined(CONFIG_VIRT)
176c5f5d3e6SGreg Ungerer #  define MACH_IS_SUN3X (m68k_machtype == MACH_SUN3X)
177c5f5d3e6SGreg Ungerer #else
178c5f5d3e6SGreg Ungerer #  define CONFIG_SUN3X_ONLY
179c5f5d3e6SGreg Ungerer #  define MACH_IS_SUN3X (1)
180c5f5d3e6SGreg Ungerer #  define MACH_TYPE (MACH_SUN3X)
181c5f5d3e6SGreg Ungerer #endif
182c5f5d3e6SGreg Ungerer 
183*05d51e42SLaurent Vivier #if !defined(CONFIG_VIRT)
184*05d51e42SLaurent Vivier #  define MACH_IS_VIRT (0)
185*05d51e42SLaurent Vivier #elif defined(CONFIG_AMIGA) || defined(CONFIG_MAC) || defined(CONFIG_ATARI) \
186*05d51e42SLaurent Vivier 	|| defined(CONFIG_APOLLO) || defined(CONFIG_MVME16x)                \
187*05d51e42SLaurent Vivier 	|| defined(CONFIG_BVME6000) || defined(CONFIG_HP300)                \
188*05d51e42SLaurent Vivier 	|| defined(CONFIG_Q40) || defined(CONFIG_SUN3X)                     \
189*05d51e42SLaurent Vivier 	|| defined(CONFIG_MVME147)
190*05d51e42SLaurent Vivier #  define MACH_IS_VIRT (m68k_machtype == MACH_VIRT)
191*05d51e42SLaurent Vivier #else
192*05d51e42SLaurent Vivier #  define MACH_VIRT_ONLY
193*05d51e42SLaurent Vivier #  define MACH_IS_VIRT (1)
194*05d51e42SLaurent Vivier #  define MACH_TYPE (MACH_VIRT)
195*05d51e42SLaurent Vivier #endif
196*05d51e42SLaurent Vivier 
197c5f5d3e6SGreg Ungerer #ifndef MACH_TYPE
198c5f5d3e6SGreg Ungerer #  define MACH_TYPE (m68k_machtype)
199c5f5d3e6SGreg Ungerer #endif
200c5f5d3e6SGreg Ungerer 
201c5f5d3e6SGreg Ungerer 
202c5f5d3e6SGreg Ungerer #ifndef __ASSEMBLY__
203c5f5d3e6SGreg Ungerer extern unsigned long m68k_cputype;
204c5f5d3e6SGreg Ungerer extern unsigned long m68k_fputype;
205c5f5d3e6SGreg Ungerer extern unsigned long m68k_mmutype;
206c5f5d3e6SGreg Ungerer #ifdef CONFIG_VME
207c5f5d3e6SGreg Ungerer extern unsigned long vme_brdtype;
208c5f5d3e6SGreg Ungerer #endif
209c5f5d3e6SGreg Ungerer 
210c5f5d3e6SGreg Ungerer     /*
211c5f5d3e6SGreg Ungerer      *  m68k_is040or060 is != 0 for a '040 or higher;
212c5f5d3e6SGreg Ungerer      *  used numbers are 4 for 68040 and 6 for 68060.
213c5f5d3e6SGreg Ungerer      */
214c5f5d3e6SGreg Ungerer 
215c5f5d3e6SGreg Ungerer extern int m68k_is040or060;
216c5f5d3e6SGreg Ungerer #endif /* !__ASSEMBLY__ */
217c5f5d3e6SGreg Ungerer 
218c5f5d3e6SGreg Ungerer #if !defined(CONFIG_M68020)
219c5f5d3e6SGreg Ungerer #  define CPU_IS_020 (0)
220c5f5d3e6SGreg Ungerer #  define MMU_IS_851 (0)
221c5f5d3e6SGreg Ungerer #  define MMU_IS_SUN3 (0)
222c5f5d3e6SGreg Ungerer #elif defined(CONFIG_M68030) || defined(CONFIG_M68040) || defined(CONFIG_M68060)
223c5f5d3e6SGreg Ungerer #  define CPU_IS_020 (m68k_cputype & CPU_68020)
224c5f5d3e6SGreg Ungerer #  define MMU_IS_851 (m68k_mmutype & MMU_68851)
225c5f5d3e6SGreg Ungerer #  define MMU_IS_SUN3 (0)	/* Sun3 not supported with other CPU enabled */
226c5f5d3e6SGreg Ungerer #else
227c5f5d3e6SGreg Ungerer #  define CPU_M68020_ONLY
228c5f5d3e6SGreg Ungerer #  define CPU_IS_020 (1)
229c5f5d3e6SGreg Ungerer #ifdef MACH_SUN3_ONLY
230c5f5d3e6SGreg Ungerer #  define MMU_IS_SUN3 (1)
231c5f5d3e6SGreg Ungerer #  define MMU_IS_851 (0)
232c5f5d3e6SGreg Ungerer #else
233c5f5d3e6SGreg Ungerer #  define MMU_IS_SUN3 (0)
234c5f5d3e6SGreg Ungerer #  define MMU_IS_851 (1)
235c5f5d3e6SGreg Ungerer #endif
236c5f5d3e6SGreg Ungerer #endif
237c5f5d3e6SGreg Ungerer 
238c5f5d3e6SGreg Ungerer #if !defined(CONFIG_M68030)
239c5f5d3e6SGreg Ungerer #  define CPU_IS_030 (0)
240c5f5d3e6SGreg Ungerer #  define MMU_IS_030 (0)
241c5f5d3e6SGreg Ungerer #elif defined(CONFIG_M68020) || defined(CONFIG_M68040) || defined(CONFIG_M68060)
242c5f5d3e6SGreg Ungerer #  define CPU_IS_030 (m68k_cputype & CPU_68030)
243c5f5d3e6SGreg Ungerer #  define MMU_IS_030 (m68k_mmutype & MMU_68030)
244c5f5d3e6SGreg Ungerer #else
245c5f5d3e6SGreg Ungerer #  define CPU_M68030_ONLY
246c5f5d3e6SGreg Ungerer #  define CPU_IS_030 (1)
247c5f5d3e6SGreg Ungerer #  define MMU_IS_030 (1)
248c5f5d3e6SGreg Ungerer #endif
249c5f5d3e6SGreg Ungerer 
250c5f5d3e6SGreg Ungerer #if !defined(CONFIG_M68040)
251c5f5d3e6SGreg Ungerer #  define CPU_IS_040 (0)
252c5f5d3e6SGreg Ungerer #  define MMU_IS_040 (0)
253c5f5d3e6SGreg Ungerer #elif defined(CONFIG_M68020) || defined(CONFIG_M68030) || defined(CONFIG_M68060)
254c5f5d3e6SGreg Ungerer #  define CPU_IS_040 (m68k_cputype & CPU_68040)
255c5f5d3e6SGreg Ungerer #  define MMU_IS_040 (m68k_mmutype & MMU_68040)
256c5f5d3e6SGreg Ungerer #else
257c5f5d3e6SGreg Ungerer #  define CPU_M68040_ONLY
258c5f5d3e6SGreg Ungerer #  define CPU_IS_040 (1)
259c5f5d3e6SGreg Ungerer #  define MMU_IS_040 (1)
260c5f5d3e6SGreg Ungerer #endif
261c5f5d3e6SGreg Ungerer 
262c5f5d3e6SGreg Ungerer #if !defined(CONFIG_M68060)
263c5f5d3e6SGreg Ungerer #  define CPU_IS_060 (0)
264c5f5d3e6SGreg Ungerer #  define MMU_IS_060 (0)
265c5f5d3e6SGreg Ungerer #elif defined(CONFIG_M68020) || defined(CONFIG_M68030) || defined(CONFIG_M68040)
266c5f5d3e6SGreg Ungerer #  define CPU_IS_060 (m68k_cputype & CPU_68060)
267c5f5d3e6SGreg Ungerer #  define MMU_IS_060 (m68k_mmutype & MMU_68060)
268c5f5d3e6SGreg Ungerer #else
269c5f5d3e6SGreg Ungerer #  define CPU_M68060_ONLY
270c5f5d3e6SGreg Ungerer #  define CPU_IS_060 (1)
271c5f5d3e6SGreg Ungerer #  define MMU_IS_060 (1)
272c5f5d3e6SGreg Ungerer #endif
273c5f5d3e6SGreg Ungerer 
274c5f5d3e6SGreg Ungerer #if !defined(CONFIG_M68020) && !defined(CONFIG_M68030)
275c5f5d3e6SGreg Ungerer #  define CPU_IS_020_OR_030 (0)
276c5f5d3e6SGreg Ungerer #else
277c5f5d3e6SGreg Ungerer #  define CPU_M68020_OR_M68030
278c5f5d3e6SGreg Ungerer #  if defined(CONFIG_M68040) || defined(CONFIG_M68060)
279c5f5d3e6SGreg Ungerer #    define CPU_IS_020_OR_030 (!m68k_is040or060)
280c5f5d3e6SGreg Ungerer #  else
281c5f5d3e6SGreg Ungerer #    define CPU_M68020_OR_M68030_ONLY
282c5f5d3e6SGreg Ungerer #    define CPU_IS_020_OR_030 (1)
283c5f5d3e6SGreg Ungerer #  endif
284c5f5d3e6SGreg Ungerer #endif
285c5f5d3e6SGreg Ungerer 
286c5f5d3e6SGreg Ungerer #if !defined(CONFIG_M68040) && !defined(CONFIG_M68060)
287c5f5d3e6SGreg Ungerer #  define CPU_IS_040_OR_060 (0)
288c5f5d3e6SGreg Ungerer #else
289c5f5d3e6SGreg Ungerer #  define CPU_M68040_OR_M68060
290c5f5d3e6SGreg Ungerer #  if defined(CONFIG_M68020) || defined(CONFIG_M68030)
291c5f5d3e6SGreg Ungerer #    define CPU_IS_040_OR_060 (m68k_is040or060)
292c5f5d3e6SGreg Ungerer #  else
293c5f5d3e6SGreg Ungerer #    define CPU_M68040_OR_M68060_ONLY
294c5f5d3e6SGreg Ungerer #    define CPU_IS_040_OR_060 (1)
295c5f5d3e6SGreg Ungerer #  endif
296c5f5d3e6SGreg Ungerer #endif
297c5f5d3e6SGreg Ungerer 
29859dbb3b1SGreg Ungerer #if !defined(CONFIG_COLDFIRE)
29959dbb3b1SGreg Ungerer #  define CPU_IS_COLDFIRE (0)
30059dbb3b1SGreg Ungerer #else
30159dbb3b1SGreg Ungerer #  define CPU_IS_COLDFIRE (1)
30259dbb3b1SGreg Ungerer #  define MMU_IS_COLDFIRE (1)
30359dbb3b1SGreg Ungerer #endif
30459dbb3b1SGreg Ungerer 
305c5f5d3e6SGreg Ungerer #define CPU_TYPE (m68k_cputype)
306c5f5d3e6SGreg Ungerer 
307c5f5d3e6SGreg Ungerer #ifdef CONFIG_M68KFPU_EMU
308c5f5d3e6SGreg Ungerer #  ifdef CONFIG_M68KFPU_EMU_ONLY
309c5f5d3e6SGreg Ungerer #    define FPU_IS_EMU (1)
310c5f5d3e6SGreg Ungerer #  else
311c5f5d3e6SGreg Ungerer #    define FPU_IS_EMU (!m68k_fputype)
312c5f5d3e6SGreg Ungerer #  endif
313c5f5d3e6SGreg Ungerer #else
314c5f5d3e6SGreg Ungerer #  define FPU_IS_EMU (0)
315c5f5d3e6SGreg Ungerer #endif
316c5f5d3e6SGreg Ungerer 
317c5f5d3e6SGreg Ungerer 
318c5f5d3e6SGreg Ungerer     /*
319c5f5d3e6SGreg Ungerer      *  Miscellaneous
320c5f5d3e6SGreg Ungerer      */
321c5f5d3e6SGreg Ungerer 
322c5f5d3e6SGreg Ungerer #define NUM_MEMINFO	4
323c5f5d3e6SGreg Ungerer 
324c5f5d3e6SGreg Ungerer #ifndef __ASSEMBLY__
32579930084SGeert Uytterhoeven struct m68k_mem_info {
326c5f5d3e6SGreg Ungerer 	unsigned long addr;		/* physical address of memory chunk */
327c5f5d3e6SGreg Ungerer 	unsigned long size;		/* length of memory chunk (in bytes) */
328c5f5d3e6SGreg Ungerer };
329c5f5d3e6SGreg Ungerer 
330c5f5d3e6SGreg Ungerer extern int m68k_num_memory;		/* # of memory blocks found (and used) */
331c5f5d3e6SGreg Ungerer extern int m68k_realnum_memory;		/* real # of memory blocks found */
33279930084SGeert Uytterhoeven extern struct m68k_mem_info m68k_memory[NUM_MEMINFO];/* memory description */
333c5f5d3e6SGreg Ungerer #endif
334c5f5d3e6SGreg Ungerer 
335c5f5d3e6SGreg Ungerer #endif /* _M68K_SETUP_H */
336