File: scc_ger.doc

package info (click to toggle)
z8530-utils2 3.0-1-2
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 248 kB
  • ctags: 116
  • sloc: ansic: 1,217; makefile: 76; sh: 9
file content (721 lines) | stat: -rw-r--r-- 22,440 bytes parent folder | download | duplicates (11)
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
German documentation. English text in scc_eng.doc

!! NET/NOS steht fuer ka9q NET oder ka9q NOS und seinen
!! Derivaten (WAMPES, NETCHL, JNOS, etc...)
!!
!!
!! (Fehler-) Berichte zu dieser Version (z8530drv-3.0.dl1bke) bitte direkt
!! an mich!
!!
!!
!! Uebrigens:
!!
!! Dieser Treiber funktioniert bei mir mit
!!
!! - einer BayCom USCC bei 1200 und 9600 baud
!! - einem 486DX2/66
!! - Linux Kernel AX.25
!!
!! Berichte ueber andere Konfigurationen sind immer willkommen!
!!
!! DIESE DOKUMENTATION IST HOFFNUNGSLOS VERALTET 
!! =============================================
!! und bezieht sich auf Version 2.4 des Treibers. 
!!
!!
!! vy 73 de Joerg DL1BKE @ DB0ACH.#NRW.DEU.EU
!!                dl1bke@db0pra.ampr.org (smtp)
!!                dl1bke@lykos.oche.de


 ********************************************************************

        Z8530 SCC kernel driver fr Linux --- Version 2.4

 ********************************************************************

        Copyright 1993-1997 by Jrg Reuter DL1BKE

        portions (c) 1993 Guido ten Dolle PE1NNZ

   Dieses Programm ist freie Software (free software); sie darf
   weiterverbreitet und/oder gendert werden unter Magabe der
   (modifizierten) GNU General Public License, welche als Teil
   des LinuX Kernel Quelltextes mitgeliefert wird.

   Dieses Programm wurde entwickelt in der Hoffnung, da es von
   Nutzen sei, jedoch OHNE JEDE GEWHRLEISTUNG; ebenso ohne
   jede wie auch immer implizierte Aussage der Nutzbarkeit fr
   einen bestimmten Zweck.  Nhere Details befinden sich in der
   GNU Genereal Public License. Eine Kopie jener Nutzungslizenz
   sollte sich in englischer Sprache in /usr/src/linux/COPYING
   befinden.

   Bei diesem Programm handelt es sich um ein "Freizeitprodukt".
   Das Programm befindet sich noch in der ENTWICKLUNG, das heit:
   NUTZUNG AUF EIGENE GEFAHR! Der Autor lehnt jede Haftung fr
   die Folgen des Einsatzes dieser Software ab. Siehe auch
   Copying.Z8530DRV fr weitere Details.

 ********************************************************************


0. Installation
===============

Da Sie diesen Text lesen, haben Sie das Archiv ja schon erfolgreich
ausgepackt :-) Sie sollten sich jetzt Gedanken darber machen, ob
Sie den Treiber als Modul oder Teil des Kernels kompilieren wollen.

Um ein Modul zu erstellen, rufen Sie

	make module

auf. Es werden scc.c und die Utilities

sccinit  - liest /etc/z8530drv.conf und initialisiert den Treiber
sccstat  - gibt den Status eines Kanals aus
sccparam - stellt die KISS-Parameter ein.

kompiliert und installiert.

Anmerkung: Make berschreibt eine schon vorhandene z8530drv.conf in /etc,
           bitte sichern Sie diese Datei vor dem Aufruf!

1. Initialisierung
==================

Drei Schritte sind notwendig:

    1. Laden des Moduls
    2. Initialisieren des Treibers

Die Hardwareparameter sind fuer die Initialisierung der SCCs und
des Interrupt-Treibers notwendig. 

1.1 Laden des Moduls
====================

Bevor auf ein Modul zugegriffen werden kann, mu es ersteinmal
geladen werden. Dies geschieht mit

	insmod scc.o

