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
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
|
/*
* FarSync OEM driver for Linux
*
* Copyright (C) 2001-2012 FarSite Communications Ltd.
* www.farsite.co.uk
* $Id: farsync.h 1471 2013-09-10 08:01:11Z kevinc $
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version
* 2 of the License, or (at your option) any later version.
*
* Author: R.J.Dunlop <bob.dunlop@farsite.co.uk>
*
* For the most part this file only contains structures and information
* that is visible to applications outside the driver. Shared memory
* layout etc is internal to the driver and described within farsync.c.
* Overlap exists in that the values used for some fields within the
* ioctl interface extend into the cards firmware interface so values in
* this file may not be changed arbitrarily.
*/
#define FST_NAME "fst" /* In debug/info etc */
#define FST_NDEV_NAME "sync" /* For net interface */
#define FST_DEV_NAME "farsync" /* For misc interfaces */
/* User version number
*
* This version number is incremented with each official release of the
* package and is a simplified number for normal user reference.
* Individual files are tracked by the version control system and may
* have individual versions (or IDs) that move much faster than the
* the release version as individual updates are tracked.
*/
#define FST_USER_VERSION "2.1.8"
#define FST_PATCH_LEVEL "02"
#ifdef __x86_64__
#define FST_PLATFORM "64bit"
#else
#define FST_PLATFORM "32bit"
#endif
#define FST_ADDITIONAL FST_BUILD_NO
#define FST_INCLUDES_CHAR
struct fst_device_stats
{
unsigned long rx_packets; /* total packets received */
unsigned long tx_packets; /* total packets transmitted */
unsigned long rx_bytes; /* total bytes received */
unsigned long tx_bytes; /* total bytes transmitted */
unsigned long rx_errors; /* bad packets received */
unsigned long tx_errors; /* packet transmit problems */
unsigned long rx_dropped; /* no space in linux buffers */
unsigned long tx_dropped; /* no space available in linux */
unsigned long multicast; /* multicast packets received */
unsigned long collisions;
/* detailed rx_errors: */
unsigned long rx_length_errors;
unsigned long rx_over_errors; /* receiver ring buff overflow */
unsigned long rx_crc_errors; /* recved pkt with crc error */
unsigned long rx_frame_errors;/* recv'd frame alignment error */
unsigned long rx_fifo_errors; /* recv'r fifo overrun */
unsigned long rx_missed_errors; /* receiver missed packet */
/* detailed tx_errors */
unsigned long tx_aborted_errors;
unsigned long tx_carrier_errors;
unsigned long tx_fifo_errors;
unsigned long tx_heartbeat_errors;
unsigned long tx_underrun_errors;
/* for cslip etc */
unsigned long rx_compressed;
unsigned long tx_compressed;
};
#define COM_STOP_BITS_1 0
#define COM_STOP_BITS_1_5 1
#define COM_STOP_BITS_2 2
#define COM_NO_PARITY 0
#define COM_ODD_PARITY 1
#define COM_EVEN_PARITY 2
#define COM_FORCE_PARITY_1 3
#define COM_FORCE_PARITY_0 4
#define COM_FLOW_CONTROL_NONE 1
#define COM_FLOW_CONTROL_RTSCTS 2
#define COM_FLOW_CONTROL_XONXOFF 3
struct fstioc_async_conf {
unsigned char flow_control;
unsigned char stop_bits;
unsigned char parity;
unsigned char word_length;
unsigned char xon_char;
unsigned char xoff_char;
};
/* Ioctl call command values
*
* The first three private ioctls are used by the sync-PPP module,
* allowing a little room for expansion we start our numbering at 10.
*/
#define FSTWRITE (SIOCDEVPRIVATE+4)
#define FSTCPURESET (SIOCDEVPRIVATE+5)
#define FSTCPURELEASE (SIOCDEVPRIVATE+6)
#define FSTGETCONF (SIOCDEVPRIVATE+7)
#define FSTSETCONF (SIOCDEVPRIVATE+8)
#define FSTSNOTIFY (SIOCDEVPRIVATE+9)
#define FSTGSTATE (SIOCDEVPRIVATE+10)
#define FSTSYSREQ (SIOCDEVPRIVATE+11)
#define FSTGETSHELL (SIOCDEVPRIVATE+12)
#define FSTSETMON (SIOCDEVPRIVATE+13)
#define FSTSETPORT (SIOCDEVPRIVATE+14)
#define FSTCMD (SIOCDEVPRIVATE+15)
/* FSTWRITE
*
* Used to write a block of data (firmware etc) before the card is running
*/
struct fstioc_write {
unsigned int size;
unsigned int offset;
unsigned char data[0];
};
struct fstioc_control_request {
#define FSCONTROLREQUEST_VERSION 1
__u32 uVersion; // Version of this structure
__u8 bDirection; // 1 ==> HostToDevice, 0 ==> DeviceToHost
__u8 byRequest;
__u16 wValue;
__u16 wIndex;
__u16 wDataLength;
__u8 Data[256];
};
/* FSTCPURESET and FSTCPURELEASE
*
* These take no additional data.
* FSTCPURESET forces the cards CPU into a reset state and holds it there.
* FSTCPURELEASE releases the CPU from this reset state allowing it to run,
* the reset vector should be setup before this ioctl is run.
*/
/* FSTGETCONF and FSTSETCONF
*
* Get and set a card/ports configuration.
* In order to allow selective setting of items and for the kernel to
* indicate a partial status response the first field "valid" is a bitmask
* indicating which other fields in the structure are valid.
* Many of the field names in this structure match those used in the
* firmware shared memory configuration interface and come originally from
* the NT header file Smc.h
*
* When used with FSTGETCONF this structure should be zeroed before use.
* This is to allow for possible future expansion when some of the fields
* might be used to indicate a different (expanded) structure.
*/
struct fstioc_info {
unsigned int valid; /* Bits of structure that are valid */
unsigned int nports; /* Number of serial ports */
unsigned int type; /* Type index of card */
unsigned int state; /* State of card */
unsigned int index; /* Index of port ioctl was issued on */
unsigned int smcFirmwareVersion;
unsigned long kernelVersion; /* What Kernel version we are working with */
unsigned short lineInterface; /* Physical interface type */
unsigned char proto; /* Line protocol */
unsigned char internalClock; /* 1 => internal clock, 0 => external */
unsigned int lineSpeed; /* Speed in bps */
unsigned int estLineSpeed; /* Estimated speed in bps */
unsigned int v24IpSts; /* V.24 control input status */
unsigned int v24OpSts; /* V.24 control output status */
unsigned short clockStatus; /* lsb: 0=> present, 1=> absent */
unsigned short cableStatus; /* lsb: 0=> present, 1=> absent */
unsigned short cardMode; /* lsb: LED id mode */
unsigned short debug; /* Debug flags */
unsigned char transparentMode; /* Not used always 0 */
unsigned char invertClock; /* Invert clock feature for syncing */
unsigned char asyncAbility ; /* The ability to do async */
unsigned char synthAbility; /* The ability to syth a clock */
unsigned char extendedClocking;/* New T4e clock modes */
unsigned char startingSlot; /* Time slot to use for start of tx */
unsigned char clockSource; /* External or internal */
unsigned char framing; /* E1, T1 or J1 */
unsigned char structure; /* unframed, double, crc4, f4, f12, */
/* f24 f72 */
unsigned char interface; /* rj48c or bnc */
unsigned char coding; /* hdb3 b8zs */
unsigned char lineBuildOut; /* 0, -7.5, -15, -22 */
unsigned char equalizer; /* short or lon haul settings */
unsigned char loopMode; /* various loopbacks */
unsigned char range; /* cable lengths */
unsigned char txBufferMode; /* tx elastic buffer depth */
unsigned char rxBufferMode; /* rx elastic buffer depth */
unsigned char losThreshold; /* Attenuation on LOS signal */
unsigned char idleCode; /* Value to send as idle timeslot */
unsigned int receiveBufferDelay; /* delay thro rx buffer timeslots */
unsigned int framingErrorCount; /* framing errors */
unsigned int codeViolationCount; /* code violations */
unsigned int crcErrorCount; /* CRC errors */
int lineAttenuation; /* in dB*/
unsigned short lossOfSignal;
unsigned short receiveRemoteAlarm;
unsigned short alarmIndicationSignal;
unsigned short _reserved[64];
unsigned char ignoreCarrier; /* If set transmit regardless of carrier state */
unsigned char numTxBuffers; /* No of tx buffers in card window */
unsigned char numRxBuffers; /* No of rx buffers in card window */
unsigned int txBufferSize; /* Size of tx buffers in card window */
unsigned int rxBufferSize; /* Size of rx buffers in card window */
unsigned char terminalType; /* Additional hdsl */
unsigned char annexType;
unsigned char encap;
unsigned char testMode;
unsigned char backoff;
unsigned char bLineProbingEnable;
unsigned char snrth;
unsigned char lpath;
unsigned short vpi;
unsigned short vci;
unsigned char activationStatus;
unsigned char noCommonModeStatus;
unsigned char transceiverStatus1;
unsigned char transceiverStatus2;
unsigned char lineLoss;
char signalQuality;
unsigned char nearEndBlockErrorCount;
char signalToNoiseRatio;
unsigned char erroredSecondCount;
unsigned char severelyErroredSecondCount;
unsigned char lossOfSyncWordSecondCount;
unsigned char unavailableSecondCount;
char frequencyDeviation;
char negotiatedPowerBackOff;
unsigned char negotiatedPSD;
unsigned char negotiatedBChannels;
unsigned char negotiatedZBits;
unsigned short negotiatedSyncWord;
unsigned char negotiatedStuffBits;
unsigned char chipVersion;
unsigned char firmwareVersion;
unsigned char romVersion;
unsigned short atmTxCellCount;
unsigned short atmRxCellCount;
unsigned short atmHecErrorCount;
unsigned int atmCellsDropped;
unsigned char transmitMSBFirst;
unsigned char receiveMSBFirst;
unsigned char xpldVersion;
unsigned char farEndCountryCode[2];
unsigned char farEndProviderCode[4];
unsigned char farEndVendorInfo[2];
unsigned char utopiaAtmStatus;
unsigned int termination;
unsigned int txRxStart;
unsigned char enableNRZIClocking; /* Ver 1 addition */
unsigned char lowLatency; /* Ver 1 addition */
struct fst_device_stats stats; /* Ver 1 addition */
struct fstioc_async_conf async_conf; /* Ver 2 addition */
unsigned char iocinfo_version; /* Ver 2 addition */
unsigned char extSyncClockEnable; /* Ver 3 addition */
unsigned char extSyncClockOffset; /* Ver 3 addition */
unsigned int extSyncClockRate; /* Ver 3 addition */
unsigned char ppsEnable; /* Ver 3 addition */
unsigned char ppsOffset; /* Ver 3 addition */
unsigned char cardRevMajor; /* Ver 4 addition */
unsigned char cardRevMinor; /* Ver 4 addition */
unsigned char cardRevBuild; /* Ver 4 addition */
unsigned int features; /* Ver 4 addition */
};
#define FST_MODE_HDLC 0
#define FST_MODE_TRANSPARENT 1
#define FST_MODE_BISYNC 2
#define FST_MODE_ASYNC 3
#define lowLatencyDisable 0
#define lowLatencyRx 1
#define lowLatencyTx 2
#define lowLatencyRxTx 3
/*
* FSTSNOTIFY
*
*/
#define FST_NOTIFY_OFF 0
#define FST_NOTIFY_ON 1
#define FST_NOTIFY_EXTENDED 2
#define FST_NOTIFY_BASIC_SIZE 2*sizeof(int)
/* FSTGSTATE
*
* Used to query why a state change message has been issued by the driver
* It could be because there was a change in line states or that the txq
* has reached an empty state
*/
struct fstioc_status {
int carrier_state;
int txq_length;
int rxq_length;
struct fst_device_stats stats;
};
/* FSTSYSREQ
*
* Used to provide a simple transparent command/repsonse interface between
* an application and the firmware running on the card
*/
struct fstioc_req {
unsigned short msg_type;
unsigned short msg_len;
unsigned short ret_code;
unsigned short i_reg_idx;
unsigned short value;
unsigned char u_msg[16];
unsigned char u_msg_reserved[16];
unsigned char u_reserved[4];
};
#define MSG_FIFO_DEF_SLAVE_1X 0x0001
#define MSG_FIFO_DEF_SLAVE_16X 0x0002
#define MSG_FIFO_DEF_MASTER 0x0003
#define MSG_FIFO_EEPROM_RD 0x769b
#define MSG_FIFO_EEPROM_WR 0xcd4a
#define RSP_FIFO_SUCCESS 0x0000
#define RSP_FIFO_FAILURE 0x0001
/* FSTSETMON
*
* Used to provide a simple monitoring data
*/
#define FSTIOC_MON_VERSION 0
#define FST_MON_RX 0
#define FST_MON_TX 1
struct fstioc_mon {
unsigned char version;
unsigned char tx_rx_ind;
unsigned int sequence;
unsigned long timestamp;
unsigned int length;
};
/* FSTSETPORT
*
* Used to provide a DSL port control
*/
#define FST_DSL_PORT_NORMAL 0
#define FST_DSL_PORT_ACTIVE 1
/* FSTCMD
*
* Used to read and write card data
*/
#define FSTCMD_GET_SERIAL 0
#define FSTCMD_SET_V24O 1
#define FSTCMD_GET_VERSION 2
#define FSTCMD_SET_VERSION 3
#define FSTCMD_GET_INTS 4
#define FSTCMD_RESET_INTS 5
#define FSTCMD_RESET_STATS 6
#define FSTCMD_SET_READV 7
#define FSTCMD_SET_CHAR 8
#define FSTCMD_GET_PRESERVE_SIGNALS 9
#define FSTCMD_SET_PRESERVE_SIGNALS 10
#define FSTCMD_SET_LATENCY 11
#define FSTCMD_UPDATE_CLOCK 12
#define FSTCMD_SET_CUSTOM_RATE 13
#ifdef __x86_64__
#define fstioc_info_sz_old 316
#define fstioc_info_sz_ver1 504
#define fstioc_info_sz_ver2 512
#define fstioc_info_sz_ver3 528
#define fstioc_info_sz_ver4 536
#define fstioc_info_sz_current sizeof(struct fstioc_info)
#else
#define fstioc_info_sz_old 312
#define fstioc_info_sz_ver1 408
#define fstioc_info_sz_ver2 416
#define fstioc_info_sz_ver3 428
#define fstioc_info_sz_ver4 436
#define fstioc_info_sz_current sizeof(struct fstioc_info)
#endif
#define FST_VERSION 4
#define FST_VERSION_CURRENT FST_VERSION
#define FST_VERSION_V3 3
#define FST_VERSION_V2 2
#define FST_VERSION_V1 1
#define FST_VERSION_OLD 0
#define FST_READV_NORMAL 0
#define FST_READV_SYNC 1
#define FST_READV_SYNC2 2
struct fstioc_char_data {
unsigned char queue_len;
unsigned char threshold;
unsigned char pad[14];
};
struct fstioc_latency_data {
unsigned int tx_size;
unsigned int rx_size;
unsigned int rate;
};
struct fstioc_cmd {
unsigned int version;
unsigned int command;
unsigned int status;
unsigned int input_data_len;
unsigned int output_data_len;
unsigned char * data_ptr;
};
#define FST_CUSTOM_RATE_CONFIG_VERSION 1
#define FST_CUSTOM_RATE_CONFIG_LENGTH (33+1)
#define FST_CUSTOM_RATE_CLOCK_SLAVE 0
#define FST_CUSTOM_RATE_CLOCK_LOW_SLAVE 1
#define FST_CUSTOM_RATE_CLOCK_LOW_MASTER 2
#define FST_CUSTOM_CLOCK_MULTIPLIER_1 1
#define FST_CUSTOM_CLOCK_MULTIPLIER_16 2
struct fstioc_custom_rate_config {
unsigned int version;
unsigned int rate;
unsigned int permanent;
unsigned int multiplier; /* 1 or 16 */
unsigned int clock_type; /* slave, low_slave, low_master */
char rate_info[FST_CUSTOM_RATE_CONFIG_LENGTH];
};
/* "valid" bitmask */
#define FSTVAL_NONE 0x00000000 /* Nothing valid (firmware not running).
* Slight misnomer. In fact nports,
* type, state and index will be set
* based on hardware detected.
*/
#define FSTVAL_OMODEM 0x0000001F /* First 5 bits correspond to the
* output status bits defined for
* v24OpSts
*/
#define FSTVAL_SPEED 0x00000020 /* internalClock, lineSpeed, clockStatus
*/
#define FSTVAL_CABLE 0x00000040 /* lineInterface, cableStatus */
#define FSTVAL_IMODEM 0x00000080 /* v24IpSts */
#define FSTVAL_CARD 0x00000100 /* nports, type, state, index,
* smcFirmwareVersion
*/
#define FSTVAL_PROTO 0x00000200 /* proto */
#define FSTVAL_MODE 0x00000400 /* cardMode */
#define FSTVAL_PHASE 0x00000800 /* Clock phase */
#define FSTVAL_TE1 0x00001000 /* T1E1 Configuration */
#define FSTVAL_BUFFERS 0x00002000 /* Tx and Rx buffer settings */
#define FSTVAL_DSL_S1 0x00004000 /* DSL-S1 Configuration */
#define FSTVAL_T4E 0x00008000 /* T4E Mk II Configuration */
#define FSTVAL_FLEX 0x00010000 /* FarSync Flex */
#define FSTVAL_ASYNC 0x00020000 /* Async config */
#define FSTVAL_DEBUG 0x80000000 /* debug */
#define FSTVAL_ALL 0x000FFFFF /* Note: does not include DEBUG flag */
/* "type" */
#define FST_TYPE_NONE 0 /* Probably should never happen */
#define FST_TYPE_T2P 1 /* T2P X21 2 port card */
#define FST_TYPE_T4P 2 /* T4P X21 4 port card */
#define FST_TYPE_T1U 3 /* T1U X21 1 port card */
#define FST_TYPE_T2U 4 /* T2U X21 2 port card */
#define FST_TYPE_T4U 5 /* T4U X21 4 port card */
#define FST_TYPE_TE1 6 /* T1E1 X21 1 port card */
#define FST_TYPE_DSL_S1 7 /* DSL-S1 card */
#define FST_TYPE_T4E 8 /* T4E Mk II */
#define FST_TYPE_FLEX1 9 /* FarSync Flex 1 port */
#define FST_TYPE_T4UE 10 /* T4UE 4 port PCI Express */
#define FST_TYPE_T2UE 11 /* T2UE 2 port PCI Express */
#define FST_TYPE_T4Ep 12 /* T4E+ 4 port card */
#define FST_TYPE_T2U_PMC 13 /* T2U_PMC 2 port PCI card */
#define FST_TYPE_TE1e 14 /* TE1e X21 1 port PCI Express */
#define FST_TYPE_T2Ee 15 /* T2Ee 2 port PCI Express */
#define FST_TYPE_T4Ee 16 /* T4Ee 4 port PCI Express */
#define FST_TYPE_FLEX2 17 /* FarSync Flex 1 port (v2) */
/* "family" */
#define FST_FAMILY_TXP 0 /* T2P or T4P */
#define FST_FAMILY_TXU 1 /* T1U or T2U or T4U */
/* "state" */
#define FST_UNINIT 0 /* Raw uninitialised state following
* system startup */
#define FST_RESET 1 /* Processor held in reset state */
#define FST_DOWNLOAD 2 /* Card being downloaded */
#define FST_STARTING 3 /* Released following download */
#define FST_RUNNING 4 /* Processor running */
#define FST_BADVERSION 5 /* Bad shared memory version detected */
#define FST_HALTED 6 /* Processor flagged a halt */
#define FST_IFAILED 7 /* Firmware issued initialisation failed
* interrupt
*/
/* "lineInterface" */
#define V24 1
#define X21 2
#define V35 3
#define X21D 4
#define NOCABLE 5
#define RS530_449 6
#define T1 7
#define E1 8
#define J1 9
#define SHDSL 10
#define RS485 11
#define UX35C 12
#define RS485_FDX 13
#ifndef IF_IFACE_SHDSL
#define IF_IFACE_SHDSL 0x1007 /* SHDSL (FarSite) */
#define IF_IFACE_RS530_449 0x1008 /* RS530_449 (FarSite) */
#define IF_IFACE_RS485 0x1009 /* RS485 (FarSite) */
#endif
#define IF_IFACE_RS485_FDX 0x100A /* RS485 Full Duplex (Farsite) */
#define IF_IFACE_UX35C 0x100B /* UX35C (Farsite) */
/* "proto" */
#define FST_HDLC 1 /* Cisco compatible HDLC */
#define FST_PPP 2 /* Sync PPP */
#define FST_MONITOR 3 /* Monitor only (raw packet reception) */
#define FST_RAW 4 /* Two way raw packets */
#define FST_GEN_HDLC 5 /* Using "Generic HDLC" module */
/* "internalClock" */
#define INTCLK 1
#define EXTCLK 0
/*
* The bit pattern for extendedClocking is
* 8 4 2 1 |8 4 2 1
* ec |ttrx tttx irx itx
*/
#define EXT_CLOCK_NONE 0x00
#define EXT_CLOCK_ERX_ETX 0x80
#define EXT_CLOCK_ERX_ITX 0x81
#define EXT_CLOCK_IRX_ETX 0x82
#define EXT_CLOCK_IRX_ITX 0x83
#define EXT_CLOCK_DTE_TT 0x84
#define EXT_CLOCK_DCE_TT 0x8B
/* "v24IpSts" bitmask */
#define IPSTS_CTS 0x00000001 /* Clear To Send (Indicate for X.21) */
#define IPSTS_INDICATE IPSTS_CTS
#define IPSTS_DSR 0x00000002 /* Data Set Ready (T2P Port A) */
#define IPSTS_DCD 0x00000004 /* Data Carrier Detect */
#define IPSTS_RI 0x00000008 /* Ring Indicator (T2P Port A) */
#define IPSTS_TMI 0x00000010 /* Test Mode Indicator (Not Supported)*/
/* "v24OpSts" bitmask */
#define OPSTS_RTS 0x00000001 /* Request To Send (Control for X.21) */
#define OPSTS_CONTROL OPSTS_RTS
#define OPSTS_DTR 0x00000002 /* Data Terminal Ready */
#define OPSTS_DSRS 0x00000004 /* Data Signalling Rate Select (Not
* Supported) */
#define OPSTS_SS 0x00000008 /* Select Standby (Not Supported) */
#define OPSTS_LL 0x00000010 /* Local Loop */
#define OPSTS_DCD 0x00000020 /* Only when DCD is enabled as an output */
#define OPSTS_RL 0x00000040 /* Remote Loop */
/* "cardMode" bitmask */
#define CARD_MODE_IDENTIFY 0x0001
/*
* TxRx Start Parameters
*/
#define START_TX 1
#define START_RX 2
#define START_TX_AND_RX (START_TX | START_RX)
#define START_DEFAULT START_TX_AND_RX
/*
* Constants for T1/E1 configuration
*/
/*
* Clock source
*/
#define CLOCKING_SLAVE 0
#define CLOCKING_MASTER 1
/*
* Framing
*/
#define FRAMING_E1 0
#define FRAMING_J1 1
#define FRAMING_T1 2
/*
* Structure
*/
#define STRUCTURE_UNFRAMED 0
#define STRUCTURE_E1_DOUBLE 1
#define STRUCTURE_E1_CRC4 2
#define STRUCTURE_E1_CRC4M 3
#define STRUCTURE_T1_4 4
#define STRUCTURE_T1_12 5
#define STRUCTURE_T1_24 6
#define STRUCTURE_T1_72 7
/*
* Interface
*/
#define INTERFACE_RJ48C 0
#define INTERFACE_BNC 1
/*
* Coding
*/
#define CODING_HDB3 0
#define CODING_NRZ 1
#define CODING_CMI 2
#define CODING_CMI_HDB3 3
#define CODING_CMI_B8ZS 4
#define CODING_AMI 5
#define CODING_AMI_ZCS 6
#define CODING_B8ZS 7
#define CODING_NRZI 8
#define CODING_FM0 9
#define CODING_FM1 10
#define CODING_MANCHESTER 11
#define CODING_DIFF_MANCHESTER 12
/*
* Line Build Out
*/
#define LBO_0dB 0
#define LBO_7dB5 1
#define LBO_15dB 2
#define LBO_22dB5 3
/*
* Range for long haul t1 > 655ft
*/
#define RANGE_0_133_FT 0
#define RANGE_0_40_M RANGE_0_133_FT
#define RANGE_133_266_FT 1
#define RANGE_40_81_M RANGE_133_266_FT
#define RANGE_266_399_FT 2
#define RANGE_81_122_M RANGE_266_399_FT
#define RANGE_399_533_FT 3
#define RANGE_122_162_M RANGE_399_533_FT
#define RANGE_533_655_FT 4
#define RANGE_162_200_M RANGE_533_655_FT
/*
* Receive Equaliser
*/
#define EQUALIZER_SHORT 0
#define EQUALIZER_LONG 1
/*
* Loop modes
*/
#define LOOP_NONE 0
#define LOOP_LOCAL 1
#define LOOP_PAYLOAD_EXC_TS0 2
#define LOOP_PAYLOAD_INC_TS0 3
#define LOOP_REMOTE 4
/*
* Buffer modes
*/
#define BUFFER_2_FRAME 0
#define BUFFER_1_FRAME 1
#define BUFFER_96_BIT 2
#define BUFFER_NONE 3
/*
* DSL Equipment types
*/
#define EQUIP_TYPE_REMOTE 0
#define EQUIP_TYPE_CENTRAL 1
/*
* DSL Operating modes
*/
#define ANNEX_A 1 /* US */
#define ANNEX_B 0 /* EU */
/*
* DSL ATM Encapsulation methods
*/
#define ENCAP_PPP 0
#define ENCAP_MPOA 1
#define MPOA_HEADER_LEN 8
/*
* DSL Test Modes
*/
#define TEST_MODE_NONE 0
#define TEST_MODE_DEFAULT TEST_MODE_NONE
#define TEST_MODE_ALTERNATING_SINGLE_PULSE 1
#define TEST_MODE_ANALOG_TRANSPARENT_LOOP 4
#define TEST_MODE_ANALOG_NON_TRANSPARENT_LOOP 8
#define TEST_MODE_TRANSMIT_SC_SR 9
#define TEST_MODE_TRANSMIT_TC_PAM_SCRONE 10
#define TEST_MODE_LINE_DRIVER_NO_SIGNAL 11
#define TEST_MODE_AGC_TO_LINE_DRIVER_LOOP 12
#define TEST_MODE_LOOP_TDM_TO_LINE 16
#define TEST_MODE_LOOP_PAYLOAD_TO_LINE 17
/* Debug support
*
* These should only be enabled for development kernels, production code
* should define FST_DEBUG=0 in order to exclude the code.
* Setting FST_DEBUG=1 will include all the debug code but in a disabled
* state, use the FSTSETCONF ioctl to enable specific debug actions, or
* FST_DEBUG can be set to prime the debug selection.
*/
#define FST_DEBUG 0x0000
#if FST_DEBUG
extern int fst_debug_mask; /* Bit mask of actions to debug, bits
* listed below. Note: Bit 0 is used
* to trigger the inclusion of this
* code, without enabling any actions.
*/
#define DBG_INIT 0x0002 /* Card detection and initialisation */
#define DBG_OPEN 0x0004 /* Open and close sequences */
#define DBG_PCI 0x0008 /* PCI config operations */
#define DBG_IOCTL 0x0010 /* Ioctls and other config */
#define DBG_INTR 0x0020 /* Interrupt routines (be careful) */
#define DBG_TX 0x0040 /* Packet transmission */
#define DBG_RX 0x0080 /* Packet reception */
#define DBG_CMD 0x0100 /* Port command issuing */
#define DBG_ATM 0x0200 /* ATM processing */
#define DBG_TTY 0x0400 /* PPPd processing */
#define DBG_USB 0x0800 /* USB device */
#define DBG_ASY 0x1000 /* Async functions */
#define DBG_FIFO 0x2000 /* Fifo functions */
#define DBG_ASS 0x0001 /* Assert like statements. Code that
* should never be reached, if you see
* one of these then I've been an ass
*/
#endif /* FST_DEBUG */
|