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-controlador-mca/doc-manual-linux-controlador-mca.xml
alan@redhat.com
Copyright © 2000 por Alan Cox, David Weinehall, Chris Beauregard
Las funciones del bus MCA suministran una interfaz generalizada para encontrar tarjetas del bus MCA, pedirles un controlador, y para leer y manipular los registros POS sin ser conscientes de los entresijos de la placa madre o de cierta magia profunda específica de los dispositivos de la placa.
La interfaz básica de los dispositivos del bus MCA es el slot. Cada slot está numerado y los números de slots virtuales son asignados a los dispositivos internos. Realmente el usar pci_dev como con otros buses no tiene sentido en los contextos MCA, ya que los recursos del bus MCA requieren una interpretación específica de la tarjeta.
Finalmente, las funciones del bus MCA suministran un conjunto paralelo de funciones DMA parecidas a las funciones DMA del bus ISA, tan cerradamente como es posible, aunque también soportan las funcionalidades adicionales DMA en las controladoras del bus MCA.
Busca en la configuración del MCA adaptadores que se correspondan con la identificación de 16 bits. La primera vez debería de ser llamado para que empiece en cero, y entonces las llamadas posteriores que se harán pasando el valor de retorno de la llamada previa hasta que sea retornado MCA_NOTFOUND.
Los adaptadores deshabilitados no son reportados.
Busca en la configuración del MCA adaptadores que se correspondan con la identificación de 16 bits. La primera vez debería de ser llamado para que empiece en cero, y entonces las llamadas posteriores que se harán pasando el valor de retorno de la llamada previa hasta que sea retornado MCA_NOTFOUND.
Los adaptadores que han sido reclamados por controladores o que están deshabilitados no son reportados. Esta función permite a un controlador buscar tarjetas adicionales cuando quizás alguien ya las controle.
Obtiene un valor POS que fue almacenado en tiempo de arranque por el núcleo cuando este buscó en el espacio del MCA. Es retornado el valor del registro. Registros perdidos o inválidos devuelven un 0.
Obtiene un valor POS directamente del hardware para obtener el valor actual. Esto es mucho más lento que mca_read_stored_pos y quizás no sea llamado desde el contexto de interrupciones. Maneja la magia profunda requerida para los dispositivos en la placa de forma transparente.
número de slot desde donde leer
registro de donde leer
byte a escrigir en los registros POS
Almacena un valor POS directamente al hardware. Normalmente no necesitarías usar esta función y deberías de tener un muy buen conocimiento del bus MCA antes de hacerlo. Realizando esto de forma incorrecta puedes dañar el hardware.
Esta función quizás no sea usada desde un contexto de interrupciones.
Nota que esto es técnicamente Algo Malo, como dice el equipo técnico de IBM, sólo deberías de establecer valores POS a través de sus utilidades. En todo caso, algunos dispositivos como el 3c523 recomiendan que les escribas algunos datos para asegurarte de que la configuración es consistente. Yo diría que IBM está en lo cierto, pero me gusta que mis controladores funcionen.
Esta función no puede chequear para ver si múltiples dispositivos están con los mismos recursos, por lo tanto quizás veas humo mágico si alguien se lía.
Esta función establece el nombre reportado a través de /proc para este slot adaptador. Esto es únicamente para información de usuario. Estableciendo un nombre borra cualquier nombre previo.
slot a configurar
función de retrollamada a llamar para /proc
información del dispositivo pasada a la retrollamada
Establece una retrollamada de información para /proc/mca/slot?. La función es llamada con el buffer, slot y puntero al dispositivo (o alguna otra información igualmente informativa del contexto, o nada, si lo prefieres), y se espera que ponga información útil en el buffer. El nombre del adaptador, ID, y registros POS fueron imprimidos antes de esta llamada, por lo tanto no lo hagas otra vez.
Debería de ser llamada con un procfn NULL cuando un módulo se desregistra, entonces preveniendo que el núcleo rompa y otras semejantes cosas feas.
deberíamos hacer esto seguro para los threads
Pide un slot MCA para un controlador de dispositivo. Si el slot ya está tomado la función retorna 1, si no está tomado es pedido y es devuelto un 0.
Retorna la descripción del adaptador si está establecida. Si no ha sido establecida o el slot está fuera de rango entonces devuelve NULL.
Carga los registros de direcciones en el controlador DMA. Esto tiene una limitación de 24 bits (16Mb).
Lee los registros de direcciones en el controlador DMA. Esto tenía una limitación de 24 bits (16Mb). El retorno es una dirección del bus.
Establece la cuenta DMA para este canal. Esto puede ser hasta 64Kbytes. Estableciendo una cuenta a cero no hará lo que esperas.
A diferencia de los controladores DMA del bus ISA un bus MCA puede transferir con un puerto de E/S de destino.
Este documento es la traducción de "MCA Driver Programming Interface", 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 <melkon@terra.es>; 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 <melkon@terra.es>