OpenCores
URL https://opencores.org/ocsvn/test_project/test_project/trunk

Subversion Repositories test_project

[/] [test_project/] [trunk/] [linux_sd_driver/] [drivers/] [isdn/] [hardware/] [eicon/] [io.h] - Blame information for rev 62

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 62 marcus.erl
 
2
/*
3
 *
4
  Copyright (c) Eicon Networks, 2002.
5
 *
6
  This source file is supplied for the use with
7
  Eicon Networks range of DIVA Server Adapters.
8
 *
9
  Eicon File Revision :    2.1
10
 *
11
  This program is free software; you can redistribute it and/or modify
12
  it under the terms of the GNU General Public License as published by
13
  the Free Software Foundation; either version 2, or (at your option)
14
  any later version.
15
 *
16
  This program is distributed in the hope that it will be useful,
17
  but WITHOUT ANY WARRANTY OF ANY KIND WHATSOEVER INCLUDING ANY
18
  implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
19
  See the GNU General Public License for more details.
20
 *
21
  You should have received a copy of the GNU General Public License
22
  along with this program; if not, write to the Free Software
23
  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
24
 *
25
 */
26
#ifndef __DIVA_XDI_COMMON_IO_H_INC__ /* { */
27
#define __DIVA_XDI_COMMON_IO_H_INC__
28
/*
29
 maximum = 16 adapters
30
 */
31
#define DI_MAX_LINKS    MAX_ADAPTER
32
#define ISDN_MAX_NUM_LEN 60
33
/* --------------------------------------------------------------------------
34
  structure for quadro card management (obsolete for
35
  systems that do provide per card load event)
36
  -------------------------------------------------------------------------- */
37
typedef struct {
38
 dword         Num ;
39
 DEVICE_NAME   DeviceName[4] ;
40
 PISDN_ADAPTER QuadroAdapter[4] ;
41
} ADAPTER_LIST_ENTRY, *PADAPTER_LIST_ENTRY ;
42
/* --------------------------------------------------------------------------
43
  Special OS memory support structures
44
  -------------------------------------------------------------------------- */
45
#define MAX_MAPPED_ENTRIES 8
46
typedef struct {
47
 void  * Address;
48
 dword    Length;
49
} ADAPTER_MEMORY ;
50
/* --------------------------------------------------------------------------
51
  Configuration of XDI clients carried by XDI
52
  -------------------------------------------------------------------------- */
53
#define DIVA_XDI_CAPI_CFG_1_DYNAMIC_L1_ON      0x01
54
#define DIVA_XDI_CAPI_CFG_1_GROUP_POPTIMIZATION_ON 0x02
55
typedef struct _diva_xdi_capi_cfg {
56
  byte cfg_1;
57
} diva_xdi_capi_cfg_t;
58
/* --------------------------------------------------------------------------
59
  Main data structure kept per adapter
60
  -------------------------------------------------------------------------- */
