Interfaz de Programación del Controlador MCA



Documentos relacionados
Guía de Programación de PPP Síncrono y Cisco HDLC

Introduccion al Lenguaje C. Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia

Plugin Pagadito para WooCommerce pagadito-v Septiembre

Plugin Pagadito para Opencart pagadito-v Junio

Análisis de aplicación: Virtual Machine Manager

COMO CONFIGURAR UNA MAQUINA VIRTUAL EN VIRTUALBOX PARA ELASTIX

Entre los más conocidos editores con interfaz de desarrollo tenemos:

7. Manejo de Archivos en C.

Pagadito Payment Method para Magento plg_magento_1.0.0 Junio

DESCRIPCION DEL SITEMA MASTER.

COMISIÓN NACIONAL PARA EL USO EFICIENTE DE LA ENERGÍA

SDR (Sistema de Respaldo) v2.02

Tema 4. Gestión de entrada/salida

1. Guía de activación. Introducción Información general sobre el sistema de licencias del software Axxon Next Tipos de licencia...

PS.Vending Almacén Pocket PC

Guía de Instalación Proscai

ALGUNAS AYUDAS PARA EL ACCESO AL AULA DIGITAL Contenido

PROCEDIMIENTO PARA REGISTRO DE CONTRATISTAS Y PROVEEDORES

SISTEMA DE ESPECIICACION DE REQUERIMIENTOS

Examen de Fundamentos de sistemas distribuidos

SOFTWARE DE RECUENTO DE DINERO

10 En este caso indica la dirección GPIB del instrumento.

En cualquier caso, tampoco es demasiado importante el significado de la "B", si es que lo tiene, lo interesante realmente es el algoritmo.

INTERRUPCIONES. La comunicación asíncrona de los sistemas periféricos con la CPU, en ambos sentidos, se puede establecer de dos maneras fundamentales:

Instantáneas o Shadow Copy

Guía de uso del sistema CV-Online

MANUAL DE LA CONFIGURACIÓN Y USO DEL MÓDULO DE ASM PARA PRESTASHOP

Samsung Data Migration v2.7 Guía de instalación e introducción

Visor de presupuestos en Android

Plugin Pagadito para VirtueMart plg_joomla_1.0.0 Junio

CAPITULO IV CONCLUSIONES Y RECOMENDACIONES

Elementos requeridos para crearlos (ejemplo: el compilador)

MANUAL DE USUARIO. Introducción

GUIA COMPLEMENTARIA PARA EL USUARIO DE AUTOAUDIT. Versión N 02 Fecha: 2011-Febrero Apartado: Archivos Anexos ARCHIVOS ANEXOS

Instrucciones de instalación de TrueCode

BANCO NACIONAL DE PANAMÁ, BANCO DE DESARROLLO AGROPECUARIO Y BANCO HIPOTECARIO NACIONAL

Intel Cache Acceleration Software (Intel CAS) para Windows*

Conciliación bancaria en CheqPAQ Cargado de estado de cuenta

COLEGIO COMPUESTUDIO

Manual PARA EL ADMINISTRADOR DE LA WEB DE PRÁCTICAS PRE PROFESIONALES Y PASANTÍAS

Acronis Backup & Recovery 11 Guía de inicio rápido

COMISIÓN NACIONAL PARA EL AHORRO DE ENERGÍA

Administración Local Soluciones

Figura No. IV-111. Página No. 125

CONFIGURACIÓN DEL ADAPTADOR DE RED EN LINUX

Manual de uso de la plataforma para monitores. CENTRO DE APOYO TECNOLÓGICO A EMPRENDEDORES -bilib

DISCOS RAID. Se considera que todos los discos físicos tienen la misma capacidad, y de no ser así, en el que sea mayor se desperdicia la diferencia.

UNIDADES DE ALMACENAMIENTO DE DATOS

Especificaciones Generales GS1. Sección 0.0: Léame. Tabla de Contenido. 0.1 Introducción Renuncia Resumen...3

PSI Gestión es un sistema multiusuario que le permite 2 tipos de configuraciones:

1. LIBRERÍA DEL USB: MPUSBAPI.DLL

SUPERVIELLE EMPRESAS

