hc
2023-10-25 6c2073b7aa40e29d0eca7d571dd7bc590c7ecaa7
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
/* SPDX-License-Identifier: GPL-2.0 */
#ifndef _M68K_BVME6000HW_H_
#define _M68K_BVME6000HW_H_
 
#include <asm/irq.h>
 
/*
 * PIT structure
 */
 
#define BVME_PIT_BASE    0xffa00000
 
typedef struct {
   unsigned char
   pad_a[3], pgcr,
   pad_b[3], psrr,
   pad_c[3], paddr,
   pad_d[3], pbddr,
   pad_e[3], pcddr,
   pad_f[3], pivr,
   pad_g[3], pacr,
   pad_h[3], pbcr,
   pad_i[3], padr,
   pad_j[3], pbdr,
   pad_k[3], paar,
   pad_l[3], pbar,
   pad_m[3], pcdr,
   pad_n[3], psr,
   pad_o[3], res1,
   pad_p[3], res2,
   pad_q[3], tcr,
   pad_r[3], tivr,
   pad_s[3], res3,
   pad_t[3], cprh,
   pad_u[3], cprm,
   pad_v[3], cprl,
   pad_w[3], res4,
   pad_x[3], crh,
   pad_y[3], crm,
   pad_z[3], crl,
   pad_A[3], tsr,
   pad_B[3], res5;
} PitRegs_t, *PitRegsPtr;
 
#define bvmepit   ((*(volatile PitRegsPtr)(BVME_PIT_BASE)))
 
#define BVME_RTC_BASE    0xff900000
 
typedef struct {
   unsigned char
   pad_a[3], msr,
   pad_b[3], t0cr_rtmr,
   pad_c[3], t1cr_omr,
   pad_d[3], pfr_icr0,
   pad_e[3], irr_icr1,
   pad_f[3], bcd_tenms,
   pad_g[3], bcd_sec,
   pad_h[3], bcd_min,
   pad_i[3], bcd_hr,
   pad_j[3], bcd_dom,
   pad_k[3], bcd_mth,
   pad_l[3], bcd_year,
   pad_m[3], bcd_ujcc,
   pad_n[3], bcd_hjcc,
   pad_o[3], bcd_dow,
   pad_p[3], t0lsb,
   pad_q[3], t0msb,
   pad_r[3], t1lsb,
   pad_s[3], t1msb,
   pad_t[3], cmp_sec,
   pad_u[3], cmp_min,
   pad_v[3], cmp_hr,
   pad_w[3], cmp_dom,
   pad_x[3], cmp_mth,
   pad_y[3], cmp_dow,
   pad_z[3], sav_sec,
   pad_A[3], sav_min,
   pad_B[3], sav_hr,
   pad_C[3], sav_dom,
   pad_D[3], sav_mth,
   pad_E[3], ram,
   pad_F[3], test;
} RtcRegs_t, *RtcPtr_t;
 
 
#define BVME_I596_BASE    0xff100000
 
#define BVME_ETHIRQ_REG    0xff20000b
 
#define BVME_LOCAL_IRQ_STAT  0xff20000f
 
#define BVME_ETHERR          0x02
#define BVME_ABORT_STATUS    0x08
 
#define BVME_NCR53C710_BASE    0xff000000
 
#define BVME_SCC_A_ADDR    0xffb0000b
#define BVME_SCC_B_ADDR    0xffb00003
#define BVME_SCC_RTxC    7372800
 
#define BVME_CONFIG_REG    0xff500003
 
#define config_reg_ptr    (volatile unsigned char *)BVME_CONFIG_REG
 
#define BVME_CONFIG_SW1    0x08
#define BVME_CONFIG_SW2    0x04
#define BVME_CONFIG_SW3    0x02
#define BVME_CONFIG_SW4    0x01
 
 
#define BVME_IRQ_TYPE_PRIO    0
 
#define BVME_IRQ_PRN        (IRQ_USER+20)
#define BVME_IRQ_TIMER        (IRQ_USER+25)
#define BVME_IRQ_I596        IRQ_AUTO_2
#define BVME_IRQ_SCSI        IRQ_AUTO_3
#define BVME_IRQ_RTC        IRQ_AUTO_6
#define BVME_IRQ_ABORT        IRQ_AUTO_7
 
/* SCC interrupts */
#define BVME_IRQ_SCC_BASE        IRQ_USER
#define BVME_IRQ_SCCB_TX        IRQ_USER
#define BVME_IRQ_SCCB_STAT        (IRQ_USER+2)
#define BVME_IRQ_SCCB_RX        (IRQ_USER+4)
#define BVME_IRQ_SCCB_SPCOND        (IRQ_USER+6)
#define BVME_IRQ_SCCA_TX        (IRQ_USER+8)
#define BVME_IRQ_SCCA_STAT        (IRQ_USER+10)
#define BVME_IRQ_SCCA_RX        (IRQ_USER+12)
#define BVME_IRQ_SCCA_SPCOND        (IRQ_USER+14)
 
/* Address control registers */
 
#define BVME_ACR_A32VBA        0xff400003
#define BVME_ACR_A32MSK        0xff410003
#define BVME_ACR_A24VBA        0xff420003
#define BVME_ACR_A24MSK        0xff430003
#define BVME_ACR_A16VBA        0xff440003
#define BVME_ACR_A32LBA        0xff450003
#define BVME_ACR_A24LBA        0xff460003
#define BVME_ACR_ADDRCTL    0xff470003
 
#define bvme_acr_a32vba        *(volatile unsigned char *)BVME_ACR_A32VBA
#define bvme_acr_a32msk        *(volatile unsigned char *)BVME_ACR_A32MSK
#define bvme_acr_a24vba        *(volatile unsigned char *)BVME_ACR_A24VBA
#define bvme_acr_a24msk        *(volatile unsigned char *)BVME_ACR_A24MSK
#define bvme_acr_a16vba        *(volatile unsigned char *)BVME_ACR_A16VBA
#define bvme_acr_a32lba        *(volatile unsigned char *)BVME_ACR_A32LBA
#define bvme_acr_a24lba        *(volatile unsigned char *)BVME_ACR_A24LBA
#define bvme_acr_addrctl    *(volatile unsigned char *)BVME_ACR_ADDRCTL
 
#endif