Ich versuche, mit dem Befehl eine Brainboxes PX-246 PCI Express-Seriell-Karte einem /dev/ttyS..-Gerät zuzuweisen setserial
, diese Karte scheint jedoch keine E/A-Portadresse zu besitzen (nur Speicheradressen).
lspci -v
ergibt folgendes:
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 <?>
Ist es möglich, einem seriellen Gerät statt einem E/A-Port eine Speicheradresse zuzuweisen?
Im Moment teste ich die Karte unter Ubuntu 16.04, sie soll aber irgendwann auf einem Fedora-System zum Einsatz kommen.
Jede Hilfe wäre sehr willkommen!
Antwort1
Das Datenblatt des OXPCIe952 lautet beispielsweiseHierAuf Seite 3 heißt es, dass der Chip je nach Hardware-Belegung der 5 Pins in mehreren Modi aktiviert werden kann.
Der UART ist im Legacy-Modus (mit I/O-Adressen) und im nativen Modus (speicherabgebildet, mit den 3 in Ihrer Frage gezeigten BARs) verfügbar. Wenn Sie keine anderen Funktionen haben (PCI-Geräte wie 05:00.1
usw. 05:00.2
), bedeutet dies, dass Ihre Karte für einen nativen UART aktiviert ist, 5. Zeile in der Tabelle auf Seite 3. Auf Seite 13 wird auch erklärt, wofür die BARs verwendet werden (falls es Sie interessiert). Wie ich vermutet habe, ist der erste BAR speicherabgebildeter I/O für den UART.
Die Datei 8250_pci.c
enthält tatsächlich PCI-IDs sowohl für ältere als auch für native UARTs mit diesem Chip. Ich würde also als Erstes versuchen, Ihre PCI-IDs zu dieser Datei hinzuzufügen, sie neu zu kompilieren und zu sehen, ob es funktioniert.