| Jiri Slaby | 0371823 | 2008-04-30 00:53:39 -0700 | [diff] [blame] | 1 | #ifndef MOXA_H_FILE | 
|  | 2 | #define MOXA_H_FILE | 
|  | 3 |  | 
| Jiri Slaby | 74d7d97 | 2008-04-30 00:53:43 -0700 | [diff] [blame] | 4 | #define	MOXA		0x400 | 
|  | 5 | #define MOXA_GET_IQUEUE 	(MOXA + 1)	/* get input buffered count */ | 
|  | 6 | #define MOXA_GET_OQUEUE 	(MOXA + 2)	/* get output buffered count */ | 
|  | 7 | #define MOXA_GETDATACOUNT       (MOXA + 23) | 
|  | 8 | #define MOXA_GET_IOQUEUE	(MOXA + 27) | 
|  | 9 | #define MOXA_FLUSH_QUEUE	(MOXA + 28) | 
|  | 10 | #define MOXA_GETMSTATUS         (MOXA + 65) | 
|  | 11 |  | 
| Jiri Slaby | 0371823 | 2008-04-30 00:53:39 -0700 | [diff] [blame] | 12 | /* | 
|  | 13 | *    System Configuration | 
|  | 14 | */ | 
|  | 15 |  | 
|  | 16 | #define Magic_code	0x404 | 
|  | 17 |  | 
|  | 18 | /* | 
|  | 19 | *    for C218 BIOS initialization | 
|  | 20 | */ | 
|  | 21 | #define C218_ConfBase	0x800 | 
|  | 22 | #define C218_status	(C218_ConfBase + 0)	/* BIOS running status    */ | 
|  | 23 | #define C218_diag	(C218_ConfBase + 2)	/* diagnostic status      */ | 
|  | 24 | #define C218_key	(C218_ConfBase + 4)	/* WORD (0x218 for C218) */ | 
|  | 25 | #define C218DLoad_len	(C218_ConfBase + 6)	/* WORD           */ | 
|  | 26 | #define C218check_sum	(C218_ConfBase + 8)	/* BYTE           */ | 
|  | 27 | #define C218chksum_ok	(C218_ConfBase + 0x0a)	/* BYTE (1:ok)            */ | 
|  | 28 | #define C218_TestRx	(C218_ConfBase + 0x10)	/* 8 bytes for 8 ports    */ | 
|  | 29 | #define C218_TestTx	(C218_ConfBase + 0x18)	/* 8 bytes for 8 ports    */ | 
|  | 30 | #define C218_RXerr	(C218_ConfBase + 0x20)	/* 8 bytes for 8 ports    */ | 
|  | 31 | #define C218_ErrFlag	(C218_ConfBase + 0x28)	/* 8 bytes for 8 ports    */ | 
|  | 32 |  | 
|  | 33 | #define C218_LoadBuf	0x0F00 | 
|  | 34 | #define C218_KeyCode	0x218 | 
|  | 35 | #define CP204J_KeyCode	0x204 | 
|  | 36 |  | 
|  | 37 | /* | 
|  | 38 | *    for C320 BIOS initialization | 
|  | 39 | */ | 
|  | 40 | #define C320_ConfBase	0x800 | 
|  | 41 | #define C320_LoadBuf	0x0f00 | 
|  | 42 | #define STS_init	0x05	/* for C320_status        */ | 
|  | 43 |  | 
|  | 44 | #define C320_status	C320_ConfBase + 0	/* BIOS running status    */ | 
|  | 45 | #define C320_diag	C320_ConfBase + 2	/* diagnostic status      */ | 
|  | 46 | #define C320_key	C320_ConfBase + 4	/* WORD (0320H for C320) */ | 
|  | 47 | #define C320DLoad_len	C320_ConfBase + 6	/* WORD           */ | 
|  | 48 | #define C320check_sum	C320_ConfBase + 8	/* WORD           */ | 
|  | 49 | #define C320chksum_ok	C320_ConfBase + 0x0a	/* WORD (1:ok)            */ | 
|  | 50 | #define C320bapi_len	C320_ConfBase + 0x0c	/* WORD           */ | 
|  | 51 | #define C320UART_no	C320_ConfBase + 0x0e	/* WORD           */ | 
|  | 52 |  | 
|  | 53 | #define C320_KeyCode	0x320 | 
|  | 54 |  | 
|  | 55 | #define FixPage_addr	0x0000	/* starting addr of static page  */ | 
|  | 56 | #define DynPage_addr	0x2000	/* starting addr of dynamic page */ | 
|  | 57 | #define C218_start	0x3000	/* starting addr of C218 BIOS prg */ | 
|  | 58 | #define Control_reg	0x1ff0	/* select page and reset control */ | 
|  | 59 | #define HW_reset	0x80 | 
|  | 60 |  | 
|  | 61 | /* | 
|  | 62 | *    Function Codes | 
|  | 63 | */ | 
|  | 64 | #define FC_CardReset	0x80 | 
|  | 65 | #define FC_ChannelReset 1	/* C320 firmware not supported */ | 
|  | 66 | #define FC_EnableCH	2 | 
|  | 67 | #define FC_DisableCH	3 | 
|  | 68 | #define FC_SetParam	4 | 
|  | 69 | #define FC_SetMode	5 | 
|  | 70 | #define FC_SetRate	6 | 
|  | 71 | #define FC_LineControl	7 | 
|  | 72 | #define FC_LineStatus	8 | 
|  | 73 | #define FC_XmitControl	9 | 
|  | 74 | #define FC_FlushQueue	10 | 
|  | 75 | #define FC_SendBreak	11 | 
|  | 76 | #define FC_StopBreak	12 | 
|  | 77 | #define FC_LoopbackON	13 | 
|  | 78 | #define FC_LoopbackOFF	14 | 
|  | 79 | #define FC_ClrIrqTable	15 | 
|  | 80 | #define FC_SendXon	16 | 
|  | 81 | #define FC_SetTermIrq	17	/* C320 firmware not supported */ | 
|  | 82 | #define FC_SetCntIrq	18	/* C320 firmware not supported */ | 
|  | 83 | #define FC_SetBreakIrq	19 | 
|  | 84 | #define FC_SetLineIrq	20 | 
|  | 85 | #define FC_SetFlowCtl	21 | 
|  | 86 | #define FC_GenIrq	22 | 
|  | 87 | #define FC_InCD180	23 | 
|  | 88 | #define FC_OutCD180	24 | 
|  | 89 | #define FC_InUARTreg	23 | 
|  | 90 | #define FC_OutUARTreg	24 | 
|  | 91 | #define FC_SetXonXoff	25 | 
|  | 92 | #define FC_OutCD180CCR	26 | 
|  | 93 | #define FC_ExtIQueue	27 | 
|  | 94 | #define FC_ExtOQueue	28 | 
|  | 95 | #define FC_ClrLineIrq	29 | 
|  | 96 | #define FC_HWFlowCtl	30 | 
|  | 97 | #define FC_GetClockRate 35 | 
|  | 98 | #define FC_SetBaud	36 | 
|  | 99 | #define FC_SetDataMode  41 | 
|  | 100 | #define FC_GetCCSR      43 | 
|  | 101 | #define FC_GetDataError 45 | 
|  | 102 | #define FC_RxControl	50 | 
|  | 103 | #define FC_ImmSend	51 | 
|  | 104 | #define FC_SetXonState	52 | 
|  | 105 | #define FC_SetXoffState	53 | 
|  | 106 | #define FC_SetRxFIFOTrig 54 | 
|  | 107 | #define FC_SetTxFIFOCnt 55 | 
|  | 108 | #define FC_UnixRate	56 | 
|  | 109 | #define FC_UnixResetTimer 57 | 
|  | 110 |  | 
|  | 111 | #define	RxFIFOTrig1	0 | 
|  | 112 | #define	RxFIFOTrig4	1 | 
|  | 113 | #define	RxFIFOTrig8	2 | 
|  | 114 | #define	RxFIFOTrig14	3 | 
|  | 115 |  | 
|  | 116 | /* | 
|  | 117 | *    Dual-Ported RAM | 
|  | 118 | */ | 
|  | 119 | #define DRAM_global	0 | 
|  | 120 | #define INT_data	(DRAM_global + 0) | 
|  | 121 | #define Config_base	(DRAM_global + 0x108) | 
|  | 122 |  | 
|  | 123 | #define IRQindex	(INT_data + 0) | 
|  | 124 | #define IRQpending	(INT_data + 4) | 
|  | 125 | #define IRQtable	(INT_data + 8) | 
|  | 126 |  | 
|  | 127 | /* | 
|  | 128 | *    Interrupt Status | 
|  | 129 | */ | 
|  | 130 | #define IntrRx		0x01	/* receiver data O.K.             */ | 
|  | 131 | #define IntrTx		0x02	/* transmit buffer empty  */ | 
|  | 132 | #define IntrFunc	0x04	/* function complete              */ | 
|  | 133 | #define IntrBreak	0x08	/* received break         */ | 
|  | 134 | #define IntrLine	0x10	/* line status change | 
|  | 135 | for transmitter                */ | 
|  | 136 | #define IntrIntr	0x20	/* received INTR code             */ | 
|  | 137 | #define IntrQuit	0x40	/* received QUIT code             */ | 
|  | 138 | #define IntrEOF 	0x80	/* received EOF code              */ | 
|  | 139 |  | 
|  | 140 | #define IntrRxTrigger 	0x100	/* rx data count reach tigger value */ | 
|  | 141 | #define IntrTxTrigger 	0x200	/* tx data count below trigger value */ | 
|  | 142 |  | 
|  | 143 | #define Magic_no	(Config_base + 0) | 
|  | 144 | #define Card_model_no	(Config_base + 2) | 
|  | 145 | #define Total_ports	(Config_base + 4) | 
|  | 146 | #define Module_cnt	(Config_base + 8) | 
|  | 147 | #define Module_no	(Config_base + 10) | 
|  | 148 | #define Timer_10ms	(Config_base + 14) | 
|  | 149 | #define Disable_IRQ	(Config_base + 20) | 
|  | 150 | #define TMS320_PORT1	(Config_base + 22) | 
|  | 151 | #define TMS320_PORT2	(Config_base + 24) | 
|  | 152 | #define TMS320_CLOCK	(Config_base + 26) | 
|  | 153 |  | 
|  | 154 | /* | 
|  | 155 | *    DATA BUFFER in DRAM | 
|  | 156 | */ | 
|  | 157 | #define Extern_table	0x400	/* Base address of the external table | 
|  | 158 | (24 words *    64) total 3K bytes | 
|  | 159 | (24 words * 128) total 6K bytes */ | 
|  | 160 | #define Extern_size	0x60	/* 96 bytes                       */ | 
|  | 161 | #define RXrptr		0x00	/* read pointer for RX buffer     */ | 
|  | 162 | #define RXwptr		0x02	/* write pointer for RX buffer    */ | 
|  | 163 | #define TXrptr		0x04	/* read pointer for TX buffer     */ | 
|  | 164 | #define TXwptr		0x06	/* write pointer for TX buffer    */ | 
|  | 165 | #define HostStat	0x08	/* IRQ flag and general flag      */ | 
|  | 166 | #define FlagStat	0x0A | 
|  | 167 | #define FlowControl	0x0C	/* B7 B6 B5 B4 B3 B2 B1 B0              */ | 
| Jiri Slaby | 7bcf97d | 2008-04-30 00:53:43 -0700 | [diff] [blame] | 168 | /*  x  x  x  x  |  |  |  |            */ | 
|  | 169 | /*              |  |  |  + CTS flow   */ | 
|  | 170 | /*              |  |  +--- RTS flow   */ | 
|  | 171 | /*              |  +------ TX Xon/Xoff */ | 
|  | 172 | /*              +--------- RX Xon/Xoff */ | 
| Jiri Slaby | 0371823 | 2008-04-30 00:53:39 -0700 | [diff] [blame] | 173 | #define Break_cnt	0x0E	/* received break count   */ | 
|  | 174 | #define CD180TXirq	0x10	/* if non-0: enable TX irq        */ | 
|  | 175 | #define RX_mask 	0x12 | 
|  | 176 | #define TX_mask 	0x14 | 
|  | 177 | #define Ofs_rxb 	0x16 | 
|  | 178 | #define Ofs_txb 	0x18 | 
|  | 179 | #define Page_rxb	0x1A | 
|  | 180 | #define Page_txb	0x1C | 
|  | 181 | #define EndPage_rxb	0x1E | 
|  | 182 | #define EndPage_txb	0x20 | 
|  | 183 | #define Data_error	0x22 | 
|  | 184 | #define RxTrigger	0x28 | 
|  | 185 | #define TxTrigger	0x2a | 
|  | 186 |  | 
|  | 187 | #define rRXwptr 	0x34 | 
|  | 188 | #define Low_water	0x36 | 
|  | 189 |  | 
|  | 190 | #define FuncCode	0x40 | 
|  | 191 | #define FuncArg 	0x42 | 
|  | 192 | #define FuncArg1	0x44 | 
|  | 193 |  | 
|  | 194 | #define C218rx_size	0x2000	/* 8K bytes */ | 
|  | 195 | #define C218tx_size	0x8000	/* 32K bytes */ | 
|  | 196 |  | 
|  | 197 | #define C218rx_mask	(C218rx_size - 1) | 
|  | 198 | #define C218tx_mask	(C218tx_size - 1) | 
|  | 199 |  | 
|  | 200 | #define C320p8rx_size	0x2000 | 
|  | 201 | #define C320p8tx_size	0x8000 | 
|  | 202 | #define C320p8rx_mask	(C320p8rx_size - 1) | 
|  | 203 | #define C320p8tx_mask	(C320p8tx_size - 1) | 
|  | 204 |  | 
|  | 205 | #define C320p16rx_size	0x2000 | 
|  | 206 | #define C320p16tx_size	0x4000 | 
|  | 207 | #define C320p16rx_mask	(C320p16rx_size - 1) | 
|  | 208 | #define C320p16tx_mask	(C320p16tx_size - 1) | 
|  | 209 |  | 
|  | 210 | #define C320p24rx_size	0x2000 | 
|  | 211 | #define C320p24tx_size	0x2000 | 
|  | 212 | #define C320p24rx_mask	(C320p24rx_size - 1) | 
|  | 213 | #define C320p24tx_mask	(C320p24tx_size - 1) | 
|  | 214 |  | 
|  | 215 | #define C320p32rx_size	0x1000 | 
|  | 216 | #define C320p32tx_size	0x1000 | 
|  | 217 | #define C320p32rx_mask	(C320p32rx_size - 1) | 
|  | 218 | #define C320p32tx_mask	(C320p32tx_size - 1) | 
|  | 219 |  | 
| Jiri Slaby | 2108eba | 2008-04-30 00:53:44 -0700 | [diff] [blame] | 220 | #define Page_size	0x2000U | 
| Jiri Slaby | 0371823 | 2008-04-30 00:53:39 -0700 | [diff] [blame] | 221 | #define Page_mask	(Page_size - 1) | 
|  | 222 | #define C218rx_spage	3 | 
|  | 223 | #define C218tx_spage	4 | 
|  | 224 | #define C218rx_pageno	1 | 
|  | 225 | #define C218tx_pageno	4 | 
|  | 226 | #define C218buf_pageno	5 | 
|  | 227 |  | 
|  | 228 | #define C320p8rx_spage	3 | 
|  | 229 | #define C320p8tx_spage	4 | 
|  | 230 | #define C320p8rx_pgno	1 | 
|  | 231 | #define C320p8tx_pgno	4 | 
|  | 232 | #define C320p8buf_pgno	5 | 
|  | 233 |  | 
|  | 234 | #define C320p16rx_spage 3 | 
|  | 235 | #define C320p16tx_spage 4 | 
|  | 236 | #define C320p16rx_pgno	1 | 
|  | 237 | #define C320p16tx_pgno	2 | 
|  | 238 | #define C320p16buf_pgno 3 | 
|  | 239 |  | 
|  | 240 | #define C320p24rx_spage 3 | 
|  | 241 | #define C320p24tx_spage 4 | 
|  | 242 | #define C320p24rx_pgno	1 | 
|  | 243 | #define C320p24tx_pgno	1 | 
|  | 244 | #define C320p24buf_pgno 2 | 
|  | 245 |  | 
|  | 246 | #define C320p32rx_spage 3 | 
|  | 247 | #define C320p32tx_ofs	C320p32rx_size | 
|  | 248 | #define C320p32tx_spage 3 | 
|  | 249 | #define C320p32buf_pgno 1 | 
|  | 250 |  | 
|  | 251 | /* | 
|  | 252 | *    Host Status | 
|  | 253 | */ | 
|  | 254 | #define WakeupRx	0x01 | 
|  | 255 | #define WakeupTx	0x02 | 
|  | 256 | #define WakeupBreak	0x08 | 
|  | 257 | #define WakeupLine	0x10 | 
|  | 258 | #define WakeupIntr	0x20 | 
|  | 259 | #define WakeupQuit	0x40 | 
|  | 260 | #define WakeupEOF	0x80	/* used in VTIME control */ | 
|  | 261 | #define WakeupRxTrigger	0x100 | 
|  | 262 | #define WakeupTxTrigger	0x200 | 
|  | 263 | /* | 
|  | 264 | *    Flag status | 
|  | 265 | */ | 
|  | 266 | #define Rx_over		0x01 | 
|  | 267 | #define Xoff_state	0x02 | 
|  | 268 | #define Tx_flowOff	0x04 | 
|  | 269 | #define Tx_enable	0x08 | 
|  | 270 | #define CTS_state	0x10 | 
|  | 271 | #define DSR_state	0x20 | 
|  | 272 | #define DCD_state	0x80 | 
|  | 273 | /* | 
|  | 274 | *    FlowControl | 
|  | 275 | */ | 
|  | 276 | #define CTS_FlowCtl	1 | 
|  | 277 | #define RTS_FlowCtl	2 | 
|  | 278 | #define Tx_FlowCtl	4 | 
|  | 279 | #define Rx_FlowCtl	8 | 
|  | 280 | #define IXM_IXANY	0x10 | 
|  | 281 |  | 
|  | 282 | #define LowWater	128 | 
|  | 283 |  | 
|  | 284 | #define DTR_ON		1 | 
|  | 285 | #define RTS_ON		2 | 
|  | 286 | #define CTS_ON		1 | 
|  | 287 | #define DSR_ON		2 | 
|  | 288 | #define DCD_ON		8 | 
|  | 289 |  | 
|  | 290 | /* mode definition */ | 
|  | 291 | #define	MX_CS8		0x03 | 
|  | 292 | #define	MX_CS7		0x02 | 
|  | 293 | #define	MX_CS6		0x01 | 
|  | 294 | #define	MX_CS5		0x00 | 
|  | 295 |  | 
|  | 296 | #define	MX_STOP1	0x00 | 
|  | 297 | #define	MX_STOP15	0x04 | 
|  | 298 | #define	MX_STOP2	0x08 | 
|  | 299 |  | 
|  | 300 | #define	MX_PARNONE	0x00 | 
|  | 301 | #define	MX_PAREVEN	0x40 | 
|  | 302 | #define	MX_PARODD	0xC0 | 
|  | 303 |  | 
|  | 304 | #endif |