Estoy intentando asignar una tarjeta serie PCI express Brainboxes PX-246 a un dispositivo /dev/ttyS.. usando el setserial
comando, sin embargo, esta tarjeta no parece poseer una dirección de puerto de E/S (solo direcciones de memoria).
lspci -v
da lo siguiente:
05:00.0 Serial controller: Brain Boxes Device 4016 (rev 02) (prog-if 06 [16950])
Subsystem: Brain Boxes Device 4016
Flags: fast devsel, IRQ 18
Memory at f7600000 (32-bit, non-prefetchable) [size=16K]
Memory at f7400000 (32-bit, non-prefetchable) [size=2M]
Memory at f7200000 (32-bit, non-prefetchable) [size=2M]
Capabilities: [40] Power Management version 3
Capabilities: [70] Express Endpoint, MSI 00
Capabilities: [b0] MSI-X: Enable- Count=16 Masked-
Capabilities: [100] Device Serial Number 00-30-e0-11-11-00-01-50
Capabilities: [110] Power Budgeting <?>
¿Es posible asignar una dirección de memoria a un dispositivo serie en lugar de un puerto de E/S?
Por el momento estoy probando la tarjeta en Ubuntu 16.04, pero eventualmente se usará en un sistema Fedora.
¡Cualquier ayuda sería muy apreciada!
Respuesta1
La hoja de datos del OXPCIe952 es, por ejemploaquí, dice en la página 3 que el chip se puede habilitar en varios modos dependiendo de los flejes de hardware de 5 pines.
El UART está disponible en modo heredado (con direcciones de E/S) y modo nativo (memoria asignada, con las 3 BARRAS que se muestran en su pregunta). Si no tiene otras funciones (dispositivos PCI como 05:00.1
, 05:00.2
etc.), esto significa que su tarjeta está habilitada para un UART nativo, quinta línea en el cuadro de la página 3. También explica para qué se usan las BAR (si están interesados) en la página 13. Como supuse, la primera BARRA es la E/S asignada en memoria para el UART.
De hecho, el archivo 8250_pci.c
contiene ID de PCI tanto para UART heredados como nativos con este chip, así que sí, lo primero que intentaría es agregar sus ID de PCI a este archivo, volver a compilarlo y ver si funciona.