Lesen Sie bitte 'man insmod', die Manualpage ist Bestandteil der
'modutils'.

Obiger Aufruf von 'insmod' sollte in eine der /etc/rc.d/rc.*-Dateien
eingefgt werden, und anschlieend ein Aufruf von /sbin/sccinit
erfolgen.


1.2 Initialisierung des Treibers
================================

Der Aufruf von /sbin/sccinit mu vor dem Start von NET oder
'ifconfig' erfolgen. Sccinit liest die Datei /etc/z8530drv.conf und
stellt die Hardware, MODEM und KISS Paramter des Treibers ein.
Eine Beispieldatei ist selbstverstndlich auch in diesem Archiv.
Passen Sie es einfach an Ihre Situation an.


/etc/z8530drv.conf besteht aus zwei Teilen.

1.2.1 Konfiguration der Hardware Parameter
==========================================

Die Einstellung der Hardware-Parameter geschieht durch folgende
Eintrge fr jeden Z8530:

chip    1
data_a  0x300                   # Datenport A
ctrl_a  0x304                   # Controlport A
data_b  0x301                   # Datenport B
ctrl_b  0x305                   # Controlport B
irq     5                       # IRQ Nr. 5
pclock  4915200                 # Takt
board   BAYCOM                  # Welche Karte?
escc    no                      # Enhanced SCC chip? (8580/85180/85280)
vector  0                       # Adresse des INTACK-Latch
special no                      # Adresse eines Special Function Register
option  0                       # Wert, der in dieses Register geschrieben
				# wird


chip    - Dient nur zur Trennung der Eintrge der Chips.
          (Parameter ohne Bedeutung).

data_a  - Adresse des Datenports A dieses Z8530 (bentigt)
ctrl_a  - Adresse des Control Port A (bentigt)
data_b  - Adresse des Datenports B (bentigt)
ctrl_b  - Adresse des Control Port B (bentigt)

irq     - Der verwendete IRQ fr diesen Chip. Unterschiedliche Chips 
          knnen unterschiedliche IRQs oder einen gemeinsamen benutzen.
	  Wenn sie sich einen IRQ teilen, braucht diese nur einmal
	  angegeben werden.

pclock  - Der Takt am PCLK Pin des Z8530 gemessen in Hertz (optional)
          Die SCC-Chips bekommen in der Regel einen Takt von 4.9152 MHz. 
          Falls bei Ihrer Karte gerade nicht: Hier eintragen. (Der Quarz 
          der USCC schwingt auf 9.8304 MHz, die Frequenz wird aber noch
          durch zwei geteilt, d.h. an der SCC liegen 4.9152 MHz an)

board   - Der Typ der SCC-Karte, nach folgender Tabelle:

	  SCC Typ                  Wert
	  ------------------------------
	  PA0HZP SCC card          PA0HZP
	  EAGLE card               EAGLE
	  PC100 card               PC100
	  PRIMUS-PC (DG9BL) card   PRIMUS
	  BayCom (U)SCC card       BAYCOM


escc    - Sollen die erweiterten Mglichkeiten von ESCC chips 
          (8580, 85180, 85280) ausgenutzt werden, tragen Sie
          hier "yes" ein. (Option, Defaults ist "no")

vector  - Adresse des Vector-Latch (alias "INTACK-Port") von PA0HZP
	  Karten. Es kann nur einen geben! (Fr alle Chips)
	  (Option, Default ist 0)

special - Adresse des SFR einiger Karten (Option, Default ist 0)

option  - Der Wert, der in dieses Register geschrieben wird
          (Option, Default ist 0)

Es knnen bis zu vier Chips (acht Kanle) definiert werden. Wenn
dies nicht ausreicht, kann in scc.c

	#define MAXSCC 4

hochgesetzt werden.

Beispiel fr die BayCom USCC:
-----------------------------

