명령을 사용하여 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로 메모리 매핑됨)에서 사용할 수 있습니다. 다른 기능(예 05:00.1
: PCI 장치 등)이 없는 경우 05:00.2
이는 3페이지 차트의 5번째 줄인 하나의 기본 UART에 대해 카드가 활성화되어 있음을 의미합니다. 또한 BAR이 사용되는 용도에 대해 설명합니다. 추측한 대로 첫 번째 BAR은 UART에 대한 메모리 매핑 I/O입니다.
파일에는 8250_pci.c
실제로 이 칩이 포함된 레거시 UART와 기본 UART에 대한 PCI ID가 포함되어 있습니다. 따라서 가장 먼저 시도할 것은 이 파일에 PCI ID를 추가하고 다시 컴파일한 후 작동하는지 확인하는 것입니다.