61
struct _ISDN_ADAPTER {
62
 void             (* DIRequest)(PISDN_ADAPTER, ENTITY *) ;
63
 int                 State ; /* from NT4 1.srv, a good idea, but  a poor achievment */
64
 int                 Initialized ;
65
 int         RegisteredWithDidd ;
66
 int                 Unavailable ;  /* callback function possible? */
67
 int         ResourcesClaimed ;
68
 int         PnpBiosConfigUsed ;
69
 dword        Logging ;
70
 dword        features ;
71
 char        ProtocolIdString[80] ;
72
 /*
73
  remember mapped memory areas
74
 */
75
 ADAPTER_MEMORY     MappedMemory[MAX_MAPPED_ENTRIES] ;
76
 CARD_PROPERTIES     Properties ;
77
 dword               cardType ;
78
 dword               protocol_id ;       /* configured protocol identifier */
79
 char                protocol_name[8] ;  /* readable name of protocol */
80
 dword               BusType ;
81
 dword               BusNumber ;
82
 dword               slotNumber ;
83
 dword               slotId ;
84
 dword               ControllerNumber ;  /* for QUADRO cards only */
85
 PISDN_ADAPTER       MultiMaster ;       /* for 4-BRI card only - use MultiMaster or QuadroList */
86
 PADAPTER_LIST_ENTRY QuadroList ;        /* for QUADRO card  only */
87
 PDEVICE_OBJECT      DeviceObject ;
88
 dword               DeviceId ;
89
 diva_os_adapter_irq_info_t irq_info;
90
 dword volatile      IrqCount ;
91
 int                 trapped ;
92
 dword               DspCodeBaseAddr ;
93
 dword               MaxDspCodeSize ;
94
 dword               downloadAddr ;
95
 dword               DspCodeBaseAddrTable[4] ; /* add. for MultiMaster */
96
 dword               MaxDspCodeSizeTable[4] ; /* add. for MultiMaster */
97
 dword               downloadAddrTable[4] ; /* add. for MultiMaster */
98
 dword               MemoryBase ;
99
 dword               MemorySize ;
100
 byte                __iomem *Address ;
101
 byte                __iomem *Config ;
102
 byte                __iomem *Control ;
103
 byte                __iomem *reset ;
104
 byte                __iomem *port ;
105
 byte                __iomem *ram ;
106
 byte                __iomem *cfg ;
107
 byte                __iomem *prom ;
108
 byte                __iomem *ctlReg ;
109
 struct pc_maint  *pcm ;
110
 diva_os_dependent_devica_name_t os_name;
111
 byte                Name[32] ;
112
 dword               serialNo ;
113
 dword               ANum ;
114
 dword               ArchiveType ; /* ARCHIVE_TYPE_NONE ..._SINGLE ..._USGEN ..._MULTI */
115
 char               *ProtocolSuffix ; /* internal protocolfile table */
116
 char                Archive[32] ;
117
 char                Protocol[32] ;
118
 char                AddDownload[32] ; /* Dsp- or other additional download files */
119
 char                Oad1[ISDN_MAX_NUM_LEN] ;
120
 char                Osa1[ISDN_MAX_NUM_LEN] ;
121
 char                Oad2[ISDN_MAX_NUM_LEN] ;
122
 char                Osa2[ISDN_MAX_NUM_LEN] ;
123
 char                Spid1[ISDN_MAX_NUM_LEN] ;
124
 char                Spid2[ISDN_MAX_NUM_LEN] ;
125
  byte                nosig ;
126
  byte                BriLayer2LinkCount ; /* amount of TEI's that adapter will support in P2MP mode */
127
 dword               Channels ;
128
 dword               tei ;
129
 dword               nt2 ;
130
 dword               TerminalCount ;
131
 dword               WatchDog ;
132
 dword               Permanent ;
133
 dword               BChMask ; /* B channel mask for unchannelized modes */
134
 dword               StableL2 ;
135
 dword               DidLen ;
136
 dword               NoOrderCheck ;
137
 dword               ForceLaw; /* VoiceCoding - default:0, a-law: 1, my-law: 2 */
138
 dword               SigFlags ;
139
 dword               LowChannel ;
140
 dword               NoHscx30 ;
141
 dword               ProtVersion ;
142
 dword               crc4 ;
143
 dword               L1TristateOrQsig ; /* enable Layer 1 Tristate (bit 2)Or Qsig params (bit 0,1)*/
144
 dword               InitialDspInfo ;
145
 dword               ModemGuardTone ;
146
 dword               ModemMinSpeed ;
147
 dword               ModemMaxSpeed ;
148
 dword               ModemOptions ;
149
 dword               ModemOptions2 ;
150
 dword               ModemNegotiationMode ;
151
 dword               ModemModulationsMask ;
152
 dword               ModemTransmitLevel ;
153
 dword               FaxOptions ;
154
 dword               FaxMaxSpeed ;
155
 dword               Part68LevelLimiter ;
156
 dword               UsEktsNumCallApp ;
157
 byte                UsEktsFeatAddConf ;
158
 byte                UsEktsFeatRemoveConf ;
159
 byte                UsEktsFeatCallTransfer ;
160
 byte                UsEktsFeatMsgWaiting ;
161
 byte                QsigDialect;
162
 byte                ForceVoiceMailAlert;
163
 byte                DisableAutoSpid;
164
 byte                ModemCarrierWaitTimeSec;
165
 byte                ModemCarrierLossWaitTimeTenthSec;
166
 byte                PiafsLinkTurnaroundInFrames;
167
 byte                DiscAfterProgress;
168
 byte                AniDniLimiter[3];
169
 byte                TxAttenuation;  /* PRI/E1 only: attenuate TX signal */
170
 word                QsigFeatures;
171
 dword               GenerateRingtone ;
172
 dword               SupplementaryServicesFeatures;
173
 dword               R2Dialect;
174
 dword               R2CasOptions;
175
 dword               FaxV34Options;
176
 dword               DisabledDspMask;
177
 dword               AdapterTestMask;
178
 dword               DspImageLength;
179
 word                AlertToIn20mSecTicks;
180
 word                ModemEyeSetup;
181
 byte                R2CtryLength;
182
 byte                CCBSRelTimer;
183
 byte               *PcCfgBufferFile;/* flexible parameter via file */
184
 byte               *PcCfgBuffer ; /* flexible parameter via multistring */
185
 diva_os_dump_file_t dump_file; /* dump memory to file at lowest irq level */
186
 diva_os_board_trace_t board_trace ; /* traces from the board */
187
 diva_os_spin_lock_t isr_spin_lock;
188
 diva_os_spin_lock_t data_spin_lock;
189
 diva_os_soft_isr_t req_soft_isr;
190
 diva_os_soft_isr_t isr_soft_isr;
191
 diva_os_atomic_t  in_dpc;
192
 PBUFFER             RBuffer;        /* Copy of receive lookahead buffer */
193
 word                e_max;
194
 word                e_count;
195
 E_INFO             *e_tbl;
196
 word                assign;         /* list of pending ASSIGNs  */
197
 word                head;           /* head of request queue    */
198
 word                tail;           /* tail of request queue    */
199
 ADAPTER             a ;             /* not a separate structure */
200
 void        (* out)(ADAPTER * a) ;
201
 byte        (* dpc)(ADAPTER * a) ;
202
 byte        (* tst_irq)(ADAPTER * a) ;
203
 void        (* clr_irq)(ADAPTER * a) ;
204
 int         (* load)(PISDN_ADAPTER) ;
205
 int         (* mapmem)(PISDN_ADAPTER) ;
206
 int         (* chkIrq)(PISDN_ADAPTER) ;
207
 void        (* disIrq)(PISDN_ADAPTER) ;
208
 void        (* start)(PISDN_ADAPTER) ;
209
 void        (* stop)(PISDN_ADAPTER) ;
210
 void        (* rstFnc)(PISDN_ADAPTER) ;
211
 void        (* trapFnc)(PISDN_ADAPTER) ;
212
 dword            (* DetectDsps)(PISDN_ADAPTER) ;
213
 void        (* os_trap_nfy_Fnc)(PISDN_ADAPTER, dword) ;
214
 diva_os_isr_callback_t diva_isr_handler;
215
 dword               sdram_bar;  /* must be 32 bit */
216
 dword               fpga_features;
217
 volatile int        pcm_pending;
218
 volatile void *     pcm_data;
219
 diva_xdi_capi_cfg_t capi_cfg;
220
 dword               tasks;
221
 void               *dma_map;
222
 int             (*DivaAdapterTestProc)(PISDN_ADAPTER);
223
 void               *AdapterTestMemoryStart;
224
 dword               AdapterTestMemoryLength;
225
 const byte* cfg_lib_memory_init;
226
 dword       cfg_lib_memory_init_length;
227
};
228
/* ---------------------------------------------------------------------
229
  Entity table
230
   --------------------------------------------------------------------- */