chip    1
data_a  0x300                   # data port A
ctrl_a  0x304                   # control port A
data_b  0x301                   # data port B
ctrl_b  0x305                   # control port B
irq     5                       # IRQ No. 5 (#)
board   BAYCOM                  # hardware type (*)
#
# SCC chip 2
#
chip    2
data_a  0x302
ctrl_a  0x306
data_b  0x303
ctrl_b  0x307
board   BAYCOM

Ein Beispiel fr eine PA0HZP card:
----------------------------------

chip 1
data_a 0x153
ctrl_a 0x152
data_b 0x151
ctrl_b 0x150
irq 9
pclock 4915200
board PA0HZP
vector 0x168
escc no
#
#
#
chip 2
data_a 0x157
ctrl_a 0x156
data_b 0x155
ctrl_b 0x154
irq 9
pclock 4915200
board PA0HZP
vector 0x168
escc no

Die PE1PET Karte ist angeblich PA0HZP kompatibel. Sie ist leider
schlechter designed: Offensichtlich wird IORDY auf dem AT-Bus
nicht verzgert, so da der Z8530 vom Treiber "berfahren" wird
und sich aufhngt. Fr diese Karte mu SCC_DELAY in scc.c
#define'd werden.

Fr eine DRSI-Karte knnte es so aussehen:
------------------------------------------
(tatschlich wohl eher ZWEI Karten...)

chip 1
data_a 0x303
ctrl_a 0x302
data_b 0x301
ctrl_b 0x300
irq 7
pclock 4915200
board DRSI
escc no
#
#
#
chip 2
data_a 0x313
ctrl_a 0x312
data_b 0x311
ctrl_b 0x310
irq 7
pclock 4915200
board DRSI
escc no

Beachten Sie bitte, da Sie den Baudrate-Generator auf der Platine
nicht nutzen knnen. Benutzen Sie stattdessen den internen Takt-
generator des Z8530, also 'mode dpll' (siehe unten).

(Basierend auf einer Information von Mike Bilow, und laut Paul Healy
 funktioniert es auch...)


Hinweis:
========

Sind nur die Aufruf-Parameter fuer den PE1CHL SCC-Treiber unter DOS
bekannt, so kann man mit gencfg die Portadressen berechnen. Der
Aufruf entspricht dem "attach scc # init"-Kommando, es ist lediglich 
das "init" wegzulassen. Beispiele:

gencfg 2 0x150 4 2 0 1 0x168 9 4915200

gibt ein "Skelet" fuer die OptoSCC-Karte nach stdout aus. 

gencfg 2 0x300 2 4 5 -4 0 7 4915200 0x10

macht das gleiche fuer die BayCom USCC Karte. Ich meine, es ist
viel einfacher, z8530drv.conf zu editieren, als sich mit der Bedeutung
der uebergebenen Parameter herumzuaergern. 


1.2 Konfiguration der Kanle
============================

Jede Kanal-Definition ist in drei Abschnitte aufgeteilt. Fuer
/dev/scc0 zum Beispiel:

# DEVICE

device /dev/scc0         # das Device fuer die folgenden Parameter

# MODEM

speed 1200              # die Default-Baudrate
clock dpll              # Welche Taktquelle wird benutzt:
                        #       dpll     = normaler Halbduplex-Betrieb
                        #       external = das MODEM liefert eigenen Takt
                        #       divider  = der sog. Vollduplex-Teiler wird
                        #                  benutzt (1)
mode nrzi               # HDLC encoding Modus
                        #       nrzi = 1k2 MODEM, G3RUH 9k6 MODEM
                        #       nrz  = DF9IC 9k6 MODEM
# KISS (Layer 1)

txdelay 36              # (siehe Abschnitt 1.4)
persist 64
slot    8
tail    8
fulldup 0
wait    12
min     3
maxkey  7
idle    3
maxdef  120
group   0
txoff   off
softdcd on

