• No : 17564
  • 公開日時 : 2025/03/18 09:42
  • 印刷

【NXP:DN】 LS1027A/LS1028A PCIeデバイスのVendor IDとDevice IDの設定について

LS1028Aを搭載したボードをデスクトップPCのPCIeスロットに搭載して起動すると、Linux上でEndpoint のPCIデバイスとして表示されます。
その時のVendor IDは「1957」、Device IDは「82C5」と表示されます。
このVendor ID (1957)とDevice ID (82C5)をユーザ任意のIDに変更する方法はありますか。
 
カテゴリー : 

回答

 drivers/pci/controller/dwc/pci-layerscape-ep.c にて、Vendor IDとDevice IDの設定が可能です。
pci-layerscape-ep.c の関数 ls_pcie_ep_probe の「ret = dw_pcie_ep_init(&pci->ep);」の前に以下のコードを追加します。
 
+++ b/drivers/pci/controller/dwc/pci-layerscape-ep.c
 
+    /* hack the vendor ID and device ID */
+    dw_pcie_dbi_ro_wr_en(pci);
+    dw_pcie_writew_dbi(pci, PCI_VENDOR_ID, your_vendor_IDs);
+    dw_pcie_writew_dbi(pci, PCI_DEVICE_ID, your_device_IDs);
+    dw_pcie_dbi_ro_wr_dis(pci);
+
     ret = dw_pcie_ep_init(&pci->ep);
     if (ret)
         return ret;
--