SI(4)

NAME
si - Specialix International SI/XIO 및 SX 인텔리전트 시리얼 카드를 위한 드라이버

서식
device si0 device si0 at isa? tty irq 12 iomem 0xd0000

해설
Specialix 의 SI/XIO 및 SX 하드웨어는 8 포트에서 32 포토의 RS-232 시리얼 멀티플렉서를 구성합니다.

위의 1 행 째는 EISA 와 PCI 호스트 카드용으로, 2 행 째는 ISA 호스트 카드용의 것입니다.

시스템은 2 개의 부분을 사용합니다: 「호스트 어댑터」는 ISA, EISA 혹은 PCI 슬롯에 삽입되어 37 핀 케이블 형식의 외부 버스와 제어와 데이터의 버퍼링 및 처리를 실시하는 능력을 제공합니다.

이 케이블에는 「모듈」이 접속됩니다. "SI" 모듈은 4 포트 혹은 8 포토의 버젼이 있습니다. "XIO" 및 "SX" 모듈은 8 포트의 버젼만이 있습니다.

호스트 어댑터는 데이터를 폴링 해, 모듈과 머신의 사이의 전송을 행합니다. 호스트 어댑터는, 제어할 수 있는 32 개의 포트의 각각 붙어 256 바이트의 송신용 및 256 바이트의 수신용 FIFO 버퍼를 제공합니다.

XIO 모듈은 8 개의 포트 각각 붙어 115,200 보로 사용할 수 있습니다. SI 버젼은 57,600 보입니다. SX 모듈은 8 개의 포트 각각 붙어 최대 921,600 보로 사용할 수 있습니다.

SX 모듈은 SX 호스트 카드로 접속되고 있는 경우에게만 서포트됩니다. SI 또는 XIO 는 어느 호스트 카드로도 서포트 되고 있습니다.

호스트 어댑터는, ISA 버스의 0xA0000 에서 0xEFFFF 까지의 사이에 있다 전통적인 "구멍" 에 있는 공유 메모리브록크를 사용합니다. 어댑터 자체는 그 이외의 범위에도 설정할 수 있습니다만, 그 메모리 area는 명시적으로 비캐쉬 상태로 해 둘 필요가 있습니다. 드라이버는, 이 모드에서의 사용을 아직 서포트하고 있지 않습니다.

SX 의 ISA 호스트 카드는, 8 비트 모드와 16 비트 모드를 바꾸는 스윗치 또는 점퍼를 가지고 있습니다. 이 스윗치 또는 점퍼는, 8 비트 모드에 세트되어 있지 않으면 되지 않습니다.

ISA 어댑터는 IRQ 11, 12, 15 를 이용할 수 있습니다 (게다가 SX 호스트 카드로는 IRQ 9 로 10 을 이용할 수 있습니다).

si 디바이스 드라이버는, 실행시에 몇개의 설정을 sicontrol(8) 유틸리티로 변경할 수가 있습니다.

si 디바이스 드라이버는 클로우즈 온 드레인 (drain-on-close)의 타임 아웃을 설정하기 위한 comcontrol(8) 유틸리티에도 반응합니다.

드라이버는 3 개의 조작 가능한 sysctl 변수를 정의하고 있습니다: machdep.si_debug 는, 드라이버 전체의 디버그 레벨을 설정합니다. 이것을 이용하려면 , 드라이버가 SI_DEBUG 플래그 첨부로 컴파일 되고 있을 필요가 있습니다. machdep.si_pollrate 는, 세치기가 소실했을 때를 위해서(때문에) 드라이버가 1 초간에 몇회 폴링 하는지를 설정합니다. machdep.si_realpoll 는, 매회의 폴링 시에, 세치기가 발생했는지와 같이 취급하는지 어떤지를 설정합니다.

si 드라이버가 제어하는 /dev 의 디바이스 노드에 대한다 오픈은, sio(4) 드라이버와 같은 시멘틱스로 동작합니다. 이 드라이버는, cua 포트의 통상의 시멘틱스와 "초기 상태의 termios" 및 "락 된 termios" 의 설정을 완전하게 서포트합니다. 간단하게 정리하면(자), O_NONBLOCK 가 세트되어 있지 않은 한, tty 포트의 오픈은 DCD 가 오를 때까지 블록 됩니다. CLOCAL 도 효과가 있습니다. 이것을 설정하면(자), cua 포트의 오픈은 항상 성공합니다만, 한번 DCD 가 오르고 나서는, DCD 의 변화도 효과가 있습니다.