SCT Software para la calibración de transductores de fuerza. Versión 3.5. Microtest S.A.

GARANTÍA LIMITADA DEL FABRICANTE NOKIA PARA NOKIA CON WINDOWS PHONE

Uso del Shield Ethernet con Arduino

Sea el siguiente programa de nombre "c0p1" para copiar archivos (por simplicidad se ha eliminado todo control de errores): Se pide:

V i s i t a V i r t u a l e n e l H o s p i t a l

Windows Cuotas de disco. Bajado desde Sistema operativo. Resumen

LINEAMIENTOS ESTÁNDARES APLICATIVOS DE VIRTUALIZACIÓN

GVisualPDA Módulo de Almacén

Tema 2: Arquitectura del repertorio de instrucciones. Visión del computador que tiene el programador en bajo nivel.

Cómo usar P-touch Transfer Manager


CIMA. MANUAL DE USUARIO

Descargar. Edición 1

CAPÍTULO HTML Y DHCP DE H0/H2-ECOM100 CONFIGURACIÓN. En este capítulo...

GUÍA RÁPIDA DE. Instalación de los Controladores para cable de conectividad Nokia

Tutorial: Primeros Pasos con Subversion

PROBLEMAS DE FUNDAMENTOS DE TECNOLOGÍA DE COMPUTADORES T5. MEMORIAS

Aplicación de protección con contraseña para los dispositivos flash USB de Verbatim

MÓDULO DE EXPANSIÓN DW-GSM. Manual de usuario

POLÍTICA DE PRIVACIDAD PARA APLICACIONES MÓVILES GRUPOCOPESA. 1. información que se obtiene la aplicación y su utilización

KRITER ERP v2012. Cambios Tipos de Impuestos IVA. Documento Técnico. 13 de julio de 2012.

Instrucciones de instalación de IBM SPSS Statistics para Linux (Licencia de red)

Cómo ingresar a la Sucursal Electrónica?

Hacer clic sobre la figura, para extraer todos los registros o presionar la tecla F2.

GUÍA RÁPIDA DE. Instalación de Nokia Connectivity Cable Drivers

Samsung Data Migration v3.0 Guía de instalación e introducción

Acronis License Server. Guía del usuario

DHCP. Dynamic Host Configuration Protocol. Protocolo de Configuración Dinámica de Host. Administración de Redes de Computadores

(decimal) (hexadecimal) 80.0A.02.1E (binario)

Servicios Educativos Del Estado De Chihuahua Sistema Integral de Presupuestos y Materiales. Indice. Introducción Barra de Herramientas...

PROBLEMAS CON SU CLAVE? Cliente Nuevo Puedo solicitar acceso a la Banca en Línea (Contrato Uso de Canales de Autoatención) a través del Portal?

Tekla Structures Guía Rápida de Licencias. Versión del producto 21.1 agosto Tekla Corporation

Cómo utilizar P-touch Transfer Manager

QUIERO IRME DE ERASMUS

Sistemas de Computación I/O. 2º Semestre, 2008 José Miguel Rubio L.

BANCOS. Manejo de Bancos. Como crear una ficha de Banco? Como modificar los datos de una ficha de Banco? Como borrar una ficha de Banco?

AGREGAR UN EQUIPO A UNA RED Y COMPARTIR ARCHIVOS CON WINDOWS 7

Preguntas Frecuentes Pedidos en MYHERBALIFE.COM Costa Rica, Agosto-2012

ACCESS CONTROL. Aplicación para control y gestión de presencia. (Versión. BASIC) 1 Introducción. 2 Activación del programa

Ministerio de Economía y Finanzas Dirección General de Tesorería PROCEDIMIENTO PARA EL REGISTRO DE LA CONSULTA WEB EN LINEA DE LOS PROVEEDORES

Acronis Universal Restore

INSTRUCCIONES ACTUALIZACION PASO A PASO a MICROSOFT WINDOWS-7 (rev.1.0):

EL MODELO DE ESTRATIFICACIÓN POR CAPAS DE TCP/IP DE INTERNET

La explicación la haré con un ejemplo de cobro por $ más el I.V.A. $16.00

