参考https://cromwell-intl.com/open-source/sysfs.html

  1. bus:slot.function ------------ domain:bus:slot.function,
  1. [root@localhost ~]# lspci
  2. 00:00.0 PCI bridge: Huawei Technologies Co., Ltd. HiSilicon PCIe Root Port with Gen4 (rev 21) ----------root
  3. 00:08.0 PCI bridge: Huawei Technologies Co., Ltd. HiSilicon PCIe Root Port with Gen4 (rev 21)------------root
  4. 00:0c.0 PCI bridge: Huawei Technologies Co., Ltd. HiSilicon PCIe Root Port with Gen4 (rev 21)
  5. 00:10.0 PCI bridge: Huawei Technologies Co., Ltd. HiSilicon PCIe Root Port with Gen4 (rev 21)
  6. 00:11.0 PCI bridge: Huawei Technologies Co., Ltd. HiSilicon PCIe Root Port with Gen4 (rev 21)
  7. 00:12.0 PCI bridge: Huawei Technologies Co., Ltd. HiSilicon PCIe Root Port with Gen4 (rev 21)
  8. 02:00.0 RAID bus controller: LSI Logic / Symbios Logic MegaRAID Tri-Mode SAS3508 (rev 01)
  9. 03:00.0 PCI bridge: Huawei Technologies Co., Ltd. Hi1822 Family Virtual Bridge (rev 45)
  10. 04:00.0 PCI bridge: Huawei Technologies Co., Ltd. Hi1822 Family Virtual Bridge (rev 45)
  11. 04:01.0 PCI bridge: Huawei Technologies Co., Ltd. Hi1822 Family Virtual Bridge (rev 45)
  12. 05:00.0 Ethernet controller: Huawei Technologies Co., Ltd. Hi1822 Family (2*25GE) (rev 45)
  13. 06:00.0 Ethernet controller: Huawei Technologies Co., Ltd. Hi1822 Family (2*25GE) (rev 45)
  14. 07:00.0 Signal processing controller: Huawei Technologies Co., Ltd. iBMA Virtual Network Adapter (rev 01)
  15. 08:00.0 VGA compatible controller: Huawei Technologies Co., Ltd. Hi1710 [iBMC Intelligent Management system chip w/VGA support] (rev 01)
  16. 74:02.0 Serial Attached SCSI controller: Huawei Technologies Co., Ltd. HiSilicon SAS 3.0 HBA (rev 21)
  17. 74:03.0 SATA controller: Huawei Technologies Co., Ltd. HiSilicon AHCI HBA (rev 21)
  18. 74:04.0 Serial Attached SCSI controller: Huawei Technologies Co., Ltd. HiSilicon SAS 3.0 HBA (rev 21)
  19. 7a:00.0 USB controller: Huawei Technologies Co., Ltd. HiSilicon USB 1.1 Host Controller (rev 21)
  20. 7a:01.0 USB controller: Huawei Technologies Co., Ltd. HiSilicon USB 2.0 2-port Host Controller (rev 21)
  21. 7a:02.0 USB controller: Huawei Technologies Co., Ltd. HiSilicon USB 3.0 Host Controller (rev 21)
  22. 7b:00.0 System peripheral: Huawei Technologies Co., Ltd. HiSilicon Embedded DMA Engine (rev 21)
  23. 7c:00.0 PCI bridge: Huawei Technologies Co., Ltd. HiSilicon PCI-PCI Bridge (rev 20)
  24. 7d:00.0 Ethernet controller: Huawei Technologies Co., Ltd. HNS GE/10GE/25GE RDMA Network Controller (rev 21)
  25. 7d:00.1 Ethernet controller: Huawei Technologies Co., Ltd. HNS GE/10GE/25GE Network Controller (rev 21)
  26. 7d:00.2 Ethernet controller: Huawei Technologies Co., Ltd. HNS GE/10GE/25GE RDMA Network Controller (rev 21)
  27. 7d:00.3 Ethernet controller: Huawei Technologies Co., Ltd. HNS GE/10GE/25GE Network Controller (rev 21)
  28. 80:00.0 PCI bridge: Huawei Technologies Co., Ltd. HiSilicon PCIe Root Port with Gen4 (rev 21)
  29. 80:08.0 PCI bridge: Huawei Technologies Co., Ltd. HiSilicon PCIe Root Port with Gen4 (rev 21)
  30. 80:0c.0 PCI bridge: Huawei Technologies Co., Ltd. HiSilicon PCIe Root Port with Gen4 (rev 21)
  31. 80:10.0 PCI bridge: Huawei Technologies Co., Ltd. HiSilicon PCIe Root Port with Gen4 (rev 21)
  32. 81:00.0 Non-Volatile memory controller: Huawei Technologies Co., Ltd. Device 3714 (rev 20)
  33. 84:00.0 Non-Volatile memory controller: Huawei Technologies Co., Ltd. Device 3714 (rev 20)
  34. b4:02.0 Serial Attached SCSI controller: Huawei Technologies Co., Ltd. HiSilicon SAS 3.0 HBA (rev 21)
  35. b4:03.0 SATA controller: Huawei Technologies Co., Ltd. HiSilicon AHCI HBA (rev 21)
  36. b4:04.0 Serial Attached SCSI controller: Huawei Technologies Co., Ltd. HiSilicon SAS 3.0 HBA (rev 21)
  37. ba:00.0 USB controller: Huawei Technologies Co., Ltd. HiSilicon USB 1.1 Host Controller (rev 21)
  38. ba:01.0 USB controller: Huawei Technologies Co., Ltd. HiSilicon USB 2.0 2-port Host Controller (rev 21)
  39. ba:02.0 USB controller: Huawei Technologies Co., Ltd. HiSilicon USB 3.0 Host Controller (rev 21)
  40. bb:00.0 System peripheral: Huawei Technologies Co., Ltd. HiSilicon Embedded DMA Engine (rev 21)
  41. bc:00.0 PCI bridge: Huawei Technologies Co., Ltd. HiSilicon PCI-PCI Bridge (rev 20)
  42. [root@localhost ~]# lspci -D
  43. 0000:00:00.0 PCI bridge: Huawei Technologies Co., Ltd. HiSilicon PCIe Root Port with Gen4 (rev 21)
  44. 0000:00:08.0 PCI bridge: Huawei Technologies Co., Ltd. HiSilicon PCIe Root Port with Gen4 (rev 21)
  45. 0000:00:0c.0 PCI bridge: Huawei Technologies Co., Ltd. HiSilicon PCIe Root Port with Gen4 (rev 21)
  46. 0000:00:10.0 PCI bridge: Huawei Technologies Co., Ltd. HiSilicon PCIe Root Port with Gen4 (rev 21)
  47. 0000:00:11.0 PCI bridge: Huawei Technologies Co., Ltd. HiSilicon PCIe Root Port with Gen4 (rev 21)
  48. 0000:00:12.0 PCI bridge: Huawei Technologies Co., Ltd. HiSilicon PCIe Root Port with Gen4 (rev 21)
  49. 0000:02:00.0 RAID bus controller: LSI Logic / Symbios Logic MegaRAID Tri-Mode SAS3508 (rev 01)
  50. 0000:03:00.0 PCI bridge: Huawei Technologies Co., Ltd. Hi1822 Family Virtual Bridge (rev 45)
  51. 0000:04:00.0 PCI bridge: Huawei Technologies Co., Ltd. Hi1822 Family Virtual Bridge (rev 45)
  52. 0000:04:01.0 PCI bridge: Huawei Technologies Co., Ltd. Hi1822 Family Virtual Bridge (rev 45)
  53. 0000:05:00.0 Ethernet controller: Huawei Technologies Co., Ltd. Hi1822 Family (2*25GE) (rev 45)
  54. 0000:06:00.0 Ethernet controller: Huawei Technologies Co., Ltd. Hi1822 Family (2*25GE) (rev 45)
  55. 0000:07:00.0 Signal processing controller: Huawei Technologies Co., Ltd. iBMA Virtual Network Adapter (rev 01)
  56. 0000:08:00.0 VGA compatible controller: Huawei Technologies Co., Ltd. Hi1710 [iBMC Intelligent Management system chip w/VGA support] (rev 01)
  57. 0000:74:02.0 Serial Attached SCSI controller: Huawei Technologies Co., Ltd. HiSilicon SAS 3.0 HBA (rev 21)
  58. 0000:74:03.0 SATA controller: Huawei Technologies Co., Ltd. HiSilicon AHCI HBA (rev 21)
  59. 0000:74:04.0 Serial Attached SCSI controller: Huawei Technologies Co., Ltd. HiSilicon SAS 3.0 HBA (rev 21)
  60. 0000:7a:00.0 USB controller: Huawei Technologies Co., Ltd. HiSilicon USB 1.1 Host Controller (rev 21)
  61. 0000:7a:01.0 USB controller: Huawei Technologies Co., Ltd. HiSilicon USB 2.0 2-port Host Controller (rev 21)
  62. 0000:7a:02.0 USB controller: Huawei Technologies Co., Ltd. HiSilicon USB 3.0 Host Controller (rev 21)
  63. 0000:7b:00.0 System peripheral: Huawei Technologies Co., Ltd. HiSilicon Embedded DMA Engine (rev 21)
  64. 0000:7c:00.0 PCI bridge: Huawei Technologies Co., Ltd. HiSilicon PCI-PCI Bridge (rev 20)
  65. 0000:7d:00.0 Ethernet controller: Huawei Technologies Co., Ltd. HNS GE/10GE/25GE RDMA Network Controller (rev 21)
  66. 0000:7d:00.1 Ethernet controller: Huawei Technologies Co., Ltd. HNS GE/10GE/25GE Network Controller (rev 21)
  67. 0000:7d:00.2 Ethernet controller: Huawei Technologies Co., Ltd. HNS GE/10GE/25GE RDMA Network Controller (rev 21)
  68. 0000:7d:00.3 Ethernet controller: Huawei Technologies Co., Ltd. HNS GE/10GE/25GE Network Controller (rev 21)
  69. 0000:80:00.0 PCI bridge: Huawei Technologies Co., Ltd. HiSilicon PCIe Root Port with Gen4 (rev 21)
  70. 0000:80:08.0 PCI bridge: Huawei Technologies Co., Ltd. HiSilicon PCIe Root Port with Gen4 (rev 21)
  71. 0000:80:0c.0 PCI bridge: Huawei Technologies Co., Ltd. HiSilicon PCIe Root Port with Gen4 (rev 21)
  72. 0000:80:10.0 PCI bridge: Huawei Technologies Co., Ltd. HiSilicon PCIe Root Port with Gen4 (rev 21)
  73. 0000:81:00.0 Non-Volatile memory controller: Huawei Technologies Co., Ltd. Device 3714 (rev 20)
  74. 0000:84:00.0 Non-Volatile memory controller: Huawei Technologies Co., Ltd. Device 3714 (rev 20)
  75. 0000:b4:02.0 Serial Attached SCSI controller: Huawei Technologies Co., Ltd. HiSilicon SAS 3.0 HBA (rev 21)
  76. 0000:b4:03.0 SATA controller: Huawei Technologies Co., Ltd. HiSilicon AHCI HBA (rev 21)
  77. 0000:b4:04.0 Serial Attached SCSI controller: Huawei Technologies Co., Ltd. HiSilicon SAS 3.0 HBA (rev 21)
  78. 0000:ba:00.0 USB controller: Huawei Technologies Co., Ltd. HiSilicon USB 1.1 Host Controller (rev 21)
  79. 0000:ba:01.0 USB controller: Huawei Technologies Co., Ltd. HiSilicon USB 2.0 2-port Host Controller (rev 21)
  80. 0000:ba:02.0 USB controller: Huawei Technologies Co., Ltd. HiSilicon USB 3.0 Host Controller (rev 21)
  81. 0000:bb:00.0 System peripheral: Huawei Technologies Co., Ltd. HiSilicon Embedded DMA Engine (rev 21)
  82. 0000:bc:00.0 PCI bridge: Huawei Technologies Co., Ltd. HiSilicon PCI-PCI Bridge (rev 20)
  83. [root@localhost ~]#
  1. Each line starts with the PCI bus address formatted as bus:slot.function. Buses are numbered to 0f, slots 00 to 1f, and functions 1 to 7. My system has a single PCI domain. If it had more than one I could have used the -D option to get the PCI domain inserted as 4-character hexadecimal in the range 000-ffff. The resulting output is domain:bus:slot.function, for example, 0000:00:00.0.

 

  1. [root@localhost ~]# lspci -v -s 00:00.0
  2. 00:00.0 PCI bridge: Huawei Technologies Co., Ltd. HiSilicon PCIe Root Port with Gen4 (rev 21) (prog-if 00 [Normal decode])
  3. Flags: bus master, fast devsel, latency 0, IRQ 98, NUMA node 0
  4. Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
  5. Capabilities: [40] Express Root Port (Slot+), MSI 00
  6. Capabilities: [80] MSI: Enable+ Count=2/32 Maskable+ 64bit+
  7. Capabilities: [b0] Power Management version 3
  8. Capabilities: [d0] Subsystem: Huawei Technologies Co., Ltd. Device 371e
  9. Capabilities: [100] Advanced Error Reporting
  10. Capabilities: [310] #19
  11. Capabilities: [400] Virtual Channel
  12. Capabilities: [630] Access Control Services
  13. Capabilities: [700] #25
  14. Capabilities: [70c] #27
  15. Capabilities: [800] #23
  16. Capabilities: [880] #26
  17. Capabilities: [900] #23
  18. Kernel driver in use: pcieport
  19. [root@localhost ~]# lspci -v -s 00:0c.0
  20. 00:0c.0 PCI bridge: Huawei Technologies Co., Ltd. HiSilicon PCIe Root Port with Gen4 (rev 21) (prog-if 00 [Normal decode])
  21. Flags: bus master, fast devsel, latency 0, IRQ 102, NUMA node 0
  22. Bus: primary=00, secondary=03, subordinate=06, sec-latency=0
  23. Memory behind bridge: e9200000-e93fffff
  24. Prefetchable memory behind bridge: 0000080000200000-00000800113fffff
  25. Capabilities: [40] Express Root Port (Slot+), MSI 00
  26. Capabilities: [80] MSI: Enable+ Count=2/32 Maskable+ 64bit+
  27. Capabilities: [b0] Power Management version 3
  28. Capabilities: [d0] Subsystem: Huawei Technologies Co., Ltd. Device 371e
  29. Capabilities: [100] Advanced Error Reporting
  30. Capabilities: [310] #19
  31. Capabilities: [630] Access Control Services
  32. Capabilities: [700] #25
  33. Capabilities: [70c] #27
  34. Capabilities: [880] #26
  35. Kernel driver in use: pcieport
  36. [root@localhost ~]#

 

 

 

 

  1. [root@localhost ~]# lspci | grep Ethernet
  2. 05:00.0 Ethernet controller: Huawei Technologies Co., Ltd. Hi1822 Family (2*25GE) (rev 45)
  3. 06:00.0 Ethernet controller: Huawei Technologies Co., Ltd. Hi1822 Family (2*25GE) (rev 45)
  4. 7d:00.0 Ethernet controller: Huawei Technologies Co., Ltd. HNS GE/10GE/25GE RDMA Network Controller (rev 21)
  5. 7d:00.1 Ethernet controller: Huawei Technologies Co., Ltd. HNS GE/10GE/25GE Network Controller (rev 21)
  6. 7d:00.2 Ethernet controller: Huawei Technologies Co., Ltd. HNS GE/10GE/25GE RDMA Network Controller (rev 21)
  7. 7d:00.3 Ethernet controller: Huawei Technologies Co., Ltd. HNS GE/10GE/25GE Network Controller (rev 21)
  8. [root@localhost ~]# lspci -v -s 05:00.0
  9. 05:00.0 Ethernet controller: Huawei Technologies Co., Ltd. Hi1822 Family (2*25GE) (rev 45)
  10. Subsystem: Huawei Technologies Co., Ltd. Device d139
  11. Flags: bus master, fast devsel, latency 0, NUMA node 0
  12. Memory at 80007b00000 (64-bit, prefetchable) [size=128K]
  13. Memory at 80008a20000 (64-bit, prefetchable) [size=32K]
  14. Memory at 80000200000 (64-bit, prefetchable) [size=1M]
  15. Expansion ROM at e9200000 [disabled] [size=1M]
  16. Capabilities: [40] Express Endpoint, MSI 00
  17. Capabilities: [80] MSI: Enable- Count=1/32 Maskable+ 64bit+
  18. Capabilities: [a0] MSI-X: Enable+ Count=32 Masked-
  19. Capabilities: [b0] Power Management version 3
  20. Capabilities: [c0] Vital Product Data
  21. Capabilities: [100] Advanced Error Reporting
  22. Capabilities: [150] Alternative Routing-ID Interpretation (ARI)
  23. Capabilities: [200] Single Root I/O Virtualization (SR-IOV)
  24. Capabilities: [310] #19
  25. Capabilities: [4e0] Device Serial Number 44-a1-91-ff-ff-a4-9b-eb
  26. Capabilities: [4f0] Transaction Processing Hints
  27. Capabilities: [600] Vendor Specific Information: ID=0000 Rev=0 Len=028 <?>
  28. Capabilities: [630] Access Control Services
  29. Kernel driver in use: vfio-pci
  30. Kernel modules: hinic
  31. [root@localhost ~]# lspci -v -s 06:00.0
  32. 06:00.0 Ethernet controller: Huawei Technologies Co., Ltd. Hi1822 Family (2*25GE) (rev 45)
  33. Subsystem: Huawei Technologies Co., Ltd. Device d139
  34. Flags: fast devsel, NUMA node 0
  35. [virtual] Memory at 80010400000 (64-bit, prefetchable) [size=128K]
  36. [virtual] Memory at 80011320000 (64-bit, prefetchable) [size=32K]
  37. [virtual] Memory at 80008b00000 (64-bit, prefetchable) [size=1M]
  38. Expansion ROM at e9300000 [disabled] [size=1M]
  39. Capabilities: [40] Express Endpoint, MSI 00
  40. Capabilities: [80] MSI: Enable- Count=1/32 Maskable+ 64bit+
  41. Capabilities: [a0] MSI-X: Enable- Count=32 Masked-
  42. Capabilities: [b0] Power Management version 3
  43. Capabilities: [c0] Vital Product Data
  44. Capabilities: [100] Advanced Error Reporting
  45. Capabilities: [150] Alternative Routing-ID Interpretation (ARI)
  46. Capabilities: [200] Single Root I/O Virtualization (SR-IOV)
  47. Capabilities: [310] #19
  48. Capabilities: [4e0] Device Serial Number 44-a1-91-ff-ff-a4-9b-ec
  49. Capabilities: [4f0] Transaction Processing Hints
  50. Capabilities: [600] Vendor Specific Information: ID=0000 Rev=0 Len=028 <?>
  51. Capabilities: [630] Access Control Services
  52. Kernel driver in use: vfio-pci
  53. Kernel modules: hinic
  54. [root@localhost ~]#

 

  1. [root@localhost ~]# lspci -vt
  2. -+-[0000:bc]---00.0-[bd]--
  3. +-[0000:bb]---00.0 Huawei Technologies Co., Ltd. HiSilicon Embedded DMA Engine
  4. +-[0000:ba]-+-00.0 Huawei Technologies Co., Ltd. HiSilicon USB 1.1 Host Controller
  5. | +-01.0 Huawei Technologies Co., Ltd. HiSilicon USB 2.0 2-port Host Controller
  6. | \-02.0 Huawei Technologies Co., Ltd. HiSilicon USB 3.0 Host Controller
  7. +-[0000:b4]-+-02.0 Huawei Technologies Co., Ltd. HiSilicon SAS 3.0 HBA
  8. | +-03.0 Huawei Technologies Co., Ltd. HiSilicon AHCI HBA
  9. | \-04.0 Huawei Technologies Co., Ltd. HiSilicon SAS 3.0 HBA
  10. +-[0000:80]-+-00.0-[81]----00.0 Huawei Technologies Co., Ltd. Device 3714
  11. | +-08.0-[82]--
  12. | +-0c.0-[83]--
  13. | \-10.0-[84]----00.0 Huawei Technologies Co., Ltd. Device 3714
  14. +-[0000:7c]---00.0-[7d]--+-00.0 Huawei Technologies Co., Ltd. HNS GE/10GE/25GE RDMA Network Controller
  15. | +-00.1 Huawei Technologies Co., Ltd. HNS GE/10GE/25GE Network Controller
  16. | +-00.2 Huawei Technologies Co., Ltd. HNS GE/10GE/25GE RDMA Network Controller
  17. | \-00.3 Huawei Technologies Co., Ltd. HNS GE/10GE/25GE Network Controller
  18. +-[0000:7b]---00.0 Huawei Technologies Co., Ltd. HiSilicon Embedded DMA Engine
  19. +-[0000:7a]-+-00.0 Huawei Technologies Co., Ltd. HiSilicon USB 1.1 Host Controller
  20. | +-01.0 Huawei Technologies Co., Ltd. HiSilicon USB 2.0 2-port Host Controller
  21. | \-02.0 Huawei Technologies Co., Ltd. HiSilicon USB 3.0 Host Controller
  22. +-[0000:74]-+-02.0 Huawei Technologies Co., Ltd. HiSilicon SAS 3.0 HBA
  23. | +-03.0 Huawei Technologies Co., Ltd. HiSilicon AHCI HBA
  24. | \-04.0 Huawei Technologies Co., Ltd. HiSilicon SAS 3.0 HBA
  25. \-[0000:00]-+-00.0-[01]--
  26. +-08.0-[02]----00.0 LSI Logic / Symbios Logic MegaRAID Tri-Mode SAS3508
  27. +-0c.0-[03-06]----00.0-[04-06]--+-00.0-[05]----00.0 Huawei Technologies Co., Ltd. Hi1822 Family (2*25GE)
  28. | \-01.0-[06]----00.0 Huawei Technologies Co., Ltd. Hi1822 Family (2*25GE)
  29. +-10.0-[07]----00.0 Huawei Technologies Co., Ltd. iBMA Virtual Network Adapter
  30. +-11.0-[08]----00.0 Huawei Technologies Co., Ltd. Hi1710 [iBMC Intelligent Management system chip w/VGA support]
  31. \-12.0-[09]--
  32. [root@localhost ~]#
  1. https://cromwell-intl.com/open-source/sysfs.html
  1. Let\'s look closer at my Ethernet interfaces.
  2. # lspci | grep Ethernet
  3. 06:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 07)
  4. 07:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 07)
  5. 0c:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 09)
  6. All have a Realtek RTL8111/8168/8411 chipset. The two marked as "rev 07" at PCI bus addresses 06:00.0 and 07:00.0 are on an expansion card plugged into a PCIe slot, notice that they share one serial number and are on a Realtek card. The one marked "rev 09" at PCI bus address 0c:00.0 is on the motherboard. Let\'s see more details of just those devices:
  7. # lspci -v -s 06:00.0
  8. 06:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 07)
  9. Subsystem: Realtek Semiconductor Co., Ltd. Device 0123
  10. Flags: bus master, fast devsel, latency 0, IRQ 42
  11. I/O ports at b000 [size=256]
  12. Memory at fe200000 (64-bit, non-prefetchable) [size=4K]
  13. Memory at d2200000 (64-bit, prefetchable) [size=16K]
  14. Capabilities: [40] Power Management version 3
  15. Capabilities: [50] MSI: Enable+ Count=1/1 Maskable- 64bit+
  16. Capabilities: [70] Express Endpoint, MSI 01
  17. Capabilities: [b0] MSI-X: Enable- Count=4 Masked-
  18. Capabilities: [d0] Vital Product Data
  19. Capabilities: [100] Advanced Error Reporting
  20. Capabilities: [140] Virtual Channel
  21. Capabilities: [160] Device Serial Number 01-00-00-00-68-4c-e0-00
  22. Kernel driver in use: r8169
  23. Kernel modules: r8169
  24. # lspci -v -s 07:00.0
  25. 07:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 07)
  26. Subsystem: Realtek Semiconductor Co., Ltd. Device 0123
  27. Flags: bus master, fast devsel, latency 0, IRQ 43
  28. I/O ports at a000 [size=256]
  29. Memory at fe100000 (64-bit, non-prefetchable) [size=4K]
  30. Memory at d2100000 (64-bit, prefetchable) [size=16K]
  31. Capabilities: [40] Power Management version 3
  32. Capabilities: [50] MSI: Enable+ Count=1/1 Maskable- 64bit+
  33. Capabilities: [70] Express Endpoint, MSI 01
  34. Capabilities: [b0] MSI-X: Enable- Count=4 Masked-
  35. Capabilities: [d0] Vital Product Data
  36. Capabilities: [100] Advanced Error Reporting
  37. Capabilities: [140] Virtual Channel
  38. Capabilities: [160] Device Serial Number 01-00-00-00-68-4c-e0-00
  39. Kernel driver in use: r8169
  40. Kernel modules: r8169
  41. # lspci -v -s 0c:00.0
  42. 0c:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 09)
  43. Subsystem: ASUSTeK Computer Inc. P8 series motherboard---------mother
  44. Flags: bus master, fast devsel, latency 0, IRQ 41
  45. I/O ports at c000 [size=256]
  46. Memory at d2304000 (64-bit, prefetchable) [size=4K]
  47. Memory at d2300000 (64-bit, prefetchable) [size=16K]
  48. Capabilities: [40] Power Management version 3
  49. Capabilities: [50] MSI: Enable+ Count=1/1 Maskable- 64bit+
  50. Capabilities: [70] Express Endpoint, MSI 01
  51. Capabilities: [b0] MSI-X: Enable- Count=4 Masked-
  52. Capabilities: [d0] Vital Product Data
  53. Capabilities: [100] Advanced Error Reporting
  54. Capabilities: [140] Virtual Channel
  55. Capabilities: [160] Device Serial Number 95-00-00-00-68-4c-e0-00
  56. Kernel driver in use: r8169
  57. Kernel modules: r8169

 

 

  1. [root@localhost ~]# cat /proc/ioports | grep rtc
  2. [root@localhost ~]# cat /proc/ioports
  3. 00000000-0000ffff : PCI Bus 0000:00
  4. 00001000-00001fff : PCI Bus 0000:02
  5. 00001000-000010ff : 0000:02:00.0
  6. 00010000-0001ffff : PCI Bus 0000:80
  7. [root@localhost ~]# cat /proc/iomem
  8. 00000000-0000ffff : reserved
  9. 00010000-2abaffff : System RAM
  10. 00080000-00bfffff : Kernel code
  11. 00d70000-0194ffff : Kernel data
  12. 2abb0000-2b9cffff : reserved
  13. 2b9d0000-2c08ffff : System RAM
  14. 2c090000-2c0affff : reserved
  15. 2c0b0000-2f32ffff : System RAM
  16. 2f330000-2f69ffff : reserved
  17. 2f6a0000-2f6dffff : System RAM
  18. 2f6e0000-2f77ffff : reserved
  19. 2f780000-2f79ffff : System RAM
  20. 2f7a0000-2f8dffff : reserved
  21. 2f8e0000-2f96ffff : System RAM
  22. 2f970000-2fbfffff : reserved
  23. 2fc00000-2fc1ffff : System RAM
  24. 2fc20000-2fc7ffff : reserved
  25. 2fc80000-3f02ffff : System RAM
  26. 3f030000-3f05ffff : reserved
  27. 3f060000-3fbfffff : System RAM
  28. 40000000-43ffffff : reserved
  29. 44030000-4fffffff : reserved
  30. 50000000-7fffffff : System RAM
  31. 60000000-7fffffff : Crash kernel
  32. 90120000-9012ffff : HISI0243:00
  33. 90120000-9012ffff : HISI0243:00
  34. 90130000-9013ffff : HISI0243:01
  35. 90130000-9013ffff : HISI0243:01
  36. 90180000-9018ffff : HISI0213:00
  37. 90180000-9018ffff : HISI0213:00
  38. 90190000-9019ffff : HISI0213:01
  39. 90190000-9019ffff : HISI0213:01
  40. 901a0000-901affff : HISI0213:02
  41. 901a0000-901affff : HISI0213:02
  42. 901b0000-901bffff : HISI0213:03
  43. 901b0000-901bffff : HISI0213:03
  44. 901c0000-901cffff : HISI0213:04
  45. 901c0000-901cffff : HISI0213:04
  46. 901d0000-901dffff : HISI0213:05
  47. 901d0000-901dffff : HISI0213:05
  48. 94d20000-94d2ffff : HISI0233:00
  49. 94d20000-94d2ffff : HISI0233:00
  50. 94d30000-94d3ffff : HISI0233:01
  51. 94d30000-94d3ffff : HISI0233:01
  52. 94d40000-94d4ffff : HISI0233:02
  53. 94d40000-94d4ffff : HISI0233:02
  54. 94d50000-94d5ffff : HISI0233:03
  55. 94d50000-94d5ffff : HISI0233:03
  56. 98120000-9812ffff : HISI0243:02
  57. 98120000-9812ffff : HISI0243:02
  58. 98130000-9813ffff : HISI0243:03
  59. 98130000-9813ffff : HISI0243:03
  60. 98180000-9818ffff : HISI0213:08
  61. 98180000-9818ffff : HISI0213:08
  62. 98190000-9819ffff : HISI0213:09
  63. 98190000-9819ffff : HISI0213:09
  64. 981a0000-981affff : HISI0213:0a
  65. 981a0000-981affff : HISI0213:0a
  66. 981b0000-981bffff : HISI0213:0b
  67. 981b0000-981bffff : HISI0213:0b
  68. 981c0000-981cffff : HISI0213:0c
  69. 981c0000-981cffff : HISI0213:0c
  70. 981d0000-981dffff : HISI0213:0d
  71. 981d0000-981dffff : HISI0213:0d
  72. 9c200000-9c200fff : sbsa-gwdt.0
  73. 9c200000-9c200fff : sbsa-gwdt.0
  74. 9c210000-9c210fff : sbsa-gwdt.0
  75. 9c210000-9c210fff : sbsa-gwdt.0
  76. 9cd20000-9cd2ffff : HISI0233:04
  77. 9cd20000-9cd2ffff : HISI0233:04
  78. 9cd30000-9cd3ffff : HISI0233:05
  79. 9cd30000-9cd3ffff : HISI0233:05
  80. 9cd40000-9cd4ffff : HISI0233:06
  81. 9cd40000-9cd4ffff : HISI0233:06
  82. 9cd50000-9cd5ffff : HISI0233:07
  83. 9cd50000-9cd5ffff : HISI0233:07
  84. a2000000-a2ffffff : PCI Bus 0000:74
  85. a2000000-a2007fff : 0000:74:02.0
  86. a2000000-a2007fff : hisi_sas_v3_hw
  87. a2008000-a200ffff : 0000:74:04.0
  88. a2008000-a200ffff : hisi_sas_v3_hw
  89. a2010000-a2010fff : 0000:74:03.0
  90. a2010000-a2010fff : ahci
  91. a3000000-a3ffffff : PCI Bus 0000:b4
  92. a3000000-a3007fff : 0000:b4:02.0
  93. a3000000-a3007fff : hisi_sas_v3_hw
  94. a3008000-a300ffff : 0000:b4:04.0
  95. a3008000-a300ffff : hisi_sas_v3_hw
  96. a3010000-a3010fff : 0000:b4:03.0
  97. a3010000-a3010fff : ahci
  98. a8080000-a808ffff : HISI0152:0d
  99. a8080000-a808ffff : HISI0152:0c
  100. a8080000-a808ffff : HISI0152:0b
  101. a8080000-a808ffff : HISI0152:0a
  102. a8080000-a808ffff : HISI0152:09
  103. a8080000-a808ffff : HISI0152:08
  104. a8080000-a808ffff : HISI0152:05
  105. a8080000-a808ffff : HISI0152:04
  106. a8080000-a808ffff : HISI0152:03
  107. a8080000-a808ffff : HISI0152:02
  108. a8080000-a808ffff : HISI0152:01
  109. a8080000-a808ffff : HISI0152:00
  110. ac080000-ac08ffff : HISI0152:1b
  111. ac080000-ac08ffff : HISI0152:1a
  112. ac080000-ac08ffff : HISI0152:19
  113. ac080000-ac08ffff : HISI0152:18
  114. ac080000-ac08ffff : HISI0152:17
  115. ac080000-ac08ffff : HISI0152:16
  116. ac080000-ac08ffff : HISI0152:13
  117. ac080000-ac08ffff : HISI0152:12
  118. ac080000-ac08ffff : HISI0152:11
  119. ac080000-ac08ffff : HISI0152:10
  120. ac080000-ac08ffff : HISI0152:0f
  121. ac080000-ac08ffff : HISI0152:0e
  122. b0000000-cffeffff : PCI Bus 0000:80
  123. b0000000-b00fffff : PCI Bus 0000:81
  124. b0000000-b001ffff : 0000:81:00.0
  125. b0000000-b001ffff : nvme
  126. b0020000-b003ffff : 0000:81:00.0
  127. b0040000-b004ffff : 0000:81:00.0
  128. b0040000-b004ffff : nvme
  129. b0100000-b01fffff : PCI Bus 0000:84
  130. b0100000-b011ffff : 0000:84:00.0
  131. b0100000-b011ffff : nvme
  132. b0120000-b013ffff : 0000:84:00.0
  133. b0140000-b014ffff : 0000:84:00.0
  134. b0140000-b014ffff : nvme
  135. d0000000-d3ffffff : PCI ECAM
  136. d7400000-d76fffff : PCI ECAM
  137. d7800000-d79fffff : PCI ECAM
  138. d7a00000-d7afffff : PCI ECAM
  139. d7b00000-d7bfffff : PCI ECAM
  140. d7c00000-d7dfffff : PCI ECAM
  141. d8000000-d9ffffff : PCI ECAM
  142. db400000-db6fffff : PCI ECAM
  143. db800000-db9fffff : PCI ECAM
  144. dba00000-dbafffff : PCI ECAM
  145. dbb00000-dbbfffff : PCI ECAM
  146. dbc00000-dbdfffff : PCI ECAM
  147. e0000000-f7feffff : PCI Bus 0000:00
  148. e0000000-e5ffffff : PCI Bus 0000:07
  149. e0000000-e3ffffff : 0000:07:00.0
  150. e4000000-e40fffff : 0000:07:00.0
  151. e6000000-e8ffffff : PCI Bus 0000:08
  152. e6000000-e7ffffff : 0000:08:00.0
  153. e6000000-e612ffff : efifb
  154. e8000000-e81fffff : 0000:08:00.0
  155. e9000000-e91fffff : PCI Bus 0000:02
  156. e9000000-e90fffff : 0000:02:00.0
  157. e9100000-e91fffff : 0000:02:00.0
  158. e9200000-e93fffff : PCI Bus 0000:03
  159. e9200000-e93fffff : PCI Bus 0000:04
  160. e9200000-e92fffff : PCI Bus 0000:05
  161. e9200000-e92fffff : 0000:05:00.0
  162. e9300000-e93fffff : PCI Bus 0000:06
  163. e9300000-e93fffff : 0000:06:00.0
  164. 100000000-10001ffff : arm-smmu-v3.2.auto
  165. 100000000-10001ffff : arm-smmu-v3.2.auto
  166. 120000000-13fffffff : PCI Bus 0000:7c
  167. 120000000-1210fffff : PCI Bus 0000:7d
  168. 120000000-1200fffff : 0000:7d:00.0
  169. 120000000-1200fffff : hclge
  170. 120100000-1203fffff : 0000:7d:00.0
  171. 120400000-1204fffff : 0000:7d:00.1
  172. 120400000-1204fffff : hclge
  173. 120500000-1207fffff : 0000:7d:00.1
  174. 120800000-1208fffff : 0000:7d:00.2
  175. 120800000-1208fffff : hclge
  176. 120900000-120bfffff : 0000:7d:00.2
  177. 120c00000-120cfffff : 0000:7d:00.3
  178. 120c00000-120cfffff : hclge
  179. 120d00000-120ffffff : 0000:7d:00.3
  180. 121000000-12100ffff : 0000:7d:00.0
  181. 121000000-12100ffff : hclge
  182. 121010000-12103ffff : 0000:7d:00.0
  183. 121040000-12104ffff : 0000:7d:00.1
  184. 121040000-12104ffff : hclge
  185. 121050000-12107ffff : 0000:7d:00.1
  186. 121080000-12108ffff : 0000:7d:00.2
  187. 121080000-12108ffff : hclge
  188. 121090000-1210bffff : 0000:7d:00.2
  189. 1210c0000-1210cffff : 0000:7d:00.3
  190. 1210c0000-1210cffff : hclge
  191. 1210d0000-1210fffff : 0000:7d:00.3
  192. 140000000-14001ffff : arm-smmu-v3.3.auto
  193. 140000000-14001ffff : arm-smmu-v3.3.auto
  194. 141000000-141ffffff : PCI Bus 0000:74
  195. 144000000-145ffffff : PCI Bus 0000:74
  196. 148000000-14801ffff : arm-smmu-v3.0.auto
  197. 148000000-14801ffff : arm-smmu-v3.0.auto
  198. 148800000-148ffffff : PCI Bus 0000:7b
  199. 148800000-148803fff : 0000:7b:00.0
  200. 201000000-20101ffff : arm-smmu-v3.1.auto
  201. 201000000-20101ffff : arm-smmu-v3.1.auto
  202. 201080000-20108ffff : HISI0152:38
  203. 201130000-20113ffff : HISI0181:00
  204. 201130000-20113ffff : HISI0181:00
  205. 201160000-20116ffff : HISI02A2:00
  206. 201160000-20116ffff : HISI02A2:00
  207. 2011a0000-2011affff : HISI0173:00
  208. 204000000-205ffffff : HISI0343:00
  209. 206200000-206200fff : HISI0343:00
  210. 206210000-20621ffff : HISI0192:00
  211. 206220000-20622ffff : HISI0192:00
  212. 208000000-208bfffff : PCI Bus 0000:78
  213. 20c000000-20c1fffff : PCI Bus 0000:7a
  214. 20c000000-20c0fffff : 0000:7a:02.0
  215. 20c000000-20c0fffff : xhci-hcd
  216. 20c100000-20c100fff : 0000:7a:00.0
  217. 20c100000-20c100fff : ohci_hcd
  218. 20c101000-20c101fff : 0000:7a:01.0
  219. 20c101000-20c101fff : ehci_hcd
  220. 3f00000e4-3f00000e7 : IPI0001:00
  221. 3f00000e4-3f00000e4 : ipmi_si
  222. 3f00000e5-3f00000e5 : ipmi_si
  223. 3f00000e6-3f00000e6 : ipmi_si
  224. 3f00002f8-3f00002ff : serial
  225. 2080000000-3fffffffff : System RAM
  226. 4000000000-5fffffffff : System RAM
  227. 80000000000-82fffffffff : PCI Bus 0000:00
  228. 80000000000-800001fffff : PCI Bus 0000:02
  229. 80000000000-800000fffff : 0000:02:00.0
  230. 80000000000-800000fffff : megasas: LSI
  231. 80000100000-800001fffff : 0000:02:00.0
  232. 80000200000-800113fffff : PCI Bus 0000:03
  233. 80000200000-800113fffff : PCI Bus 0000:04
  234. 80000200000-80008afffff : PCI Bus 0000:05
  235. 80000200000-800002fffff : 0000:05:00.0
  236. 80000200000-800002fffff : vfio-pci
  237. 80000300000-80007afffff : 0000:05:00.0
  238. 80007b00000-80007b1ffff : 0000:05:00.0
  239. 80007b00000-80007b1ffff : vfio-pci
  240. 80007b20000-8000829ffff : 0000:05:00.0
  241. 800082a0000-80008a1ffff : 0000:05:00.0
  242. 80008a20000-80008a27fff : 0000:05:00.0
  243. 80008a28000-80008a2ffff : vfio sub-page reserved
  244. 80008b00000-800113fffff : PCI Bus 0000:06
  245. 80008b00000-80008bfffff : 0000:06:00.0
  246. 80008c00000-800103fffff : 0000:06:00.0
  247. 80010400000-8001041ffff : 0000:06:00.0
  248. 80010420000-80010b9ffff : 0000:06:00.0
  249. 80010ba0000-8001131ffff : 0000:06:00.0
  250. 80011320000-80011327fff : 0000:06:00.0
  251. 200090120000-20009012ffff : HISI0243:04
  252. 200090120000-20009012ffff : HISI0243:04
  253. 200090130000-20009013ffff : HISI0243:05
  254. 200090130000-20009013ffff : HISI0243:05
  255. 200090180000-20009018ffff : HISI0213:10
  256. 200090180000-20009018ffff : HISI0213:10
  257. 200090190000-20009019ffff : HISI0213:11
  258. 200090190000-20009019ffff : HISI0213:11
  259. 2000901a0000-2000901affff : HISI0213:12
  260. 2000901a0000-2000901affff : HISI0213:12
  261. 2000901b0000-2000901bffff : HISI0213:13
  262. 2000901b0000-2000901bffff : HISI0213:13
  263. 2000901c0000-2000901cffff : HISI0213:14
  264. 2000901c0000-2000901cffff : HISI0213:14
  265. 2000901d0000-2000901dffff : HISI0213:15
  266. 2000901d0000-2000901dffff : HISI0213:15
  267. 200094d20000-200094d2ffff : HISI0233:08
  268. 200094d20000-200094d2ffff : HISI0233:08
  269. 200094d30000-200094d3ffff : HISI0233:09
  270. 200094d30000-200094d3ffff : HISI0233:09
  271. 200094d40000-200094d4ffff : HISI0233:0a
  272. 200094d40000-200094d4ffff : HISI0233:0a
  273. 200094d50000-200094d5ffff : HISI0233:0b
  274. 200094d50000-200094d5ffff : HISI0233:0b
  275. 200098120000-20009812ffff : HISI0243:06
  276. 200098120000-20009812ffff : HISI0243:06
  277. 200098130000-20009813ffff : HISI0243:07
  278. 200098130000-20009813ffff : HISI0243:07
  279. 200098180000-20009818ffff : HISI0213:18
  280. 200098180000-20009818ffff : HISI0213:18
  281. 200098190000-20009819ffff : HISI0213:19
  282. 200098190000-20009819ffff : HISI0213:19
  283. 2000981a0000-2000981affff : HISI0213:1a
  284. 2000981a0000-2000981affff : HISI0213:1a
  285. 2000981b0000-2000981bffff : HISI0213:1b
  286. 2000981b0000-2000981bffff : HISI0213:1b
  287. 2000981c0000-2000981cffff : HISI0213:1c
  288. 2000981c0000-2000981cffff : HISI0213:1c
  289. 2000981d0000-2000981dffff : HISI0213:1d
  290. 2000981d0000-2000981dffff : HISI0213:1d
  291. 20009cd20000-20009cd2ffff : HISI0233:0c
  292. 20009cd20000-20009cd2ffff : HISI0233:0c
  293. 20009cd30000-20009cd3ffff : HISI0233:0d
  294. 20009cd30000-20009cd3ffff : HISI0233:0d
  295. 20009cd40000-20009cd4ffff : HISI0233:0e
  296. 20009cd40000-20009cd4ffff : HISI0233:0e
  297. 20009cd50000-20009cd5ffff : HISI0233:0f
  298. 20009cd50000-20009cd5ffff : HISI0233:0f
  299. 2000a8080000-2000a808ffff : HISI0152:29
  300. 2000a8080000-2000a808ffff : HISI0152:28
  301. 2000a8080000-2000a808ffff : HISI0152:27
  302. 2000a8080000-2000a808ffff : HISI0152:26
  303. 2000a8080000-2000a808ffff : HISI0152:25
  304. 2000a8080000-2000a808ffff : HISI0152:24
  305. 2000a8080000-2000a808ffff : HISI0152:21
  306. 2000a8080000-2000a808ffff : HISI0152:20
  307. 2000a8080000-2000a808ffff : HISI0152:1f
  308. 2000a8080000-2000a808ffff : HISI0152:1e
  309. 2000a8080000-2000a808ffff : HISI0152:1d
  310. 2000a8080000-2000a808ffff : HISI0152:1c
  311. 2000ac080000-2000ac08ffff : HISI0152:37
  312. 2000ac080000-2000ac08ffff : HISI0152:36
  313. 2000ac080000-2000ac08ffff : HISI0152:35
  314. 2000ac080000-2000ac08ffff : HISI0152:34
  315. 2000ac080000-2000ac08ffff : HISI0152:33
  316. 2000ac080000-2000ac08ffff : HISI0152:32
  317. 2000ac080000-2000ac08ffff : HISI0152:2f
  318. 2000ac080000-2000ac08ffff : HISI0152:2e
  319. 2000ac080000-2000ac08ffff : HISI0152:2d
  320. 2000ac080000-2000ac08ffff : HISI0152:2c
  321. 2000ac080000-2000ac08ffff : HISI0152:2b
  322. 2000ac080000-2000ac08ffff : HISI0152:2a
  323. 200100000000-20010001ffff : arm-smmu-v3.6.auto
  324. 200100000000-20010001ffff : arm-smmu-v3.6.auto
  325. 200120000000-20013fffffff : PCI Bus 0000:bc
  326. 200140000000-20014001ffff : arm-smmu-v3.7.auto
  327. 200140000000-20014001ffff : arm-smmu-v3.7.auto
  328. 200141000000-200141ffffff : PCI Bus 0000:b4
  329. 200144000000-200145ffffff : PCI Bus 0000:b4
  330. 200148000000-20014801ffff : arm-smmu-v3.4.auto
  331. 200148000000-20014801ffff : arm-smmu-v3.4.auto
  332. 200148800000-200148ffffff : PCI Bus 0000:bb
  333. 200148800000-200148803fff : 0000:bb:00.0
  334. 200201000000-20020101ffff : arm-smmu-v3.5.auto
  335. 200201000000-20020101ffff : arm-smmu-v3.5.auto
  336. 200208000000-200208bfffff : PCI Bus 0000:b8
  337. 20020c000000-20020c1fffff : PCI Bus 0000:ba
  338. 20020c000000-20020c0fffff : 0000:ba:02.0
  339. 20020c000000-20020c0fffff : xhci-hcd
  340. 20020c100000-20020c100fff : 0000:ba:00.0
  341. 20020c100000-20020c100fff : ohci_hcd
  342. 20020c101000-20020c101fff : 0000:ba:01.0
  343. 20020c101000-20020c101fff : ehci_hcd
  344. 202000000000-203fffffffff : System RAM
  345. 204000000000-205fffffffff : System RAM
  346. 280000000000-282fffffffff : PCI Bus 0000:80
  347. [root@localhost ~]# cat /proc/iomem | grep vfio
  348. 80000200000-800002fffff : vfio-pci
  349. 80007b00000-80007b1ffff : vfio-pci
  350. 80008a28000-80008a2ffff : vfio sub-page reserved
  351. [root@localhost ~]# ls /sys/bus/pci/drivers/
  352. ahci hinic nvme uhci_hcd
  353. ata_piix hisi_sas_v3_hw ohci-pci vfio-pci
  354. ehci-pci hns3 pcieport xhci_hcd
  355. exar_serial ipmi_si pci-stub
  356. hibmc-drm megaraid_sas serial
  357. [root@localhost ~]# ls /sys/bus/pci/drivers/vfio-pci/
  358. 0000:05:00.0 bind new_id uevent
  359. 0000:06:00.0 module remove_id unbind
  360. [root@localhost ~]# ls /sys/bus/pci/drivers/vfio-pci/0000:05:00.0
  361. broken_parity_status msi_irqs
  362. class numa_node
  363. config power
  364. consistent_dma_mask_bits remove
  365. current_link_speed rescan
  366. current_link_width reset
  367. d3cold_allowed resource
  368. device resource0
  369. devspec resource2
  370. dma_mask_bits resource4
  371. driver revision
  372. driver_override rom
  373. enable sriov_drivers_autoprobe
  374. iommu sriov_numvfs
  375. iommu_group sriov_totalvfs
  376. irq subsystem
  377. local_cpulist subsystem_device
  378. local_cpus subsystem_vendor
  379. max_link_speed uevent
  380. max_link_width vendor
  381. modalias vpd
  382. msi_bus
  383. [root@localhost ~]# ls /sys/bus/pci/drivers/vfio-pci/0000\:05\:00.0/resource*
  384. /sys/bus/pci/drivers/vfio-pci/0000:05:00.0/resource
  385. /sys/bus/pci/drivers/vfio-pci/0000:05:00.0/resource0
  386. /sys/bus/pci/drivers/vfio-pci/0000:05:00.0/resource2
  387. /sys/bus/pci/drivers/vfio-pci/0000:05:00.0/resource4
  388. [root@localhost ~]# cat /sys/bus/pci/drivers/vfio-pci/0000\:05\:00.0/resource*
  389. 0x0000080007b00000 0x0000080007b1ffff 0x000000000014220c
  390. 0x0000000000000000 0x0000000000000000 0x0000000000000000
  391. 0x0000080008a20000 0x0000080008a27fff 0x000000000014220c
  392. 0x0000000000000000 0x0000000000000000 0x0000000000000000---------------------
  393. 0x0000080000200000 0x00000800002fffff 0x000000000014220c
  394. 0x0000000000000000 0x0000000000000000 0x0000000000000000
  395. 0x00000000e9200000 0x00000000e92fffff 0x0000000000046200
  396. 0x0000080007b20000 0x000008000829ffff 0x000000000014220c
  397. 0x0000000000000000 0x0000000000000000 0x0000000000000000
  398. 0x00000800082a0000 0x0000080008a1ffff 0x000000000014220c
  399. 0x0000000000000000 0x0000000000000000 0x0000000000000000
  400. 0x0000080000300000 0x0000080007afffff 0x000000000014220c
  401. 0x0000000000000000 0x0000000000000000 0x0000000000000000
  402. cat: /sys/bus/pci/drivers/vfio-pci/0000:05:00.0/resource0: Input/output error
  403. cat: /sys/bus/pci/drivers/vfio-pci/0000:05:00.0/resource2: Input/output error
  404. cat: /sys/bus/pci/drivers/vfio-pci/0000:05:00.0/resource4: Input/output error
  405. [root@localhost ~]#

 

  1. 80000200000-80008afffff : PCI Bus 0000:05
  2. 80000200000-800002fffff : 0000:05:00.0
  3. 80000200000-800002fffff : vfio-pci
  4. 80000300000-80007afffff : 0000:05:00.0
  5. 80007b00000-80007b1ffff : 0000:05:00.0
  6. 80007b00000-80007b1ffff : vfio-pci
  7. 80007b20000-8000829ffff : 0000:05:00.0
  8. 800082a0000-80008a1ffff : 0000:05:00.0
  9. 80008a20000-80008a27fff : 0000:05:00.0
  10. 80008a28000-80008a2ffff : vfio sub-page reserved

 

  1. [root@localhost ~]# ls /sys/bus/pci/drivers/
  2. ahci hinic nvme uhci_hcd
  3. ata_piix hisi_sas_v3_hw ohci-pci vfio-pci
  4. ehci-pci hns3 pcieport xhci_hcd
  5. exar_serial ipmi_si pci-stub
  6. hibmc-drm megaraid_sas serial
  7. [root@localhost ~]# ls /sys/bus/pci/drivers/hinic/
  8. bind module new_id remove_id uevent unbind
  9. [root@localhost ~]# ls /sys/bus/pci/drivers/hinic3/
  10. ls: cannot access /sys/bus/pci/drivers/hinic3/: No such file or directory
  11. [root@localhost ~]# ls /sys/bus/pci/drivers/hns3/
  12. 0000:7d:00.0 0000:7d:00.2 bind new_id uevent
  13. 0000:7d:00.1 0000:7d:00.3 module remove_id unbind
  14. [root@localhost ~]# ls /sys/bus/pci/drivers/hns3/*/resource*
  15. /sys/bus/pci/drivers/hns3/0000:7d:00.0/resource
  16. /sys/bus/pci/drivers/hns3/0000:7d:00.0/resource0
  17. /sys/bus/pci/drivers/hns3/0000:7d:00.0/resource2
  18. /sys/bus/pci/drivers/hns3/0000:7d:00.1/resource
  19. /sys/bus/pci/drivers/hns3/0000:7d:00.1/resource0
  20. /sys/bus/pci/drivers/hns3/0000:7d:00.1/resource2
  21. /sys/bus/pci/drivers/hns3/0000:7d:00.2/resource
  22. /sys/bus/pci/drivers/hns3/0000:7d:00.2/resource0
  23. /sys/bus/pci/drivers/hns3/0000:7d:00.2/resource2
  24. /sys/bus/pci/drivers/hns3/0000:7d:00.3/resource
  25. /sys/bus/pci/drivers/hns3/0000:7d:00.3/resource0
  26. /sys/bus/pci/drivers/hns3/0000:7d:00.3/resource2
  27. [root@localhost ~]#

 

 

 

  1. 下面是我的电脑上的lspci命令的输出:
  2. 00:00.0 Host bridge: Intel Corporation 82845 845 (Brookdale) Chipset Host Bridge (rev 04)
  3. 00:01.0 PCI bridge: Intel Corporation 82845 845 (Brookdale) Chipset AGP Bridge(rev 04)
  4. 00:1d.0 USB Controller: Intel Corporation 82801CA/CAM USB (Hub #1) (rev 02)
  5. 00:1d.1 USB Controller: Intel Corporation 82801CA/CAM USB (Hub #2) (rev 02)
  6. 00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev 42)
  7. 00:1f.0 ISA bridge: Intel Corporation 82801CAM ISA Bridge (LPC) (rev 02)
  8. 00:1f.1 IDE interface: Intel Corporation 82801CAM IDE U100 (rev 02)
  9. 00:1f.3 SMBus: Intel Corporation 82801CA/CAM SMBus Controller (rev 02)
  10. 00:1f.5 Multimedia audio controller:Intel Corporation 82801CA/CAM AC\'97 Audio Controller (rev 02)
  11. 00:1f.6 Modem: Intel Corporation 82801CA/CAM AC\'97 Modem Controller (rev 02)
  12. 01:00.0 VGA compatible controller: nVidia Corporation NV17 [GeForce4 420 Go](rev a3)
  13. 02:00.0 FireWire (IEEE 1394): VIA Technologies, Inc. IEEE 1394 Host Controller(rev 46)
  14. 02:01.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+(rev 10)
  15. 02:04.0 CardBus bridge: O2 Micro, Inc. OZ6933 Cardbus Controller (rev 01)
  16. 02:04.1 CardBus bridge: O2 Micro, Inc. OZ6933 Cardbus Controller (rev 01)
  17. lspci没有标明域,但对于一台PC而言,一般只有一个域,即0号域。通过这个输出我们可以看到它是一个IDE interface
  18. 由上述的 输出可以看到,我的电脑上共有3PCI总线(0号,1号,2号)。在单个系统上,插入多个总线是通过桥(bridge)来完成的,桥是一种用来连接总线 的特殊PCI外设。所以,PCI系统的整体布局组织为树型,我们可以通过上面的lspci输出,来画出我的电脑上的PCI系统的树型结构:
  19. 00:00.0(主桥)--00:01.0(PCI桥)-----01:00:0(nVidia显卡)
  20. |
  21. |---00:1d(USB控制器)--00:1d:0(USB1号控制器)
  22. | |
  23. | |--00:1d:1(USB2号控制器) |
  24. |-00:1e:0(PCI桥)--02:00.0(IEEE1394)
  25. | |
  26. | |-02:01.0(8139网卡)
  27. | |
  28. | |-02:04(CardBus桥)-02:04.0(桥1
  29. | |
  30. | |--02:04.1(桥2)
  31. |
  32. |-00:1f(多功能板卡)-00:1f:0(ISA桥)
  33. |
  34. |--00:1f:1(IDE接口)
  35. |
  36. |--00:1f:3(SMBus)
  37. |
  38. |--00:1f:5(多媒体声音控制器)
  39. |
  40. |--00:1f:6(调制解调器)
  41. 由上图可以得出,我的电脑上共有8PCI设备,其中0号总线上(主桥)上连有4个,1号总线上连有1个,2号总线上连有3个。00:1f是一个连有5个功能的多功能板卡。

每一个PCI设备都有它映射的内存地址空间和它的I/O区域,这点是比较容易理解的。除此之外,PCI设备还有它的配置寄存器。有了配置寄存器, PCI的驱动程序就不需要探测就能访问设备。配置寄存器的布局是标准化的,配置空间的4个字节含有一个独一无二的功能ID,因此,驱动程序可通过查询外设 的特定 ID来识别其设备。所以,PCI接口标准在ISA之上的主要创新在于配置地址空间。
前文已讲过,PCI驱动程序不需要探测就能访问设备,而这得益于配置地址空间。在系统引导阶段,PCI硬件设备保持未激活状态,但每个PCI主板均配备有能够处理PCI的固件,固件通过读写PCI控制器中的寄存器,提供了对设备配置地址空间的访问。

配置地址空间的前64字节是标准化的,它提供了厂商号,设备号,版本号等信息,唯一标识一个PCI设备。同时,它也提供了最多可多达6个的I/O 地址区域,每个区域可以是内存也可以是I/O地址。这几个I/O地址区域是驱动程序找到设备映射到内存和I/O空间的具体位置的唯一途径。有了这两点, PCI驱动程序就完成了相当于探测的功能。

下面,我们来看一下8139too网卡设备的配置空间的详细情况。在2.6内核的系统中,可以在目录/sys/bus/pci/drivers/ 下看到很多以PCI设备名命名的目录,但不是说这些设备都存在于你的系统中。我们进入8139too目录,其中有一个以它的设备地址0000:02: 01.0命名的目录。在这个目录下可以找到该网卡设备相关的很多信息。其中resource记录了它的6个I/O地址区域。内容如下:
         0x0000000000003400 0x00000000000034ff 0x0000000000000101
         0x00000000e0000800 0x00000000e00008ff 0x0000000000000200
         0x0000000000000000 0x0000000000000000 0x0000000000000000
         0x0000000000000000 0x0000000000000000 0x0000000000000000
         0x0000000000000000 0x0000000000000000 0x0000000000000000
         0x0000000000000000 0x0000000000000000 0x0000000000000000
         0x0000000000000000 0x0000000000000000 0x0000000000000000
     由该文件可以看出,8139too设备使用了两个I/O地址区域,第一个是它映射的I/O端口范围,第二个是它映射的内存地址空间。关于这两个值可以在/proc/iomem和/proc/ioport中得到验证。

proc目录下有iomem和ioports文件,其主要描述了系统的io内存和io端口资源分布。
  对于外设的访问,最终都是通过读写设备上的寄存器实现的,寄存器不外乎:控制寄存器、状态寄存器和数据寄存器,这些外设寄存器也称为“IO端口”,并且一个外设的寄存器通常是连续编址的。
  不同的CPU体系对外设IO端口物理地址的编址方式也不同,分为I/O映射方式(I/O-mapped)和内存映射方式(Memory-mapped)。
  对X86熟悉点,以它为例:X86为外设专门实现有单独的地址空间,可以称为“I/O地址空间”或“I/O端口空间”,这个是独立与CPU和RAM物理地址空间,它将所有外设的IO端口均在这一空间进行编址。CPU通过设立专门的IN和OUT指令来访问这一空间中的地址单元(即I/O端口),这就是所谓的“I/O映射方式”(I/O-mapped)。和RAM物理地址空间相比,I/O地址空间通常都比较小,如x86 CPU的I/O空间就只有64KB(0-0xffff)。这是“I/O映射方式”的一个主要缺点,你可以通过cat /proc/ioports去查看,IO port空间的地址资源分配情况是以树状结构显示。这个源于x86平台的设计思想,目前基本不用了,获取这些资源的函数接口如request_region和ioremap。
  Linux设计了一个通用的数据结构resource来描述各种I/O资源(如:I/O端口、外设内存、DMA和IRQ等)。该结构定义在include/linux/ioport.h头文件中。Linux是以一种倒置的树形结构来管理每一类I/O资源。每一类I/O资源都对应有一颗倒置的资源树,树中的每一个节点都是个resource结构。基于上述这个思想,Linux将基于I/O映射方式的I/O端口和基于内存映射方式的I/O端口资源统称为“I/O区域”(I/O Region)。
  /proc/iomem这个文件记录的是物理地址的分配情况,也是以树状结构显示,对其使用也是request_mem_region和ioremap,空间大小为16EB,远大于io port的64K。
  ioport和iomem地址空间分别编制,均是从地址0开始,如果硬件支持MMIO,port地址也可以映射到memory空间去
  这里以pci设备为例,硬件的拓扑结构就决定了硬件在内存映射到CPU的物理地址,由于内存访问都是虚拟地址,所有就需要ioremap,此时物理内存是存在的,所以不用再分配内存,只需要做映射即可
  应用总结:使用I/O内存首先要申请,然后才能映射,使用I/O端口首先要申请,对I/O端口的请求是让内核知道你要访问该端口,内核并让你独占该端口.
  申请I/O端口的函数是request_region, 申请I/O内存的函数是request_mem_region。request_mem_region函数并没有做实际性的映射工作,只是告诉内核要使用一块内存地址,声明占有,也方便内核管理这些资源。重要的还是ioremap函数,ioremap主要是检查传入地址的合法性,建立页表(包括访问权限),完成物理地址到虚拟地址的转换。
  在intel的X86平台,GPIO资源也是类似应用,如果IO配置为SCI或者SMI中断,SCI可以产生GPE,然后经历acpi子系统,不过GPE中断号默认是0x10+GPIO端口号。

  如果request_mem_region和ioremap返回失败,那很可能是地址已经被占用,使用cat /proc/iomem查看物理地址的占用情况。

  树莓派手册中GPIO地址为总线地址,物理地址可以通过源码mach/platform.h中的GPIO_BASE变量得知

 

版权声明:本文为dream397原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/dream397/archive/2004/01/13/13549381.html