[PATCH v5 2/6] PCI: uniphier: Add misc interrupt handler to invoke PME and AER

Kunihiko Hayashi hayashi.kunihiko at socionext.com
Tue Jul 14 05:27:24 EDT 2020


Hi Lorenzo,

On 2020/07/11 1:14, Lorenzo Pieralisi wrote:
> On Wed, Jul 01, 2020 at 11:18:29AM +0900, Kunihiko Hayashi wrote:
> 
> [...]
> 
>>>>>>    -static void uniphier_pcie_irq_handler(struct irq_desc *desc)
>>>>>> +static void uniphier_pcie_misc_isr(struct pcie_port *pp, bool is_msi)
>>>>>>    {
>>>>>> -    struct pcie_port *pp = irq_desc_get_handler_data(desc);
>>>>>>        struct dw_pcie *pci = to_dw_pcie_from_pp(pp);
>>>>>>        struct uniphier_pcie_priv *priv = to_uniphier_pcie(pci);
>>>>>> -    struct irq_chip *chip = irq_desc_get_chip(desc);
>>>>>> -    unsigned long reg;
>>>>>> -    u32 val, bit, virq;
>>>>>> +    u32 val, virq;
>>>>>>    -    /* INT for debug */
>>>>>>        val = readl(priv->base + PCL_RCV_INT);
>>>>>>          if (val & PCL_CFG_BW_MGT_STATUS)
>>>>>>            dev_dbg(pci->dev, "Link Bandwidth Management Event\n");
>>>>>> +
>>>>>>        if (val & PCL_CFG_LINK_AUTO_BW_STATUS)
>>>>>>            dev_dbg(pci->dev, "Link Autonomous Bandwidth Event\n");
>>>>>> -    if (val & PCL_CFG_AER_RC_ERR_MSI_STATUS)
>>>>>> -        dev_dbg(pci->dev, "Root Error\n");
>>>>>> -    if (val & PCL_CFG_PME_MSI_STATUS)
>>>>>> -        dev_dbg(pci->dev, "PME Interrupt\n");
>>>>>> +
>>>>>> +    if (is_msi) {
>>>>>> +        if (val & PCL_CFG_AER_RC_ERR_MSI_STATUS)
>>>>>> +            dev_dbg(pci->dev, "Root Error Status\n");
>>>>>> +
>>>>>> +        if (val & PCL_CFG_PME_MSI_STATUS)
>>>>>> +            dev_dbg(pci->dev, "PME Interrupt\n");
>>>>>> +
>>>>>> +        if (val & (PCL_CFG_AER_RC_ERR_MSI_STATUS |
>>>>>> +               PCL_CFG_PME_MSI_STATUS)) {
>>>>>> +            virq = irq_linear_revmap(pp->irq_domain, 0);
>>>>>> +            generic_handle_irq(virq);
>>>>>> +        }
>>>>>> +    }
>>>>>
>>>>> Please have two handlers: one for interrupts that are from the RC,
>>>>> another for interrupts coming from the endpoints.
>>>> I assume that this handler treats interrupts from the RC only and
>>>> this is set on the member ".msi_host_isr" added in the patch 1/6.
>>>> I think that the handler for interrupts coming from endpoints should be
>>>> treated as a normal case (after calling .msi_host_isr in
>>>> dw_handle_msi_irq()).
>>>
>>> It looks pretty odd that you end-up dealing with both from the
>>> same "parent" interrupt. I guess this is in keeping with the
>>> rest of the DW PCIe hacks... :-/
>>
>> It might be odd, however, in case of UniPhier SoC,
>> both MSI interrupts from endpoints and PME/AER interrupts from RC are
>> asserted by same "parent" interrupt. In other words, PME/AER interrupts
>> are notified using the parent interrupt for MSI.
>>
>> MSI interrupts are treated as child interrupts with reference to
>> the status register in DW core. This is handled in a for-loop in
>> dw_handle_msi_irq().
>>
>> PME/AER interrupts are treated with reference to the status register
>> in UniPhier glue layer, however, this couldn't be handled in the same way
>> directly.
>>
>> So I'm trying to add .msi_host_isr function to handle this
>> with reference to the SoC-specific registers.
>>
>> This exported function asserts MSI-0 as a shared child interrupt.
>> As a result, PME/AER are registered like the followings in dmesg:
>>
>>     pcieport 0000:00:00.0: PME: Signaling with IRQ 25
>>     pcieport 0000:00:00.0: AER: enabled with IRQ 25
>>
>> And these interrupts are shared as MSI-0:
>>
>>     # cat /proc/interrupts | grep 25:
>>      25:          0          0          0          0   PCI-MSI   0 Edge      PCIe PME, aerdrv
>>
>> This might be a special case, though, I think that this is needed to handle
>> interrupts from RC sharing MSI parent.
> 
> Can you please send me (with this series *applied* of course and if
> possible with an endpoint MSI/MSI-X capable enabled):
> 
> - full dmesg log
> - lspci -vv output
> - cat /proc/interrupts
> 
> I need to understand how this system HW works before commenting any
> further.

Okay, I attach all the log to this mail.

This controller has MSI support only, and I attached R8169 ethernet card
to PCIe slot to enable the controller.

> 
>>> It is for Lorenzo to make up his mind about this anyway.
>>
>> I'd like to Lorenzo's opinion, too.
> 
> I am trying to understand how the HW is wired up (and that's what Marc
> asked as well) so first things first, please send the logs.

I hope this will help your understanding.

Thank you,

---
Best Regards
Kunihiko Hayashi
-------------- next part --------------
root at akebi96:~# dmesg
[    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd082]
[    0.000000] Linux version 5.8.0-rc4-next-20200710-00007-g868c2f1a3dad (hayashi at ubuntu) (aarch64-linux-gnu-gcc (Linaro GCC 7.5-2019.12) 7.5.0, GNU ld (Linaro_Binutils-2019.12) 2.28.2.20170706) #21 SMP PREEMPT Mon Jul 13 09:48:17 JST 2020
[    0.000000] Machine model: Akebi96
[    0.000000] efi: UEFI not found.
[    0.000000] cma: Reserved 32 MiB at 0x00000000fdc00000
[    0.000000] NUMA: No NUMA configuration found
[    0.000000] NUMA: Faking a node at [mem 0x0000000080000000-0x000000013fffffff]
[    0.000000] NUMA: NODE_DATA [mem 0x13f9f5340-0x13f9f723f]
[    0.000000] Zone ranges:
[    0.000000]   DMA      [mem 0x0000000080000000-0x00000000bfffffff]
[    0.000000]   DMA32    [mem 0x00000000c0000000-0x00000000ffffffff]
[    0.000000]   Normal   [mem 0x0000000100000000-0x000000013fffffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000080000000-0x0000000080ffffff]
[    0.000000]   node   0: [mem 0x0000000082000000-0x00000000bfffffff]
[    0.000000]   node   0: [mem 0x00000000c2000000-0x000000013fffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000080000000-0x000000013fffffff]
[    0.000000] On node 0 totalpages: 774144
[    0.000000]   DMA zone: 4096 pages used for memmap
[    0.000000]   DMA zone: 0 pages reserved
[    0.000000]   DMA zone: 258048 pages, LIFO batch:63
[    0.000000]   DMA32 zone: 4096 pages used for memmap
[    0.000000]   DMA32 zone: 253952 pages, LIFO batch:63
[    0.000000]   Normal zone: 4096 pages used for memmap
[    0.000000]   Normal zone: 262144 pages, LIFO batch:63
[    0.000000] psci: probing for conduit method from DT.
[    0.000000] psci: PSCIv1.1 detected in firmware.
[    0.000000] psci: Using standard PSCI v0.2 function IDs
[    0.000000] psci: Trusted OS migration not required
[    0.000000] psci: SMC Calling Convention v1.2
[    0.000000] percpu: Embedded 23 pages/cpu s54040 r8192 d31976 u94208
[    0.000000] pcpu-alloc: s54040 r8192 d31976 u94208 alloc=23*4096
[    0.000000] pcpu-alloc: [0] 0 [0] 1 [0] 2 [0] 3
[    0.000000] Detected PIPT I-cache on CPU0
[    0.000000] CPU features: detected: GIC system register CPU interface
[    0.000000] CPU features: detected: EL2 vector hardening
[    0.000000] Speculative Store Bypass Disable mitigation not required
[    0.000000] CPU features: detected: ARM errata 1165522, 1319367, or 1530923
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 761856
[    0.000000] Policy zone: Normal
[    0.000000] Kernel command line:
[    0.000000] Dentry cache hash table entries: 524288 (order: 10, 4194304 bytes, linear)
[    0.000000] Inode-cache hash table entries: 262144 (order: 9, 2097152 bytes, linear)
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000] software IO TLB: mapped [mem 0xbbfff000-0xbffff000] (64MB)
[    0.000000] Memory: 2881608K/3096576K available (14076K kernel code, 2240K rwdata, 7572K rodata, 5696K init, 486K bss, 182200K reserved, 32768K cma-reserved)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
[    0.000000] rcu: Preemptible hierarchical RCU implementation.
[    0.000000] rcu:     RCU event tracing is enabled.
[    0.000000] rcu:     RCU restricting CPUs from NR_CPUS=256 to nr_cpu_ids=4.
[    0.000000]  Trampoline variant of Tasks RCU enabled.
[    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies.
[    0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=4
[    0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
[    0.000000] GICv3: GIC: Using split EOI/Deactivate mode
[    0.000000] GICv3: 512 SPIs implemented
[    0.000000] GICv3: 0 Extended SPIs implemented
[    0.000000] GICv3: Distributor has no Range Selector support
[    0.000000] GICv3: 16 PPIs implemented
[    0.000000] GICv3: CPU0: found redistributor 0 region 0:0x000000005fe80000
[    0.000000] random: get_random_bytes called from start_kernel+0x314/0x4f0 with crng_init=0
[    0.000000] arch_timer: cp15 timer(s) running at 50.00MHz (phys).
[    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0xb8812736b, max_idle_ns: 440795202655 ns
[    0.000003] sched_clock: 56 bits at 50MHz, resolution 20ns, wraps every 4398046511100ns
[    0.000358] Console: colour dummy device 80x25
[    0.000628] printk: console [tty0] enabled
[    0.000690] Calibrating delay loop (skipped), value calculated using timer frequency.. 100.00 BogoMIPS (lpj=200000)
[    0.000705] pid_max: default: 32768 minimum: 301
[    0.000758] LSM: Security Framework initializing
[    0.000846] Mount-cache hash table entries: 8192 (order: 4, 65536 bytes, linear)
[    0.000905] Mountpoint-cache hash table entries: 8192 (order: 4, 65536 bytes, linear)
[    0.002094] rcu: Hierarchical SRCU implementation.
[    0.003161] EFI services will not be available.
[    0.003357] smp: Bringing up secondary CPUs ...
[    0.028171] Detected PIPT I-cache on CPU1
[    0.028201] GICv3: CPU1: found redistributor 1 region 0:0x000000005fea0000
[    0.028228] CPU1: Booted secondary processor 0x0000000001 [0x410fd082]
[    0.040780] CPU features: detected: ARM erratum 845719
[    0.040794] Detected VIPT I-cache on CPU2
[    0.040821] GICv3: CPU2: found redistributor 100 region 0:0x000000005fec0000
[    0.040852] CPU2: Booted secondary processor 0x0000000100 [0x410fd034]
[    0.053434] Detected VIPT I-cache on CPU3
[    0.053453] GICv3: CPU3: found redistributor 101 region 0:0x000000005fee0000
[    0.053471] CPU3: Booted secondary processor 0x0000000101 [0x410fd034]
[    0.053567] smp: Brought up 1 node, 4 CPUs
[    0.053628] SMP: Total of 4 processors activated.
[    0.053636] CPU features: detected: 32-bit EL0 Support
[    0.053644] CPU features: detected: CRC32 instructions
[    0.053652] CPU features: detected: 32-bit EL1 Support
[    0.069374] CPU: All CPU(s) started at EL2
[    0.069409] alternatives: patching kernel code
[    0.070560] devtmpfs: initialized
[    0.074955] KASLR disabled due to lack of seed
[    0.075508] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[    0.075541] futex hash table entries: 1024 (order: 4, 65536 bytes, linear)
[    0.076843] pinctrl core: initialized pinctrl subsystem
[    0.078133] thermal_sys: Registered thermal governor 'step_wise'
[    0.078136] thermal_sys: Registered thermal governor 'power_allocator'
[    0.078489] DMI not present or invalid.
[    0.079115] NET: Registered protocol family 16
[    0.080223] DMA: preallocated 512 KiB GFP_KERNEL pool for atomic allocations
[    0.080365] DMA: preallocated 512 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations
[    0.080608] DMA: preallocated 512 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations
[    0.080719] audit: initializing netlink subsys (disabled)
[    0.080920] audit: type=2000 audit(0.080:1): state=initialized audit_enabled=0 res=1
[    0.081732] cpuidle: using governor menu
[    0.081826] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.
[    0.081907] ASID allocator initialised with 65536 entries
[    0.083251] Serial: AMBA PL011 UART driver
[    0.106086] HugeTLB registered 1.00 GiB page size, pre-allocated 0 pages
[    0.106112] HugeTLB registered 32.0 MiB page size, pre-allocated 0 pages
[    0.106126] HugeTLB registered 2.00 MiB page size, pre-allocated 0 pages
[    0.106140] HugeTLB registered 64.0 KiB page size, pre-allocated 0 pages
[    0.107261] cryptd: max_cpu_qlen set to 1000
[    0.109289] ACPI: Interpreter disabled.
[    0.110385] iommu: Default domain type: Translated
[    0.110624] vgaarb: loaded
[    0.110992] SCSI subsystem initialized
[    0.111140] libata version 3.00 loaded.
[    0.111382] usbcore: registered new interface driver usbfs
[    0.111433] usbcore: registered new interface driver hub
[    0.111502] usbcore: registered new device driver usb
[    0.112240] pps_core: LinuxPPS API ver. 1 registered
[    0.112252] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti at linux.it>
[    0.112279] PTP clock support registered
[    0.112413] EDAC MC: Ver: 3.0.0
[    0.113709] FPGA manager framework
[    0.113811] Advanced Linux Sound Architecture Driver Initialized.
[    0.114454] clocksource: Switched to clocksource arch_sys_counter
[    0.114662] VFS: Disk quotas dquot_6.6.0
[    0.114727] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
[    0.114943] pnp: PnP ACPI: disabled
[    0.120538] NET: Registered protocol family 2
[    0.120950] tcp_listen_portaddr_hash hash table entries: 2048 (order: 3, 32768 bytes, linear)
[    0.121018] TCP established hash table entries: 32768 (order: 6, 262144 bytes, linear)
[    0.121260] TCP bind hash table entries: 32768 (order: 7, 524288 bytes, linear)
[    0.121802] TCP: Hash tables configured (established 32768 bind 32768)
[    0.121949] UDP hash table entries: 2048 (order: 4, 65536 bytes, linear)
[    0.122047] UDP-Lite hash table entries: 2048 (order: 4, 65536 bytes, linear)
[    0.122263] NET: Registered protocol family 1
[    0.122796] RPC: Registered named UNIX socket transport module.
[    0.122810] RPC: Registered udp transport module.
[    0.122821] RPC: Registered tcp transport module.
[    0.122831] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.122850] PCI: CLS 0 bytes, default 64
[    0.123057] Unpacking initramfs...
[    1.191696] Freeing initrd memory: 24236K
[    1.192241] kvm [1]: IPA Size Limit: 40bits
[    1.193026] kvm [1]: GICv3: no GICV resource entry
[    1.193040] kvm [1]: disabling GICv2 emulation
[    1.193069] kvm [1]: GIC system register CPU interface enabled
[    1.193178] kvm [1]: vgic interrupt IRQ1
[    1.193323] kvm [1]: Hyp mode initialized successfully
[    1.196991] Initialise system trusted keyrings
[    1.197142] workingset: timestamp_bits=44 max_order=20 bucket_order=0
[    1.203283] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    1.203979] NFS: Registering the id_resolver key type
[    1.204017] Key type id_resolver registered
[    1.204027] Key type id_legacy registered
[    1.204046] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
[    1.204229] 9p: Installing v9fs 9p2000 file system support
[    1.244795] Key type asymmetric registered
[    1.244810] Asymmetric key parser 'x509' registered
[    1.244850] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 245)
[    1.244867] io scheduler mq-deadline registered
[    1.244879] io scheduler kyber registered
[    1.253988] gpio-427 (xirq0): hogged as input
[    1.254024] gpio-437 (xirq10): hogged as input
[    1.256150] uniphier-pcie 66000000.pcie: invalid resource
[    1.257038] EINJ: ACPI disabled.
[    1.273041] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
[    1.275558] 54006800.serial: ttyS0 at MMIO 0x54006800 (irq = 7, base_baud = 3676470) is a 16550A
[    2.195244] printk: console [ttyS0] enabled
[    2.200114] 54006a00.serial: ttyS2 at MMIO 0x54006a00 (irq = 8, base_baud = 3676470) is a 16550A
[    2.209472] 54006b00.serial: ttyS3 at MMIO 0x54006b00 (irq = 9, base_baud = 3676470) is a 16550A
[    2.219222] SuperH (H)SCI(F) driver initialized
[    2.224360] msm_serial: driver initialized
[    2.229969] cacheinfo: Unable to detect cache hierarchy for CPU 0
[    2.243361] loop: module loaded
[    2.247520] megasas: 07.714.04.00-rc1
[    2.256366] libphy: Fixed MDIO Bus: probed
[    2.261405] tun: Universal TUN/TAP device driver, 1.6
[    2.267383] thunder_xcv, ver 1.0
[    2.270667] thunder_bgx, ver 1.0
[    2.273932] nicpf, ver 1.0
[    2.277750] hclge is initializing
[    2.281131] hns3: Hisilicon Ethernet Network Driver for Hip08 Family - version
[    2.288386] hns3: Copyright (c) 2017 Huawei Corporation.
[    2.293763] e1000: Intel(R) PRO/1000 Network Driver
[    2.298658] e1000: Copyright (c) 1999-2006 Intel Corporation.
[    2.304465] e1000e: Intel(R) PRO/1000 Network Driver
[    2.309451] e1000e: Copyright(c) 1999 - 2015 Intel Corporation.
[    2.315426] igb: Intel(R) Gigabit Ethernet Network Driver
[    2.320844] igb: Copyright (c) 2007-2014 Intel Corporation.
[    2.326467] igbvf: Intel(R) Gigabit Virtual Function Network Driver
[    2.332752] igbvf: Copyright (c) 2009 - 2012 Intel Corporation.
[    2.339037] sky2: driver version 1.30
[    2.343674] ave 65000000.ethernet: Using random MAC address: 82:4d:4d:25:34:9d
[    2.474822] libphy: uniphier-mdio: probed
[    2.483088] RTL8211E Gigabit Ethernet 65000000.ethernet-ffffffff:00: attached PHY driver [RTL8211E Gigabit Ethernet] (mii_bus:phy_addr=65000000.ethernet-ffffffff:00, irq=POLL)
[    2.499197] ave 65000000.ethernet: Socionext AVE4 Ethernet IP v1.4 (irq=18, phy=rgmii)
[    2.507943] VFIO - User Level meta-driver version: 0.3
[    2.516227] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    2.522832] ehci-pci: EHCI PCI platform driver
[    2.527335] ehci-platform: EHCI generic platform driver
[    2.532726] ehci-orion: EHCI orion driver
[    2.536867] ehci-exynos: EHCI Exynos driver
[    2.541158] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[    2.547376] ohci-pci: OHCI PCI platform driver
[    2.551873] ohci-platform: OHCI generic platform driver
[    2.557223] ohci-exynos: OHCI Exynos driver
[    2.562108] usbcore: registered new interface driver usb-storage
[    2.570705] i2c /dev entries driver
[    2.582814] uniphier-wdt 61840000.sysctrl:watchdog: watchdog driver (timeout=64 sec, nowayout=0)
[    2.594503] sdhci: Secure Digital Host Controller Interface driver
[    2.600746] sdhci: Copyright(c) Pierre Ossman
[    2.605573] Synopsys Designware Multimedia Card Interface Driver
[    2.612587] sdhci-pltfm: SDHCI platform and OF driver helper
[    2.618719] sdhci-cdns 5a000000.mmc: allocated mmc-pwrseq
[    2.655708] mmc0: SDHCI controller on 5a000000.mmc [5a000000.mmc] using ADMA 64-bit
[    2.665301] ledtrig-cpu: registered to indicate activity on CPUs
[    2.672070] SMCCC: SOC_ID: ARCH_SOC_ID(0) returned error: ffffffffffffffff
[    2.679816] usbcore: registered new interface driver usbhid
[    2.685435] usbhid: USB HID core driver
[    2.692948] optee: probing for conduit method.
[    2.697452] optee: revision 3.8 (af141c61)
[    2.704614] optee: dynamic shared memory is enabled
[    2.755775] optee: initialized driver
[    2.761336] NET: Registered protocol family 17
[    2.765987] 9pnet: Installing 9P2000 support
[    2.770332] Key type dns_resolver registered
[    2.774840] registered taskstats version 1
[    2.778967] Loading compiled-in X.509 certificates
[    2.791384] mmc0: new HS200 MMC card at address 0001
[    2.797156] mmcblk0: mmc0:0001 016G30 14.7 GiB
[    2.801188] uniphier-pcie 66000000.pcie: invalid resource
[    2.802087] mmcblk0boot0: mmc0:0001 016G30 partition 1 4.00 MiB
[    2.813353] mmcblk0boot1: mmc0:0001 016G30 partition 2 4.00 MiB
[    2.819480] mmcblk0rpmb: mmc0:0001 016G30 partition 3 4.00 MiB, chardev (234:0)
[    2.831986]  mmcblk0: p1 p2 p3 p4 p5
[    3.107392] uniphier-pcie 66000000.pcie: host bridge /soc at 0/pcie at 66000000 ranges:
[    3.114962] uniphier-pcie 66000000.pcie:       IO 0x002ffe0000..0x002ffeffff -> 0x0000000000
[    3.123457] uniphier-pcie 66000000.pcie:      MEM 0x0020000000..0x002ffdffff -> 0x0020000000
[    3.232144] uniphier-pcie 66000000.pcie: Link up
[    3.236912] uniphier-pcie 66000000.pcie: PCI host bridge to bus 0000:00
[    3.243557] pci_bus 0000:00: root bus resource [bus 00-ff]
[    3.249068] pci_bus 0000:00: root bus resource [io  0x0000-0xffff]
[    3.255274] pci_bus 0000:00: root bus resource [mem 0x20000000-0x2ffdffff]
[    3.262206] pci 0000:00:00.0: [50c1:0001] type 01 class 0x060400
[    3.268261] pci 0000:00:00.0: reg 0x10: [mem 0x00000000-0x03ffffff]
[    3.274564] pci 0000:00:00.0: reg 0x38: [mem 0x00000000-0x0000ffff pref]
[    3.281352] pci 0000:00:00.0: supports D1
[    3.285380] pci 0000:00:00.0: PME# supported from D0 D1 D3hot D3cold
[    3.293567] pci 0000:01:00.0: [10ec:8168] type 00 class 0x020000
[    3.299772] pci 0000:01:00.0: reg 0x10: [io  0x0000-0x00ff]
[    3.305503] pci 0000:01:00.0: reg 0x18: [mem 0x00000000-0x00000fff 64bit]
[    3.312410] pci 0000:01:00.0: reg 0x20: [mem 0x00000000-0x00003fff 64bit pref]
[    3.320290] pci 0000:01:00.0: supports D1 D2
[    3.324582] pci 0000:01:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[    3.343875] pci 0000:00:00.0: BAR 0: assigned [mem 0x20000000-0x23ffffff]
[    3.350700] pci 0000:00:00.0: BAR 14: assigned [mem 0x24000000-0x240fffff]
[    3.357603] pci 0000:00:00.0: BAR 15: assigned [mem 0x24100000-0x241fffff 64bit pref]
[    3.365462] pci 0000:00:00.0: BAR 6: assigned [mem 0x24200000-0x2420ffff pref]
[    3.372711] pci 0000:00:00.0: BAR 13: assigned [io  0x1000-0x1fff]
[    3.378919] pci 0000:01:00.0: BAR 4: assigned [mem 0x24100000-0x24103fff 64bit pref]
[    3.386762] pci 0000:01:00.0: BAR 2: assigned [mem 0x24000000-0x24000fff 64bit]
[    3.394164] pci 0000:01:00.0: BAR 0: assigned [io  0x1000-0x10ff]
[    3.400303] pci 0000:00:00.0: PCI bridge to [bus 01-ff]
[    3.405549] pci 0000:00:00.0:   bridge window [io  0x1000-0x1fff]
[    3.411669] pci 0000:00:00.0:   bridge window [mem 0x24000000-0x240fffff]
[    3.418484] pci 0000:00:00.0:   bridge window [mem 0x24100000-0x241fffff 64bit pref]
[    3.426635] pcieport 0000:00:00.0: PME: Signaling with IRQ 24
[    3.432638] pcieport 0000:00:00.0: AER: enabled with IRQ 24
[    3.438585] r8169 0000:01:00.0: enabling device (0000 -> 0003)
[    3.448382] libphy: r8169: probed
[    3.452575] r8169 0000:01:00.0 eth1: RTL8168e/8111e, 7c:8b:ca:03:1f:33, XID 2c2, IRQ 25
[    3.460628] r8169 0000:01:00.0 eth1: jumbo features [frames: 9194 bytes, tx checksumming: ko]
[    3.478193] xhci-hcd xhci-hcd.0.auto: xHCI Host Controller
[    3.483775] xhci-hcd xhci-hcd.0.auto: new USB bus registered, assigned bus number 1
[    3.491643] xhci-hcd xhci-hcd.0.auto: hcc params 0x0230fe6d hci version 0x110 quirks 0x0000000002010010
[    3.501129] xhci-hcd xhci-hcd.0.auto: irq 19, io mem 0x65a00000
[    3.507936] hub 1-0:1.0: USB hub found
[    3.511732] hub 1-0:1.0: 4 ports detected
[    3.516166] xhci-hcd xhci-hcd.0.auto: xHCI Host Controller
[    3.521687] xhci-hcd xhci-hcd.0.auto: new USB bus registered, assigned bus number 2
[    3.529386] xhci-hcd xhci-hcd.0.auto: Host supports USB 3.0 SuperSpeed
[    3.535993] usb usb2: We don't know the algorithms for LPM for this host, disabling LPM.
[    3.544539] hub 2-0:1.0: USB hub found
[    3.548330] hub 2-0:1.0: 2 ports detected
[    3.553185] ALSA device list:
[    3.556179]   No soundcards found.
[    3.563862] Freeing unused kernel memory: 5696K
[    3.568513] Run /init as init process
[    3.572184]   with arguments:
[    3.572186]     /init
[    3.572188]   with environment:
[    3.572191]     HOME=/
[    3.572193]     TERM=linux
[    3.702799] udevd[151]: starting version 3.2.1
[    3.707631] random: udevd: uninitialized urandom read (16 bytes read)
[    3.714216] random: udevd: uninitialized urandom read (16 bytes read)
[    3.720702] random: udevd: uninitialized urandom read (16 bytes read)
[    3.731790] udevd[152]: starting eudev-3.2.1
[    3.848597] random: fast init done
[    3.854529] usb 1-4: new high-speed USB device number 2 using xhci-hcd
[    4.125374] splice write not supported for file  (pid: 215 comm: cat)
[    4.266321] splice write not supported for file  (pid: 263 comm: cat)
[    4.277542] splice write not supported for file  (pid: 266 comm: cat)
[    4.284170] splice write not supported for file  (pid: 266 comm: cat)
[    4.295556] splice write not supported for file  (pid: 270 comm: cat)
[    4.307134] splice write not supported for file  (pid: 273 comm: cat)
[    4.324074] splice write not supported for file  (pid: 278 comm: cat)
[    4.335313] splice write not supported for file  (pid: 281 comm: cat)
[    4.342004] splice write not supported for file  (pid: 281 comm: cat)
[    4.353363] splice write not supported for file  (pid: 285 comm: cat)
root at akebi96:~# 
root at akebi96:~# lspci -vv
00:00.0 Class 0604: Device 50c1:0001 (rev 01)
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
        Latency: 0
        Interrupt: pin A routed to IRQ 24
        Region 0: Memory at 20000000 (32-bit, non-prefetchable) [size=64M]
        Bus: primary=00, secondary=01, subordinate=ff, sec-latency=0
        I/O behind bridge: 00001000-00001fff
        Memory behind bridge: 24000000-240fffff
        Prefetchable memory behind bridge: 0000000024100000-00000000241fffff
        Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- <SERR- <PERR-
        [virtual] Expansion ROM at 24200000 [disabled] [size=64K]
        BridgeCtl: Parity- SERR+ NoISA- VGA- MAbort- >Reset- FastB2B-
                PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
        Capabilities: [40] Power Management version 3
                Flags: PMEClk- DSI- D1+ D2- AuxCurrent=375mA PME(D0+,D1+,D2-,D3hot+,D3cold+)
                Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
        Capabilities: [50] MSI: Enable+ Count=1/1 Maskable+ 64bit+
                Address: 00000000bbfff000  Data: 0000
                Masking: 00000000  Pending: 00000000
        Capabilities: [70] Express (v2) Root Port (Slot-), MSI 00
                DevCap: MaxPayload 256 bytes, PhantFunc 0
                        ExtTag- RBE+
                DevCtl: Report errors: Correctable+ Non-Fatal+ Fatal+ Unsupported+
                        RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop-
                        MaxPayload 128 bytes, MaxReadReq 512 bytes
                DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend-
                LnkCap: Port #0, Speed 5GT/s, Width x1, ASPM L0s L1, Exit Latency L0s <1us, L1 <64us
                        ClockPM- Surprise- LLActRep+ BwNot+ ASPMOptComp+
                LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
                        ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
                LnkSta: Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive+ BWMgmt+ ABWMgmt-
                RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna+ CRSVisible-
                RootCap: CRSVisible-
                RootSta: PME ReqID 0000, PMEStatus- PMEPending-
                DevCap2: Completion Timeout: Range ABCD, TimeoutDis+, LTR+, OBFF Via message/WAKE# ARIFwd-
                DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR+, OBFF Disabled ARIFwd-
                LnkCtl2: Target Link Speed: 5GT/s, EnterCompliance- SpeedDis-
                         Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
                         Compliance De-emphasis: -6dB
                LnkSta2: Current De-emphasis Level: -3.5dB, EqualizationComplete-, EqualizationPhase1-
                         EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
        Capabilities: [100 v2] Advanced Error Reporting
                UESta:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
                UEMsk:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
                UESvrt: DLP+ SDES+ TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
                CESta:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
                CEMsk:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+
                AERCap: First Error Pointer: 00, GenCap+ CGenEn- ChkCap+ ChkEn-
        Kernel driver in use: pcieport