CAPITULO 4. Requerimientos, Análisis y Diseño. El presente capítulo explica los pasos que se realizaron antes de implementar

Transcripción:

Interfaz de Programación del Controlador MCA Alan Cox alan@redhat.com David Weinehall Chris Beauregard

Interfaz de Programación del Controlador MCA por Alan Cox, David Weinehall, y Chris Beauregard Copyright 2000 por Alan CoxDavid WeinehallChris Beauregard Esta documentación es software libre; puedes redistrubuirla y/o modificarla bajo los términos de la GNU General Public License tal como ha sido publicada por la Free Software Foundation; por la versión 2 de la licencia, o (a tu elección) por cualquier versión posterior. Este programa es distribuido con la esperanza de que sea útil, pero SIN NINGUNA GARANTIA; sin incluso la garantía implicada de COMERCIABILIDAD o ADECUACCION PARA UN PROPOSITO PARTICULAR. Para más detalles refiérase a la GNU General Public License. Debería de haber recibido una copia de la GNU General Public License con este programa; si no es así, escriba a la Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA Para más detalles véase el archivo COPYING en la distribución fuente de Linux.

Tabla de contenidos 1. Introducción...1 2. Bugs Conocidos Y Suposiciones...2 3. Funciones Públicas Suministradas...3 mca_find_adapter...3 mca_find_unused_adapter...3 mca_read_stored_pos...4 mca_read_pos...5 mca_write_pos...5 mca_set_adapter_name...6 mca_set_adapter_procfn...7 mca_is_adapter_used...8 mca_mark_as_used...9 mca_mark_as_unused...9 mca_get_adapter_name...10 mca_isadapter...11 mca_isenabled...11 4. Funciones DMA Suministradas...13 mca_enable_dma...13 mca_disable_dma...13 mca_set_dma_addr...14 mca_get_dma_addr...14 mca_set_dma_count...15 mca_get_dma_residue...16 mca_set_dma_io...16 mca_set_dma_mode...17 5. Sobre la Traducción...19 iii

Capítulo 1. Introducción 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. 1

Capítulo 2. Bugs Conocidos Y Suposiciones Ninguno. 2

Capítulo 3. Funciones Públicas Suministradas mca_find_adapter mca_find_adapter busca adaptadores int mca_find_adapter (int id, int start); id Identificación del bus MCA en el que buscar start slot de comienzo 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. mca_find_unused_adapter mca_find_unused_adapter busca adaptadores sin usar 3

Capítulo 3. Funciones Públicas Suministradas int mca_find_unused_adapter (int id, int start); id Identificación del bus MCA en el que buscar start slot de comienzo 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. mca_read_stored_pos mca_read_stored_pos lee los registros POS de los datos de arranque unsigned char mca_read_stored_pos (int slot, int reg); slot número de slot desde donde leer 4

Capítulo 3. Funciones Públicas Suministradas reg registro desde donde leer 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. mca_read_pos mca_read_pos lee el registro POS de la tarjeta unsigned char mca_read_pos (int slot, int reg); slot número de slot desde donde leer reg registro de donde leer 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. 5

Capítulo 3. Funciones Públicas Suministradas mca_write_pos mca_write_pos lee el registro POS de la tarjeta void mca_write_pos (int slot, int reg, unsigned char byte); slot número de slot desde donde leer reg registro de donde leer byte 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. 6

Capítulo 3. Funciones Públicas Suministradas mca_set_adapter_name mca_set_adapter_name Establece la descripción de la tarjeta void mca_set_adapter_name (int slot, char* name); slot slot a nombrar name cadena de texto para el nombre 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. mca_set_adapter_procfn mca_set_adapter_procfn Establece la retrollamada /proc void mca_set_adapter_procfn (int slot, MCA_ProcFn procfn, void* dev); 7

Capítulo 3. Funciones Públicas Suministradas slot slot a configurar procfn función de retrollamada a llamar para /proc dev 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. mca_is_adapter_used mca_is_adapter_used chequea si fue pedido por un controlador int mca_is_adapter_used (int slot); slot slot a chequear 8

