File indexing completed on 2025-05-11 08:23:48
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021 #ifndef LIBBSP_M68K_MVME167_BSP_H
0022 #define LIBBSP_M68K_MVME167_BSP_H
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034 #include <bspopts.h>
0035 #include <bsp/default-initial-extension.h>
0036
0037 #include <rtems.h>
0038 #include <rtems/bspIo.h>
0039
0040 #include <mvme16x_hw.h>
0041
0042 #ifdef __cplusplus
0043 extern "C" {
0044 #endif
0045
0046
0047
0048
0049
0050
0051 #if 0
0052
0053
0054
0055 typedef volatile struct pccchip2_regs_ {
0056 unsigned char chip_id;
0057 unsigned char chip_revision;
0058 unsigned char gen_control;
0059 unsigned char vector_base;
0060 unsigned long timer_cmp_1;
0061 unsigned long timer_cnt_1;
0062 unsigned long timer_cmp_2;
0063 unsigned long timer_cnt_2;
0064 unsigned char LSB_prescaler_count;
0065 unsigned char prescaler_clock_adjust;
0066 unsigned char timer_ctl_2;
0067 unsigned char timer_ctl_1;
0068 unsigned char gpi_int_ctl;
0069 unsigned char gpio_ctl;
0070 unsigned char timer_int_ctl_2;
0071 unsigned char timer_int_ctl_1;
0072 unsigned char SCC_error;
0073 unsigned char SCC_modem_int_ctl;
0074 unsigned char SCC_tx_int_ctl;
0075 unsigned char SCC_rx_int_ctl;
0076 unsigned char reserved1[3];
0077 unsigned char modem_piack;
0078 unsigned char reserved2;
0079 unsigned char tx_piack;
0080 unsigned char reserved3;
0081 unsigned char rx_piack;
0082 unsigned char LANC_error;
0083 unsigned char reserved4;
0084 unsigned char LANC_int_ctl;
0085 unsigned char LANC_berr_ctl;
0086 unsigned char SCSI_error;
0087 unsigned char reserved5[2];
0088 unsigned char SCSI_int_ctl;
0089 unsigned char print_ack_int_ctl;
0090 unsigned char print_fault_int_ctl;
0091 unsigned char print_sel_int_ctl;
0092 unsigned char print_pe_int_ctl;
0093 unsigned char print_busy_int_ctl;
0094 unsigned char reserved6;
0095 unsigned char print_input_status;
0096 unsigned char print_ctl;
0097 unsigned char chip_speed;
0098 unsigned char reserved7;
0099 unsigned char print_data;
0100 unsigned char reserved8[3];
0101 unsigned char int_level;
0102 unsigned char int_mask;
0103 } pccchip2_regs;
0104
0105
0106
0107
0108
0109 #define pccchip2 ((pccchip2_regs * const) 0xFFF42000)
0110
0111 #endif
0112
0113
0114
0115
0116
0117 typedef volatile struct memc040_regs_ {
0118 unsigned char chip_id;
0119 unsigned char reserved1[3];
0120 unsigned char chip_revision;
0121 unsigned char reserved2[3];
0122 unsigned char mem_config;
0123 unsigned char reserved3[3];
0124 unsigned char alt_status;
0125 unsigned char reserved4[3];
0126 unsigned char alt_ctl;
0127 unsigned char reserved5[3];
0128 unsigned char base_addr;
0129 unsigned char reserved6[3];
0130 unsigned char ram_ctl;
0131 unsigned char reserved7[3];
0132 unsigned char bus_clk;
0133 } memc040_regs;
0134
0135
0136
0137
0138
0139 #define memc040_1 ((memc040_regs * const) 0xFFF43000)
0140 #define memc040_2 ((memc040_regs * const) 0xFFF43100)
0141
0142
0143
0144
0145
0146
0147
0148
0149
0150
0151
0152
0153
0154
0155
0156 typedef volatile struct cd2401_regs_ {
0157 unsigned char reserved1[7];
0158 unsigned char cor7;
0159 unsigned char reserved2;
0160 unsigned char livr;
0161 unsigned char reserved3[6];
0162 unsigned char cor1;
0163 unsigned char ier;
0164 unsigned char stcr;
0165 unsigned char ccr;
0166 unsigned char cor5;
0167 unsigned char cor4;
0168 unsigned char cor3;
0169 unsigned char cor2;
0170 unsigned char cor6;
0171 unsigned char dmabsts;
0172 unsigned char csr;
0173 unsigned char cmr;
0174 union {
0175 struct {
0176 unsigned char schr4;
0177 unsigned char schr3;
0178 unsigned char schr2;
0179 unsigned char schr1;
0180 } async;
0181 struct {
0182 unsigned char rfar4;
0183 unsigned char rfar3;
0184 unsigned char rfar2;
0185 unsigned char rfar1;
0186 } sync;
0187 } u1;
0188 unsigned char reserved4[2];
0189 unsigned char scrh;
0190 unsigned char scrl;
0191 union {
0192 struct {
0193 unsigned short rtpr;
0194 } w;
0195 struct {
0196 unsigned char rtprh;
0197 unsigned char rtprl;
0198 } b;
0199 } u2;
0200 unsigned char licr;
0201 unsigned char reserved5[2];
0202 union {
0203 struct {
0204 unsigned char ttr;
0205 } async;
0206 struct {
0207 unsigned char gt2;
0208 } sync;
0209 } u3;
0210 union {
0211 struct {
0212 unsigned short gt1;
0213 } w;
0214 struct {
0215 unsigned char gt1h;
0216 unsigned char gt1l;
0217 } b;
0218 } u4;
0219 unsigned char reserved6[2];
0220 unsigned char lnxt;
0221 unsigned char reserved7;
0222 unsigned char rfoc;
0223 unsigned char reserved8[7];
0224 unsigned short tcbadru;
0225 unsigned short tcbadrl;
0226 unsigned short rcbadru;
0227 unsigned short rcbadrl;
0228 unsigned short arbadru;
0229 unsigned short arbardl;
0230 unsigned short brbadru;
0231 unsigned short brbadrl;
0232 unsigned short brbcnt;
0233 unsigned short arbcnt;
0234 unsigned short reserved9;
0235 unsigned char brbsts;
0236 unsigned char arbsts;
0237 unsigned short atbadru;
0238 unsigned short atbadrl;
0239 unsigned short btbadru;
0240 unsigned short btbadrl;
0241 unsigned short btbcnt;
0242 unsigned short atbcnt;
0243 unsigned short reserved10;
0244 unsigned char btbsts;
0245 unsigned char atbsts;
0246 unsigned char reserved11[32];
0247 unsigned char tftc;
0248 unsigned char gfrcr;
0249 unsigned char reserved12[2];
0250 unsigned char reoir;
0251 unsigned char teoir;
0252 unsigned char meoir;
0253 union {
0254 struct {
0255 unsigned short risr;
0256 } w;
0257 struct {
0258 unsigned char risrh;
0259 unsigned char risrl;
0260 } b;
0261 } u5;
0262 unsigned char tisr;
0263 unsigned char misr;
0264 unsigned char reserved13[2];
0265 unsigned char bercnt;
0266 unsigned char reserved14[49];
0267 unsigned char tcor;
0268 unsigned char reserved15[2];
0269 unsigned char tbpr;
0270 unsigned char reserved16[4];
0271 unsigned char rcor;
0272 unsigned char reserved17[2];
0273 unsigned char rbpr;
0274 unsigned char reserved18[10];
0275 unsigned char cpsr;
0276 unsigned char reserved19[3];
0277 unsigned char tpr;
0278 unsigned char reserved20[3];
0279 unsigned char msvr_rts;
0280 unsigned char msvr_dtr;
0281 unsigned char tpilr;
0282 unsigned char rpilr;
0283 unsigned char stk;
0284 unsigned char mpilr;
0285 unsigned char reserved21[8];
0286 unsigned char tir;
0287 unsigned char rir;
0288 unsigned char car;
0289 unsigned char mir;
0290 unsigned char reserved22[6];
0291 unsigned char dmr;
0292 unsigned char reserved23;
0293 unsigned char dr;
0294 } cd2401_regs;
0295
0296
0297
0298
0299
0300 #define cd2401 ((cd2401_regs * const) 0xFFF45000)
0301
0302
0303 #define CD2401_CLK_RATE 20000000
0304
0305
0306
0307 rtems_isr_entry set_vector(
0308 rtems_isr_entry handler,
0309 rtems_vector_number vector,
0310 int type
0311 );
0312
0313 #ifdef M167_INIT
0314 #undef EXTERN
0315 #define EXTERN
0316 #else
0317 #undef EXTERN
0318 #define EXTERN extern
0319 #endif
0320
0321 extern void *M68Kvec[];
0322
0323 #ifdef __cplusplus
0324 }
0325 #endif
0326
0327
0328
0329 #endif