231
struct e_info_s {
232
  ENTITY *      e;
233
  byte          next;                   /* chaining index           */
234
  word          assign_ref;             /* assign reference         */
235
};
236
/* ---------------------------------------------------------------------
237
  S-cards shared ram structure for loading
238
   --------------------------------------------------------------------- */
239
struct s_load {
240
 byte ctrl;
241
 byte card;
242
 byte msize;
243
 byte fill0;
244
 word ebit;
245
 word elocl;
246
 word eloch;
247
 byte reserved[20];
248
 word signature;
249
 byte fill[224];
250
 byte b[256];
251
};
252
#define PR_RAM  ((struct pr_ram *)0)
253
#define RAM ((struct dual *)0)
254
/* ---------------------------------------------------------------------
255
  platform specific conversions
256
   --------------------------------------------------------------------- */
257
extern void * PTR_P(ADAPTER * a, ENTITY * e, void * P);
258
extern void * PTR_X(ADAPTER * a, ENTITY * e);
259
extern void * PTR_R(ADAPTER * a, ENTITY * e);
260
extern void CALLBACK(ADAPTER * a, ENTITY * e);
261
extern void set_ram(void * * adr_ptr);
262
/* ---------------------------------------------------------------------
263
  ram access functions for io mapped cards
264
   --------------------------------------------------------------------- */
