Configurando uma placa serial PCIe que parece não possuir portas de E/S

Configurando uma placa serial PCIe que parece não possuir portas de E/S

Estou tentando atribuir uma placa serial PCI Express Brainboxes PX-246 a um dispositivo /dev/ttyS.. usando o setserialcomando, no entanto, esta placa não parece possuir um endereço de porta de E/S (apenas endereços de memória).

lspci -vdá o seguinte:

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 <?>

É possível atribuir um endereço de memória a um dispositivo serial em vez de uma porta de E/S?

No momento estou testando a placa no Ubuntu 16.04, mas eventualmente ela será usada em um sistema Fedora.

Qualquer ajuda seria muito apreciada!

Responder1

A folha de dados do OXPCIe952 é, por exemploaqui, diz na página 3 que o chip pode ser habilitado em vários modos dependendo das cintas de hardware de 5 pinos.

O UART está disponível em modo legado (com endereços de E/S) e modo nativo (memória mapeada, com os 3 BARs mostrados na sua pergunta). Se você não tiver nenhuma outra função (dispositivos PCI como 05:00.1, 05:00.2etc.), isso significa que sua placa está habilitada para um UART nativo, 5ª linha no gráfico da página 3. Também explica para que servem os BARs (se você estão interessados) na página 13. Como imaginei, a primeira BAR é a E/S mapeada na memória para o UART.

O arquivo 8250_pci.crealmente contém IDs de PCI para UARTs legados e nativos com este chip, então sim, a primeira coisa que tentarei é adicionar seus IDs de PCI a este arquivo, recompilar e ver se funciona.

informação relacionada