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