近年來在各家廠商產品上經常會接觸driver porting的問題,介面不外乎常見USB、PCI-Express、SPI、i2c,其中USB與PCI-Express極其相似,因此就以這兩界面做比較以及簡單的檢查設備方法,提供pcie drvier porting的參考。
介面 |
USB |
PCI Express min card |
架構 |
Host – Client (endpoint) | |
供電電壓 |
5V |
3.3V |
支援熱插拔 |
是 |
否 (依規格決定) |
傳輸架構 |
DMA/Interrupt |
DMA |
傳輸模式 |
全雙工 / 半雙工 |
全雙工 |
裝置描述方式 |
VID/PID, Class code |
VID/PID, Class code |
UNIX指令 |
# lsusb |
# lspci |
確認PCI Express 狀態:
# lspci -n
01:00.0 Class 0280: 168c:0056
00:00.0 Class 0604: 17cb:1000
製造商會在PCI/USB聯盟註冊唯一vendor ID及其product ID,lspci/lsusb會顯示裝置兩端的廠商。
Vender ID |
廠商 |
Class code |
168c |
Atheros |
0280 - Network controller |
17cb |
Qualcomm |
0604 – PCI-PCI bridge |
確認USB設備狀態:
# lsusb
ID 0bda:0129
Vender ID |
廠商 |
0bda |
Realtek |
介面初始化檢查:
USB-core初始化後的系統資訊 :
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
PCI-Express初始化後的系統資訊 :
msm_pcie_enable: PCIe: Assert the reset of endpoint of RC0.
msm_pcie_enable: PCIe RC0 PHY is ready!
msm_pcie_enable: PCIe: Release the reset of endpoint of RC0.
msm_pcie_enable: PCIe RC0 link initialized