VR(4)

명칭
vr - VIA Technologies VT3043 와 VT86C100A 이더넷(ethernet) 디바이스 드라이버

서식
device vr0

해설
vr 드라이버는, VIA Technologies 사의 VT3043 Rhine I 와 VT86C100A Rhine II 의 퍼스트 이더넷(ethernet) 칩을 탑재했다 PCI 이더넷(ethernet) 카드의 서포트를 제공합니다. 이 서포트 범위에는, D-Link DFE530-TX 나 그 외 여러가지 염가의 퍼스트 이더넷(ethernet) 카드가 포함됩니다.

VIA Rhine 칩은 bus master DMA를 사용해, DEC 21x4x "tulip" 칩에 닮은 디자인의 소프트웨어 인터페이스를 가지고 있습니다. 큰 차이는, Rhine 칩의 수신 필터가 훨씬 단순하다고 하는 것입니다. tulip 의 같게, 송신 DMA 엔진 경유로 특수한 설정 프레임을 다운로드하거나 하지 않고 , Rhine 는 레지스터 경유로 프로그래밍 합니다. 또, 송신 DMA 버퍼, 수신 DMA 버퍼와도, longword 로 경계 조정할 필요가 있는 일도 다릅니다. Rhine 칩은, 외부에 있는 물리층 디바이스와는 MII 버스를 통해 접속되도록(듯이) 설계되고 있습니다. 또, 10Mbps 로 100Mbps 의 양쪽 모두의 스피드가, 전이중, 반이중의 어느 쪽의 모드에서도 서포트되고 있습니다.

vr 드라이버는 다음과 같은 미디어 타입을 서포트합니다.

autoselect
    미디어 타입이나 옵션의 자동 선택을 사용 가능하게 합니다. 유저는, /etc/rc.conf 파일에 미디어 옵션을 추가 기입일로, 자동 선택된 모드를 수동으로 강제적으로 변경할 수 있습니다.

10baseT/UTP
    10Mbps 로 설정합니다. mediaopt (은)는, full-duplex 또는 half-duplex 모드를 선택하기 위해서 사용 가능합니다.

100baseTX
    100Mbps (퍼스트 이더넷(ethernet))로 설정합니다. mediaopt 하 full-duplex 또는 half-duplex 모드를 선택하기 위해서 사용 가능합니다.

vr 드라이버는, 다음의 미디어 옵션을 서포트하고 있습니다.

full-duplex
    full duplex 로 설정합니다.

half-duplex
    half duplex 로 설정합니다.

어댑터가 서포트하고 있을 때 마셔, 100baseTX 미디어 타입은 사용 가능합니다. 이 디바이스를 설정하기 위해서 좀 더 많은 정보가 필요한 경우는 ifconfig(8) (을)를 참조해 주세요.

진단

vr%d: couldn't map memory 치명적인 초기화 에러가 일어났습니다.

vr%d: couldn't map interrupt 치명적인 초기화 에러가 일어났습니다.

vr%d: watchdog timeout 디바이스가 네트워크에 응답하지 않게 되었는지, 네트워크의 접속 (케이블)에 문제가 있습니다.

vr%d: no memory for rx list 드라이버가 리시버 링용의 mbuf 의 확보에 실패했습니다.

vr%d: no memory for tx list 패드 버퍼를 확보, 또는 mbuf 최인을 클러스터에 정리할 때, 트랜스미터 링용의 mbuf 의 확보에 실패했습니다.

vr%d: chip is in D3 power state -- setting to D0 전원 관리를 서포트하는 어댑터에게만, 이 메세지가 나옵니다. operating system안에는 셧다운시에 콘트롤러를 로 파워 모드로 하는 것이 있어, 칩에 무엇인가 새롭게 설정하기 전에 이 상태로부터 탈출해야 합니다만, PCI BIOS 안에는 이 탈출에 실패해 버리는 것도 있습니다. 콘트롤러는 이 D3 상태가 되면(자) 설정 상태가 휘발 해 버리므로, 만약 BIOS 가 규정의 시간내에도와의 상태에 되돌릴 수 없었으면, 그 후의 설정은 정상적으로 실행할 수 없습니다. 드라이버는 이 상태의 검출해, 어댑터를 D0 (풀 파워) 상태에 되돌리려고 합니다만, 이것으로는, 드라이버가 완전하게 동작하는 상태에 되돌리기 위해서(때문에)는 불충분할지도 모릅니다. 부트시에 이 메세지가 표시되어 드라이버가 이 디바이스를 네트워크 인터페이스로서 접속할 수 없는 경우는, 게다가 1 회 warm boot 시켜, 디바이스를 적절히 설정시킬 필요가 있습니다.

다른 operating system로부터 warm boot 할 때에만, 이 상태는 일어납니다. FreeBSD 의 부트에 앞서 시스템을 셧다운 하는 경우, 카드를 정상적으로 설정해 둘 필요가 있습니다.

관련 항목
arp(4), netintro(4), ifconfig(8) VIA Technologies VT86C100A 데이터 쉬트, http://www.via.com.tw.

역사
vr 디바이스 드라이버는 FreeBSD 3.0 에 처음으로 등장했습니다.

저자
vr 드라이버는 Bill Paul <wpaul@ctr.columbia.edu> 하지만 썼습니다.

버그
vr 드라이버는, 송신전에는 항상, 송신 mbuf 체인을 longword 경계에 정렬했다 버퍼에 카피하는 것으로써, Rhine 칩의 크래쉬를 피합니다. 버퍼 경계가 올바르지 않은 경우, 칩은 주어진 버퍼 주소를 말아 버려, 잘못한 경계 주소로부터 DMA를 개시해 버립니다. 버퍼의 카피는 시스템 성능을 저하시킵니다만, 불가피입니다. (Pentium II 와 같이) 빠른 머신에서는, 성능에의 영향은 훨씬 적을 것입니다.