Capítulo 3. Funciones Públicas Suministradas Retorna 1 si el slot ha sido pedido por un controlador mca_mark_as_used mca_mark_as_used pide un dispositivo MCA int mca_mark_as_used (int slot); slot slot a pedir FIXME 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. mca_mark_as_unused mca_mark_as_unused libera un dispositivo MCA 9

Capítulo 3. Funciones Públicas Suministradas void mca_mark_as_unused (int slot); slot slot a pedir Libera el slot para que otros controladoras lo usen. mca_get_adapter_name mca_get_adapter_name obtiene la descripción del adaptador char * mca_get_adapter_name (int slot); slot slot al que preguntar Retorna la descripción del adaptador si está establecida. Si no ha sido establecida o el slot está fuera de rango entonces devuelve NULL. 10

Capítulo 3. Funciones Públicas Suministradas mca_isadapter mca_isadapter chequea si el slot mantiene un adaptador int mca_isadapter (int slot); slot slot al que preguntar Retorna cero si el slot no mantiene un adaptador, distinto de cero si lo mantiene. mca_isenabled mca_isenabled chequa si el slot mantiene un adaptador int mca_isenabled (int slot); slot slot al que preguntar 11

Capítulo 3. Funciones Públicas Suministradas Retorna un valor distinto de cero si el slot mantiene un adaptador habilitado y cero para cualquier otro caso. 12

Capítulo 4. Funciones DMA Suministradas mca_enable_dma mca_enable_dma canal en el que habilitar el DMA void mca_enable_dma (unsigned int dmanr); dmanr canal DMA Habilita en el bus MCA el DMA en un canal. Puede ser llamado desde un contexto IRQ. mca_disable_dma mca_disable_dma canal en el que deshabilitar el DMA void mca_disable_dma (unsigned int dmanr); 13

Capítulo 4. Funciones DMA Suministradas dmanr canal DMA Habilita en el bus MCA el DMA en un canal. Puede ser llamado desde un contexto IRQ. mca_set_dma_addr mca_set_dma_addr carga una dirección DMA de 24 bits void mca_set_dma_addr (unsigned int dmanr, unsigned int a); dmanr canal DMA a direcciones de bus de 24 bits Carga los registros de direcciones en el controlador DMA. Esto tiene una limitación de 24 bits (16Mb). 14

Capítulo 4. Funciones DMA Suministradas mca_get_dma_addr mca_get_dma_addr carga una dirección DMA de 24 bits unsigned int mca_get_dma_addr (unsigned int dmanr); dmanr canal DMA 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. mca_set_dma_count mca_set_dma_count carga una cuenta de transferencia de 16 bits void mca_set_dma_count (unsigned int dmanr, unsigned int count); dmanr canal DMA 15

Capítulo 4. Funciones DMA Suministradas count count Establece la cuenta DMA para este canal. Esto puede ser hasta 64Kbytes. Estableciendo una cuenta a cero no hará lo que esperas. mca_get_dma_residue mca_get_dma_residue obtiene los bytes que quedan por transferir unsigned int mca_get_dma_residue (unsigned int dmanr); dmanr canal DMA Esta función retorna el número de bytes que quedan por transferir en este canal DMA. mca_set_dma_io mca_set_dma_io establece el puerto para una transferencia de E/S 16

Capítulo 4. Funciones DMA Suministradas void mca_set_dma_io (unsigned int dmanr, unsigned int io_addr); dmanr canal DMA io_addr un número de puerto de E/S A diferencia de los controladores DMA del bus ISA un bus MCA puede transferir con un puerto de E/S de destino. mca_set_dma_mode mca_set_dma_mode establece el modo de DMA void mca_set_dma_mode (unsigned int dmanr, unsigned int mode); dmanr canal DMA mode modo a establecer 17

Capítulo 4. Funciones DMA Suministradas El controlador DMA soporta varios modos. Los modos que puedes tener son set are MCA_DMA_MODE_READ para leer de un dispositivo DMA. MCA_DMA_MODE_WRITE para escribir al dispositivo DMA. MCA_DMA_MODE_IO para hacer DMA a o desde un puerto de E/S. MCA_DMA_MODE_16 para hacer transferencias de 16 bits. 18

Capítulo 5. Sobre la Traducción 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 (http://lucas.hispalinux.es) 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> 19