Die Reihenfolge INNERHALB der drei Abschnitte ist unwichtig. Die
Reihenfolge DER drei Abschnitte aber nicht. Die MODEM-Parameter
werden gesetzt, sobald das erste KISS-Kommando erkannt wird.

Beachten Sie bitte, da Sccinit nur einmal nach dem Booten aufgerufen
werden kann. Alle Parameter auer "mode" und "clock" knnen jedoch
mit Sccparam bzw. ber KISS-Kommandos verndert werden.

(1) Dieser Teiler ist normalerweise auf der SCC-Platine (PA0HZP) oder
    ueberhaupt nicht montiert. Er fuehrt das Ausgangssignal der
    digitalen PLL als Sendetakt zum Z8530 zurueck. Die Wahl dieses
    Modus ohne installierten Treiber fuehrt normalerweise dazu,
    dass die PTT bis zum Ablauf von Maxkey getastet wird -- ohne
    allerdings irgendetwas (sinnvolles) zu senden.


2. Ansprechen der Kanle durch die AX.25-Software
=================================================

Der Treiber stellt aus Sicht der AX.25-Software einen KISS-TNC
an einer seriellen Schnittstelle da. 

2.1 KA9Q-Derivate
=================

!! Siehe englische Doku !!

Es ist also AX.25 ohne TNC moeglich. Lediglich ein MODEM wird
gebraucht, wobei auf der BayCom USCC schon drei auf der Platine
sind.

Fuer Vollduplexbetrieb ist uebrigens ein externer Teiler noetig,
der den Takt des Baudratengenerators TRxC und an RTxC des selben 
Kanals legt. Dieser Teiler ist fuer normalen (CSMA) Betrieb nicht 
noetig, reduziert dort allerdings das Interrupt-Aufkommen etwas. 
(Die USCC hat diesen Teiler nicht, die PA0HZP Karte hat ihn in der 
Regel bestueckt, was einer von zwei Gruenden ist, warum der PE1CHL-
Treiber mit der USCC so ohne weiteres nicht zusammenarbeitet. Der 
andere Grund ist die Freischaltung des CTS-Interrupts, welcher zu 
einem Totalabsturz des Rechners fuehrt.)

2.2 Kernel-AX.25
================

Der Treiber arbeitet als Netzwerk-Treiber mit dem Linux Kernel
AX.25 zusammen. 

Verbunden wird das Interface mit dem Kernel-AX.25 einfach durch

	ifconfig scc0 dl0tha.ampr.org hw ax25 DL0THA

Natrlich ist noch einiges an Konfiguration fr das Kernel-AX.25
notwendig, lesen Sie dazu bitte die entsprechende Dokumentation.

Achtung bei Verwendung des Treibers als TTY-Treiber im Zusammenhang
mit axattach: Es mu der SLIP-Treiber in den Kernel mit einkompiliert
werden.

3. Aenderung der SCC-Parameter
==============================


3.1 SCC Parameter:
------------------

Die KISS-Parameter koennen genauso veraendert werden wie bei
einem normalen KISS-TNC, und zwar durch Verwendung des
"param"-Befehls in NET/NOS. Es gibt noch die Moeglichkeit,
die Parameter ueber das Programm Sccparam von aussen zu setzen
(mehr UN*X like)

Aufruf des param-Kommandos in NET/NOS:

     param <iface> <paramname> <value>

Aufruf des Programms Sccparam:

     sccparam <iface> <paramname> <value>

wobei
<iface>		den SCC-Port bezeichnet scc0, scc1, ...
<paramname>	einen der Namen, die unten aufgefuehrt sind
<value>		Wert des Parameters



Folgende Parameter sind veraenderlich:

Parameter	Wert 
---------------------
speed       	1200
txdelay     	36
persist     	128
slot        	16
tail		8
fulldup		0
wait		48
maxkey		7
min		3
idle		30
maxdefer	120
group		193
txoff		off
softdcd		on
---------------------


Die Paramter haben folgende Bedeutung:

txdelay:
     Die Verzoegerung (in 10ms) von Tastung der PTT bis zur
     Aussendung des ersten Bytes. Wird 0 angegeben, wartet der
     Treiber auf ein CTS vom MODEM --- allerdings nicht
     bei der BayCom USCC --- das setzt natuerlich einen Timer
     auf dem MODEM voraus, der die Verzoegerung erzeugt.
     Ein normaler Wert ist 20-36

persist:
     Der Treiber generiert, sobald der Kanal frei ist, vor jeder
     Aussendung eine Zufallszahl zwischen 0 und 255 und 
     vergleicht diese mit der Persistance. Ist die Zufallszahl
     kleiner, wird die PTT getastet. Ein guter Persistance-Wert
     liegt zwischen 40 und 60 bei maessigem Betrieb, oder sogar
     niedriger. Bei DAMA-Betrieb sollte dieser Parameter auf
     255 stehen.

slot:
     Ist der Zufallswert groesser als persist, wartet der Treiber
     die Slottime ab, prueft dann wieder DCD und bildet einen
     neuen Zufallswert...
     Dieser Parameter wird auch in 10ms angegeben, ein
     guter wert liegt zwischen 20 und 30.

tail:
     Dies ist die Verzoegerung (in 10ms), mit der die PTT nach dem
     letzten Datenbyte noch getastet bleibt. Dies ist notwendig,
     weil ja noch der CRC und ein Flag gesendet werden muessen.
     Der Wert haengt von der Baudrate und der Abfallverzoegerung
     des des Tranceivers ab. Der Standardwert in der Tabelle
     ist fuer 1200 baud brauchbar.

full:
     Damit kann man die Auswertung der DCD umschalten. Fuer
     echten Vollduplex-Betrieb kann dieser Parameter auf eins oder
     zwei stehen, sonst immer auf Null (auch auf sog. 
     "Duplex"-Digis!) [Ausnahme: DAMA]

     Die Werte bedeuten:
     0:   CSMA-Betrieb (normal)
     1:   DCD wird nicht ausgewertet, der Sender wird nach dem
          letzten Frame wieder abgeschaltet
     2:   wie 1, nur dass der Sender getastet bleibt, bis Idle 
	  abgelaufen ist
     3:   wie 2, nur dass der Sender getastet bleibt, bis via
	  ioctl()- oder KISS-Kommando "PARAM_RTS 0" die PTT
	  wieder abgeschaltet wird.

wait:
     Wartezeit, nach der ein neu in die Sendeliste eingehaengtes
     Frame gesendet wird (in 10ms), damit evtl. unmittelbar
     folgende Frames im gleichen Durchgang gesendet werden
     koennen. (DWAIT)


min: Wenn Maxkeyup (s.u.) abgelaufen ist, ist dies die Zeit 
     (in s), die mindestens bis zu einem neuen Sendeversuch
     gewartet wird.

maxkey: 
     Maxkeyup ist die Zeit, die der Sender maximal getastet ist
     (in s). Verwendung als "watchdog" um beim Absturz des
     SCC-Chips den Uebertragungskanal nicht zu lange zu
     blockieren. (Auch in den Vollduplex-Modi).
     Sollte aus verstaendlichen Gruenden nicht Null werden. 
     Kann abgeschaltet werden.

idle:
     Dieser Parameter bestimmt die maximale Leerlaufzeit im
     Vollduplex-Modus 2. Danach wird der Sender abgschaltet.
     Ist dieser Parameter 0, entspricht dies fulldup=1.
     Kann abgeschaltet werden, d.h. der Sender laeuft dann bis
     Ablauf von maxkeyup weiter


maxdefer:
     Ist die maximale Zeit, die auf einen freien Kanal gewartet
     wird. Laeuft der Timer ab, wird sofort gesendet (Bitte
     keinen Unfug damit treiben. Dies ist ein Timer, der
     einen Speicherberlauf verhindern soll, nicht andere
     Leute rgern)


txoff:
     Damit laesst sich die PTT abschalten :-)

