STL(4)

명칭
stl, stli - Stallion Technologies 사제의 멀티 포트 시리얼 콘트롤러용의 드라이버

서식
stl0 at isa? port <addr> tty irq <irq> stli0 at isa? port <io-addr> tty iomem <mem-addr> iosiz <size> flags <type> stli0 at eisa? port <io-addr> tty iomem <mem-addr> iosiz <size> flags <type>

해설
이것은, Stallion Technologies 사제의 멀티 포트 시리얼 콘트롤러용의 커널 드라이버입니다. 드라이버는 2 종류 있어, 각각 다른 종류의 보드에 대응하고 있습니다. stl 드라이버는 EasyIO 보드와 EasyConnection 8/32 보드에 대응하고 있어, stli 드라이버는 다른 모든 종류의 보드에 대응하고 있습니다. 이것에는 ONboard, Brumby, EasyConnection 8/64 가 포함됩니다.

설정
시스템에 인스톨 되고 있는 각각의 보드에 대해, 커널의 설정 파일에 엔트리가 필요합니다. 보드의 종류가 다르면(자), 각각 대해 필요한 옵션이나 파라미터도 조금씩 다릅니다. 보드의 종류에 의해, stl 드라이버인가 stli 드라이버중 한쪽이 사용됩니다. stl 드라이버와 stli 드라이버는 8 매까지의 보드에 대응할 수 있습니다.

