Hi,
I have a Lenovo Thinkpad t420s on which I've installed coreboot. However, the USB 3.0 port is not active and the controller is not listed under lspci.
Under the original Lenovo bios, the xhci device was at pci address 0d:00.0 behind bridge 00:1c.4.
It looks like the t420s devicetree.cb is set up for the xhci controller to be behind 00:1c.6. I changed that to 00:1c.4 and that got the xhci pci device to show up as 03:00.0. Strangely, booting into linux, it shows 001c.3 as the bridge to 03:00.0. Additionally, plugged in USB devices were not detected.
Here's where it gets weird. I had a mouse plugged in, and I was looking in sysfs. cat /sys/devices/pci0000:00/0000:00:1c.3/0000:03:00.0/enable 0 So the xhci pci device is disabled. I ran `lspci -vvnn` a few times in quick sucession - I was looking to see if it showed disabled - and the mouse lit up!
Plugging in a USB Flash drive, it was again not detected. The lspci trigger worked. Later, promptly switching USB devices resulted in the new USB device still being detected.
Is "PCH: PCIe map 1c.4 -> 1c.3" the remapping from the device tree 1c.4 to the 1c.3 that I see?
Below I've included the cbmem -c output and a snippet from an old lenovo BIOS dmesg w/ the pci address.
Does anyone have an idea of what is going on, or what I should investigate next? A total guess, but could poking the PCI device with lspci turn it on so that it may detect an attached device and then stay active? Maybe something with power management? Again, I'm just guessing. Any suggestions are appreciated.
Thanks, Jason
Old linux dmesg from Lenovo BIOS: Dec 6 01:55:52 ubuntu kernel: [ 10.077337] pci 0000:0d:00.0:
[1033:0194] type 00 class 0x0c0330
Dec 6 01:55:52 ubuntu kernel: [ 10.077382] pci 0000:0d:00.0: >reg 10: [mem 0xf0c00000-0xf0c01fff 64bit] Dec 6 01:55:52 ubuntu kernel: [ 10.077610] pci 0000:0d:00.0: >PME# supported from D0 D3hot D3cold Dec 6 01:55:52 ubuntu kernel: [ 10.077701] pci 0000:00:1c.4: >PCI bridge to [bus 0d-0d] Dec 6 01:55:52 ubuntu kernel: [ 10.077714] pci 0000:00:1c.4: > bridge window [mem 0xf0c00000-0xf0cfffff]
cbmem -c dump:
*** Pre-CBMEM romstage console overflowed, log truncated! *** 666 MHz Selected CAS latency : 9T PLL busy... done in 50 us MCU frequency is set at : 666 MHz Done dimm mapping Update PCI-E configuration space: PCI(0, 0, 0)[a0] = 0 PCI(0, 0, 0)[a4] = 4 PCI(0, 0, 0)[bc] = 82a00000 PCI(0, 0, 0)[a8] = 7d600000 PCI(0, 0, 0)[ac] = 4 PCI(0, 0, 0)[b8] = 80000000 PCI(0, 0, 0)[b0] = 80a00000 PCI(0, 0, 0)[b4] = 80800000 Done memory map Done io registers t123: 1912, 9120, 500 ME: FW Partition Table : OK ME: Bringup Loader Failure : NO ME: Firmware Init Complete : NO ME: Manufacturing Mode : YES ME: Boot Options Present : NO ME: Update In Progress : NO ME: Current Working State : Initializing ME: Current Operation State : Bring up ME: Current Operation Mode : Debug or Disabled by AltDisableBit ME: Error Code : No Error ME: Progress Phase : BUP Phase ME: Power Management Event : Clean Moff->Mx wake ME: Progress Phase State : Check to see if straps say ME DISABLED ME: Wrong mode : 2 ME: FWS2: 0x100a0000 ME: Bist in progress: 0x0 ME: ICC Status : 0x0 ME: Invoke MEBx : 0x0 ME: CPU replaced : 0x0 ME: MBP ready : 0x0 ME: MFS failure : 0x0 ME: Warm reset req : 0x0 ME: CPU repl valid : 0x0 ME: (Reserved) : 0x0 ME: FW update req : 0x0 ME: (Reserved) : 0x0 ME: Current state : 0xa ME: Current PM event: 0x0 ME: Progress code : 0x1 Waited long enough, or CPU was not replaced, continue... PASSED! Tell ME that DRAM is ready ME: ME is reporting as disabled, so not waiting for a response. ME: FWS2: 0x100a0000 ME: Bist in progress: 0x0 ME: ICC Status : 0x0 ME: Invoke MEBx : 0x0 ME: CPU replaced : 0x0 ME: MBP ready : 0x0 ME: MFS failure : 0x0 ME: Warm reset req : 0x0 ME: CPU repl valid : 0x0 ME: (Reserved) : 0x0 ME: FW update req : 0x0 ME: (Reserved) : 0x0 ME: Current state : 0xa ME: Current PM event: 0x0 ME: Progress code : 0x1 ME: Requested BIOS Action: No DID Ack received ME: FW Partition Table : OK ME: Bringup Loader Failure : NO ME: Firmware Init Complete : NO ME: Manufacturing Mode : YES ME: Boot Options Present : NO ME: Update In Progress : NO ME: Current Working State : Initializing ME: Current Operation State : Bring up ME: Current Operation Mode : Debug or Disabled by AltDisableBit ME: Error Code : No Error ME: Progress Phase : BUP Phase ME: Power Management Event : Clean Moff->Mx wake ME: Progress Phase State : Check to see if straps say ME DISABLED memcfg DDR3 ref clock 133 MHz memcfg DDR3 clock 1330 MHz memcfg channel assignment: A: 0, B 1, C 2 memcfg channel[0] config (00620020): ECC inactive enhanced interleave mode on rank interleave on DIMMA 8192 MB width x8 dual rank, selected DIMMB 0 MB width x8 single rank memcfg channel[1] config (00620020): ECC inactive enhanced interleave mode on rank interleave on DIMMA 8192 MB width x8 dual rank, selected DIMMB 0 MB width x8 single rank CBMEM: IMD: root @ 7ffff000 254 entries. IMD: root @ 7fffec00 62 entries. External stage cache: IMD: root @ 803ff000 254 entries. IMD: root @ 803fec00 62 entries. CBMEM entry for DIMM info: 0x7fffea40 MTRR Range: Start=ff800000 End=0 (Size 800000) MTRR Range: Start=0 End=1000000 (Size 1000000) MTRR Range: Start=7f800000 End=80000000 (Size 800000) MTRR Range: Start=80000000 End=80800000 (Size 800000) CBFS: 'Master Header Locator' located CBFS at [720000:800000) CBFS: Locating 'fallback/postcar' CBFS: Found @ offset 3a580 size 3ce4 Decompressing stage fallback/postcar @ 0x7ffcffc0 (32208 bytes) Loading module at 7ffd0000 with entry 7ffd0000. filesize: 0x3ad0 memsize: 0x7d90 Processing 110 relocs. Offset value of 0x7dfd0000
coreboot-4.9-dirty Wed Dec 19 18:05:51 UTC 2018 postcar starting... CBFS: 'Master Header Locator' located CBFS at [720000:800000) CBFS: Locating 'fallback/ramstage' CBFS: Found @ offset 19e40 size 1895c Decompressing stage fallback/ramstage @ 0x7ff86fc0 (293432 bytes) Loading module at 7ff87000 with entry 7ff87000. filesize: 0x33a30 memsize: 0x479f8 Processing 3449 relocs. Offset value of 0x7f187000
coreboot-4.9-dirty Wed Dec 19 18:05:51 UTC 2018 ramstage starting... Normal boot. BS: BS_PRE_DEVICE times (us): entry 0 run 2 exit 0 BS: BS_DEV_INIT_CHIPS times (us): entry 0 run 3 exit 0 Enumerating buses... CPU_CLUSTER: 0 enabled DOMAIN: 0000 enabled PCI: pci_scan_bus for bus 00 PCI: 00:00.0 [8086/0104] enabled PCI: Static device PCI: 00:01.0 not found, disabling it. PCI: 00:02.0 [8086/0126] enabled PCI: 00:04.0 [8086/0103] enabled PCI: 00:16.0: Disabling device PCI: 00:16.0 [8086/1c3a] disabled PCI: 00:16.1: Disabling device PCI: 00:16.2: Disabling device PCI: 00:16.3: Disabling device PCI: 00:19.0 [8086/1502] enabled PCI: 00:1a.0 [8086/1c2d] enabled PCI: 00:1b.0 [8086/1c20] enabled PCH: PCIe Root Port coalescing is enabled PCI: 00:1c.0: Disabling device PCI: 00:1c.0: check set enabled PCH: Remap PCIe function 1 to 0 PCI: 00:1c.1 [8086/1c12] enabled PCI: 00:1c.2: Disabling device PCH: Remap PCIe function 3 to 0 PCI: 00:1c.3 [8086/1c16] enabled PCH: Remap PCIe function 4 to 0 PCI: 00:1c.4 [8086/1c18] enabled PCI: 00:1c.5: Disabling device PCI: 00:1c.6: Disabling device PCI: 00:1c.7: Disabling device PCH: PCIe map 1c.0 -> 1c.4 PCH: PCIe map 1c.1 -> 1c.0 PCH: PCIe map 1c.3 -> 1c.1 PCH: PCIe map 1c.4 -> 1c.3 PCI: 00:1d.0 [8086/1c26] enabled PCI: 00:1e.0: Disabling device PCI: 00:1e.0 [8086/2448] disabled PCI: 00:1f.0 [8086/1c4f] enabled PCI: 00:1f.2 [8086/1c01] enabled PCI: 00:1f.3 [8086/1c22] enabled PCI: 00:1f.5: Disabling device PCI: 00:1f.6 [8086/1c24] enabled PCI: pci_scan_bus for bus 01 PCI: 01:00.0 [8086/4238] enabled Enabling Common Clock Configuration ASPM: Enabled L0s and L1 Failed to enable LTR for dev = PCI: 01:00.0 scan_bus: scanning of bus PCI: 00:1c.0 took 301 usecs PCI: pci_scan_bus for bus 02 PCI: 02:00.0 [1180/e823] enabled Enabling Common Clock Configuration ASPM: Enabled L0s and L1 Failed to enable LTR for dev = PCI: 02:00.0 scan_bus: scanning of bus PCI: 00:1c.1 took 255 usecs PCI: pci_scan_bus for bus 03 PCI: 03:00.0 [1033/0194] enabled Enabling Common Clock Configuration ASPM: Enabled L0s and L1 scan_bus: scanning of bus PCI: 00:1c.3 took 238 usecs PMH7: ID 04 Revision 01 PNP: 00ff.1 enabled PNP: 0c31.0 enabled EC Firmware ID 8CHT27WW-3.20, Version 0.01C H8: BDC installed H8: WWAN detection not implemented. Assuming WWAN installed PNP: 00ff.2 enabled Hybrid graphics: Not installed PNP: 00ff.f disabled scan_bus: scanning of bus PCI: 00:1f.0 took 5243 usecs bus: PCI: 00:1f.3[0]->I2C: 01:54 enabled bus: PCI: 00:1f.3[0]->I2C: 01:55 enabled bus: PCI: 00:1f.3[0]->I2C: 01:56 enabled bus: PCI: 00:1f.3[0]->I2C: 01:57 enabled bus: PCI: 00:1f.3[0]->I2C: 01:5c enabled bus: PCI: 00:1f.3[0]->I2C: 01:5d enabled bus: PCI: 00:1f.3[0]->I2C: 01:5e enabled bus: PCI: 00:1f.3[0]->I2C: 01:5f enabled scan_bus: scanning of bus PCI: 00:1f.3 took 28 usecs scan_bus: scanning of bus DOMAIN: 0000 took 6378 usecs scan_bus: scanning of bus Root Device took 6385 usecs done FMAP: Found "FLASH" version 1.1 at 700000. FMAP: base = ff800000 size = 800000 #areas = 4 FMAP: area RW_MRC_CACHE found @ 710000 (65536 bytes) MRC: No data in cbmem for 'RW_MRC_CACHE'. BS: BS_DEV_ENUMERATE times (us): entry 0 run 6425 exit 26 found VGA at PCI: 00:02.0 Setting up VGA for PCI: 00:02.0 Setting PCI_BRIDGE_CTL_VGA for bridge DOMAIN: 0000 Setting PCI_BRIDGE_CTL_VGA for bridge Root Device Allocating resources... Reading resources... Adding PCIe enhanced config space BAR 0xf0000000-0xf4000000. PNP: 00ff.1 missing read_resources PNP: 00ff.2 missing read_resources Done reading resources. skipping PNP: 00ff.2@60 fixed resource, size=0! skipping PNP: 00ff.2@62 fixed resource, size=0! skipping PNP: 00ff.2@64 fixed resource, size=0! skipping PNP: 00ff.2@66 fixed resource, size=0! Setting resources... TOUUD 0x47d600000 TOLUD 0x82a00000 TOM 0x400000000 MEBASE 0x7ffff00000 IGD decoded, subtracting 32M UMA and 2M GTT TSEG base 0x80000000 size 8M Available memory below 4GB: 2048M Available memory above 4GB: 14294M PCI: 00:02.0 10 <- [0x00e1400000 - 0x00e17fffff] size 0x00400000 gran 0x16 mem64 PCI: 00:02.0 18 <- [0x00d0000000 - 0x00dfffffff] size 0x10000000 gran 0x1c prefmem64 PCI: 00:02.0 20 <- [0x0000003000 - 0x000000303f] size 0x00000040 gran 0x06 io PCI: 00:04.0 10 <- [0x00e1a20000 - 0x00e1a27fff] size 0x00008000 gran 0x0f mem64 PCI: 00:19.0 10 <- [0x00e1a00000 - 0x00e1a1ffff] size 0x00020000 gran 0x11 mem PCI: 00:19.0 14 <- [0x00e1a2c000 - 0x00e1a2cfff] size 0x00001000 gran 0x0c mem PCI: 00:19.0 18 <- [0x0000003040 - 0x000000305f] size 0x00000020 gran 0x05 io PCI: 00:1a.0 10 <- [0x00e1a2f000 - 0x00e1a2f3ff] size 0x00000400 gran 0x0a mem PCI: 00:1b.0 10 <- [0x00e1a28000 - 0x00e1a2bfff] size 0x00004000 gran 0x0e mem64 PCI: 00:1c.0 1c <- [0x000000ffff - 0x000000fffe] size 0x00000000 gran 0x0c bus 01 io PCI: 00:1c.0 24 <- [0x00efffffff - 0x00effffffe] size 0x00000000 gran 0x14 bus 01 prefmem PCI: 00:1c.0 20 <- [0x00e1800000 - 0x00e18fffff] size 0x00100000 gran 0x14 bus 01 mem PCI: 01:00.0 10 <- [0x00e1800000 - 0x00e1801fff] size 0x00002000 gran 0x0d mem64 PCI: 00:1c.1 1c <- [0x0000002000 - 0x0000002fff] size 0x00001000 gran 0x0c bus 02 io PCI: 00:1c.1 24 <- [0x00e0c00000 - 0x00e13fffff] size 0x00800000 gran 0x14 bus 02 prefmem PCI: 00:1c.1 20 <- [0x00e0000000 - 0x00e08fffff] size 0x00900000 gran 0x14 bus 02 mem PCI: 02:00.0 10 <- [0x00e0800000 - 0x00e08000ff] size 0x00000100 gran 0x08 mem NONE missing set_resources PCI: 00:1c.3 1c <- [0x000000ffff - 0x000000fffe] size 0x00000000 gran 0x0c bus 03 io PCI: 00:1c.3 24 <- [0x00efffffff - 0x00effffffe] size 0x00000000 gran 0x14 bus 03 prefmem PCI: 00:1c.3 20 <- [0x00e1900000 - 0x00e19fffff] size 0x00100000 gran 0x14 bus 03 mem PCI: 03:00.0 10 <- [0x00e1900000 - 0x00e1901fff] size 0x00002000 gran 0x0d mem64 PCI: 00:1d.0 10 <- [0x00e1a30000 - 0x00e1a303ff] size 0x00000400 gran 0x0a mem PNP: 00ff.1 missing set_resources PNP: 00ff.2 missing set_resources PCI: 00:1f.2 10 <- [0x0000003080 - 0x0000003087] size 0x00000008 gran 0x03 io PCI: 00:1f.2 14 <- [0x0000003090 - 0x0000003093] size 0x00000004 gran 0x02 io PCI: 00:1f.2 18 <- [0x0000003088 - 0x000000308f] size 0x00000008 gran 0x03 io PCI: 00:1f.2 1c <- [0x0000003094 - 0x0000003097] size 0x00000004 gran 0x02 io PCI: 00:1f.2 20 <- [0x0000003060 - 0x000000307f] size 0x00000020 gran 0x05 io PCI: 00:1f.2 24 <- [0x00e1a2e000 - 0x00e1a2e7ff] size 0x00000800 gran 0x0b mem PCI: 00:1f.3 10 <- [0x00e1a31000 - 0x00e1a310ff] size 0x00000100 gran 0x08 mem64 PCI: 00:1f.6 10 <- [0x00e1a2d000 - 0x00e1a2dfff] size 0x00001000 gran 0x0c mem64 Done setting resources. Done allocating resources. BS: BS_DEV_RESOURCES times (us): entry 0 run 1912 exit 0 Enabling resources... PCI: 00:00.0 subsystem <- 17aa/21d2 PCI: 00:00.0 cmd <- 06 PCI: 00:02.0 subsystem <- 17aa/21d3 PCI: 00:02.0 cmd <- 03 PCI: 00:04.0 cmd <- 02 PCI: 00:19.0 subsystem <- 17aa/21ce PCI: 00:19.0 cmd <- 103 PCI: 00:1a.0 subsystem <- 17aa/21d2 PCI: 00:1a.0 cmd <- 102 PCI: 00:1b.0 subsystem <- 17aa/21d2 PCI: 00:1b.0 cmd <- 102 PCI: 00:1c.0 bridge ctrl <- 0003 PCI: 00:1c.0 subsystem <- 17aa/21d2 PCI: 00:1c.0 cmd <- 106 PCI: 00:1c.1 bridge ctrl <- 0003 PCI: 00:1c.1 subsystem <- 17aa/21d2 PCI: 00:1c.1 cmd <- 107 PCI: 00:1c.3 bridge ctrl <- 0003 PCI: 00:1c.3 subsystem <- 17aa/21d2 PCI: 00:1c.3 cmd <- 106 PCI: 00:1d.0 subsystem <- 17aa/21d2 PCI: 00:1d.0 cmd <- 102 pch_decode_init PCI: 00:1f.0 subsystem <- 17aa/21d2 PCI: 00:1f.0 cmd <- 107 PCI: 00:1f.2 subsystem <- 17aa/21d2 PCI: 00:1f.2 cmd <- 03 PCI: 00:1f.3 subsystem <- 17aa/21d2 PCI: 00:1f.3 cmd <- 103 PCI: 00:1f.6 subsystem <- 17aa/21d2 PCI: 00:1f.6 cmd <- 02 PCI: 01:00.0 cmd <- 02 PCI: 02:00.0 cmd <- 06 PCI: 03:00.0 cmd <- 02 done. BS: BS_DEV_ENABLE times (us): entry 0 run 340 exit 0 Found TPM ST33ZP24 by ST Microelectronics TPM: Startup TPM: command 0x99 returned 0x0 TPM: Asserting physical presence TPM: command 0x4000000a returned 0x0 TPM: command 0x65 returned 0x0 TPM: flags disable=0, deactivated=0, nvlocked=1 TPM: setup succeeded Initializing devices... Root Device init ... Root Device init finished in 1 usecs CPU_CLUSTER: 0 init ... start_eip=0x00001000, code_size=0x00000031 Setting up SMI for CPU Loading module at 00038000 with entry 00038000. filesize: 0x1a8 memsize: 0x1a8 Processing 13 relocs. Offset value of 0x00038000 SMM Module: stub loaded at 00038000. Will call 7ffa38a6(7ffca8c0) Installing SMM handler to 0x80000000 Loading module at 80010000 with entry 80010112. filesize: 0x13d0 memsize: 0x53f0 Processing 48 relocs. Offset value of 0x80010000 Loading module at 80008000 with entry 80008000. filesize: 0x1a8 memsize: 0x1a8 Processing 13 relocs. Offset value of 0x80008000 SMM Module: placing jmp sequence at 80007c00 rel16 0x03fd SMM Module: placing jmp sequence at 80007800 rel16 0x07fd SMM Module: placing jmp sequence at 80007400 rel16 0x0bfd SMM Module: stub loaded at 80008000. Will call 80010112(00000000) Initializing southbridge SMI... SMI_STS: MCSMI PM1 GPE0_STS: GPIO15 GPIO14 GPIO13 GPIO11 GPIO10 GPIO9 GPIO7 GPIO6 GPIO5 GPIO4 GPIO3 GPIO1 GPIO0 ALT_GP_SMI_STS: GPI14 GPI13 GPI11 GPI10 GPI9 GPI7 GPI6 GPI5 GPI4 GPI3 GPI1 GPI0 TCO_STS: In relocation handler: cpu 0 New SMBASE=0x80000000 IEDBASE=0x80400000 @ 0003fc00 Writing SMRR. base = 0x80000006, mask=0xff800800 Relocation complete. Locking SMM. Initializing CPU #0 CPU: vendor Intel device 206a7 CPU: family 06, model 2a, stepping 07 Enabling cache CBFS: 'Master Header Locator' located CBFS at [720000:800000) CBFS: Locating 'cpu_microcode_blob.bin' CBFS: Found @ offset 139c0 size 6400 microcode: sig=0x206a7 pf=0x10 revision=0x2d CPU: Intel(R) Core(TM) i5-2520M CPU @ 2.50GHz. CPU: platform id 4 CPU: cpuid(1) 0x206a7 CPU: AES supported CPU: TXT supported CPU: VT supported MTRR: Physical address space: 0x0000000000000000 - 0x00000000000a0000 size 0x000a0000 type 6 0x00000000000a0000 - 0x00000000000c0000 size 0x00020000 type 0 0x00000000000c0000 - 0x0000000080000000 size 0x7ff40000 type 6 0x0000000080000000 - 0x00000000d0000000 size 0x50000000 type 0 0x00000000d0000000 - 0x00000000e0000000 size 0x10000000 type 1 0x00000000e0000000 - 0x0000000100000000 size 0x20000000 type 0 0x0000000100000000 - 0x000000047d600000 size 0x37d600000 type 6 MTRR: Fixed MSR 0x250 0x0606060606060606 MTRR: Fixed MSR 0x258 0x0606060606060606 MTRR: Fixed MSR 0x259 0x0000000000000000 MTRR: Fixed MSR 0x268 0x0606060606060606 MTRR: Fixed MSR 0x269 0x0606060606060606 MTRR: Fixed MSR 0x26a 0x0606060606060606 MTRR: Fixed MSR 0x26b 0x0606060606060606 MTRR: Fixed MSR 0x26c 0x0606060606060606 MTRR: Fixed MSR 0x26d 0x0606060606060606 MTRR: Fixed MSR 0x26e 0x0606060606060606 MTRR: Fixed MSR 0x26f 0x0606060606060606 CPU physical address size: 36 bits MTRR: default type WB/UC MTRR counts: 4/5. MTRR: WB selected as default type. MTRR: 0 base 0x0000000080000000 mask 0x0000000fc0000000 type 0 MTRR: 1 base 0x00000000c0000000 mask 0x0000000ff0000000 type 0 MTRR: 2 base 0x00000000d0000000 mask 0x0000000ff0000000 type 1 MTRR: 3 base 0x00000000e0000000 mask 0x0000000fe0000000 type 0
MTRR check Fixed MTRRs : Enabled Variable MTRRs: Enabled
Setting up local APIC... apic_id: 0x00 done. VMX status: enabled, locked model_x06ax: energy policy set to 6 model_x06ax: frequency set to 2500 Turbo is available but hidden Turbo has been enabled CPU: 0 has 2 cores, 2 threads per core CPU: 0 has core 1 In relocation handler: cpu 1 New SMBASE=0x7ffffc00 IEDBASE=0x80400000 @ 0003fc00 Writing SMRR. base = 0x80000006, mask=0xff800800 Initializing CPU #1 CPU: 0 has core 2 CPU: vendor Intel device 206a7 CPU: family 06, model 2a, stepping 07 Enabling cache CBFS: 'Master Header Locator' located CBFS at [720000:800000) CBFS: Locating 'cpu_microcode_blob.bin' CBFS: Found @ offset 139c0 size 6400 microcode: sig=0x206a7 pf=0x10 revision=0x2d CPU: Intel(R) Core(TM) i5-2520M CPU @ 2.50GHz. CPU: platform id 4 CPU: cpuid(1) 0x206a7 CPU: AES supported CPU: TXT supported CPU: VT supported MTRR: Fixed MSR 0x250 0x0606060606060606 MTRR: Fixed MSR 0x258 0x0606060606060606 MTRR: Fixed MSR 0x259 0x0000000000000000 MTRR: Fixed MSR 0x268 0x0606060606060606 MTRR: Fixed MSR 0x269 0x0606060606060606 MTRR: Fixed MSR 0x26a 0x0606060606060606 MTRR: Fixed MSR 0x26b 0x0606060606060606 MTRR: Fixed MSR 0x26c 0x0606060606060606 MTRR: Fixed MSR 0x26d 0x0606060606060606 MTRR: Fixed MSR 0x26e 0x0606060606060606 MTRR: Fixed MSR 0x26f 0x0606060606060606 CPU physical address size: 36 bits
MTRR check Fixed MTRRs : Enabled Variable MTRRs: Enabled
Setting up local APIC... apic_id: 0x01 done. VMX status: enabled, locked model_x06ax: energy policy set to 6 model_x06ax: frequency set to 2500 CPU #1 initialized In relocation handler: cpu 2 New SMBASE=0x7ffff800 IEDBASE=0x80400000 @ 0003fc00 Writing SMRR. base = 0x80000006, mask=0xff800800 CPU: 0 has core 3 Initializing CPU #2 CPU: vendor Intel device 206a7 CPU: family 06, model 2a, stepping 07 Enabling cache CBFS: 'Master Header Locator' located CBFS at [720000:800000) CBFS: Locating 'cpu_microcode_blob.bin' CBFS: Found @ offset 139c0 size 6400 microcode: sig=0x206a7 pf=0x10 revision=0x0 microcode: updated to revision 0x2d date=2018-02-07 CPU: Intel(R) Core(TM) i5-2520M CPU @ 2.50GHz. CPU: platform id 4 CPU: cpuid(1) 0x206a7 CPU: AES supported CPU: TXT supported CPU: VT supported MTRR: Fixed MSR 0x250 0x0606060606060606 MTRR: Fixed MSR 0x258 0x0606060606060606 MTRR: Fixed MSR 0x259 0x0000000000000000 MTRR: Fixed MSR 0x268 0x0606060606060606 MTRR: Fixed MSR 0x269 0x0606060606060606 MTRR: Fixed MSR 0x26a 0x0606060606060606 MTRR: Fixed MSR 0x26b 0x0606060606060606 MTRR: Fixed MSR 0x26c 0x0606060606060606 MTRR: Fixed MSR 0x26d 0x0606060606060606 MTRR: Fixed MSR 0x26e 0x0606060606060606 MTRR: Fixed MSR 0x26f 0x0606060606060606 CPU physical address size: 36 bits
MTRR check Fixed MTRRs : Enabled Variable MTRRs: Enabled
Setting up local APIC... apic_id: 0x02 done. VMX status: enabled, locked model_x06ax: energy policy set to 6 model_x06ax: frequency set to 2500 CPU #2 initialized In relocation handler: cpu 3 New SMBASE=0x7ffff400 IEDBASE=0x80400000 @ 0003fc00 Writing SMRR. base = 0x80000006, mask=0xff800800 CPU #0 initialized Waiting for 1 CPUS to stop Initializing CPU #3 CPU: vendor Intel device 206a7 CPU: family 06, model 2a, stepping 07 Enabling cache CBFS: 'Master Header Locator' located CBFS at [720000:800000) CBFS: Locating 'cpu_microcode_blob.bin' CBFS: Found @ offset 139c0 size 6400 microcode: sig=0x206a7 pf=0x10 revision=0x2d CPU: Intel(R) Core(TM) i5-2520M CPU @ 2.50GHz. CPU: platform id 4 CPU: cpuid(1) 0x206a7 CPU: AES supported CPU: TXT supported CPU: VT supported MTRR: Fixed MSR 0x250 0x0606060606060606 MTRR: Fixed MSR 0x258 0x0606060606060606 MTRR: Fixed MSR 0x259 0x0000000000000000 MTRR: Fixed MSR 0x268 0x0606060606060606 MTRR: Fixed MSR 0x269 0x0606060606060606 MTRR: Fixed MSR 0x26a 0x0606060606060606 MTRR: Fixed MSR 0x26b 0x0606060606060606 MTRR: Fixed MSR 0x26c 0x0606060606060606 MTRR: Fixed MSR 0x26d 0x0606060606060606 MTRR: Fixed MSR 0x26e 0x0606060606060606 MTRR: Fixed MSR 0x26f 0x0606060606060606 CPU physical address size: 36 bits
MTRR check Fixed MTRRs : Enabled Variable MTRRs: Enabled
Setting up local APIC... apic_id: 0x03 done. VMX status: enabled, locked model_x06ax: energy policy set to 6 model_x06ax: frequency set to 2500 CPU #3 initialized All AP CPUs stopped (558 loops) CPU_CLUSTER: 0 init finished in 61525 usecs PCI: 00:00.0 init ... Disabling PEG12. Disabling PEG11. Disabling PEG10. Disabling PEG60. Disabling Device 7. Disabling PEG IO clock. Set BIOS_RESET_CPL CPU TDP: 35 Watts PCI: 00:00.0 init finished in 1020 usecs PCI: 00:02.0 init ... GT Power Management Init SNB GT2 Power Meter Weights GT Power Management Init (post VBIOS) bringing up panel at resolution 1600 x 900 Borders 0 x 0 Blank 410 x 12 Sync 42 x 3 Front porch 64 x 3 Spread spectrum clock Dual channel Polarities 1, 1 Data M1=1922389, N1=8388608 Link frequency 270000 kHz Link M1=213598, N1=524288 Pixel N=6, M1=14, M2=7, P1=2 Pixel clock 110000 kHz waiting for panel powerup panel powered up PCI: 00:02.0 init finished in 28062 usecs PCI: 00:04.0 init ... PCI: 00:04.0 init finished in 0 usecs PCI: 00:19.0 init ... PCI: 00:19.0 init finished in 0 usecs PCI: 00:1a.0 init ... EHCI: Setting up controller.. done. PCI: 00:1a.0 init finished in 12 usecs PCI: 00:1b.0 init ... Azalia: base = e1a28000 Azalia: codec_mask = 09 Azalia: Initializing codec #3 Azalia: codec viddid: 80862805 Azalia: No verb! Azalia: Initializing codec #0 Azalia: codec viddid: 14f1506e Azalia: verb_size: 52 Azalia: verb loaded. PCI: 00:1b.0 init finished in 4307 usecs PCI: 00:1c.0 init ... Initializing PCH PCIe bridge. PCI: 00:1c.0 init finished in 10 usecs PCI: 00:1c.1 init ... Initializing PCH PCIe bridge. PCI: 00:1c.1 init finished in 13 usecs PCI: 00:1c.3 init ... Initializing PCH PCIe bridge. PCI: 00:1c.3 init finished in 8 usecs PCI: 00:1d.0 init ... EHCI: Setting up controller.. done. PCI: 00:1d.0 init finished in 12 usecs PCI: 00:1f.0 init ... pch: lpc_init PCH: detected QM67, device id: 0x1c4f, rev id 0x5 IOAPIC: Initializing IOAPIC at 0xfec00000 IOAPIC: Bootstrap Processor Local APIC = 0x00 IOAPIC: ID = 0x02 Set power off after power failure. NMI sources disabled. CougarPoint PM init RTC: failed = 0x0 RTC Init Disabling ACPI via APMC: done. pch_spi_init PCI: 00:1f.0 init finished in 591 usecs PCI: 00:1f.2 init ... SATA: Initializing... SATA: Controller in AHCI mode. ABAR: e1a2e000 PCI: 00:1f.2 init finished in 94 usecs PCI: 00:1f.3 init ... PCI: 00:1f.3 init finished in 7 usecs PCI: 00:1f.6 init ... PCI: 00:1f.6 init finished in 0 usecs PCI: 01:00.0 init ... PCI: 01:00.0 init finished in 0 usecs PCI: 02:00.0 init ... PCI: 02:00.0 init finished in 0 usecs PCI: 03:00.0 init ... PCI: 03:00.0 init finished in 0 usecs PNP: 00ff.2 init ... PNP: 00ff.2 init finished in 0 usecs smbus: PCI: 00:1f.3[0]->I2C: 01:54 init ... I2C: 01:54 init finished in 1 usecs smbus: PCI: 00:1f.3[0]->I2C: 01:55 init ... I2C: 01:55 init finished in 1 usecs smbus: PCI: 00:1f.3[0]->I2C: 01:56 init ... I2C: 01:56 init finished in 1 usecs smbus: PCI: 00:1f.3[0]->I2C: 01:57 init ... I2C: 01:57 init finished in 1 usecs smbus: PCI: 00:1f.3[0]->I2C: 01:5c init ... Locking EEPROM RFID init EEPROM done I2C: 01:5c init finished in 26193 usecs smbus: PCI: 00:1f.3[0]->I2C: 01:5d init ... I2C: 01:5d init finished in 1 usecs smbus: PCI: 00:1f.3[0]->I2C: 01:5e init ... I2C: 01:5e init finished in 1 usecs smbus: PCI: 00:1f.3[0]->I2C: 01:5f init ... I2C: 01:5f init finished in 1 usecs Devices initialized BS: BS_DEV_INIT times (us): entry 16019 run 121991 exit 0 Finalize devices... PCI: 00:1f.0 final Devices finalized BS: BS_POST_DEVICE times (us): entry 0 run 47 exit 0 BS: BS_OS_RESUME_CHECK times (us): entry 0 run 3 exit 0 CBFS: 'Master Header Locator' located CBFS at [720000:800000) CBFS: Locating 'fallback/dsdt.aml' CBFS: Found @ offset 3e2c0 size 35d2 CBFS: 'Master Header Locator' located CBFS at [720000:800000) CBFS: Locating 'fallback/slic' CBFS: 'fallback/slic' not found. ACPI: Writing ACPI tables at 7ff4a000. ACPI: * FACS ACPI: * DSDT ACPI: * FADT ACPI: added table 1/32, length now 40 ACPI: * SSDT Found 1 CPU(s) with 4 core(s) each. PSS: 2501MHz power 35000 control 0x2000 status 0x2000 PSS: 2500MHz power 35000 control 0x1900 status 0x1900 PSS: 2000MHz power 26404 control 0x1400 status 0x1400 PSS: 1600MHz power 20160 control 0x1000 status 0x1000 PSS: 1200MHz power 14397 control 0xc00 status 0xc00 PSS: 800MHz power 9139 control 0x800 status 0x800 PSS: 2501MHz power 35000 control 0x2000 status 0x2000 PSS: 2500MHz power 35000 control 0x1900 status 0x1900 PSS: 2000MHz power 26404 control 0x1400 status 0x1400 PSS: 1600MHz power 20160 control 0x1000 status 0x1000 PSS: 1200MHz power 14397 control 0xc00 status 0xc00 PSS: 800MHz power 9139 control 0x800 status 0x800 PSS: 2501MHz power 35000 control 0x2000 status 0x2000 PSS: 2500MHz power 35000 control 0x1900 status 0x1900 PSS: 2000MHz power 26404 control 0x1400 status 0x1400 PSS: 1600MHz power 20160 control 0x1000 status 0x1000 PSS: 1200MHz power 14397 control 0xc00 status 0xc00 PSS: 800MHz power 9139 control 0x800 status 0x800 PSS: 2501MHz power 35000 control 0x2000 status 0x2000 PSS: 2500MHz power 35000 control 0x1900 status 0x1900 PSS: 2000MHz power 26404 control 0x1400 status 0x1400 PSS: 1600MHz power 20160 control 0x1000 status 0x1000 PSS: 1200MHz power 14397 control 0xc00 status 0xc00 PSS: 800MHz power 9139 control 0x800 status 0x800 Generating ACPI PIRQ entries _SB.PCI0.LPCB.TPM: LPC TPM PNP: 0c31.0 ACPI: * H8 H8: BDC installed H8: WWAN detection not implemented. Assuming WWAN installed _SB.PCI0.RP01.WIFI: PCI: 01:00.0 ACPI: added table 2/32, length now 44 ACPI: * MCFG ACPI: added table 3/32, length now 48 ACPI: * TCPA TCPA log created at 7ff39000 ACPI: added table 4/32, length now 52 ACPI: * MADT ACPI: added table 5/32, length now 56 current = 7ff4f460 ACPI: * DMAR ACPI: added table 6/32, length now 60 current = 7ff4f510 CBFS: 'Master Header Locator' located CBFS at [720000:800000) CBFS: Locating 'vbt.bin' CBFS: Found @ offset 397c0 size 572 Found a VBT of 3985 bytes after decompression GMA: Found VBT in CBFS GMA: Found valid VBT in CBFS ACPI: * HPET ACPI: added table 7/32, length now 64 ACPI: done. ACPI tables: 30032 bytes. smbios_write_tables: 7ff38000 Create SMBIOS type 17 PCI: 01:00.0 (unknown) SMBIOS tables: 662 bytes. Writing table forward entry at 0x00000500 Wrote coreboot table at: 00000500, 0x10 bytes, checksum 9fe7 Writing coreboot table at 0x7ff6e000 0. 0000000000000000-0000000000000fff: CONFIGURATION TABLES 1. 0000000000001000-000000000009ffff: RAM 2. 00000000000a0000-00000000000fffff: RESERVED 3. 0000000000100000-000000001fffffff: RAM 4. 0000000020000000-00000000201fffff: RESERVED 5. 0000000020200000-000000003fffffff: RAM 6. 0000000040000000-00000000401fffff: RESERVED 7. 0000000040200000-000000007ff37fff: RAM 8. 000000007ff38000-000000007ff86fff: CONFIGURATION TABLES 9. 000000007ff87000-000000007ffcefff: RAMSTAGE 10. 000000007ffcf000-000000007fffffff: CONFIGURATION TABLES 11. 0000000080000000-00000000829fffff: RESERVED 12. 00000000f0000000-00000000f3ffffff: RESERVED 13. 00000000fed40000-00000000fed44fff: RESERVED 14. 00000000fed90000-00000000fed91fff: RESERVED 15. 0000000100000000-000000047d5fffff: RAM Manufacturer: c2 SF: Detected MX25L6405D with sector size 0x1000, total 0x800000 CBFS: 'Master Header Locator' located CBFS at [720000:800000) Wrote coreboot table at: 7ff6e000, 0x384 bytes, checksum 8cd2 coreboot table: 924 bytes. IMD ROOT 0. 7ffff000 00001000 IMD SMALL 1. 7fffe000 00001000 CONSOLE 2. 7ffde000 00020000 TIME STAMP 3. 7ffdd000 00000910 ROMSTG STCK 4. 7ffd8000 00005000 AFTER CAR 5. 7ffcf000 00009000 RAMSTAGE 6. 7ff86000 00049000 SMM BACKUP 7. 7ff76000 00010000 COREBOOT 8. 7ff6e000 00008000 ACPI 9. 7ff4a000 00024000 ACPI GNVS 10. 7ff49000 00001000 TCPA TCGLOG11. 7ff39000 00010000 SMBIOS 12. 7ff38000 00000800 IMD small region: IMD ROOT 0. 7fffec00 00000400 MEM INFO 1. 7fffea40 000001a9 ROMSTAGE 2. 7fffea20 00000004 COREBOOTFWD 3. 7fffe9e0 00000028 BS: BS_WRITE_TABLES times (us): entry 0 run 26414 exit 0 CBFS: 'Master Header Locator' located CBFS at [720000:800000) CBFS: Locating 'fallback/payload' CBFS: Found @ offset 41900 size 109ca Checking segment from ROM address 0xfff61938 Payload being loaded at below 1MiB without region being marked as RAM usable. Checking segment from ROM address 0xfff61954 Loading segment from ROM address 0xfff61938 code (compression=1) New segment dstaddr 0x000e0620 memsize 0x1f9e0 srcaddr 0xfff61970 filesize 0x10992 Loading Segment: addr: 0x000e0620 memsz: 0x000000000001f9e0 filesz: 0x0000000000010992 using LZMA Loading segment from ROM address 0xfff61954 Entry Point 0x000fec22 BS: BS_PAYLOAD_LOAD times (us): entry 0 run 32682 exit 0 PCH: watchdog disabled Jumping to boot code at 000fec22(7ff6e000) SeaBIOS (version rel-1.12.0-0-ga698c89) BUILD: gcc: (coreboot toolchain v1.50 October 15th, 2017) 6.3.0 binutils: (GNU Binutils) 2.29.1 Found coreboot cbmem console @ 7ffde000 Found mainboard LENOVO ThinkPad T420s Relocating init from 0x000e1c80 to 0x7feeb140 (size 52672) Found CBFS header at 0xfff20038 multiboot: eax=7ffba200, ebx=7ffba1b4 Found 17 PCI devices (max PCI bus is 03) Copying SMBIOS entry point from 0x7ff38000 to 0x000f6620 Copying ACPI RSDP from 0x7ff4a000 to 0x000f65f0 Using pmtimer, ioport 0x508 Scan for VGA option rom Running option rom at c000:0003 pmm call arg1=0 Turning on vga text mode console SeaBIOS (version rel-1.12.0-0-ga698c89) Machine UUID a6cb3501-43e8-11cb-bb58-981377c501c4 XHCI init on dev 03:00.0: regs @ 0xe1900000, 4 ports, 32 slots, 32 byte contexts XHCI extcap 0x1 @ 0xe1900500 XHCI protocol USB 3.00, 2 ports (offset 1), def 0 XHCI protocol USB 2.00, 2 ports (offset 3), def 0 EHCI init on dev 00:1a.0 (regs=0xe1a2f020) EHCI init on dev 00:1d.0 (regs=0xe1a30020) AHCI controller at 00:1f.2, iobase 0xe1a2e000, irq 10 Searching bootorder for: /pci@i0cf8/pci-bridge@1c,1/*@0 Found 0 lpt ports Found 0 serial ports Searching bootorder for: /pci@i0cf8/*@1f,2/drive@1/disk@0 AHCI/1: registering: "DVD/CD [AHCI/1: MATSHITADVD-RAM UJ8A2 ATAPI-7 DVD/CD]" XHCI no devices found Searching bootorder for: /pci@i0cf8/*@1f,2/drive@0/disk@0 AHCI/0: Set transfer mode to UDMA-6 AHCI/0: registering: "AHCI/0: SAMSUNG SSD 830 Series ATA-9 Hard-Disk (119 GiBytes)" Initialized USB HUB (0 ports used) WARNING - Timeout at ps2_recvbyte:182! WARNING - Timeout at ps2_recvbyte:182! Discarding ps2 data aa (status=11) WARNING - Timeout at ps2_recvbyte:182! WARNING - Timeout at ps2_keyboard_setup:498! WARNING - Timeout at ehci_wait_td:516! ehci pipe=0x7fee9000 cur=7fed7dc0 tok=80080d80 next=7fed7e00 td=0x7fed7dc0 status=80080d80 Initialized USB HUB (0 ports used) All threads complete. Scan for option roms
Press ESC for boot menu.
Searching bootorder for: HALT drive 0x000f6530: PCHS=16383/16/63 translation=lba LCHS=1024/255/63 s=250069680 Space available for UMB: c7000-ed000, f5e40-f6500 Returned 245760 bytes of ZoneHigh e820 map has 13 items: 0: 0000000000000000 - 000000000009fc00 = 1 RAM 1: 000000000009fc00 - 00000000000a0000 = 2 RESERVED 2: 00000000000f0000 - 0000000000100000 = 2 RESERVED 3: 0000000000100000 - 0000000020000000 = 1 RAM 4: 0000000020000000 - 0000000020200000 = 2 RESERVED 5: 0000000020200000 - 0000000040000000 = 1 RAM 6: 0000000040000000 - 0000000040200000 = 2 RESERVED 7: 0000000040200000 - 000000007ff34000 = 1 RAM 8: 000000007ff34000 - 0000000082a00000 = 2 RESERVED 9: 00000000f0000000 - 00000000f4000000 = 2 RESERVED 10: 00000000fed40000 - 00000000fed45000 = 2 RESERVED 11: 00000000fed90000 - 00000000fed92000 = 2 RESERVED 12: 0000000100000000 - 000000047d600000 = 1 RAM enter handle_19: NULL Booting from DVD/CD... Device reports MEDIUM NOT PRESENT scsi_is_ready returned -1 Boot failed: Could not read from CDROM (code 0003) enter handle_18: NULL Booting from Hard Disk... Booting from 0000:7c00
Hi Jason,
On Fri, Mar 1, 2019 at 10:33 AM Jason Andryuk jandryuk@gmail.com wrote:
Hi,
I have a Lenovo Thinkpad t420s on which I've installed coreboot. However, the USB 3.0 port is not active and the controller is not listed under lspci.
Under the original Lenovo bios, the xhci device was at pci address 0d:00.0 behind bridge 00:1c.4.
It looks like the t420s devicetree.cb is set up for the xhci controller to be behind 00:1c.6. I changed that to 00:1c.4 and that got the xhci pci device to show up as 03:00.0. Strangely, booting into linux, it shows 001c.3 as the bridge to 03:00.0. Additionally, plugged in USB devices were not detected.
Note that the mainboard has pcie_port_coalesce set in the devicetree, so it can be wrong to just see the BDF address to know which port the XHCI device is connected to.
However, lspci also shows the port, it'll show `PCI Express Root Port X` where X is actually the port number (PCI function number + 1). The function number in the device tree is based on this port number.
Here's where it gets weird. I had a mouse plugged in, and I was looking in sysfs. cat /sys/devices/pci0000:00/0000:00:1c.3/0000:03:00.0/enable 0 So the xhci pci device is disabled. I ran `lspci -vvnn` a few times in quick sucession - I was looking to see if it showed disabled - and the mouse lit up!
Plugging in a USB Flash drive, it was again not detected. The lspci trigger worked. Later, promptly switching USB devices resulted in the new USB device still being detected.
Is "PCH: PCIe map 1c.4 -> 1c.3" the remapping from the device tree 1c.4 to the 1c.3 that I see?
Below I've included the cbmem -c output and a snippet from an old lenovo BIOS dmesg w/ the pci address.
Does anyone have an idea of what is going on, or what I should investigate next? A total guess, but could poking the PCI device with lspci turn it on so that it may detect an attached device and then stay active? Maybe something with power management? Again, I'm just guessing. Any suggestions are appreciated.
Thanks, Jason
Hi, Iru,
On Thu, Feb 28, 2019 at 10:03 PM Iru Cai mytbk920423@gmail.com wrote:
Hi Jason,
On Fri, Mar 1, 2019 at 10:33 AM Jason Andryuk jandryuk@gmail.com wrote:
Hi,
I have a Lenovo Thinkpad t420s on which I've installed coreboot. However, the USB 3.0 port is not active and the controller is not listed under lspci.
Under the original Lenovo bios, the xhci device was at pci address 0d:00.0 behind bridge 00:1c.4.
It looks like the t420s devicetree.cb is set up for the xhci controller to be behind 00:1c.6. I changed that to 00:1c.4 and that got the xhci pci device to show up as 03:00.0. Strangely, booting into linux, it shows 001c.3 as the bridge to 03:00.0. Additionally, plugged in USB devices were not detected.
Note that the mainboard has pcie_port_coalesce set in the devicetree, so it can be wrong to just see the BDF address to know which port the XHCI device is connected to.
However, lspci also shows the port, it'll show `PCI Express Root Port X` where X is actually the port number (PCI function number + 1). The function number in the device tree is based on this port number.
lspci says PCI Express Root Port 5 which matched my devicetree modification.
Here's where it gets weird. I had a mouse plugged in, and I was looking in sysfs. cat /sys/devices/pci0000:00/0000:00:1c.3/0000:03:00.0/enable 0 So the xhci pci device is disabled. I ran `lspci -vvnn` a few times in quick sucession - I was looking to see if it showed disabled - and the mouse lit up!
Plugging in a USB Flash drive, it was again not detected. The lspci trigger worked. Later, promptly switching USB devices resulted in the new USB device still being detected.
Is "PCH: PCIe map 1c.4 -> 1c.3" the remapping from the device tree 1c.4 to the 1c.3 that I see?
Below I've included the cbmem -c output and a snippet from an old lenovo BIOS dmesg w/ the pci address.
Does anyone have an idea of what is going on, or what I should investigate next? A total guess, but could poking the PCI device with lspci turn it on so that it may detect an attached device and then stay active? Maybe something with power management? Again, I'm just guessing. Any suggestions are appreciated.
Playing around a little more, I discovered the USB 3.0 port works normally when the laptop is plugged in. When on battery, the USB port doesn't detect device insertion in Linux. Booting with an inserted flash drive, Seabios detects and offers the device as a boot option.
Comparing lspci for battery vs. plugged in,
--- lspci-vvvnnn-03:00.0-battery 2019-03-03 21:53:06.490961592 -0500 +++ lspci-vvvnnn-03:00.0-plugged 2019-03-03 21:52:56.006905368 -0500 @@ -1,12 +1,13 @@ 03:00.0 USB controller [0c03]: NEC Corporation uPD720200 USB 3.0 Host Controller [1033:0194] (rev 04) (prog-if 30 [XHCI]) Subsystem: Lenovo uPD720200 USB 3.0 Host Controller [17aa:21d2] - Control: I/O- Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+ + 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 16 Region 0: Memory at e1900000 (64-bit, non-prefetchable) [size=8K] Capabilities: [50] Power Management version 3 Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA PME(D0+,D1-,D2-,D3hot+,D3cold+) - Status: D3 NoSoftRst+ PME-Enable+ DSel=0 DScale=0 PME- + Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME- Capabilities: [70] MSI: Enable- Count=1/8 Maskable- 64bit+ Address: 0000000000000000 Data: 0000 Capabilities: [90] MSI-X: Enable+ Count=8 Masked- So the NEC controller goes into D3 and doesn't seem to leave.
Disabling d3cold_allow on the xhci controller also seems to help device insertion when on battery. echo 0 > /sys/devices/pci0000:00/0000:00:1c.3/0000:03:00.0/d3cold_allowed It doesn't change the lspci output, but device insertion is again detected.
My understanding is d3cold requires some out of band signalling to awaken a device.
Looking at page 100 of these schematics: https://drive.google.com/file/d/0B6IqcVTk0jpYZ0ZvWVd3T1lFVHc/view
"If Wakeup function from D3 cold is required, VCC3_AUX should be applied from system." (Label next to it is VCC3_AUX_USB)
Also from page 100, it looks like VCC3_AUX_USB_ON controls VCC3_AUX_USB.
page 68 VCC3_AUX_USB_ON is pin 13, PGPIO3, of Thinker-1? The chip is labeled BU77700KVT-GP, which google doesn't really have an answer for.
Anyone have any ideas what this chip may be? Any other ideas or suggestions on what to investigate?
Regards, Jason