我正在嘗試使用該setserial
命令將 Brainboxes PX-246 PCI Express 串行卡分配給 /dev/ttyS.. 設備,但是該卡似乎沒有 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 頁。
該檔案8250_pci.c
確實包含該晶片的傳統和本機 UART 的 PCI ID,所以是的,我首先嘗試的是將 PCI ID 添加到該檔案中,重新編譯,然後查看它是否有效。