하드웨어의 설정 (딥 스위치, 점퍼등 )은 보드 마다 다릅니다. 하드웨어의 세세한 설정에 대해서는, 보드에 부속되어 있는 문서를 봐 주세요. 혹은, Stallion Technologies 사의 WWW 사이트 (http://www.stallion.com) (으)로부터도 보드에 관한 문서를 입수할 수 있습니다.

EasyIO 계와 EasyConnection 8/32 계의 보드에서는 stl 드라이버를 사용합니다. stl 드라이버용의 ISA 보드 설정 엔트리는, 일반적으로 이하의 형식입니다:

stlX at isa? port <io-addr> tty irq <irq>

X (은)는 보드에 할당할 수 있고 있는 유니트 번호입니다. 0 에서 7 까지의 임의의 독특한 번호가 유효합니다.

보드가 사용하는 I/O 주소는 <io-addr> 그리고 지정합니다. EasyIO 보드와 EasyConnection 8/32-AT 보드는 각각 0 에서 0x400 의 범위의 I/O 주소를 사용할 수 있습니다.

모든 EasyIO 보드와 EasyConnection 8/32 보드는 세치기를 필요로 해, 이 세치기는 <irq> 그리고 지정합니다. ISA 보드로 유효한 IRQ 치는 3, 4, 5, 7, 10, 11, 12, 15 입니다. EasyIO-8M 를 제외하는 모든 보드에서는, 세치기는 소프트웨어적으로 프로그램 되고 있습니다.

EasyConnection 8/32-AT 보드는 세칸다리의 I/O 주소 area도 사용합니다. 이 주소치는, 드라이버의 코드내에서 0x280 로 결정하고 쳐 되고 있습니다. 모든 EasyConnection 8/32-AT 보드는 같은 세칸다리 I/O 주소 area (을)를 공유할 수 있습니다.

EasyConnection 8/32 PCI 보드는, 기동시에 시스템이 자동적으로 검출합니다. 이러한 보드에 대해서는, 설정 정보를 미리 주어 둘 필요는 없습니다. 기동중에는, stl 드라이버는 EasyConnection 8/32 PCI 보드를 검출한 것과 이 카드 에 관한 몇개의 정보를 나타내는 메세지를 출력합니다.

이하에서는, stl 드라이버가 서포트하고 있는 ISA 보드의 각각 대하는 설정 엔트리의 예를 몇개인가 가리킵니다. 각각의 설정예에 대해서는, 각종류의 보드에 관한 중요한 상세 정보도 몇개인가 말합니다.

각각의 EasyIO 보드는 8 바이트의 I/O address 공간과 1 개의 IRQ 선 (을)를 필요로 합니다. EasyIO 보드용의 설정 엔트리는 이하와 같이 되겠지요:

stl0 at isa? port 0x2a8 tty irq 15

이 엔트리는, I/O 주소가 0x2a8 에 있어, IRQ 15 를 사용하고 있다 EasyIO 보드를 지정합니다. I/O 주소와 IRQ 치는 필요에 따라서 변경할 수 있습니다.

각각의 EasyConnection 8/32-AT 보드는 2 조의 I/O 주소와 1 개의 IRQ 선을 필요로 합니다. 프라이머리의 I/O 주소 area는, 크기가 2 바이트로, 한편 시스템상에 있는 각각의 EasyConnection 8/32-AT 보드에 대해 독특하지 않으면 되지 않습니다. 세칸다리의 I/O 주소 area는, 크기는 32 바이트입니다만, 복수의 EasyConnection 8/32-AT 보드로 공유할 수 있습니다. 이 세칸다리의 I/O 주소는, 드라이버의 코드중에서 0x280 에 설정되어 있습니다. 설정 엔트리는 이하와 같이 됩니다:

stl0 at isa? port 0x2a0 irq 10 tty

이 설정은, 프라이머리의 I/O 주소가 0x2a0, 세칸다리의 I/O 주소 하지만 0x280, IRQ 가 10 인 EasyConnection 8/32-AT 를 지정합니다.

ONboard, Brumby, EasyConnection 8/64 계의 보드에서는 stli 드라이버를 사용합니다. stli 드라이버는 이러한 계열의 카드의 ISA 판과 EISA 판에 대응하고 있습니다.

stli 드라이버용의 ISA 보드 설정 엔트리는, 일반적으로 이하의 형식이 됩니다:

stliX at isa? port <io-addr> tty iomem <mem-addr> iosiz <size> flags <type>

X (은)는 보드에 할당할 수 있었던 유니트 번호입니다. 0 에서 7 까지의 임의의 독특한 번호가 유효합니다.

보드가 사용하는 I/O 주소는 <io-addr> 그리고 지정합니다. 서포트되고 있는 보드여도, 유효한 I/O 주소의 제한은 보드의 종류 마다 각각 달라, 필요하게 되는 I/O 공간의 크기도 다릅니다.

stli (을)를 이용하는 모든 보드는, 조작할 수 있는 공유 메모리 area를 필요로 합니다. 보드의 종류에 의해, 필요한 area의 크기는 4k 바이트에서 64k 바이트 그리고 바뀝니다. 보드의 area의 크기는 설정 엔트리의 <size> 필드에서 지정해, 이 area의 주소는 <mem-addr> 필드에서 지정합니다.

flags 필드는, 이 엔트리가 적용되는 특정의 보드를 지정합니다. 드라이버는 반드시 모든 종류의 보드를 실행시에 식별하는 것은 아니기 때문에, 드라이버는 이 필드를 필요로 합니다. 유효한 보드의 종류를 이하에 나타냅니다:

    보드명 종류	I/O 사이즈
    Brumby				  2	0x4000
    ONboard				  4	0x10000
    ONboard/E			  7	0x10000
    EasyConnection 8/64-AT		 23	0x1000
    EasyConnection 8/64-EISA	 24	0x10000

stli 드라이버가 서포트하고 있는 각각의 보드에 대해, 설정예를 이하에 간다 개인가 가리킵니다. 각각의 설정예에서는, 각종류의 보드에 관한 중요 상세 정보도 몇개인가 말합니다.

EasyConnection 8/64-AT 보드는, 4 바이트의 I/O address 공간과 4k 바이트의 메모리 공간을 필요로 합니다. 설정 엔트리는 이하와 같이 됩니다:

stli0 at isa? port 0x2a0 tty iomem 0xcc000 iosiz 0x1000 flags 23

이 엔트리의 flags 필드에서는, 이것이 EasyConnection 8/64-AT 보드 인 것을 지정해 있습니다. I/O 주소는 0x2a0 로 설정되어 메모리아드레스는 0xcc000 로 설정됩니다. iosiz 파라미터는, 메모리 area의 사이즈로서 4k 바이트를 지정해 있습니다.

EasyConnection 8/64-EISA 보드는, 메모리 공간에 64k 바이트의 area를 필요로 합니다. 이 area는 32 빗트메모리아드레스 공간의 어디에 두어도 상관하지 않습니다. 설정 엔트리는 이하와 같이 됩니다:

stli0 at eisa? port 0x2000 tty iomem 0x80000000 iosiz 0x10000 flags 24

flags 필드는, 이것이 EasyConnection 8/64-EISA 보드인 것을 가리키기 위해서(때문에) 이용합니다. I/O (포트) 주소 자원은, 보드가 삽 떠나고 있는 EISA 슬롯으로부터 이득 각 EISA 슬롯에는, 시스템의 하드웨어로부터 I/O address 공간의 일부를 할당할 수 있습니다. 이 주소는 0xX0000 가 됩니다(X 는 슬롯 번호). 예로 채택하고 있는 보드는 메모리아드레스 0x80000000 에 있습니다. 이것은 2G 바이트를 나타냅니다. iosiz 파라미터는 메모리 area의 크기를 지정합니다. 이 예에서는 64k 바이트입니다.

각각의 ONboard ISA 보드는 16 바이트의 I/O 공간과 메모리아드레스 공간상의 64k 바이트의 area를 필요로 합니다. ONboard 의 유효한 I/O 주소는 0x200 에서 0x300 의 범위내입니다. ONboard ISA 의 설정 엔트리는 이하와 같이 됩니다:

stli0 at isa? port 0x240 tty iomem 0xd0000 iosiz 0x10000 flags 4

이 엔트리에서는, flags 를 4 로 설정하는 것에 의해 ONboard ISA 를 지정 하고 있습니다. 이 엔트리에서는 I/O 주소 0x240 와 메모리아드레스 0xd0000 의 64k 바이트의 area를 사용하고 있습니다.

각 ONboard/E 보드는 64k 바이트의 메모리 area를 필요로 해, 이것은 32 비트 address 공간 (0 에서 4G 바이트까지) 상의 어디에서라도 상관하지 않습니다. 설정 엔트리는 이하와 같이 됩니다:

stli0 at eisa? port 0x3000 tty iomem 0xc0000000 iosiz 0x10000 flags 7

이 예는, 0xc0000000 (3G 바이트)를 공유 메모리아드레스에 사용해, 슬롯 3 에 있는 ONboard/E 를 지정해 있습니다.

Brumby 보드는 1 매에 대해 16 바이트의 I/O address 공간과 공유 메모리 공간의 4k 바이트의 area를 필요로 합니다. Brumby 의 유효한 I/O 주소의 범위는 0x300 에서 0x400 까지입니다. Brumby 의 공유 메모리 area는, 메모리아드레스 공간의 0xc0000 로부터 0xdc000 의 area가 아니면 안됩니다. Brumby 의 설정 엔트리는 이하와 같이 되겠지요:

stli0 at isa? port 0x360 tty iomem 0xc8000 iosiz 0x4000 flags 2

이 엔트리는, I/O 주소 0x360 에 있어, 주소 0xc8000 에 있다 공유 메모리 area를 사용하고 있는 Brumby 보드를 지정해 있습니다.

주
포트에 대한 디바이스 노드를 작성하려면 , 올바른 디바이스명이다 stl 또는 stli (을)를 반드시 사용해 주세요. 각각의 드라이버에는 다른 메이저 번호를 할당할 수 있고 있습니다. 따라서, 비록 포트의 디바이스명이 각각의 드라이버에 대해 같아도, 디바이스 노드의 메이저 번호는 다릅니다. 디바이스를 작성하려면 MAKEDEV(8) 스크립트를 사용해 주세요. stl 드라이버에 대해서는 ttyE 와 cue 태그를 사용해, stli 드라이버에 대해서는 ttyEi 와 cuei 태그를 사용해 주세요.

인텔리전트인 타입의 보드(ONboard, Brumby, EasyConnection 8/64) (은)는, 펌 웨어를 다운로드하지 않으면 포트가 조작 가능하게 되지 않습니다. 이것은 stlload 명령을 사용해 실시할 수가 있습니다. 자세한 사용법에 대해서는 메뉴얼 페이지를 참조해 주세요.

관련 파일
/dev/ttyE?
    표준의 착호디바이스
/dev/ttyiE?
    초기 상태의 착호디바이스
/dev/ttylE?
    락 상태의 착호디바이스
/dev/cue?
    표준의 발호디바이스
/dev/cuie?
    초기 상태의 발호디바이스
/dev/cule?
    락 상태의 발호디바이스
/dev/staliomem?
    보드 제어 디바이스

포트 번호는 보드 0 의 포토 0 의 0 으로부터 시작되는 점에 주의해 주세요. 각각의 보드에는 64 개의 포트 슬롯을 할당할 수 있고 있습니다. 따라서, 2 번째의 보드의 포트 번호는 64 에서 127 까지입니다. 디바이스를 작성하려면 MAKEDEV(8) 스크립트를 사용해 주세요. stl 드라이버에 대해서는 ttyE 와 cue 태그를 사용해, stli 드라이버에 대해서는 ttyEi 와 cuei 태그를 사용해 주세요.

관련 항목
stty(1), termios(4), tty(4), comcontrol(8), MAKEDEV(8), stlload(8), stlstats(8)

역사
이 드라이버를 최초로 개발한 것은 Greg Ungerer <gerg@stallion.com> 입니다.