1 /* $OpenBSD: m88100.h,v 1.5 2009/02/21 18:37:47 miod Exp $ */ 2 /* 3 * Mach Operating System 4 * Copyright (c) 1993-1992 Carnegie Mellon University 5 * All Rights Reserved. 6 * 7 * Permission to use, copy, modify and distribute this software and its 8 * documentation is hereby granted, provided that both the copyright 9 * notice and this permission notice appear in all copies of the 10 * software, derivative works or modified versions, and any portions 11 * thereof, and that both notices appear in supporting documentation. 12 * 13 * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" 14 * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR 15 * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. 16 * 17 * Carnegie Mellon requests users of this software to return to 18 * 19 * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU 20 * School of Computer Science 21 * Carnegie Mellon University 22 * Pittsburgh PA 15213-3890 23 * 24 * any improvements or extensions that they make and grant Carnegie Mellon 25 * the rights to redistribute these changes. 26 */ 27 28 #ifndef __M88K_M88100_H__ 29 #define __M88K_M88100_H__ 30 31 /* 32 * 88100 RISC definitions 33 */ 34 35 /* 36 * DMT0, DMT1, DMT2 layout 37 * 38 * The DMT_SKIP bit is never set by the cpu. It is used to mark 'known' 39 * transactions so that they don't get processed a second time by 40 * data_access_emulation(). 41 */ 42 #define DMT_SKIP 0x00010000 /* skip this dmt */ 43 #define DMT_BO 0x00008000 /* Byte-Ordering */ 44 #define DMT_DAS 0x00004000 /* Data Access Space */ 45 #define DMT_DOUB1 0x00002000 /* Double Word */ 46 #define DMT_LOCKBAR 0x00001000 /* Bud Lock */ 47 #define DMT_DREG 0x00000F80 /* Destination Registers 5bits */ 48 #define DMT_SIGNED 0x00000040 /* Sign-Extended Bit */ 49 #define DMT_EN 0x0000003C /* Byte Enable Bit */ 50 #define DMT_WRITE 0x00000002 /* Read/Write Transaction Bit */ 51 #define DMT_VALID 0x00000001 /* Valid Transaction Bit */ 52 53 #define DMT_DREGSHIFT 7 54 #define DMT_ENSHIFT 2 55 56 #define DMT_DREGBITS(x) (((x) & DMT_DREG) >> DMT_DREGSHIFT) 57 #define DMT_ENBITS(x) (((x) & DMT_EN) >> DMT_ENSHIFT) 58 59 #if defined(_KERNEL) && !defined(_LOCORE) 60 61 void dae_print(u_int *); 62 void data_access_emulation(u_int *); 63 64 u_int32_t do_load_word(vaddr_t, int); 65 u_int16_t do_load_half(vaddr_t, int); 66 u_int8_t do_load_byte(vaddr_t, int); 67 void do_store_word(vaddr_t, u_int32_t, int); 68 void do_store_half(vaddr_t, u_int16_t, int); 69 void do_store_byte(vaddr_t, u_int8_t, int); 70 u_int32_t do_xmem_word(vaddr_t, u_int32_t, int); 71 u_int8_t do_xmem_byte(vaddr_t, u_int8_t, int); 72 73 void m88100_apply_patches(void); 74 void m88100_smp_setup(struct cpu_info *); 75 76 #endif 77 78 #endif /* __M88K_M88100_H__ */ 79