01:00.0 Class 0200: Device 10ec:8168 (rev 06)
        Subsystem: Device 7470:3468
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
        Latency: 0, Cache Line Size: 64 bytes
        Interrupt: pin A routed to IRQ 23
        Region 0: I/O ports at 1000 [size=256]
        Region 2: Memory at 24000000 (64-bit, non-prefetchable) [size=4K]
        Region 4: Memory at 24100000 (64-bit, prefetchable) [size=16K]
        Capabilities: [40] Power Management version 3
                Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=375mA PME(D0+,D1+,D2+,D3hot+,D3cold+)
                Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
        Capabilities: [50] MSI: Enable- Count=1/1 Maskable- 64bit+
                Address: 0000000000000000  Data: 0000
        Capabilities: [70] Express (v2) Endpoint, MSI 01
                DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <512ns, L1 <64us
                        ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset- SlotPowerLimit 0.000W
                DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
                        RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop-
                        MaxPayload 128 bytes, MaxReadReq 512 bytes
                DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend-
                LnkCap: Port #0, Speed 2.5GT/s, Width x1, ASPM L0s L1, Exit Latency L0s <512ns, L1 <64us
                        ClockPM+ Surprise- LLActRep- BwNot- ASPMOptComp-
                LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
                        ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
                LnkSta: Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
                DevCap2: Completion Timeout: Not Supported, TimeoutDis+, LTR-, OBFF Not Supported
                DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled
                LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis-
                         Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
                         Compliance De-emphasis: -6dB
                LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete-, EqualizationPhase1-
                         EqualizationPhase2-, EqualizationPhase3-, LinkEqualizationRequest-
        Capabilities: [b0] MSI-X: Enable+ Count=4 Masked-
                Vector table: BAR=4 offset=00000000
                PBA: BAR=4 offset=00000800
        Capabilities: [d0] Vital Product Data Not readable
        Capabilities: [100 v1] Advanced Error Reporting
                UESta:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
                UEMsk:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
                UESvrt: DLP+ SDES+ TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
                CESta:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
                CEMsk:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+
                AERCap: First Error Pointer: 00, GenCap+ CGenEn- ChkCap+ ChkEn-
        Capabilities: [140 v1] Virtual Channel
                Caps:   LPEVC=0 RefClk=100ns PATEntryBits=1
                Arb:    Fixed- WRR32- WRR64- WRR128-
                Ctrl:   ArbSelect=Fixed
                Status: InProgress-
                VC0:    Caps:   PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
                        Arb:    Fixed- WRR32- WRR64- WRR128- TWRR128- WRR256-
                        Ctrl:   Enable+ ID=0 ArbSelect=Fixed TC/VC=ff
                        Status: NegoPending- InProgress-
        Capabilities: [160 v1] Device Serial Number f8-45-00-00-68-4c-e0-00
        Kernel driver in use: r8169

