1 /* $NetBSD: cpu.h,v 1.88 2024/01/20 00:15:30 thorpej Exp $ */ 2 3 /* 4 * Copyright (c) 1988 University of Utah. 5 * Copyright (c) 1982, 1990 The Regents of the University of California. 6 * All rights reserved. 7 * 8 * This code is derived from software contributed to Berkeley by 9 * the Systems Programming Group of the University of Utah Computer 10 * Science Department. 11 * 12 * Redistribution and use in source and binary forms, with or without 13 * modification, are permitted provided that the following conditions 14 * are met: 15 * 1. Redistributions of source code must retain the above copyright 16 * notice, this list of conditions and the following disclaimer. 17 * 2. Redistributions in binary form must reproduce the above copyright 18 * notice, this list of conditions and the following disclaimer in the 19 * documentation and/or other materials provided with the distribution. 20 * 3. Neither the name of the University nor the names of its contributors 21 * may be used to endorse or promote products derived from this software 22 * without specific prior written permission. 23 * 24 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 25 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 26 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 27 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 28 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 30 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 31 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 32 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 33 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 34 * SUCH DAMAGE. 35 * 36 * from: Utah $Hdr: cpu.h 1.16 91/03/25$ 37 * 38 * @(#)cpu.h 7.7 (Berkeley) 6/27/91 39 */ 40 41 #ifndef _MACHINE_CPU_H_ 42 #define _MACHINE_CPU_H_ 43 44 #if defined(_KERNEL_OPT) 45 #include "opt_lockdebug.h" 46 #endif 47 48 /* 49 * Get common m68k CPU definitions. 50 */ 51 #include <m68k/cpu.h> 52 53 #if defined(_KERNEL) 54 /* 55 * The rest of this should probably be moved to ../amiga/amigacpu.h, 56 * although some of it could probably be put into generic 68k headers. 57 */ 58 59 /* values for machineid (happen to be AFF_* settings of AttnFlags) */ 60 #define AMIGA_68020 (1L<<1) 61 #define AMIGA_68030 (1L<<2) 62 #define AMIGA_68040 (1L<<3) 63 #define AMIGA_68881 (1L<<4) 64 #define AMIGA_68882 (1L<<5) 65 #define AMIGA_FPU40 (1L<<6) 66 #define AMIGA_68060 (1L<<7) 67 68 extern int machineid; 69 70 /* 71 * Prototypes from amiga_init.c 72 */ 73 void *alloc_z2mem(long); 74 75 /* 76 * Prototypes from autoconf.c 77 */ 78 int is_a600(void); 79 int is_a1200(void); 80 int is_a3000(void); 81 int is_a4000(void); 82 #ifdef DRACO 83 #define is_draco() ((machineid >> 24) == 0x7d ? (machineid >> 16) & 0xff : 0) 84 #endif 85 86 #ifdef DRACO 87 /* 88 * Prototypes from kbd.c 89 */ 90 void drkbdintr(void); 91 92 /* 93 * Prototypes from drsc.c 94 */ 95 void drsc_handler(void); 96 #endif 97 98 /* 99 * Prototypes from locore.s 100 */ 101 void clearseg(vm_offset_t); 102 void doboot(void) __attribute__((__noreturn__)); 103 void physcopyseg(vm_offset_t, vm_offset_t); 104 u_int probeva(u_int, u_int); 105 106 /* 107 * Prototypes from machdep.c 108 */ 109 int badaddr(void *); 110 int badbaddr(void *); 111 void bootsync(void); 112 113 /* 114 * Prototypes from pmap.c: 115 */ 116 void pmap_bootstrap(vm_offset_t, vm_offset_t); 117 118 #endif /* _KERNEL */ 119 120 /* 121 * Reorder protection when accessing device registers. 122 */ 123 #define amiga_membarrier() 124 125 /* 126 * Finish all bus operations and flush pipelines. 127 */ 128 #define amiga_cpu_sync() __asm volatile ("nop") 129 130 #endif /* !_MACHINE_CPU_H_ */ 131