group:
     Dies ist fuer mehrere Baudraten auf einer Frequenz nuetzlich,
     es laessen sich die Aussendungen der einzelnen Ports gegenseitig
     verriegeln. Moeglich ist dies uebrigens nur im CSMA-Betrieb...

     Die Erklaerung ist etwas kompliziert:

     Der Parameter ist ein Byte. Es setzt sich wie folgt zusammen:

     mgg sei eine eine Oktal-Zahl. Dann sind die letzten beiden
     Stellen ("gg") die Gruppen-Nummer, die erste Stelle (m) ergibt
     die Sendeerlaubnis fuer diesen Port. Hierzu wird der Zustand
     der Ports mit der gleichen Gruppen-Nummer herangezogen.

     m = 0: Zugriff auf die Frequenz unbeschraenkt
     m = 1: Zugriff nur wenn kein DCD auf einem der anderen Ports
            dieser Gruppe.
     m = 2: Zugriff nur wenn kein anderer Port dieser Gruppe sendet
     m = 3: Zugriff nur wenn keiner DCD meldet und auch keiner
            sendet in dieser Gruppe

     Beispiele:

     param scc0 group 301 -- scc0 ist in Gruppe 1 und sendet nur,
                             wenn scc1 nichts empfaengt und auch
                             nicht sendet

     param scc1 group 101 -- scc1 ist auch in Gruppe 1 und sendet
                             solange scc0 nichts empfaengt, "doppelt"
                             aber evtl. mit der Aussendung von scc0

     param scc2 group 211 -- scc2 sendet, wenn scc3 nicht sendet,
                             kuemmert sich aber nicht um DCD von scc3

     param scc3 group 011 -- scc3 sendet unabhaengig von scc2

     param scc4 group 000 -- scc4 sendet unabhaengig von anderen

softdcd:
     es ist moeglich, eine Software-DCD zu verwenden.


3.2 SCC Status:
---------------

Mit

	sccstat /dev/scc0

wird neben der aktuellen Einstellung der oben beschriebenen
Parameter der Status des SCC-Treibers fuer diesen Port angezeigt:

Status:

HDLC                  Z8530           Interrupts         Queues
-----------------------------------------------------------------------
Sent       :     273  RxOver :     0  RxInts :   125074  RxQueue :    0
Received   :    1095  TxUnder:     0  TxInts :     4684  TxQueue :    0
RxErrors   :    1591                  ExInts :    11776  NoSpace :    0
KissErrors :       0                  SpInts :     1503
Tx State   :    idle

Memory allocated:

Buffer size:  384
rx buffers :    4
tx buffers :    8

...bedeutet:

	Sent 	   = Anzahl der gesendeten Frames
	Received   = Anzahl der empfangenen Frames
	RxErrors   = Anzahl der Empfangsfehler (CRC, ABORT)
	KissErrors = Anzahl fehlerhaft an den Treiber gesendeter KISS-Frames

	TxState    = Status der Tx-Sendeschleife:
			idle    - Schleife leer
			busy	- bin mit DWait/Slottime/TxDelay/Tail
				  beschftigt
			active  - daten werden gesendet
			?       - darf nicht erscheinen

	RxOver	   = Anzahl der Empfangsueberlaeufe
	TxUnder	   = Anzahl der Sender-Unterlaeufe
	Rxints	   = Anzahl der Empfangsinterrupts
	Txints	   = Anzahl der Senderinterrupts
        Exints	   = Anzahl der Externer-Status-Ints (ABORT, CTS, DCD)
	Spints	   = Anzahl der "special condition" Interrupts (Frame-Ende, 
                     Rx-Ueberlauf)

	RxQueue    = Anzahl der in der Warteschleife stehenden Emfangspackete
	TxQueue    = Anzahl der in der Warteschleife stehenden Sendepackete
	NoSpace    = Anzahl der vergeblich angeforderten Puffer

	Buffer size= Puffergre
	rx buffers = Anzahl der Empfangspuffer
	tx buffers = Anzahl der Sendepuffer