root at akebi96:~# cat /proc/interrupts
[  189.905575] do_splice_from: 3 callbacks suppressed
[  189.905588] splice write not supported for file /ttyS0 (pid: 383 comm: cat)
           CPU0       CPU1       CPU2       CPU3
  1:          0          0          0          0     GICv3  25 Level     vgic
  3:        539        846       1110       1171     GICv3  30 Level     arch_timer
  4:          0          0          0          0     GICv3  27 Level     kvm guest vtimer
  7:       2078          0          0          0     GICv3  65 Level     ttyS0
 11:          0          0          0          0     GICv3  73 Level     58780000.i2c
 12:          0          0          0          0     GICv3  74 Level     58781000.i2c
 13:          0          0          0          0     GICv3  75 Level     58782000.i2c
 14:          0          0          0          0     GICv3  57 Level     58785000.i2c
 15:        702          0          0          0     GICv3 110 Level     mmc0
 17:          0          0          0          0     GICv3  35 Level     thermal
 18:        355          0          0          0     GICv3  98 Level     eth0
 19:         46          0          0          0     GICv3 166 Level     xhci-hcd:usb1
 24:          0          0          0          0   PCI-MSI   0 Edge      PCIe PME, aerdrv
 25:          0          0          0          0   PCI-MSI 524288 Edge      eth1
IPI0:       375        508        409        457       Rescheduling interrupts
IPI1:       288        275        541        413       Function call interrupts
IPI2:         0          0          0          0       CPU stop interrupts
IPI3:         0          0          0          0       CPU stop (for crash dump) interrupts
IPI4:         0          0          0          0       Timer broadcast interrupts
IPI5:         0          0          0          0       IRQ work interrupts
IPI6:         0          0          0          0       CPU wake-up interrupts
Err:          0
root at akebi96:~#


More information about the linux-arm-kernel mailing list