rfreg.h revision 1.2 1 1.2 wiz /* $NetBSD: rfreg.h,v 1.2 2004/10/06 12:12:42 wiz Exp $ */
2 1.1 ragge /*
3 1.1 ragge * Copyright (c) 2002 Jochen Kunz.
4 1.1 ragge * All rights reserved.
5 1.1 ragge *
6 1.1 ragge * Redistribution and use in source and binary forms, with or without
7 1.1 ragge * modification, are permitted provided that the following conditions
8 1.1 ragge * are met:
9 1.1 ragge * 1. Redistributions of source code must retain the above copyright
10 1.1 ragge * notice, this list of conditions and the following disclaimer.
11 1.1 ragge * 2. Redistributions in binary form must reproduce the above copyright
12 1.1 ragge * notice, this list of conditions and the following disclaimer in the
13 1.1 ragge * documentation and/or other materials provided with the distribution.
14 1.1 ragge * 3. The name of Jochen Kunz may not be used to endorse or promote
15 1.1 ragge * products derived from this software without specific prior
16 1.1 ragge * written permission.
17 1.1 ragge *
18 1.1 ragge * THIS SOFTWARE IS PROVIDED BY JOCHEN KUNZ
19 1.1 ragge * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
20 1.1 ragge * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
21 1.1 ragge * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JOCHEN KUNZ
22 1.1 ragge * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
23 1.1 ragge * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
24 1.1 ragge * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
25 1.1 ragge * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
26 1.1 ragge * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
27 1.1 ragge * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
28 1.1 ragge * POSSIBILITY OF SUCH DAMAGE.
29 1.1 ragge */
30 1.1 ragge
31 1.1 ragge
32 1.1 ragge
33 1.2 wiz /* Registers in Uni/QBus I/O space. */
34 1.1 ragge #define RX2CS 0 /* Command and Status Register */
35 1.1 ragge #define RX2DB 2 /* Data Buffer Register */
36 1.1 ragge /* RX2DB is depending on context: */
37 1.1 ragge #define RX2BA 2 /* Bus Address Register */
38 1.1 ragge #define RX2TA 2 /* Track Address Register */
39 1.1 ragge #define RX2SA 2 /* Sector Address Register */
40 1.1 ragge #define RX2WC 2 /* Word Count Register */
41 1.1 ragge #define RX2ES 2 /* Error and Status Register */
42 1.1 ragge
43 1.1 ragge
44 1.1 ragge /* Bitdefinitions of CSR. */
45 1.1 ragge #define RX2CS_ERR 0x8000 /* Error RO */
46 1.1 ragge #define RX2CS_INIT 0x4000 /* Initialize WO */
47 1.1 ragge #define RX2CS_UAEBH 0x2000 /* Unibus address extension high bit WO */
48 1.1 ragge #define RX2CS_UAEBI 0x1000 /* Unibus address extension low bit WO */
49 1.1 ragge #define RX2CS_RX02 0x0800 /* RX02 RO */
50 1.1 ragge /* 0x0400 Not Used -- */
51 1.1 ragge /* 0x0200 Not Used -- */
52 1.1 ragge #define RX2CS_DD 0x0100 /* Double Density R/W */
53 1.1 ragge #define RX2CS_TR 0x0080 /* Transfer Request RO */
54 1.1 ragge #define RX2CS_IE 0x0040 /* Interrupt Enable R/W */
55 1.1 ragge #define RX2CS_DONE 0x0020 /* Done RO */
56 1.1 ragge #define RX2CS_US 0x0010 /* Unit Select WO */
57 1.1 ragge #define RX2CS_FCH 0x0008 /* Function Code high bit WO */
58 1.1 ragge #define RX2CS_FCM 0x0004 /* Function Code mid bit WO */
59 1.1 ragge #define RX2CS_FCL 0x0002 /* Function Code low bit WO */
60 1.1 ragge #define RX2CS_GO 0x0001 /* Go WO */
61 1.1 ragge #define RX2CS_NU 0x0600 /* not used bits -- */
62 1.1 ragge
63 1.1 ragge
64 1.1 ragge #define RX2CS_UAEB ( RX2CS_UAEBH | RX2CS_UAEBI )
65 1.1 ragge #define RX2CS_FC ( RX2CS_FCH | RX2CS_FCM | RX2CS_FCL )
66 1.1 ragge
67 1.1 ragge
68 1.1 ragge /* Commands of the controller and parameter cont. */
69 1.1 ragge #define RX2CS_FBUF 001 /* Fill Buffer, word count and bus address */
70 1.1 ragge #define RX2CS_EBUF 003 /* Empty Buffer, word count and bus address */
71 1.1 ragge #define RX2CS_WSEC 005 /* Write Sector, sector and track */
72 1.1 ragge #define RX2CS_RSEC 007 /* Read Sector, sector and track */
73 1.1 ragge #define RX2CS_SMD 011 /* Set Media Density, ??? */
74 1.1 ragge #define RX2CS_RSTAT 013 /* Read Status, no params */
75 1.1 ragge #define RX2CS_WDDS 015 /* Write Deleted Data Sector, sector and track */
76 1.1 ragge #define RX2CS_REC 017 /* Read Error Code, bus address */
77 1.1 ragge
78 1.1 ragge
79 1.1 ragge /* Track Address Register */
80 1.1 ragge #define RX2TA_MASK 0x7f
81 1.1 ragge
82 1.1 ragge
83 1.1 ragge /* Sector Address Register */
84 1.1 ragge #define RX2SA_MASK 0x1f
85 1.1 ragge
86 1.1 ragge
87 1.1 ragge /* Word Count Register */
88 1.1 ragge #define RX2WC_MASK 0x7f
89 1.1 ragge
90 1.1 ragge
91 1.1 ragge /* Bitdefinitions of RX2ES. */
92 1.1 ragge /* <15-12> Not Used -- */
93 1.1 ragge #define RX2ES_NEM 0x0800 /* Non-Existend Memory RO */
94 1.1 ragge #define RX2ES_WCO 0x0400 /* Word Count Overflow RO */
95 1.1 ragge /* 0x0200 Not Used RO */
96 1.1 ragge #define RX2ES_US 0x0010 /* Unit Select RO */
97 1.1 ragge #define RX2ES_RDY 0x0080 /* Ready RO */
98 1.1 ragge #define RX2ES_DEL 0x0040 /* Deleted Data RO */
99 1.1 ragge #define RX2ES_DD 0x0020 /* Double Density RO */
100 1.1 ragge #define RX2ES_DE 0x0010 /* Density Error RO */
101 1.1 ragge #define RX2ES_ACL 0x0008 /* AC Lost RO */
102 1.1 ragge #define RX2ES_ID 0x0004 /* Initialize Done RO */
103 1.1 ragge /* 0x0002 Not Used -- */
104 1.1 ragge #define RX2ES_CRCE 0x0001 /* CRC Error RO */
105 1.1 ragge #define RX2ES_NU 0xF202 /* not used bits -- */
106 1.1 ragge
107 1.1 ragge
108 1.1 ragge #define RX2_TRACKS 77 /* number of tracks */
109 1.1 ragge #define RX2_SECTORS 26 /* number of sectors / track */
110 1.1 ragge #define RX2_BYTE_SD 128 /* number of bytes / sector in single density */
111 1.1 ragge #define RX2_BYTE_DD 256 /* number of bytes / sector in double density */
112 1.1 ragge #define RX2_HEADS 1 /* number of heads */
113 1.1 ragge
114