이 명령을 사용하여 Brainboxes PX-246 PCI Express 직렬 카드를 /dev/ttyS.. 장치에 할당하려고 하는데 setserial
카드에 I/O 포트 주소가 없는 것 같습니다(메모리 주소만 있음). .
lspci -v
다음과 같은 결과를 제공합니다.
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 <?>
I/O 포트 대신 직렬 장치에 메모리 주소를 할당할 수 있습니까?
현재 Ubuntu 16.04에서 카드를 테스트하고 있지만 결국에는 Fedora 시스템에서 사용할 예정입니다.
어떤 도움이라도 대단히 감사하겠습니다!
답변1
OXPCIe952의 데이터 시트는 다음과 같습니다여기, 3페이지에는 5핀 하드웨어 구성에 따라 칩이 여러 모드에서 활성화될 수 있다고 나와 있습니다.
UART는 레거시 모드(I/O 주소 사용) 및 기본 모드(메모리 매핑, 질문에 표시된 3개의 BAR)에서 사용할 수 있습니다. 다른 기능(PCI 장치 05:00.1
등 ) 이 없다면 05:00.2
카드에 기본 UART가 활성화되어 있다는 뜻입니다. 이는 3페이지 다이어그램의 5번째 줄입니다. 또한 13페이지에서는 BAR의 목적(관심 있는 경우)에 대해 설명합니다. 추측한 대로 첫 번째 BAR은 UART용 메모리 매핑 I/O입니다.
파일에는 8250_pci.c
칩의 레거시 및 기본 UART에 대한 PCI ID가 포함되어 있으므로 가장 먼저 시도한 것은 파일에 PCI ID를 추가하고 다시 컴파일한 후 작동하는지 확인하는 것이었습니다.