Using catalogs: /etc/sgml/catalog Using stylesheet: /usr/share/sgml/docbook/utils-0.6.9/docbook-utils.dsl#html Working on: /home/jdavila/lucas/doc-manual-linux-tulip/doc-manual-linux-tulip.xml Guía de Usuario del Controlador Tulip

Guía de Usuario del Controlador Tulip

Jeff Garzik


Tabla de contenidos
1. Introducción
2. Compatibilidad de Controlador
3. Parámetros específicos de la placa
4. Operación del Controlador
4.1. buffers de Anillo
4.2. Sincronización
5. Errores
6. Historia de Cambios del Controlador
6.1. Versión 0.9.14 (20 de Febrero, 2001)
6.2. Versión 0.9.11 (3 de Noviembre, 2000)
6.3. Versión 0.9.10 (6 de Septiembre, 2000)
6.4. Versión 0.9.9 (11 de Agosto, 2000)
6.5. Versión 0.9.8 (13 de Julio, 2000)
6.6. Versión 0.9.7 (17 de Junio, 2000)
6.7. Versión 0.9.6 (31 de Mayo, 2000)
6.8. Versión 0.9.5 (31 de Mayo, 2000)
6.9. Versión 0.9.4.3 (14 de Abril, 2000)
6.10. Versión 0.9.4.2 (31 de Marzo, 2000)
6.11. Versión 0.9.4.1 (18 de Marzo, 2000)
7. Sobre la traducción

Capítulo 1. Introducción

EL controlador de la tarjeta Ethernet Tulip es mantenido por Jeff Garzik ().

El controlador Tulip fue desarrollado por Donald Becker y cambiado por Jeff Garzik, Takashi Manabe y unos miles más.

Para 2.4.x y núcleos posteriores, el controlador Linux Tulip driver está disponible en http://sourceforge.net/projects/tulip/

Este controlador es para la interfaz del adaptador Ethernet Digital "Tulip" Debería de trabajar con la mayoría de las tarjetas de red/chips basados en DEC 21*4*, al igual que con los chips similares de Lite-On (PNIC) y Macronix (MXIC) y ASIX.

El autor original puede ser encontrado como becker@scyld.com, o C/O Scyld Computing Corporation, 410 Severn Ave., Suite 210, Annapolis MD 21403

Información adicional del tulip.c de Donald Becker está disponible en http://www.scyld.com/network/tulip.html


Capítulo 2. Compatibilidad de Controlador

Este controlador de dispositivo está diseñado para el chip de DEC "Tulip", los controladores ethernet de un sólo chip de Digital para PCI (no propietario de Intel). Los miembros soportados de la familia son 21040, 21041, 21140, 21140A, 21142, y 21143. Los chips similares de Lite-On, Macronics, ASIX, Compex y otros listados más abajo también son soportados.

Estos chips son usados en al menos 140 diseños únicos de placas PCI. El gran número de chips y diseños de placas soportadas es el motivo para el tamaño y complejidad del controlador. La mayoría del aumento de la complejidad está en la configuración de la placa y el código de selección de medio. Hay muy poco incremento en la longitud del camino crítico operacional.


Capítulo 3. Parámetros específicos de la placa

Los dispositivos del bus PCI son configurados por el sistema en tiempo de arranque, por lo tanto ningún jumper tiene que ser establecido en la placa. Preferiblemente la BIOS del sistema debería de asignar la señal PCI INTA o en otro caso una linea IRQ del sistema sin usar.

Algunas placas tienen tablas de EEPROMS con una entrada de medio por defecto. La opción por defecto de la fábrica es "autoselect". Esto debería de ser sólo sobreescrito cuando se usan conexiones transmisoras sin latido de enlace, ej. 10base2 o AUI, o (¡ráramente!) para forzar full-duplex cuando es usado con compañeros de enlace viejos que no realizan autonegociación.


Capítulo 4. Operación del Controlador

4.1. buffers de Anillo

El Tulip puede usar buffers de anillo o lista de descriptores Tx y Rx. Este controlador usa anillos estáticamente asignados de descriptores Rx y Tx, establecidos en tiempo de compilación por RX/TX_RING_SIZE. Esta versión del controlador asigna skbuffs para los buffers de anillo Rx en tiempo de open() y pasa el campo skb-data al Tulip cuando recibe los buffers de datos. Cuando un frame que llega es menor que RX_COPYBREAK bytes de grande, un nuevo skbuff es asignado y el frame es copiado en el nuevo skbuff. Cuando el frame que llega es más grande, el skbuff es pasado directamente a la pila de protocolos y reemplazado por un skbuff nuevamente asignado.

El valor RX_COPYBREAK es escogido para equilibrar la memoria gastada usando un skbuff lleno para los frames pequeños vs. los costes de copiado para los frames grandes. Para los frames pequeños los costes de copiado son insignificantes (considerando que estamos precargando la caché con inmediatamente con información útil de la cabecera). Para frames grandes los costes de copiado no son triviales, y la copia más grande quizás borre datos útiles de la caché. Un aspecto sutil de esta elección es que el Tulip sólo recibe en buffers de palabras grandes (64 bits) alineadas, esto es, la cabecera IP con un desplazamiento de 14 no es una palabra grande alineada para un procesamiento más amplio. Los frames copiados son puestos en el nuevo skbuff con un desplazamiento de "+2", entonces copiando tiene el efecto beneficioso de alinear la cabecera IP y precargar la caché.


Capítulo 5. Errores

Los viejos libros de datos DEC eran ligeros en los detalles. El libro de datos 21040 pedía que CSR13, CSR14 y CSR15 deberían de ser el último registro del conjunto CSR12-15 escrito. Ummm, ¿cómo es esto posible?

El formato DEC SROM está muy mal diseñado y no precisamente definido, llevando a la parte de selección del medio la cabecera desperdiciada posterior. Algunas placas no tienen las tablas de medios EEPROM y necesitan ser arregladas. Peor, otras placas usan el kit de diseño DEC de tablas de medios cuando no es correcto para sus placas.

No podemos usar las interrupciones MII porque no está definido el pin GPIO para atacarlas. El status del transmisor MII es preguntado usando un cronómetro del núcleo.


Capítulo 6. Historia de Cambios del Controlador


Capítulo 7. Sobre la traducción

Este documento es la traducción de "Tulip Driver User's Guide", documento que acompaña al código del núcleo de Linux, versión 2.4.18.

Este documento ha sido traducido por Rubén Melcón ; y es publicado por el Proyecto Lucas

Versión de la tradución 0.04 ( Julio de 2002 ).

Si tienes comentarios sobre la traducción, ponte en contacto con Rubén Melcón

Done.