pci - tycoon3
参考https://cromwell-intl.com/open-source/sysfs.html
- bus:slot.function ------------
domain:bus:slot.function
,
- [root@localhost ~]# lspci
- 00:00.0 PCI bridge: Huawei Technologies Co., Ltd. HiSilicon PCIe Root Port with Gen4 (rev 21) ----------root
- 00:08.0 PCI bridge: Huawei Technologies Co., Ltd. HiSilicon PCIe Root Port with Gen4 (rev 21)------------root
- 00:0c.0 PCI bridge: Huawei Technologies Co., Ltd. HiSilicon PCIe Root Port with Gen4 (rev 21)
- 00:10.0 PCI bridge: Huawei Technologies Co., Ltd. HiSilicon PCIe Root Port with Gen4 (rev 21)
- 00:11.0 PCI bridge: Huawei Technologies Co., Ltd. HiSilicon PCIe Root Port with Gen4 (rev 21)
- 00:12.0 PCI bridge: Huawei Technologies Co., Ltd. HiSilicon PCIe Root Port with Gen4 (rev 21)
- 02:00.0 RAID bus controller: LSI Logic / Symbios Logic MegaRAID Tri-Mode SAS3508 (rev 01)
- 03:00.0 PCI bridge: Huawei Technologies Co., Ltd. Hi1822 Family Virtual Bridge (rev 45)
- 04:00.0 PCI bridge: Huawei Technologies Co., Ltd. Hi1822 Family Virtual Bridge (rev 45)
- 04:01.0 PCI bridge: Huawei Technologies Co., Ltd. Hi1822 Family Virtual Bridge (rev 45)
- 05:00.0 Ethernet controller: Huawei Technologies Co., Ltd. Hi1822 Family (2*25GE) (rev 45)
- 06:00.0 Ethernet controller: Huawei Technologies Co., Ltd. Hi1822 Family (2*25GE) (rev 45)
- 07:00.0 Signal processing controller: Huawei Technologies Co., Ltd. iBMA Virtual Network Adapter (rev 01)
- 08:00.0 VGA compatible controller: Huawei Technologies Co., Ltd. Hi1710 [iBMC Intelligent Management system chip w/VGA support] (rev 01)
- 74:02.0 Serial Attached SCSI controller: Huawei Technologies Co., Ltd. HiSilicon SAS 3.0 HBA (rev 21)
- 74:03.0 SATA controller: Huawei Technologies Co., Ltd. HiSilicon AHCI HBA (rev 21)
- 74:04.0 Serial Attached SCSI controller: Huawei Technologies Co., Ltd. HiSilicon SAS 3.0 HBA (rev 21)
- 7a:00.0 USB controller: Huawei Technologies Co., Ltd. HiSilicon USB 1.1 Host Controller (rev 21)
- 7a:01.0 USB controller: Huawei Technologies Co., Ltd. HiSilicon USB 2.0 2-port Host Controller (rev 21)
- 7a:02.0 USB controller: Huawei Technologies Co., Ltd. HiSilicon USB 3.0 Host Controller (rev 21)
- 7b:00.0 System peripheral: Huawei Technologies Co., Ltd. HiSilicon Embedded DMA Engine (rev 21)
- 7c:00.0 PCI bridge: Huawei Technologies Co., Ltd. HiSilicon PCI-PCI Bridge (rev 20)
- 7d:00.0 Ethernet controller: Huawei Technologies Co., Ltd. HNS GE/10GE/25GE RDMA Network Controller (rev 21)
- 7d:00.1 Ethernet controller: Huawei Technologies Co., Ltd. HNS GE/10GE/25GE Network Controller (rev 21)
- 7d:00.2 Ethernet controller: Huawei Technologies Co., Ltd. HNS GE/10GE/25GE RDMA Network Controller (rev 21)
- 7d:00.3 Ethernet controller: Huawei Technologies Co., Ltd. HNS GE/10GE/25GE Network Controller (rev 21)
- 80:00.0 PCI bridge: Huawei Technologies Co., Ltd. HiSilicon PCIe Root Port with Gen4 (rev 21)
- 80:08.0 PCI bridge: Huawei Technologies Co., Ltd. HiSilicon PCIe Root Port with Gen4 (rev 21)
- 80:0c.0 PCI bridge: Huawei Technologies Co., Ltd. HiSilicon PCIe Root Port with Gen4 (rev 21)
- 80:10.0 PCI bridge: Huawei Technologies Co., Ltd. HiSilicon PCIe Root Port with Gen4 (rev 21)
- 81:00.0 Non-Volatile memory controller: Huawei Technologies Co., Ltd. Device 3714 (rev 20)
- 84:00.0 Non-Volatile memory controller: Huawei Technologies Co., Ltd. Device 3714 (rev 20)
- b4:02.0 Serial Attached SCSI controller: Huawei Technologies Co., Ltd. HiSilicon SAS 3.0 HBA (rev 21)
- b4:03.0 SATA controller: Huawei Technologies Co., Ltd. HiSilicon AHCI HBA (rev 21)
- b4:04.0 Serial Attached SCSI controller: Huawei Technologies Co., Ltd. HiSilicon SAS 3.0 HBA (rev 21)
- ba:00.0 USB controller: Huawei Technologies Co., Ltd. HiSilicon USB 1.1 Host Controller (rev 21)
- ba:01.0 USB controller: Huawei Technologies Co., Ltd. HiSilicon USB 2.0 2-port Host Controller (rev 21)
- ba:02.0 USB controller: Huawei Technologies Co., Ltd. HiSilicon USB 3.0 Host Controller (rev 21)
- bb:00.0 System peripheral: Huawei Technologies Co., Ltd. HiSilicon Embedded DMA Engine (rev 21)
- bc:00.0 PCI bridge: Huawei Technologies Co., Ltd. HiSilicon PCI-PCI Bridge (rev 20)
- [root@localhost ~]# lspci -D
- 0000:00:00.0 PCI bridge: Huawei Technologies Co., Ltd. HiSilicon PCIe Root Port with Gen4 (rev 21)
- 0000:00:08.0 PCI bridge: Huawei Technologies Co., Ltd. HiSilicon PCIe Root Port with Gen4 (rev 21)
- 0000:00:0c.0 PCI bridge: Huawei Technologies Co., Ltd. HiSilicon PCIe Root Port with Gen4 (rev 21)
- 0000:00:10.0 PCI bridge: Huawei Technologies Co., Ltd. HiSilicon PCIe Root Port with Gen4 (rev 21)
- 0000:00:11.0 PCI bridge: Huawei Technologies Co., Ltd. HiSilicon PCIe Root Port with Gen4 (rev 21)
- 0000:00:12.0 PCI bridge: Huawei Technologies Co., Ltd. HiSilicon PCIe Root Port with Gen4 (rev 21)
- 0000:02:00.0 RAID bus controller: LSI Logic / Symbios Logic MegaRAID Tri-Mode SAS3508 (rev 01)
- 0000:03:00.0 PCI bridge: Huawei Technologies Co., Ltd. Hi1822 Family Virtual Bridge (rev 45)
- 0000:04:00.0 PCI bridge: Huawei Technologies Co., Ltd. Hi1822 Family Virtual Bridge (rev 45)
- 0000:04:01.0 PCI bridge: Huawei Technologies Co., Ltd. Hi1822 Family Virtual Bridge (rev 45)
- 0000:05:00.0 Ethernet controller: Huawei Technologies Co., Ltd. Hi1822 Family (2*25GE) (rev 45)
- 0000:06:00.0 Ethernet controller: Huawei Technologies Co., Ltd. Hi1822 Family (2*25GE) (rev 45)
- 0000:07:00.0 Signal processing controller: Huawei Technologies Co., Ltd. iBMA Virtual Network Adapter (rev 01)
- 0000:08:00.0 VGA compatible controller: Huawei Technologies Co., Ltd. Hi1710 [iBMC Intelligent Management system chip w/VGA support] (rev 01)
- 0000:74:02.0 Serial Attached SCSI controller: Huawei Technologies Co., Ltd. HiSilicon SAS 3.0 HBA (rev 21)
- 0000:74:03.0 SATA controller: Huawei Technologies Co., Ltd. HiSilicon AHCI HBA (rev 21)
- 0000:74:04.0 Serial Attached SCSI controller: Huawei Technologies Co., Ltd. HiSilicon SAS 3.0 HBA (rev 21)
- 0000:7a:00.0 USB controller: Huawei Technologies Co., Ltd. HiSilicon USB 1.1 Host Controller (rev 21)
- 0000:7a:01.0 USB controller: Huawei Technologies Co., Ltd. HiSilicon USB 2.0 2-port Host Controller (rev 21)
- 0000:7a:02.0 USB controller: Huawei Technologies Co., Ltd. HiSilicon USB 3.0 Host Controller (rev 21)
- 0000:7b:00.0 System peripheral: Huawei Technologies Co., Ltd. HiSilicon Embedded DMA Engine (rev 21)
- 0000:7c:00.0 PCI bridge: Huawei Technologies Co., Ltd. HiSilicon PCI-PCI Bridge (rev 20)
- 0000:7d:00.0 Ethernet controller: Huawei Technologies Co., Ltd. HNS GE/10GE/25GE RDMA Network Controller (rev 21)
- 0000:7d:00.1 Ethernet controller: Huawei Technologies Co., Ltd. HNS GE/10GE/25GE Network Controller (rev 21)
- 0000:7d:00.2 Ethernet controller: Huawei Technologies Co., Ltd. HNS GE/10GE/25GE RDMA Network Controller (rev 21)
- 0000:7d:00.3 Ethernet controller: Huawei Technologies Co., Ltd. HNS GE/10GE/25GE Network Controller (rev 21)
- 0000:80:00.0 PCI bridge: Huawei Technologies Co., Ltd. HiSilicon PCIe Root Port with Gen4 (rev 21)
- 0000:80:08.0 PCI bridge: Huawei Technologies Co., Ltd. HiSilicon PCIe Root Port with Gen4 (rev 21)
- 0000:80:0c.0 PCI bridge: Huawei Technologies Co., Ltd. HiSilicon PCIe Root Port with Gen4 (rev 21)
- 0000:80:10.0 PCI bridge: Huawei Technologies Co., Ltd. HiSilicon PCIe Root Port with Gen4 (rev 21)
- 0000:81:00.0 Non-Volatile memory controller: Huawei Technologies Co., Ltd. Device 3714 (rev 20)
- 0000:84:00.0 Non-Volatile memory controller: Huawei Technologies Co., Ltd. Device 3714 (rev 20)
- 0000:b4:02.0 Serial Attached SCSI controller: Huawei Technologies Co., Ltd. HiSilicon SAS 3.0 HBA (rev 21)
- 0000:b4:03.0 SATA controller: Huawei Technologies Co., Ltd. HiSilicon AHCI HBA (rev 21)
- 0000:b4:04.0 Serial Attached SCSI controller: Huawei Technologies Co., Ltd. HiSilicon SAS 3.0 HBA (rev 21)
- 0000:ba:00.0 USB controller: Huawei Technologies Co., Ltd. HiSilicon USB 1.1 Host Controller (rev 21)
- 0000:ba:01.0 USB controller: Huawei Technologies Co., Ltd. HiSilicon USB 2.0 2-port Host Controller (rev 21)
- 0000:ba:02.0 USB controller: Huawei Technologies Co., Ltd. HiSilicon USB 3.0 Host Controller (rev 21)
- 0000:bb:00.0 System peripheral: Huawei Technologies Co., Ltd. HiSilicon Embedded DMA Engine (rev 21)
- 0000:bc:00.0 PCI bridge: Huawei Technologies Co., Ltd. HiSilicon PCI-PCI Bridge (rev 20)
- [root@localhost ~]#
- 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.
- [root@localhost ~]# lspci -v -s 00:00.0
- 00:00.0 PCI bridge: Huawei Technologies Co., Ltd. HiSilicon PCIe Root Port with Gen4 (rev 21) (prog-if 00 [Normal decode])
- Flags: bus master, fast devsel, latency 0, IRQ 98, NUMA node 0
- Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
- Capabilities: [40] Express Root Port (Slot+), MSI 00
- Capabilities: [80] MSI: Enable+ Count=2/32 Maskable+ 64bit+
- Capabilities: [b0] Power Management version 3
- Capabilities: [d0] Subsystem: Huawei Technologies Co., Ltd. Device 371e
- Capabilities: [100] Advanced Error Reporting
- Capabilities: [310] #19
- Capabilities: [400] Virtual Channel
- Capabilities: [630] Access Control Services
- Capabilities: [700] #25
- Capabilities: [70c] #27
- Capabilities: [800] #23
- Capabilities: [880] #26
- Capabilities: [900] #23
- Kernel driver in use: pcieport
- [root@localhost ~]# lspci -v -s 00:0c.0
- 00:0c.0 PCI bridge: Huawei Technologies Co., Ltd. HiSilicon PCIe Root Port with Gen4 (rev 21) (prog-if 00 [Normal decode])
- Flags: bus master, fast devsel, latency 0, IRQ 102, NUMA node 0
- Bus: primary=00, secondary=03, subordinate=06, sec-latency=0
- Memory behind bridge: e9200000-e93fffff
- Prefetchable memory behind bridge: 0000080000200000-00000800113fffff
- Capabilities: [40] Express Root Port (Slot+), MSI 00
- Capabilities: [80] MSI: Enable+ Count=2/32 Maskable+ 64bit+
- Capabilities: [b0] Power Management version 3
- Capabilities: [d0] Subsystem: Huawei Technologies Co., Ltd. Device 371e
- Capabilities: [100] Advanced Error Reporting
- Capabilities: [310] #19
- Capabilities: [630] Access Control Services
- Capabilities: [700] #25
- Capabilities: [70c] #27
- Capabilities: [880] #26
- Kernel driver in use: pcieport
- [root@localhost ~]#
- [root@localhost ~]# lspci | grep Ethernet
- 05:00.0 Ethernet controller: Huawei Technologies Co., Ltd. Hi1822 Family (2*25GE) (rev 45)
- 06:00.0 Ethernet controller: Huawei Technologies Co., Ltd. Hi1822 Family (2*25GE) (rev 45)
- 7d:00.0 Ethernet controller: Huawei Technologies Co., Ltd. HNS GE/10GE/25GE RDMA Network Controller (rev 21)
- 7d:00.1 Ethernet controller: Huawei Technologies Co., Ltd. HNS GE/10GE/25GE Network Controller (rev 21)
- 7d:00.2 Ethernet controller: Huawei Technologies Co., Ltd. HNS GE/10GE/25GE RDMA Network Controller (rev 21)
- 7d:00.3 Ethernet controller: Huawei Technologies Co., Ltd. HNS GE/10GE/25GE Network Controller (rev 21)
- [root@localhost ~]# lspci -v -s 05:00.0
- 05:00.0 Ethernet controller: Huawei Technologies Co., Ltd. Hi1822 Family (2*25GE) (rev 45)
- Subsystem: Huawei Technologies Co., Ltd. Device d139
- Flags: bus master, fast devsel, latency 0, NUMA node 0
- Memory at 80007b00000 (64-bit, prefetchable) [size=128K]
- Memory at 80008a20000 (64-bit, prefetchable) [size=32K]
- Memory at 80000200000 (64-bit, prefetchable) [size=1M]
- Expansion ROM at e9200000 [disabled] [size=1M]
- Capabilities: [40] Express Endpoint, MSI 00
- Capabilities: [80] MSI: Enable- Count=1/32 Maskable+ 64bit+
- Capabilities: [a0] MSI-X: Enable+ Count=32 Masked-
- Capabilities: [b0] Power Management version 3
- Capabilities: [c0] Vital Product Data
- Capabilities: [100] Advanced Error Reporting
- Capabilities: [150] Alternative Routing-ID Interpretation (ARI)
- Capabilities: [200] Single Root I/O Virtualization (SR-IOV)
- Capabilities: [310] #19
- Capabilities: [4e0] Device Serial Number 44-a1-91-ff-ff-a4-9b-eb
- Capabilities: [4f0] Transaction Processing Hints
- Capabilities: [600] Vendor Specific Information: ID=0000 Rev=0 Len=028 <?>
- Capabilities: [630] Access Control Services
- Kernel driver in use: vfio-pci
- Kernel modules: hinic
- [root@localhost ~]# lspci -v -s 06:00.0
- 06:00.0 Ethernet controller: Huawei Technologies Co., Ltd. Hi1822 Family (2*25GE) (rev 45)
- Subsystem: Huawei Technologies Co., Ltd. Device d139
- Flags: fast devsel, NUMA node 0
- [virtual] Memory at 80010400000 (64-bit, prefetchable) [size=128K]
- [virtual] Memory at 80011320000 (64-bit, prefetchable) [size=32K]
- [virtual] Memory at 80008b00000 (64-bit, prefetchable) [size=1M]
- Expansion ROM at e9300000 [disabled] [size=1M]
- Capabilities: [40] Express Endpoint, MSI 00
- Capabilities: [80] MSI: Enable- Count=1/32 Maskable+ 64bit+
- Capabilities: [a0] MSI-X: Enable- Count=32 Masked-
- Capabilities: [b0] Power Management version 3
- Capabilities: [c0] Vital Product Data
- Capabilities: [100] Advanced Error Reporting
- Capabilities: [150] Alternative Routing-ID Interpretation (ARI)
- Capabilities: [200] Single Root I/O Virtualization (SR-IOV)
- Capabilities: [310] #19
- Capabilities: [4e0] Device Serial Number 44-a1-91-ff-ff-a4-9b-ec
- Capabilities: [4f0] Transaction Processing Hints
- Capabilities: [600] Vendor Specific Information: ID=0000 Rev=0 Len=028 <?>
- Capabilities: [630] Access Control Services
- Kernel driver in use: vfio-pci
- Kernel modules: hinic
- [root@localhost ~]#
- [root@localhost ~]# lspci -vt
- -+-[0000:bc]---00.0-[bd]--
- +-[0000:bb]---00.0 Huawei Technologies Co., Ltd. HiSilicon Embedded DMA Engine
- +-[0000:ba]-+-00.0 Huawei Technologies Co., Ltd. HiSilicon USB 1.1 Host Controller
- | +-01.0 Huawei Technologies Co., Ltd. HiSilicon USB 2.0 2-port Host Controller
- | \-02.0 Huawei Technologies Co., Ltd. HiSilicon USB 3.0 Host Controller
- +-[0000:b4]-+-02.0 Huawei Technologies Co., Ltd. HiSilicon SAS 3.0 HBA
- | +-03.0 Huawei Technologies Co., Ltd. HiSilicon AHCI HBA
- | \-04.0 Huawei Technologies Co., Ltd. HiSilicon SAS 3.0 HBA
- +-[0000:80]-+-00.0-[81]----00.0 Huawei Technologies Co., Ltd. Device 3714
- | +-08.0-[82]--
- | +-0c.0-[83]--
- | \-10.0-[84]----00.0 Huawei Technologies Co., Ltd. Device 3714
- +-[0000:7c]---00.0-[7d]--+-00.0 Huawei Technologies Co., Ltd. HNS GE/10GE/25GE RDMA Network Controller
- | +-00.1 Huawei Technologies Co., Ltd. HNS GE/10GE/25GE Network Controller
- | +-00.2 Huawei Technologies Co., Ltd. HNS GE/10GE/25GE RDMA Network Controller
- | \-00.3 Huawei Technologies Co., Ltd. HNS GE/10GE/25GE Network Controller
- +-[0000:7b]---00.0 Huawei Technologies Co., Ltd. HiSilicon Embedded DMA Engine
- +-[0000:7a]-+-00.0 Huawei Technologies Co., Ltd. HiSilicon USB 1.1 Host Controller
- | +-01.0 Huawei Technologies Co., Ltd. HiSilicon USB 2.0 2-port Host Controller
- | \-02.0 Huawei Technologies Co., Ltd. HiSilicon USB 3.0 Host Controller
- +-[0000:74]-+-02.0 Huawei Technologies Co., Ltd. HiSilicon SAS 3.0 HBA
- | +-03.0 Huawei Technologies Co., Ltd. HiSilicon AHCI HBA
- | \-04.0 Huawei Technologies Co., Ltd. HiSilicon SAS 3.0 HBA
- \-[0000:00]-+-00.0-[01]--
- +-08.0-[02]----00.0 LSI Logic / Symbios Logic MegaRAID Tri-Mode SAS3508
- +-0c.0-[03-06]----00.0-[04-06]--+-00.0-[05]----00.0 Huawei Technologies Co., Ltd. Hi1822 Family (2*25GE)
- | \-01.0-[06]----00.0 Huawei Technologies Co., Ltd. Hi1822 Family (2*25GE)
- +-10.0-[07]----00.0 Huawei Technologies Co., Ltd. iBMA Virtual Network Adapter
- +-11.0-[08]----00.0 Huawei Technologies Co., Ltd. Hi1710 [iBMC Intelligent Management system chip w/VGA support]
- \-12.0-[09]--
- [root@localhost ~]#
- https://cromwell-intl.com/open-source/sysfs.html
- Let\'s look closer at my Ethernet interfaces.
- # lspci | grep Ethernet
- 06:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 07)
- 07:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 07)
- 0c:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 09)
- 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:
- # lspci -v -s 06:00.0
- 06:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 07)
- Subsystem: Realtek Semiconductor Co., Ltd. Device 0123
- Flags: bus master, fast devsel, latency 0, IRQ 42
- I/O ports at b000 [size=256]
- Memory at fe200000 (64-bit, non-prefetchable) [size=4K]
- Memory at d2200000 (64-bit, prefetchable) [size=16K]
- Capabilities: [40] Power Management version 3
- Capabilities: [50] MSI: Enable+ Count=1/1 Maskable- 64bit+
- Capabilities: [70] Express Endpoint, MSI 01
- Capabilities: [b0] MSI-X: Enable- Count=4 Masked-
- Capabilities: [d0] Vital Product Data
- Capabilities: [100] Advanced Error Reporting
- Capabilities: [140] Virtual Channel
- Capabilities: [160] Device Serial Number 01-00-00-00-68-4c-e0-00
- Kernel driver in use: r8169
- Kernel modules: r8169
- # lspci -v -s 07:00.0
- 07:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 07)
- Subsystem: Realtek Semiconductor Co., Ltd. Device 0123
- Flags: bus master, fast devsel, latency 0, IRQ 43
- I/O ports at a000 [size=256]
- Memory at fe100000 (64-bit, non-prefetchable) [size=4K]
- Memory at d2100000 (64-bit, prefetchable) [size=16K]
- Capabilities: [40] Power Management version 3
- Capabilities: [50] MSI: Enable+ Count=1/1 Maskable- 64bit+
- Capabilities: [70] Express Endpoint, MSI 01
- Capabilities: [b0] MSI-X: Enable- Count=4 Masked-
- Capabilities: [d0] Vital Product Data
- Capabilities: [100] Advanced Error Reporting
- Capabilities: [140] Virtual Channel
- Capabilities: [160] Device Serial Number 01-00-00-00-68-4c-e0-00
- Kernel driver in use: r8169
- Kernel modules: r8169
- # lspci -v -s 0c:00.0
- 0c:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 09)
- Subsystem: ASUSTeK Computer Inc. P8 series motherboard---------mother
- Flags: bus master, fast devsel, latency 0, IRQ 41
- I/O ports at c000 [size=256]
- Memory at d2304000 (64-bit, prefetchable) [size=4K]
- Memory at d2300000 (64-bit, prefetchable) [size=16K]
- Capabilities: [40] Power Management version 3
- Capabilities: [50] MSI: Enable+ Count=1/1 Maskable- 64bit+
- Capabilities: [70] Express Endpoint, MSI 01
- Capabilities: [b0] MSI-X: Enable- Count=4 Masked-
- Capabilities: [d0] Vital Product Data
- Capabilities: [100] Advanced Error Reporting
- Capabilities: [140] Virtual Channel
- Capabilities: [160] Device Serial Number 95-00-00-00-68-4c-e0-00
- Kernel driver in use: r8169
- Kernel modules: r8169
- [root@localhost ~]# cat /proc/ioports | grep rtc
- [root@localhost ~]# cat /proc/ioports
- 00000000-0000ffff : PCI Bus 0000:00
- 00001000-00001fff : PCI Bus 0000:02
- 00001000-000010ff : 0000:02:00.0
- 00010000-0001ffff : PCI Bus 0000:80
- [root@localhost ~]# cat /proc/iomem
- 00000000-0000ffff : reserved
- 00010000-2abaffff : System RAM
- 00080000-00bfffff : Kernel code
- 00d70000-0194ffff : Kernel data
- 2abb0000-2b9cffff : reserved
- 2b9d0000-2c08ffff : System RAM
- 2c090000-2c0affff : reserved
- 2c0b0000-2f32ffff : System RAM
- 2f330000-2f69ffff : reserved
- 2f6a0000-2f6dffff : System RAM
- 2f6e0000-2f77ffff : reserved
- 2f780000-2f79ffff : System RAM
- 2f7a0000-2f8dffff : reserved
- 2f8e0000-2f96ffff : System RAM
- 2f970000-2fbfffff : reserved
- 2fc00000-2fc1ffff : System RAM
- 2fc20000-2fc7ffff : reserved
- 2fc80000-3f02ffff : System RAM
- 3f030000-3f05ffff : reserved
- 3f060000-3fbfffff : System RAM
- 40000000-43ffffff : reserved
- 44030000-4fffffff : reserved
- 50000000-7fffffff : System RAM
- 60000000-7fffffff : Crash kernel
- 90120000-9012ffff : HISI0243:00
- 90120000-9012ffff : HISI0243:00
- 90130000-9013ffff : HISI0243:01
- 90130000-9013ffff : HISI0243:01
- 90180000-9018ffff : HISI0213:00
- 90180000-9018ffff : HISI0213:00
- 90190000-9019ffff : HISI0213:01
- 90190000-9019ffff : HISI0213:01
- 901a0000-901affff : HISI0213:02
- 901a0000-901affff : HISI0213:02
- 901b0000-901bffff : HISI0213:03
- 901b0000-901bffff : HISI0213:03
- 901c0000-901cffff : HISI0213:04
- 901c0000-901cffff : HISI0213:04
- 901d0000-901dffff : HISI0213:05
- 901d0000-901dffff : HISI0213:05
- 94d20000-94d2ffff : HISI0233:00
- 94d20000-94d2ffff : HISI0233:00
- 94d30000-94d3ffff : HISI0233:01
- 94d30000-94d3ffff : HISI0233:01
- 94d40000-94d4ffff : HISI0233:02
- 94d40000-94d4ffff : HISI0233:02
- 94d50000-94d5ffff : HISI0233:03
- 94d50000-94d5ffff : HISI0233:03
- 98120000-9812ffff : HISI0243:02
- 98120000-9812ffff : HISI0243:02
- 98130000-9813ffff : HISI0243:03
- 98130000-9813ffff : HISI0243:03
- 98180000-9818ffff : HISI0213:08
- 98180000-9818ffff : HISI0213:08
- 98190000-9819ffff : HISI0213:09
- 98190000-9819ffff : HISI0213:09
- 981a0000-981affff : HISI0213:0a
- 981a0000-981affff : HISI0213:0a
- 981b0000-981bffff : HISI0213:0b
- 981b0000-981bffff : HISI0213:0b
- 981c0000-981cffff : HISI0213:0c
- 981c0000-981cffff : HISI0213:0c
- 981d0000-981dffff : HISI0213:0d
- 981d0000-981dffff : HISI0213:0d
- 9c200000-9c200fff : sbsa-gwdt.0
- 9c200000-9c200fff : sbsa-gwdt.0
- 9c210000-9c210fff : sbsa-gwdt.0
- 9c210000-9c210fff : sbsa-gwdt.0
- 9cd20000-9cd2ffff : HISI0233:04
- 9cd20000-9cd2ffff : HISI0233:04
- 9cd30000-9cd3ffff : HISI0233:05
- 9cd30000-9cd3ffff : HISI0233:05
- 9cd40000-9cd4ffff : HISI0233:06
- 9cd40000-9cd4ffff : HISI0233:06
- 9cd50000-9cd5ffff : HISI0233:07
- 9cd50000-9cd5ffff : HISI0233:07
- a2000000-a2ffffff : PCI Bus 0000:74
- a2000000-a2007fff : 0000:74:02.0
- a2000000-a2007fff : hisi_sas_v3_hw
- a2008000-a200ffff : 0000:74:04.0
- a2008000-a200ffff : hisi_sas_v3_hw
- a2010000-a2010fff : 0000:74:03.0
- a2010000-a2010fff : ahci
- a3000000-a3ffffff : PCI Bus 0000:b4
- a3000000-a3007fff : 0000:b4:02.0
- a3000000-a3007fff : hisi_sas_v3_hw
- a3008000-a300ffff : 0000:b4:04.0
- a3008000-a300ffff : hisi_sas_v3_hw
- a3010000-a3010fff : 0000:b4:03.0
- a3010000-a3010fff : ahci
- a8080000-a808ffff : HISI0152:0d
- a8080000-a808ffff : HISI0152:0c
- a8080000-a808ffff : HISI0152:0b
- a8080000-a808ffff : HISI0152:0a
- a8080000-a808ffff : HISI0152:09
- a8080000-a808ffff : HISI0152:08
- a8080000-a808ffff : HISI0152:05
- a8080000-a808ffff : HISI0152:04
- a8080000-a808ffff : HISI0152:03
- a8080000-a808ffff : HISI0152:02
- a8080000-a808ffff : HISI0152:01
- a8080000-a808ffff : HISI0152:00
- ac080000-ac08ffff : HISI0152:1b
- ac080000-ac08ffff : HISI0152:1a
- ac080000-ac08ffff : HISI0152:19
- ac080000-ac08ffff : HISI0152:18
- ac080000-ac08ffff : HISI0152:17
- ac080000-ac08ffff : HISI0152:16
- ac080000-ac08ffff : HISI0152:13
- ac080000-ac08ffff : HISI0152:12
- ac080000-ac08ffff : HISI0152:11
- ac080000-ac08ffff : HISI0152:10
- ac080000-ac08ffff : HISI0152:0f
- ac080000-ac08ffff : HISI0152:0e
- b0000000-cffeffff : PCI Bus 0000:80
- b0000000-b00fffff : PCI Bus 0000:81
- b0000000-b001ffff : 0000:81:00.0
- b0000000-b001ffff : nvme
- b0020000-b003ffff : 0000:81:00.0
- b0040000-b004ffff : 0000:81:00.0
- b0040000-b004ffff : nvme
- b0100000-b01fffff : PCI Bus 0000:84
- b0100000-b011ffff : 0000:84:00.0
- b0100000-b011ffff : nvme
- b0120000-b013ffff : 0000:84:00.0
- b0140000-b014ffff : 0000:84:00.0
- b0140000-b014ffff : nvme
- d0000000-d3ffffff : PCI ECAM
- d7400000-d76fffff : PCI ECAM
- d7800000-d79fffff : PCI ECAM
- d7a00000-d7afffff : PCI ECAM
- d7b00000-d7bfffff : PCI ECAM
- d7c00000-d7dfffff : PCI ECAM
- d8000000-d9ffffff : PCI ECAM
- db400000-db6fffff : PCI ECAM
- db800000-db9fffff : PCI ECAM
- dba00000-dbafffff : PCI ECAM
- dbb00000-dbbfffff : PCI ECAM
- dbc00000-dbdfffff : PCI ECAM
- e0000000-f7feffff : PCI Bus 0000:00
- e0000000-e5ffffff : PCI Bus 0000:07
- e0000000-e3ffffff : 0000:07:00.0
- e4000000-e40fffff : 0000:07:00.0
- e6000000-e8ffffff : PCI Bus 0000:08
- e6000000-e7ffffff : 0000:08:00.0
- e6000000-e612ffff : efifb
- e8000000-e81fffff : 0000:08:00.0
- e9000000-e91fffff : PCI Bus 0000:02
- e9000000-e90fffff : 0000:02:00.0
- e9100000-e91fffff : 0000:02:00.0
- e9200000-e93fffff : PCI Bus 0000:03
- e9200000-e93fffff : PCI Bus 0000:04
- e9200000-e92fffff : PCI Bus 0000:05
- e9200000-e92fffff : 0000:05:00.0
- e9300000-e93fffff : PCI Bus 0000:06
- e9300000-e93fffff : 0000:06:00.0
- 100000000-10001ffff : arm-smmu-v3.2.auto
- 100000000-10001ffff : arm-smmu-v3.2.auto
- 120000000-13fffffff : PCI Bus 0000:7c
- 120000000-1210fffff : PCI Bus 0000:7d
- 120000000-1200fffff : 0000:7d:00.0
- 120000000-1200fffff : hclge
- 120100000-1203fffff : 0000:7d:00.0
- 120400000-1204fffff : 0000:7d:00.1
- 120400000-1204fffff : hclge
- 120500000-1207fffff : 0000:7d:00.1
- 120800000-1208fffff : 0000:7d:00.2
- 120800000-1208fffff : hclge
- 120900000-120bfffff : 0000:7d:00.2
- 120c00000-120cfffff : 0000:7d:00.3
- 120c00000-120cfffff : hclge
- 120d00000-120ffffff : 0000:7d:00.3
- 121000000-12100ffff : 0000:7d:00.0
- 121000000-12100ffff : hclge
- 121010000-12103ffff : 0000:7d:00.0
- 121040000-12104ffff : 0000:7d:00.1
- 121040000-12104ffff : hclge
- 121050000-12107ffff : 0000:7d:00.1
- 121080000-12108ffff : 0000:7d:00.2
- 121080000-12108ffff : hclge
- 121090000-1210bffff : 0000:7d:00.2
- 1210c0000-1210cffff : 0000:7d:00.3
- 1210c0000-1210cffff : hclge
- 1210d0000-1210fffff : 0000:7d:00.3
- 140000000-14001ffff : arm-smmu-v3.3.auto
- 140000000-14001ffff : arm-smmu-v3.3.auto
- 141000000-141ffffff : PCI Bus 0000:74
- 144000000-145ffffff : PCI Bus 0000:74
- 148000000-14801ffff : arm-smmu-v3.0.auto
- 148000000-14801ffff : arm-smmu-v3.0.auto
- 148800000-148ffffff : PCI Bus 0000:7b
- 148800000-148803fff : 0000:7b:00.0
- 201000000-20101ffff : arm-smmu-v3.1.auto
- 201000000-20101ffff : arm-smmu-v3.1.auto
- 201080000-20108ffff : HISI0152:38
- 201130000-20113ffff : HISI0181:00
- 201130000-20113ffff : HISI0181:00
- 201160000-20116ffff : HISI02A2:00
- 201160000-20116ffff : HISI02A2:00
- 2011a0000-2011affff : HISI0173:00
- 204000000-205ffffff : HISI0343:00
- 206200000-206200fff : HISI0343:00
- 206210000-20621ffff : HISI0192:00
- 206220000-20622ffff : HISI0192:00
- 208000000-208bfffff : PCI Bus 0000:78
- 20c000000-20c1fffff : PCI Bus 0000:7a
- 20c000000-20c0fffff : 0000:7a:02.0
- 20c000000-20c0fffff : xhci-hcd
- 20c100000-20c100fff : 0000:7a:00.0
- 20c100000-20c100fff : ohci_hcd
- 20c101000-20c101fff : 0000:7a:01.0
- 20c101000-20c101fff : ehci_hcd
- 3f00000e4-3f00000e7 : IPI0001:00
- 3f00000e4-3f00000e4 : ipmi_si
- 3f00000e5-3f00000e5 : ipmi_si
- 3f00000e6-3f00000e6 : ipmi_si
- 3f00002f8-3f00002ff : serial
- 2080000000-3fffffffff : System RAM
- 4000000000-5fffffffff : System RAM
- 80000000000-82fffffffff : PCI Bus 0000:00
- 80000000000-800001fffff : PCI Bus 0000:02
- 80000000000-800000fffff : 0000:02:00.0
- 80000000000-800000fffff : megasas: LSI
- 80000100000-800001fffff : 0000:02:00.0
- 80000200000-800113fffff : PCI Bus 0000:03
- 80000200000-800113fffff : PCI Bus 0000:04
- 80000200000-80008afffff : PCI Bus 0000:05
- 80000200000-800002fffff : 0000:05:00.0
- 80000200000-800002fffff : vfio-pci
- 80000300000-80007afffff : 0000:05:00.0
- 80007b00000-80007b1ffff : 0000:05:00.0
- 80007b00000-80007b1ffff : vfio-pci
- 80007b20000-8000829ffff : 0000:05:00.0
- 800082a0000-80008a1ffff : 0000:05:00.0
- 80008a20000-80008a27fff : 0000:05:00.0
- 80008a28000-80008a2ffff : vfio sub-page reserved
- 80008b00000-800113fffff : PCI Bus 0000:06
- 80008b00000-80008bfffff : 0000:06:00.0
- 80008c00000-800103fffff : 0000:06:00.0
- 80010400000-8001041ffff : 0000:06:00.0
- 80010420000-80010b9ffff : 0000:06:00.0
- 80010ba0000-8001131ffff : 0000:06:00.0
- 80011320000-80011327fff : 0000:06:00.0
- 200090120000-20009012ffff : HISI0243:04
- 200090120000-20009012ffff : HISI0243:04
- 200090130000-20009013ffff : HISI0243:05
- 200090130000-20009013ffff : HISI0243:05
- 200090180000-20009018ffff : HISI0213:10
- 200090180000-20009018ffff : HISI0213:10
- 200090190000-20009019ffff : HISI0213:11
- 200090190000-20009019ffff : HISI0213:11
- 2000901a0000-2000901affff : HISI0213:12
- 2000901a0000-2000901affff : HISI0213:12
- 2000901b0000-2000901bffff : HISI0213:13
- 2000901b0000-2000901bffff : HISI0213:13
- 2000901c0000-2000901cffff : HISI0213:14
- 2000901c0000-2000901cffff : HISI0213:14
- 2000901d0000-2000901dffff : HISI0213:15
- 2000901d0000-2000901dffff : HISI0213:15
- 200094d20000-200094d2ffff : HISI0233:08
- 200094d20000-200094d2ffff : HISI0233:08
- 200094d30000-200094d3ffff : HISI0233:09
- 200094d30000-200094d3ffff : HISI0233:09
- 200094d40000-200094d4ffff : HISI0233:0a
- 200094d40000-200094d4ffff : HISI0233:0a
- 200094d50000-200094d5ffff : HISI0233:0b
- 200094d50000-200094d5ffff : HISI0233:0b
- 200098120000-20009812ffff : HISI0243:06
- 200098120000-20009812ffff : HISI0243:06
- 200098130000-20009813ffff : HISI0243:07
- 200098130000-20009813ffff : HISI0243:07
- 200098180000-20009818ffff : HISI0213:18
- 200098180000-20009818ffff : HISI0213:18
- 200098190000-20009819ffff : HISI0213:19
- 200098190000-20009819ffff : HISI0213:19
- 2000981a0000-2000981affff : HISI0213:1a
- 2000981a0000-2000981affff : HISI0213:1a
- 2000981b0000-2000981bffff : HISI0213:1b
- 2000981b0000-2000981bffff : HISI0213:1b
- 2000981c0000-2000981cffff : HISI0213:1c
- 2000981c0000-2000981cffff : HISI0213:1c
- 2000981d0000-2000981dffff : HISI0213:1d
- 2000981d0000-2000981dffff : HISI0213:1d
- 20009cd20000-20009cd2ffff : HISI0233:0c
- 20009cd20000-20009cd2ffff : HISI0233:0c
- 20009cd30000-20009cd3ffff : HISI0233:0d
- 20009cd30000-20009cd3ffff : HISI0233:0d
- 20009cd40000-20009cd4ffff : HISI0233:0e
- 20009cd40000-20009cd4ffff : HISI0233:0e
- 20009cd50000-20009cd5ffff : HISI0233:0f
- 20009cd50000-20009cd5ffff : HISI0233:0f
- 2000a8080000-2000a808ffff : HISI0152:29
- 2000a8080000-2000a808ffff : HISI0152:28
- 2000a8080000-2000a808ffff : HISI0152:27
- 2000a8080000-2000a808ffff : HISI0152:26
- 2000a8080000-2000a808ffff : HISI0152:25
- 2000a8080000-2000a808ffff : HISI0152:24
- 2000a8080000-2000a808ffff : HISI0152:21
- 2000a8080000-2000a808ffff : HISI0152:20
- 2000a8080000-2000a808ffff : HISI0152:1f
- 2000a8080000-2000a808ffff : HISI0152:1e
- 2000a8080000-2000a808ffff : HISI0152:1d
- 2000a8080000-2000a808ffff : HISI0152:1c
- 2000ac080000-2000ac08ffff : HISI0152:37
- 2000ac080000-2000ac08ffff : HISI0152:36
- 2000ac080000-2000ac08ffff : HISI0152:35
- 2000ac080000-2000ac08ffff : HISI0152:34
- 2000ac080000-2000ac08ffff : HISI0152:33
- 2000ac080000-2000ac08ffff : HISI0152:32
- 2000ac080000-2000ac08ffff : HISI0152:2f
- 2000ac080000-2000ac08ffff : HISI0152:2e
- 2000ac080000-2000ac08ffff : HISI0152:2d
- 2000ac080000-2000ac08ffff : HISI0152:2c
- 2000ac080000-2000ac08ffff : HISI0152:2b
- 2000ac080000-2000ac08ffff : HISI0152:2a
- 200100000000-20010001ffff : arm-smmu-v3.6.auto
- 200100000000-20010001ffff : arm-smmu-v3.6.auto
- 200120000000-20013fffffff : PCI Bus 0000:bc
- 200140000000-20014001ffff : arm-smmu-v3.7.auto
- 200140000000-20014001ffff : arm-smmu-v3.7.auto
- 200141000000-200141ffffff : PCI Bus 0000:b4
- 200144000000-200145ffffff : PCI Bus 0000:b4
- 200148000000-20014801ffff : arm-smmu-v3.4.auto
- 200148000000-20014801ffff : arm-smmu-v3.4.auto
- 200148800000-200148ffffff : PCI Bus 0000:bb
- 200148800000-200148803fff : 0000:bb:00.0
- 200201000000-20020101ffff : arm-smmu-v3.5.auto
- 200201000000-20020101ffff : arm-smmu-v3.5.auto
- 200208000000-200208bfffff : PCI Bus 0000:b8
- 20020c000000-20020c1fffff : PCI Bus 0000:ba
- 20020c000000-20020c0fffff : 0000:ba:02.0
- 20020c000000-20020c0fffff : xhci-hcd
- 20020c100000-20020c100fff : 0000:ba:00.0
- 20020c100000-20020c100fff : ohci_hcd
- 20020c101000-20020c101fff : 0000:ba:01.0
- 20020c101000-20020c101fff : ehci_hcd
- 202000000000-203fffffffff : System RAM
- 204000000000-205fffffffff : System RAM
- 280000000000-282fffffffff : PCI Bus 0000:80
- [root@localhost ~]# cat /proc/iomem | grep vfio
- 80000200000-800002fffff : vfio-pci
- 80007b00000-80007b1ffff : vfio-pci
- 80008a28000-80008a2ffff : vfio sub-page reserved
- [root@localhost ~]# ls /sys/bus/pci/drivers/
- ahci hinic nvme uhci_hcd
- ata_piix hisi_sas_v3_hw ohci-pci vfio-pci
- ehci-pci hns3 pcieport xhci_hcd
- exar_serial ipmi_si pci-stub
- hibmc-drm megaraid_sas serial
- [root@localhost ~]# ls /sys/bus/pci/drivers/vfio-pci/
- 0000:05:00.0 bind new_id uevent
- 0000:06:00.0 module remove_id unbind
- [root@localhost ~]# ls /sys/bus/pci/drivers/vfio-pci/0000:05:00.0
- broken_parity_status msi_irqs
- class numa_node
- config power
- consistent_dma_mask_bits remove
- current_link_speed rescan
- current_link_width reset
- d3cold_allowed resource
- device resource0
- devspec resource2
- dma_mask_bits resource4
- driver revision
- driver_override rom
- enable sriov_drivers_autoprobe
- iommu sriov_numvfs
- iommu_group sriov_totalvfs
- irq subsystem
- local_cpulist subsystem_device
- local_cpus subsystem_vendor
- max_link_speed uevent
- max_link_width vendor
- modalias vpd
- msi_bus
- [root@localhost ~]# ls /sys/bus/pci/drivers/vfio-pci/0000\:05\:00.0/resource*
- /sys/bus/pci/drivers/vfio-pci/0000:05:00.0/resource
- /sys/bus/pci/drivers/vfio-pci/0000:05:00.0/resource0
- /sys/bus/pci/drivers/vfio-pci/0000:05:00.0/resource2
- /sys/bus/pci/drivers/vfio-pci/0000:05:00.0/resource4
- [root@localhost ~]# cat /sys/bus/pci/drivers/vfio-pci/0000\:05\:00.0/resource*
- 0x0000080007b00000 0x0000080007b1ffff 0x000000000014220c
- 0x0000000000000000 0x0000000000000000 0x0000000000000000
- 0x0000080008a20000 0x0000080008a27fff 0x000000000014220c
- 0x0000000000000000 0x0000000000000000 0x0000000000000000---------------------
- 0x0000080000200000 0x00000800002fffff 0x000000000014220c
- 0x0000000000000000 0x0000000000000000 0x0000000000000000
- 0x00000000e9200000 0x00000000e92fffff 0x0000000000046200
- 0x0000080007b20000 0x000008000829ffff 0x000000000014220c
- 0x0000000000000000 0x0000000000000000 0x0000000000000000
- 0x00000800082a0000 0x0000080008a1ffff 0x000000000014220c
- 0x0000000000000000 0x0000000000000000 0x0000000000000000
- 0x0000080000300000 0x0000080007afffff 0x000000000014220c
- 0x0000000000000000 0x0000000000000000 0x0000000000000000
- cat: /sys/bus/pci/drivers/vfio-pci/0000:05:00.0/resource0: Input/output error
- cat: /sys/bus/pci/drivers/vfio-pci/0000:05:00.0/resource2: Input/output error
- cat: /sys/bus/pci/drivers/vfio-pci/0000:05:00.0/resource4: Input/output error
- [root@localhost ~]#
- 80000200000-80008afffff : PCI Bus 0000:05
- 80000200000-800002fffff : 0000:05:00.0
- 80000200000-800002fffff : vfio-pci
- 80000300000-80007afffff : 0000:05:00.0
- 80007b00000-80007b1ffff : 0000:05:00.0
- 80007b00000-80007b1ffff : vfio-pci
- 80007b20000-8000829ffff : 0000:05:00.0
- 800082a0000-80008a1ffff : 0000:05:00.0
- 80008a20000-80008a27fff : 0000:05:00.0
- 80008a28000-80008a2ffff : vfio sub-page reserved
- [root@localhost ~]# ls /sys/bus/pci/drivers/
- ahci hinic nvme uhci_hcd
- ata_piix hisi_sas_v3_hw ohci-pci vfio-pci
- ehci-pci hns3 pcieport xhci_hcd
- exar_serial ipmi_si pci-stub
- hibmc-drm megaraid_sas serial
- [root@localhost ~]# ls /sys/bus/pci/drivers/hinic/
- bind module new_id remove_id uevent unbind
- [root@localhost ~]# ls /sys/bus/pci/drivers/hinic3/
- ls: cannot access /sys/bus/pci/drivers/hinic3/: No such file or directory
- [root@localhost ~]# ls /sys/bus/pci/drivers/hns3/
- 0000:7d:00.0 0000:7d:00.2 bind new_id uevent
- 0000:7d:00.1 0000:7d:00.3 module remove_id unbind
- [root@localhost ~]# ls /sys/bus/pci/drivers/hns3/*/resource*
- /sys/bus/pci/drivers/hns3/0000:7d:00.0/resource
- /sys/bus/pci/drivers/hns3/0000:7d:00.0/resource0
- /sys/bus/pci/drivers/hns3/0000:7d:00.0/resource2
- /sys/bus/pci/drivers/hns3/0000:7d:00.1/resource
- /sys/bus/pci/drivers/hns3/0000:7d:00.1/resource0
- /sys/bus/pci/drivers/hns3/0000:7d:00.1/resource2
- /sys/bus/pci/drivers/hns3/0000:7d:00.2/resource
- /sys/bus/pci/drivers/hns3/0000:7d:00.2/resource0
- /sys/bus/pci/drivers/hns3/0000:7d:00.2/resource2
- /sys/bus/pci/drivers/hns3/0000:7d:00.3/resource
- /sys/bus/pci/drivers/hns3/0000:7d:00.3/resource0
- /sys/bus/pci/drivers/hns3/0000:7d:00.3/resource2
- [root@localhost ~]#
- 下面是我的电脑上的lspci命令的输出:
- 00:00.0 Host bridge: Intel Corporation 82845 845 (Brookdale) Chipset Host Bridge (rev 04)
- 00:01.0 PCI bridge: Intel Corporation 82845 845 (Brookdale) Chipset AGP Bridge(rev 04)
- 00:1d.0 USB Controller: Intel Corporation 82801CA/CAM USB (Hub #1) (rev 02)
- 00:1d.1 USB Controller: Intel Corporation 82801CA/CAM USB (Hub #2) (rev 02)
- 00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev 42)
- 00:1f.0 ISA bridge: Intel Corporation 82801CAM ISA Bridge (LPC) (rev 02)
- 00:1f.1 IDE interface: Intel Corporation 82801CAM IDE U100 (rev 02)
- 00:1f.3 SMBus: Intel Corporation 82801CA/CAM SMBus Controller (rev 02)
- 00:1f.5 Multimedia audio controller:Intel Corporation 82801CA/CAM AC\'97 Audio Controller (rev 02)
- 00:1f.6 Modem: Intel Corporation 82801CA/CAM AC\'97 Modem Controller (rev 02)
- 01:00.0 VGA compatible controller: nVidia Corporation NV17 [GeForce4 420 Go](rev a3)
- 02:00.0 FireWire (IEEE 1394): VIA Technologies, Inc. IEEE 1394 Host Controller(rev 46)
- 02:01.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+(rev 10)
- 02:04.0 CardBus bridge: O2 Micro, Inc. OZ6933 Cardbus Controller (rev 01)
- 02:04.1 CardBus bridge: O2 Micro, Inc. OZ6933 Cardbus Controller (rev 01)
- lspci没有标明域,但对于一台PC而言,一般只有一个域,即0号域。通过这个输出我们可以看到它是一个IDE interface。
- 由上述的 输出可以看到,我的电脑上共有3个PCI总线(0号,1号,2号)。在单个系统上,插入多个总线是通过桥(bridge)来完成的,桥是一种用来连接总线 的特殊PCI外设。所以,PCI系统的整体布局组织为树型,我们可以通过上面的lspci输出,来画出我的电脑上的PCI系统的树型结构:
- 00:00.0(主桥)--00:01.0(PCI桥)-----01:00:0(nVidia显卡)
- |
- |---00:1d(USB控制器)--00:1d:0(USB1号控制器)
- | |
- | |--00:1d:1(USB2号控制器) |
- |-00:1e:0(PCI桥)--02:00.0(IEEE1394)
- | |
- | |-02:01.0(8139网卡)
- | |
- | |-02:04(CardBus桥)-02:04.0(桥1)
- | |
- | |--02:04.1(桥2)
- |
- |-00:1f(多功能板卡)-00:1f:0(ISA桥)
- |
- |--00:1f:1(IDE接口)
- |
- |--00:1f:3(SMBus)
- |
- |--00:1f:5(多媒体声音控制器)
- |
- |--00:1f:6(调制解调器)
- 由上图可以得出,我的电脑上共有8个PCI设备,其中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变量得知