diff options
author | Miod Vallat <miod@cvs.openbsd.org> | 2004-04-24 19:51:50 +0000 |
---|---|---|
committer | Miod Vallat <miod@cvs.openbsd.org> | 2004-04-24 19:51:50 +0000 |
commit | 915c9097dfba70544f63ef9ade9d5057a9309f73 (patch) | |
tree | 6ca709504e608d4dcf774401f54ec8d6d23610c1 /sys/arch/mvme88k/dev/clreg.h | |
parent | ec053ecdd6fe18ab575f9b48eeebce50e5d161cf (diff) |
Preliminary switch to an mvme88k bus_space world. Not all drivers have been
converted yet, and they rely upon some linear mappings provided by bus_space.
In order to not impact performance, almost all the bus_space accesses go
through macros and inline functions. This currently restricts us to D16 and
D32 access modes, which are selected at compilation time. Since there are no
plans to support D8 vme devices in the future, this is acceptable for now.
This makes the "len" locator for vme devices go away, and allows to simplify
some code which was using the pcctwo device, and will now directly access
hardware which is known to exist, rather than wait until the device is
attached.
While there, try to enforce more interrupt vector number checks, since these
changes pointed out that dart(4) had been working correctly so far by sheer
luck only.
Diffstat (limited to 'sys/arch/mvme88k/dev/clreg.h')
-rw-r--r-- | sys/arch/mvme88k/dev/clreg.h | 221 |
1 files changed, 88 insertions, 133 deletions
diff --git a/sys/arch/mvme88k/dev/clreg.h b/sys/arch/mvme88k/dev/clreg.h index 91f69b2be4b..a3c66c92b18 100644 --- a/sys/arch/mvme88k/dev/clreg.h +++ b/sys/arch/mvme88k/dev/clreg.h @@ -1,4 +1,4 @@ -/* $OpenBSD: clreg.h,v 1.5 2004/01/05 20:08:01 miod Exp $ */ +/* $OpenBSD: clreg.h,v 1.6 2004/04/24 19:51:47 miod Exp $ */ /* Copyright (c) 1998 Steve Murphree, Jr. * Copyright (c) 1995 Dale Rahn. All rights reserved. @@ -27,139 +27,94 @@ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -struct clreg { - volatile u_char anon1[0x7]; - volatile u_char cl_cor7; /* 0x07 */ - volatile u_char anon2[0x1]; - volatile u_char cl_livr; /* 0x09 */ - volatile u_char anon3[0x6]; - volatile u_char cl_cor1; /* 0x10 */ - volatile u_char cl_ier; /* 0x11 */ - volatile u_char cl_stcr; /* 0x12 */ - volatile u_char cl_ccr; /* 0x13 */ - volatile u_char cl_cor5; /* 0x14 */ - volatile u_char cl_cor4; /* 0x15 */ - volatile u_char cl_cor3; /* 0x16 */ - volatile u_char cl_cor2; /* 0x17 */ - volatile u_char cl_cor6; /* 0x18 */ - volatile u_char cl_dmabsts; /* 0x19 */ - volatile u_char cl_csr; /* 0x1a */ - volatile u_char cl_cmr; /* 0x1b */ - volatile u_char cl_schr4; /* 0x1c */ - volatile u_char cl_schr3; /* 0x1d */ - volatile u_char cl_schr2; /* 0x1e */ - volatile u_char cl_schr1; /* 0x1f */ - volatile u_char anon5[0x2]; - volatile u_char cl_scrh; /* 0x22 */ - volatile u_char cl_scrl; /* 0x23 */ -#define cl_rtpr rtpr.rtpr_rtpr -#define cl_rtprh rtpr.hl.rtpr_rtprh -#define cl_rtprl rtpr.hl.rtpr_rtprl - union { - volatile u_short rtpr_rtpr; /* 0x24 */ - struct { - volatile u_char rtpr_rtprh; /* 0x24 */ - volatile u_char rtpr_rtprl; /* 0x25 */ - }hl; - }rtpr; - volatile u_char cl_licr; /* 0x26 */ - volatile u_char anon6[0x7]; - volatile u_char cl_lnxt; /* 0x2e */ - volatile u_char anon7[0x1]; - volatile u_char cl_rfoc; /* 0x30 */ - volatile u_char anon8[0x7]; - volatile u_short cl_tcbadru; /* 0x38 */ - volatile u_short cl_tcbadrl; /* 0x3a */ - volatile u_short cl_rcbadru; /* 0x3c */ - volatile u_short cl_rcbadrl; /* 0x3e */ - volatile u_short cl_arbadru; /* 0x40 */ - volatile u_short cl_arbadrl; /* 0x42 */ - volatile u_short cl_brbadru; /* 0x44 */ - volatile u_short cl_brbadrl; /* 0x46 */ - volatile u_short cl_brbcnt; /* 0x48 */ - volatile u_short cl_arbcnt; /* 0x4a */ - volatile u_char anoni[0x2]; - volatile u_char cl_brbsts; /* 0x4e */ - volatile u_char cl_arbsts; /* 0x4f */ -#define cl_atbadr atbadr.atbadr -#define cl_atbadru atbadr.hl.atbadru -#define cl_atbadrl atbadr.hl.atbadrl - union { - struct { - volatile u_short atbadru; /* 0x50 */ - volatile u_short atbadrl; /* 0x52 */ - }hl; - volatile u_long atbadr; /* 0x50 */ - }atbadr; -#define cl_btbadr btbadr.btbadr -#define cl_btbadru btbadr.hl.btbadru -#define cl_btbadrl btbadr.hl.btbadrl - union { - struct { - volatile u_short btbadru; /* 0x54 */ - volatile u_short btbadrl; /* 0x56 */ - }hl; - volatile u_long btbadr; /* 0x54 */ - }btbadr; - volatile u_short cl_btbcnt; /* 0x58 */ - volatile u_short cl_atbcnt; /* 0x5a */ - volatile u_char anono[0x2]; - volatile u_char cl_btbsts; /* 0x5e */ - volatile u_char cl_atbsts; /* 0x5f */ - volatile u_char anonp[0x20]; - volatile u_char cl_tftc; /* 0x80 */ - volatile u_char cl_gfrcr; /* 0x81 */ - volatile u_char anonq[0x2]; - volatile u_char cl_reoir; /* 0x84 */ - volatile u_char cl_teoir; /* 0x85 */ - volatile u_char cl_meoir; /* 0x86 */ - volatile u_char anonr[0x1]; -#define cl_risr risr.risr_risr -#define cl_risrl risr.hl.risr_risrl -#define cl_risrh risr.hl.risr_risrh - union { - volatile u_short risr_risr; /* 0x88 */ - struct { - volatile u_char risr_risrh; /* 0x88 */ - volatile u_char risr_risrl; /* 0x89 */ - }hl; - }risr; - volatile u_char cl_tisr; /* 0x8a */ - volatile u_char cl_misr; /* 0x8b */ - volatile u_char anons[0x2]; - volatile u_char cl_bercnt; /* 0x8e */ - volatile u_char anont[0x31]; - volatile u_char cl_tcor; /* 0xc0 */ - volatile u_char anonu[0x2]; - volatile u_char cl_tbpr; /* 0xc3 */ - volatile u_char anonv[0x4]; - volatile u_char cl_rcor; /* 0xc8 */ - volatile u_char anonw[0x2]; - volatile u_char cl_rbpr; /* 0xcb */ - volatile u_char anonx[0xa]; - volatile u_char cl_cpsr; /* 0xd6 */ - volatile u_char anony[0x3]; - volatile u_char cl_tpr; /* 0xda */ - volatile u_char anonz[0x3]; - volatile u_char cl_msvr_rts; /* 0xde */ - volatile u_char cl_msvr_dtr; /* 0xdf */ - volatile u_char cl_tpilr; /* 0xe0 */ - volatile u_char cl_rpilr; /* 0xe1 */ - volatile u_char cl_stk; /* 0xe2 */ - volatile u_char cl_mpilr; /* 0xe3 */ - volatile u_char anonA[0x8]; - volatile u_char cl_tir; /* 0xec */ - volatile u_char cl_rir; /* 0xed */ - volatile u_char cl_car; /* 0xee */ - volatile u_char cl_mir; /* 0xef */ - volatile u_char anonB[0x6]; - volatile u_char cl_dmr; /* 0xf6 */ - volatile u_char anonC[0x1]; -#define cl_rdr cl_tdr - volatile u_char cl_tdr; /* 0xf8 */ - volatile u_char anonD[7]; -}; +#define CL_COR7 0x0007 +#define CL_LIVR 0x0009 +#define CL_COR1 0x0010 +#define CL_IER 0x0011 +#define CL_STCR 0x0012 +#define CL_CCR 0x0013 +#define CL_COR5 0x0014 +#define CL_COR4 0x0015 +#define CL_COR3 0x0016 +#define CL_COR2 0x0017 +#define CL_COR6 0x0018 +#define CL_DMABSTS 0x0019 +#define CL_CSR 0x001a +#define CL_CMR 0x001b +#define CL_SCHR4 0x001c +#define CL_SCHR3 0x001d +#define CL_SCHR2 0x001e +#define CL_SCHR1 0x001f +#define CL_SCRH 0x0022 +#define CL_SCRL 0x0023 +#define CL_RTPR 0x0024 +#define CL_RTPRH 0x0024 +#define CL_RTPRL 0x0025 + +#define CL_LICR 0x0026 +#define CL_LNXT 0x002e +#define CL_RFOC 0x0030 + +#define CL_TCBADRU 0x0038 +#define CL_TCBADRL 0x003a +#define CL_RCBADRU 0x003c +#define CL_RCBADRL 0x003e +#define CL_ARBADRU 0x0040 +#define CL_ARBARDL 0x0042 +#define CL_BRBADRU 0x0044 +#define CL_BRBADRL 0x0046 +#define CL_BRBCNT 0x0048 +#define CL_ARBCNT 0x004a + +#define CL_BRBSTS 0x004e +#define CL_ARBSTS 0x004f + +#define CL_ATBADR 0x0050 +#define CL_ATBADRU 0x0050 +#define CL_ATBADRL 0x0052 +#define CL_BTBADR 0x0054 +#define CL_BTBADRU 0x0054 +#define CL_BTBADRL 0x0056 + +#define CL_BTBCNT 0x0058 +#define CL_ATBCNT 0x005a + +#define CL_BTBSTS 0x005e +#define CL_ATBSTS 0x005f + +#define CL_TFTC 0x0080 +#define CL_GFRCR 0x0081 +#define CL_REOIR 0x0084 +#define CL_TEOIR 0x0085 +#define CL_MEOIR 0x0086 + +#define CL_RISR 0x0088 +#define CL_RISRH 0x0088 +#define CL_RISRL 0x0089 + +#define CL_TISR 0x008a +#define CL_MISR 0x008b +#define CL_BERCNT 0x008e +#define CL_TCOR 0x00c0 +#define CL_TBPR 0x00c3 +#define CL_RCOR 0x00c8 +#define CL_RBPR 0x00cb +#define CL_CPSR 0x00d6 +#define CL_TPR 0x00da +#define CL_MSVR_RTS 0x00de +#define CL_MSVR_DTR 0x00df +#define CL_TPILR 0x00e0 +#define CL_RPILR 0x00e1 +#define CL_STK 0x00e2 +#define CL_MPILR 0x00e3 +#define CL_TIR 0x00ec +#define CL_RIR 0x00ed +#define CL_CAR 0x00ee +#define CL_MIR 0x00ef +#define CL_DMR 0x00f6 +#define CL_RDR 0x00f8 +#define CL_TDR 0x00f8 #define CD2400_SIZE 0x200 |