265
byte io_in(ADAPTER * a, void * adr);
266
word io_inw(ADAPTER * a, void * adr);
267
void io_in_buffer(ADAPTER * a, void * adr, void * P, word length);
268
void io_look_ahead(ADAPTER * a, PBUFFER * RBuffer, ENTITY * e);
269
void io_out(ADAPTER * a, void * adr, byte data);
270
void io_outw(ADAPTER * a, void * adr, word data);
271
void io_out_buffer(ADAPTER * a, void * adr, void * P, word length);
272
void io_inc(ADAPTER * a, void * adr);
273
void bri_in_buffer (PISDN_ADAPTER IoAdapter, dword Pos,
274
                    void *Buf, dword Len);
275
int bri_out_buffer (PISDN_ADAPTER IoAdapter, dword Pos,
276
                    void *Buf, dword Len, int Verify);
277
/* ---------------------------------------------------------------------
278
  ram access functions for memory mapped cards
279
   --------------------------------------------------------------------- */
280
byte mem_in(ADAPTER * a, void * adr);
281
word mem_inw(ADAPTER * a, void * adr);
282
void mem_in_buffer(ADAPTER * a, void * adr, void * P, word length);
283
void mem_look_ahead(ADAPTER * a, PBUFFER * RBuffer, ENTITY * e);
284
void mem_out(ADAPTER * a, void * adr, byte data);
285
void mem_outw(ADAPTER * a, void * adr, word data);
286
void mem_out_buffer(ADAPTER * a, void * adr, void * P, word length);
287
void mem_inc(ADAPTER * a, void * adr);
288
void mem_in_dw (ADAPTER *a, void *addr, dword* data, int dwords);
289
void mem_out_dw (ADAPTER *a, void *addr, const dword* data, int dwords);
290
/* ---------------------------------------------------------------------
291
  functions exported by io.c
292
   --------------------------------------------------------------------- */
293
extern IDI_CALL Requests[MAX_ADAPTER] ;
294
extern void     DIDpcRoutine (struct _diva_os_soft_isr* psoft_isr,
295
               void* context);
296
extern void     request (PISDN_ADAPTER, ENTITY *) ;
297
/* ---------------------------------------------------------------------
298
  trapFn helpers, used to recover debug trace from dead card
299
   --------------------------------------------------------------------- */
300
typedef struct {
301
 word *buf ;
302
 word  cnt ;
303
 word  out ;
304
} Xdesc ;
305
extern void     dump_trap_frame  (PISDN_ADAPTER IoAdapter, byte __iomem *exception) ;
306
extern void     dump_xlog_buffer (PISDN_ADAPTER IoAdapter, Xdesc *xlogDesc) ;
307
/* --------------------------------------------------------------------- */
308
#endif  /* } __DIVA_XDI_COMMON_IO_H_INC__ */

powered by: WebSVN 2.1.0

© copyright 1999-2025 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.