RL(4) FreeBSD Kernel Interfaces Manual RL(4) ИМЯ rl -- драйвер устройства RealTek 8129/8139 Fast Ethernet РЕЗЮМЕ device miibus device rl ОПИСАНИЕ Драйвер rl обеспечивает поддержку сетевых адаптеров PCI и интегрированных контроллеров, основанных на микросхемах контроллеров Ethernet Realtek 8129 и 8139, включая перечисленные ниже: + Accton ``Cheetah'' EN1207D (MPX 5030/5038; клон RealTek 8139) + Allied Telesyn AT2550 + Allied Telesyn AT2500TX + Belkin F5D5000 + Compaq HNE-300 + CompUSA no-name 10/100 PCI Ethernet NIC + Corega FEther CB-TXD + Corega FEtherII CB-TXD + D-Link DFE-530TX+ + D-Link DFE-538TX (то же, что и 530+?) + D-Link DFE-690TXD + Edimax EP-4103DL CardBus + Encore ENL832-TX 10/100 M PCI + Farallon NetLINE 10/100 PCI + Genius GF100TXR, + GigaFast Ethernet EE100-AXP + KTX-9130TX 10/100 Fast Ethernet + LevelOne FPC-0106TX + Longshine LCS-8038TX-R + NDC Communications NE100TX-E + Netronix Inc. EA-1210 NetEther 10/100 + Nortel Networks 10/100BaseTX + OvisLink LEF-8129TX + OvisLink LEF-8139TX + Peppercon AG ROL-F + Planex FNW-3800-TX + SMC EZ Card 10/100 PCI 1211-TX + SOHO(PRAGMATIC) UE-1211C Контроллеры серии RealTek 8129/8139 используют технологию "Bus master DMA", но не задействуют механизм передачи данных на основе дескрипторов. Приемник использует один циклический буфер фиксированного размера, из которого пакеты должны копироваться в MBUFS. Для передачи имеется только четыре адресных регистра исходящих пакетов, и требуется, чтобы все исходящие пакеты сохранялись как смежные буферы. Кроме того, исходящие пакеты должны выравниваться по длине слова, в противном случае передача будет неудачной. В отличие от 8129, 8139 имеет встроенный контроллер PHY, который управляется через специальные регистры прямого доступа, в то время как 8129 использует внешний PHY шины MII. Чип 8139 поддерживает как скорость как 10, так и 100 Мб/с в дуплексном и полудуплексном режимах. Чип 8129 поддерживает те же скорости и режимы, обеспечивыемые соответствующим чипом PHY. Замечание: поддержка чипа 8139С+ реализована в драйвере re(4). Драйвер rl поддерживает следующие типы работы: autoselect Автоматический выбор среды передачи и параметров. Эта особенность поддерживается только в том случае, если чип PHY контроллера RealTek поддерживает "автопереговоры" NWAY. Пользователь может вручную отключить автоопределение, добавив опцию media при описании интерфейса в /etc/rc.conf. 10baseT/UTP Устанавливает режим 10 Мб. Также можно выбрать режим дуплекса или полудуплекса. 100baseTX Устанавливает режим 100 Мб (FastEthernet). Этот режим работы также допускает дуплексный и полудуплексный режимы. Драйвер rl поддерживает следующие режимы передачи: full-duplex Принудительно устанавливает режим дуплекса. half-duplex Принудительно устанавливает режим полудуплекса. Заметьте, что работа по 100baseTX доступна только если поддерживается адаптером. Для дополнительной информации по настройке устройства смотрите ifconfig(8). ДИАГНОСТИКА rl%d: couldn't map memory Фатальная ошибка инициализации. rl%d: couldn't map interrupt Фатальная ошибка инициализации. rl%d: watchdog timeout Устройство прекратило отвечать по сети или возникли проблемы с сетевым подключением (кабелем). rl%d: no memory for rx list Ошибка драйвера при попытке выделения блока памяти (mbuf) для циклического буфера приемника. rl%d: no memory for tx list Ошибка драйвера при попытке выделения блока памяти (mbuf) для циклического буфера передатчика, когда выделен [буфер клавиатуры (pad buffer)] или разрушена цепочка буферов в кластере. rl%d: chip is in D3 power state -- setting to D0 Это сообщение может возникнуть только для адаптеров, поддерживающих управление питанием. Некоторые операционные системы переводят контроллер в режим пониженного энергопотребления при выключении, и некоторые PCI BIOS-Ы вызывают ошибку при выводе чипа из этого состояния до того, как он будет сконфигурирован. Контроллер теряет все свои настройки для шины PCI в состоянии D3, так что если BIOS не восстанавливает их при подаче нормального напряжения питания, он не будет доступен для правильной настройки. Драйвер пытается определить это условие и перевести адаптер в состояние D0 (нормальное напряжение питания), но этого может быть недостаточно, чтобы вернуть драйвер к полностью работоспособному состоянию. Если вы видите это сообщение во время загрузки и драйвер вызывает состояние ошибки в момент подключения устройства в качестве сетевого интерфейса, выполните вторую "горячую" перезагрузку, чтобы устройство правильно сконфирурировалось. Заметьте, что эта ситуация возникает, если происходит "горячая" загрузка из другой операционной системы. Если вы полностью отключаете питание прежде чем загрузить FreeBSD, сетевая карта должна сконфигурироваться правильно. ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ arp(4), miibus(4), netintro(4), ng_ether(4), ifconfig(8) Спецификации RealTek 8129, 8139 and 8139C+, http://www.realtek.com.tw. ИСТОРИЯ Драйвер устройства rl впервые появился во FreeBSD 3.0. АВТОРЫ Драйвер rl был написан Биллом Полом (Bill Paul). ОШИБКИ И НЕДОРАБОТКИ Поскольку исходящие пакеты должны быть выровнены по длине слова, процедура передачи должна скопировать невыровненный пакет из кластерного буфера перед отправкой. Драйвер неверно воспринимает факт, что пул кластерных буферов размещается во время загрузки системы в непрерывной области, начиная с границы страницы. Поскольку кластерные буферы занимают 2048 байт, они выровнены по определению. Драйвер, по идее, не должен зависеть от этих особенностей. Спецификации RealTek имеют особенно низкое качество, и большое количество информации пропущено, особенно касающейся операции получения данных. Особенно обидно, что в спецификации пропущено упоминание о способах, которыми чип заполняет буфер приема. Когда возникает прерывание, сигнализирующее о получении кадра, вполне возможно, что другой кадр может находиться в процессе копирования в буфер приема, пока драйвер занят обработкой первого. Если драйвер завершит обработку первого кадра раньше, чем чип завершит [DMAing] оставшейся части следующего кадра, драйвер может попытаться обработать следующий кадр в буфере до того, как чип сможет полностью завершить [DMAing]. Драйвер может проверить кадр на незавершенность, сверяя длину кадра, объявленную в заголовке, с реальными данными: неполный кадр будет иметь [magic] длину 0xFFF0. Когда драйвер обнаруживает это значение, он знает, что завершена обработка всех доступных в данное время пакетов. Ни эта [magic] последовательность, ни ее значение нигде не документированы в спецификациях RealTek. FreeBSD 5.2 4 Ноября 1998 г. FreeBSD 5.2 ------------------------------------------------------------------------------- Перевод: Amsand, 25 октября 2004 г.
© Amsand, 2004 (вер. от 25.10.2004) mailto: amsand@yandex.ru |