WB(4)

명칭
wb - Winbond W89C840F 퍼스트 이더넷(ethernet) 디바이스 드라이버

서식
device wb0

해설
wb 드라이버는, Winbond W89C840F 퍼스트 이더넷(ethernet) 콘트롤러를 이용한, PCI 이더넷(ethernet) 어댑터, 및 짜넣어 형태 콘트롤러를 서포트하고 있습니다. 이 드라이버에는, Trendware TE100-PCIE 등, 다른 여러가지 염가의 보드를 포함하고 있습니다. 840F 로 940F 를 혼동 하지 말아 주세요. 940F 는 NE2000 클론이기 때문에, 10Mbps 마셔 서포트하고 있습니다.

Winbond 콘트롤러는, bus master DMA 를 사용하고 있습니다. 또, DEC의 'tulip'와 동성노우가 되도록(듯이) 디자인되고 있습니다. DEC 의 표준인 설계란, 몇개의 점에 대해 차이가 납니다: 컨트롤 레지스터와 스테이터스 레지스터는 8 바이트는 아니고 4 바이트 간격이 되어 있습니다. 또, 수신 필터의 설정은, DMA 전송 엔진을 경유한, 특별한 셋업 프레임을 다운로드하는 방식이 아니고, 레지스터를 통해 실시합니다. 외부의 PHY 를 사용하는 것에 의해, Winbond 칩은, 전이중 또는 반이중에 밤, 10Mbps 및 100Mbps 의 전송 속도를 서포트하고 있습니다.

wb 드라이버는 다음에 드는 미디어 타입을 서포트하고 있습니다:

autoselect
    미디어 타입 및 옵션의 자동 설정을 유효하게 합니다. 이 옵션은, Winbond 콘트롤러에 장착된 PHY 칩이 NWAY 오토 네고시에이션을 서포트하는 경우만 이용 가능합니다. /etc/rc.conf 에 미디어 옵션을 추가하는 것에 의해, 자동적으로 설정된 모드를 유저가 수동으로 변경 가능해집니다.

10baseT/UTP
    전송 방식을 10Mbps 로 설정합니다. mediaopt 옵션을 지정하는 것에 의해, 전이중 모드, 또는 반이중 모드의 어느 쪽인지 하나를 이용할 수 있습니다.

100baseTX
    전송 방식을 100Mbps (퍼스트 이더넷(ethernet))로 설정합니다. mediaopt 옵션을 지정하는 것에 의해, 전이중 모드, 또는 반이중 모드의 어느 쪽인지 하나를 이용할 수 있습니다.

wb 드라이버는 다음에 드는 미디어 옵션을 서포트하고 있습니다:

full-duplex
    강제적으로 전이중으로 설정합니다.

half-duplex
    강제적으로 반이중으로 설정합니다.

100baseTX 미디어 타입은, 어댑터가 서포트하고 있을 때 한정해 사용 가능 인 것에 주의해 주세요. 이 디바이스의 설정에 관한, 한층 더 자세한 정보에 대해서는 ifconfig(8) (을)를 참조해 주세요.

진단

wb%d: couldn't map memory 치명적인 초기화 에러가 발생했습니다.

wb%d: couldn't map interrupt 치명적인 초기화 에러가 발생했습니다.

wb%d: watchdog timeout 디바이스가 네트워크에 응답하는 것을 정지했는지, 혹은, 네트워크 접속 (케이블)에 관한 문제가 발생했습니다.

wb%d: no memory for rx list 드라이버는, mbuf 를 수신 링에 할당할 수 없었습니다.

wb%d: no memory for tx list 패드 버퍼를 할당할 때, 혹은 mbuf 체인을 클러스터에 분할할 때에, 드라이버는 mbuf 를 송신 링에 할당할 수 없었습니다.

wb%d: chip is in D3 power state -- setting to D0 이 메세지는, 파워 매니지먼트를 서포트하는 어댑터인 만큼 들어맞읍니다. operating system에 따라서는, 셧다운시에 콘트롤러를 저소비 전력 모드로 설정합니다. 그러나, PCI BIOS 에 따라서는, 칩의 설정을 개시하기까지, 칩을 저소비 전력 모드로부터 회복시킬 수가 없는 것이 있습니다. 콘트롤러는 D3 상태가 되면(자), PCI 에 관한 설정을 모두 잃어 버립니다. 따라서, BIOS 가 시간내에 콘트롤러를 풀 파워 모드에 되돌릴 수가 없는 경우, PCI 에 관한 설정을 정상적으로 실시할 수가 없습니다. 드라이버는 이러한 상태를 검지했을 때, 어댑터를 D0 (풀 파워) 상태에 되돌리는 것을 시도합니다. 그러나, 드라이버를 완전하게 조작 가능한 상태까지, 복귀시키지 못하는 것이 있습니다. 만약 부트시에 이러한 메세지가 표시되어 드라이버가 네트워크 인터페이스로서 디바이스에 아탓치 할 수 없었던 경우에는, 디바이스를 올바르게 설정하기 위해서 다시 한번 warm boot를 실시할 필요가 있습니다.

이러한 상황은, 다른 operating system로부터 warm boot를 실시했을 경우에게만 발생합니다. FreeBSD (을)를 부트 하기 전에 머신의 전원을 떨어뜨려 두면, 카드는 올바르게 인식될 것입니다.

관련 항목
arp(4), netintro(4), ifconfig(8)

역사
wb 디바이스 드라이버는 FreeBSD 3.0 그리고 등장했습니다.

저자
wb 드라이버는 Bill Paul <wpaul@ctr.columbia.edu> 하지만 작성했습니다.

버그
접속처가 모드를 새로 바꿀 때, Winbond 칩은 기묘한 행동을 일으키고 있는 것처럼 생각됩니다. 예로서 양쪽 모두를 10Mbps 반이중 상태에 세트 했다고 합니다. 그리고 다른 한쪽을 100Mbps 전이중으로 설정하면(자), Winbond 칩의 리시버는 RX 기술자가 도달하는 곳(중)에 쓰레기를 쓰기 시작합니다. wb 드라이버는, 콘트롤러 칩과 부속의 PHY 를 강제적으로 리셋트 하는 것에 의해 이 문제에 대처합니다. 황치료입니다만, 이러한 상태로부터 올바르게 회복하기 위한 유일한 방법으로 생각됩니다.