Ueber/Unterlaeufe duerfen nicht auftreten. Ist dies doch der Fall,
dann ist der Computer fuer die Anzahl der Ports zu langsam...


2. Probleme
===========


2.1 Womit man sonst noch spielen kann
=====================================

In linux/drivers/char/scc.c finden sich noch einige DEFINES,
die man bei Problemen ndern kann...

#define MAXSCC		4	/* number of max. supported chips */
#define TPS		25	/* scc_timer():  Ticks Per Second */
#undef  SCC_DELAY		/* perhaps a 486DX2 is a *bit* too fast */
#undef  SCC_LDELAY		/* slow it even a bit more down */

MAXSCC gibt die maximale Anzahl an SCC-Chips an. Werden Karten verwendet,
die mehr als 4 Z8530 benutzen, bzw. mehrere Karten benutzt, ist dieser
Wert entsprechend anzupassen.

SCC_DELAY und SCC_LDELAY koennen bei Timing-Problemen (PE1PET-Karte)
definiert werden. Bei SCC_DELAY werden statt den Makros inb()/outb() 
die Makros inb_p()/outb_p() verwendet, bei SCC_LDELAY werden in die
Funktionen OutReg() und InReg() ein paar udelay(5) eingestreut. Bei
der BayCom-USCC ist dies nicht notwendig, da die Karte selbst
IORDY verzgert.

 
2.2 Andere Probleme
===================

Bei Tx-Problemen mit der BayCom USCC bitte ueberpruefen, von
welchem Hersteller die SCC-Chips kommen. SGS Chips haben ein
etwas anderes Timing. Versuche es dann mit Zilog-Typen.

Ich habe Berichte erhalten, da es bei einigen 386er-Systemen
zu Over- und Underruns kommen kann. Diese Systeme haben ein
inkompatibles AT-Bus-Timing. In diesem Fall mit SCC_DELAY
oder SCC_LDELAY spielen. 

Das Problem, da Empfangsdaten nur verzgert durch das aufrufende
Programm (Wampes, KA9Q-net, PE1CHL-net) bearbeitet werden, liegt
begrndet in

1. Der Kernel-Version

2. Eingeschalteter Debugging-Code bei der Kompilierung des Kernels
   (verlangsamt malloc() und free() erheblich!)

3. Die relativ langsame bergabe der Daten an das lesende
   Programm durch tty_io.c (je nach Kernel-Version)

4. Hohe Interrupt-Last des Rechners

5. Hohe Belastung des Rechners mit etlichen anderen Prozessen
   (z.B. XFree86, mit Xmorph und XV und noch Povray, whrend
    der Kernel gerade neu kompiliert wird. Das kann selbst mit
    32 MB RAM nicht gutgehen!)

6. NETs Geschwindigkeit selbst.

Bei unlsbaren Problemen bitte Mail an mich mit den folgenden
Angaben:

- eine Beschreibung des Problems
- Informationenen zur Hardware (Computer, SCC-Karte, MODEMs)
- Kernel Version
- Die Ausgabe von sccstat -p scc# (wobei fr "#" die Nummer des
  fraglichen Kanals eingesetzt werden mu)

Ich mchte auerdem noch einmal daran erinnern, da die Kernel-
Versionen der Reihe 1.3.* Alpha-Versionen sind. Benutzung auf 
eigene Gefahr. 

Mir liegen Informationen vor, da der Treiber auch mit der
BayCom USCC Karte bei 9600 baud funktioniert. Ich kann das
hier leider nur im loopback nachprfen.


Text: pe1nnz et al.
(freie) Uebersetzung, Kapitel 2 und Tippfehler: dl1bke

--

Joerg Reuter	ampr-net: dl1bke@db0pra.ampr.org
		AX-25   : DL1BKE @ DB0ACH.#NRW.DEU.EU
		Internet: jreuter@lykos.tng.oche.de