Annotation of sys/arch/m88k/include/m88100.h, Revision 1.1.1.1
1.1 nbrk 1: /* $OpenBSD: m88100.h,v 1.3 2006/11/18 22:58:28 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(unsigned *);
62: void data_access_emulation(unsigned *);
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:
75: #endif
76:
77: #endif /* __M88K_M88100_H__ */
CVSweb