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
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039
0040
0041
0042
0043
0044 #ifndef LIBBSP_M68K_MVME147S_BSP_H
0045 #define LIBBSP_M68K_MVME147S_BSP_H
0046
0047
0048
0049
0050
0051
0052
0053
0054
0055
0056
0057 #include <bspopts.h>
0058 #include <bsp/default-initial-extension.h>
0059
0060 #include <rtems.h>
0061
0062 #ifdef __cplusplus
0063 extern "C" {
0064 #endif
0065
0066
0067
0068 #define RAM_START 0x00007000
0069 #define RAM_END 0x003e0000
0070 #define DRAM_END 0x00400000
0071
0072
0073
0074
0075
0076 struct pcc_map {
0077
0078 uint32_t dma_table_address;
0079 uint32_t dma_data_address;
0080 uint32_t dma_bytecount;
0081 uint32_t dma_data_holding;
0082
0083
0084 uint16_t timer1_preload;
0085 uint16_t timer1_count;
0086 uint16_t timer2_preload;
0087 uint16_t timer2_count;
0088
0089
0090 uint8_t timer1_int_control;
0091 uint8_t timer1_control;
0092 uint8_t timer2_int_control;
0093 uint8_t timer2_control;
0094
0095 uint8_t acfail_int_control;
0096 uint8_t watchdog_control;
0097
0098 uint8_t printer_int_control;
0099 uint8_t printer_control;
0100
0101 uint8_t dma_int_control;
0102 uint8_t dma_control;
0103 uint8_t bus_error_int_control;
0104 uint8_t dma_status;
0105 uint8_t abort_int_control;
0106 uint8_t table_address_function_code;
0107 uint8_t serial_port_int_control;
0108 uint8_t general_purpose_control;
0109 uint8_t lan_int_control;
0110 uint8_t general_purpose_status;
0111 uint8_t scsi_port_int_control;
0112 uint8_t slave_base_address;
0113 uint8_t software_int_1_control;
0114 uint8_t int_base_vector;
0115 uint8_t software_int_2_control;
0116 uint8_t revision_level;
0117 };
0118
0119 #define pcc ((volatile struct pcc_map * const) 0xfffe1000)
0120
0121
0122
0123 struct vme_lcsr_map {
0124 uint8_t unused_1;
0125 uint8_t system_controller;
0126 uint8_t unused_2;
0127 uint8_t vme_bus_requester;
0128 uint8_t unused_3;
0129 uint8_t master_configuration;
0130 uint8_t unused_4;
0131 uint8_t slave_configuration;
0132 uint8_t unused_5;
0133 uint8_t timer_configuration;
0134 uint8_t unused_6;
0135 uint8_t slave_address_modifier;
0136 uint8_t unused_7;
0137 uint8_t master_address_modifier;
0138 uint8_t unused_8;
0139 uint8_t interrupt_handler_mask;
0140 uint8_t unused_9;
0141 uint8_t utility_interrupt_mask;
0142 uint8_t unused_10;
0143 uint8_t utility_interrupt_vector;
0144 uint8_t unused_11;
0145 uint8_t interrupt_request;
0146 uint8_t unused_12;
0147 uint8_t vme_bus_status_id;
0148 uint8_t unused_13;
0149 uint8_t bus_error_status;
0150 uint8_t unused_14;
0151 uint8_t gcsr_base_address;
0152 };
0153
0154 #define vme_lcsr ((volatile struct vme_lcsr_map * const) 0xfffe2000)
0155
0156 struct vme_gcsr_map {
0157 uint8_t unused_1;
0158 uint8_t global_0;
0159 uint8_t unused_2;
0160 uint8_t global_1;
0161 uint8_t unused_3;
0162 uint8_t board_identification;
0163 uint8_t unused_4;
0164 uint8_t general_purpose_0;
0165 uint8_t unused_5;
0166 uint8_t general_purpose_1;
0167 uint8_t unused_6;
0168 uint8_t general_purpose_2;
0169 uint8_t unused_7;
0170 uint8_t general_purpose_3;
0171 uint8_t unused_8;
0172 uint8_t general_purpose_4;
0173 };
0174
0175 #define vme_gcsr ((volatile struct vme_gcsr_map * const) 0xfffe2020)
0176
0177 #define z8530 0xfffe3001
0178
0179
0180 #define PCC_BASE_VECTOR 0x40
0181 #define SCC_VECTOR PCC_BASE_VECTOR+3
0182 #define TIMER_1_VECTOR PCC_BASE_VECTOR+8
0183 #define TIMER_2_VECTOR PCC_BASE_VECTOR+9
0184 #define SOFT_1_VECTOR PCC_BASE_VECTOR+10
0185 #define SOFT_2_VECTOR PCC_BASE_VECTOR+11
0186
0187 #define VME_BASE_VECTOR 0x50
0188 #define VME_SIGLP_VECTOR VME_BASE_VECTOR+1
0189
0190 #define USE_CHANNEL_A 1
0191 #define USE_CHANNEL_B 0
0192
0193 #if (USE_CHANNEL_A == 1)
0194 #define CONSOLE_CONTROL 0xfffe3002
0195 #define CONSOLE_DATA 0xfffe3003
0196 #elif (USE_CHANNEL_B == 1)
0197 #define CONSOLE_CONTROL 0xfffe3000
0198 #define CONSOLE_DATA 0xfffe3001
0199 #endif
0200
0201 #define FOREVER 1
0202
0203 #ifdef M147_INIT
0204 #undef EXTERN
0205 #define EXTERN
0206 #else
0207 #undef EXTERN
0208 #define EXTERN extern
0209 #endif
0210
0211 extern rtems_isr_entry M68Kvec[];
0212
0213
0214
0215
0216
0217
0218
0219 rtems_isr_entry set_vector(
0220 rtems_isr_entry handler,
0221 rtems_vector_number vector,
0222 int type
0223 );
0224
0225 #ifdef __cplusplus
0226 }
0227 #endif
0228
0229
0230
0231 #endif