si 드라이버는 SI/XIO 호스트 카드를 최대 4 매까지 제어할 수 있습니다. 세치기가 부족하기 때문에, 동시에 사용할 수 있는 SI/XIO 호스트 카드는 3 매까지입니다.

마이나데바이스 번호의 하위 5 비트는, 모듈 클러스터상의 포트 번호 (을)를 선택하기 위해서 사용됩니다. 다음의 2 비트는 4 매의 호스트 어댑터 카드의 어떤 것을 선택할까를 결정합니다. 이것에 의해, 이 드라이버상에서 최대 128 개의 포트가 이용 가능하게 됩니다.

bit 7 으로 tty/착호포트 (bit 7=0)와 cua/발호포트 (bit 7=1)를 구별합니다.

bit 7 으로부터 bit 15 ( FreeBSD 에 대해) (은)는 메이저 디바이스 번호의 그림자에 해당하기 (위해)때문에 이용할 수 없습니다.

bit 16 이 1 이면, 그 디바이스 노드는 "초기 상태" 디바이스이다 일을 나타냅니다. 이 "초기 상태" 는, 최초로 오픈되었을 때에 디바이스의 termios(4) 의 설정을 준비하기 위해서 사용됩니다. bit 17 이 1 이면,"락 상태" 디바이스인 것을 나타냅니다. "락 상태" 는, termios(4) 의 설정의 변경을 저지하기 위해서 사용됩니다.

초기 / 락의 설정을 조작하기 위해서는, stty(1) 명령을 사용하면(자) 좋을 것입니다. "락" 변수의 설정에 대해서는, 락 디바이스의 모드를 유효하게 하면(자), termios(4) 의 모드가 락 됩니다. 반대로, 락 디바이스의 모드를 무효로 하면(자), termios(4) 의 모드가 락 해제됩니다.

파일
/dev/si_control
    sicontrol(8) 하지만 사용하는, 드라이버를 제어하는 글로벌인 파일.
/dev/ttyA*
    터미널 / 착호포트
/dev/cuaA*
    발호포트
/dev/ttyiA*
    초기 상태 termios 디바이스
/dev/ttylA*
    락 상태 termios 디바이스
/dev/cuaiA*
    발호포트용의 초기 상태 termios 디바이스
/dev/cualA*
    발호포트용의 락 상태 termios 디바이스

관련 항목
stty(1), sio(4), termios(4), tty(4), comcontrol(8), sicontrol(8)

역사
이 드라이버는 Specialix 유래의 드라이버 코드를 조잡하게 베이스로 하고 있어, Andy Rutter <andy@specialix.co.uk> 하지만 BSDI 로 움직이기 위해서(때문에) 이식했습니다. System V 용의 드라이버 소스가 ftp 로 ftp.specialix.co.uk. (으)로부터 입수 가능합니다 (입수 가능했습니다).

Specialix International 는 이 드라이버를 서포트하고 있지 않습니다.

저자
Peter Wemm <peter@netplex.com.au> 하지만 Andy Rutter 로부터 코드를 얻어, FreeBSD 에 이식해 메뉴얼 페이지와 함께 제출했습니다. Bruce Evans <bde@zeta.org.au> (은)는 이식 작업동안, 많은 조력을 해 주었습니다. Nick Sayer <nick@specialix.com> (은)는 EISA, PCI 및 SX 의 포트를 썼습니다.

버그
세치기의 튜닝비는, 현재로서는 최대의 효율을 얻을 수 있도록(듯이) 최적화되어 있지 않다고 생각합니다.

폴링 모드 (Specialix 에 의한 표준 드라이버의 특징)는 실장되고 있지 않습니다만, machdep.si_realpoll 를 온으로 하는 것으로 닮은 동작으로 할 수가 있습니다. 폴링 주기는 machdep.si_pollrate 로 설정합니다 (1/100 초의 단위입니다).

이 드라이버는, SX 모듈로 115,200 보다 큰 baud rate를 아직 서포트하고 있지 않습니다.

전통적인 ISA 의 "구멍" 의 밖에서의 동작은 아직 서포트되고 있지 않습니다. 프로브 routine로부터 구멍의 테스트를 삭제하면 움직일 것입니다만.

복수의 호스트 카드는 서포트되고 있습니다만, 다른 버스 타입의 호스트 카드의 편성에 대해서는 테스트되고 있지 않습니다. - 디바이스의 번호 지어에 문제가 있는 것을 알고 있습니다. 예기치 않은 결과를 부를지도 모릅니다.