[U-Boot] [PATCH v2 00/22] x86: Add ACPI S3 resume support
Bin Meng
bmeng.cn at gmail.com
Tue Apr 25 09:34:18 UTC 2017
Hi Stefan,
On Tue, Apr 25, 2017 at 4:51 PM, Stefan Roese <sr at denx.de> wrote:
> Hi Bin,
>
> On 25.04.2017 10:02, Bin Meng wrote:
>
> <snip>
>
>>> Booting Ubuntu 16.04 (kernel 4.4) with graphical interface seems to
>>> have some (rare) problems though. When I boot into Ubuntu with the
>>> correct "console=" configuration (log via serial console), suspend
>>> / resume seems to work fine as well - at least in the tests I did
>>> so far. But when I don't provide this "console=" and use "quiet"
>>> instead, resume does not seem to work reliably. Most of the times it
>>> works just fine as well, but sometimes the graphical user interface
>>> doesn't come up at all after resuming (display stays in power safe
>>> mode). The U-Boot log is the same in both cases:
>>>
>>
>> I only have a pre-installed Ubuntu 14.04 hard disk which was installed
>> from U-Boot and SeaBIOS at the time when ACPI/SeaBIOS support was
>> added to U-Boot long time ago. So suspend/resume does not work with my
>> installation since I believe Ubuntu has lots of custom scripts for
>> helping suspend/resume. I've run the testing on this installation
>> though, and U-Boot did not even boot after I pressed the power button
>> which means my Ubuntu 14.04 might not even put the system into the
>> correct ACPI sleeping state. So I have to reinstall a new one.
>>
>> So how about your Ubuntu 16.04 installation? Was it installed from
>> U-Boot? Or from original commercial BIOS?
>
> Installed via original congatec BIOS.
>
>> What do you mean by "display
>> stays in power safe mode"? Is it a black screen, or is it just
>> U-Boot's video output screen?
>
> Blank screen and the monitor does not wake up from power-safe
> mode. I see the log on the serial console, since I've changed the
> environment (stdio) to not use the LCD as the console in U-Boot.
> U-Boot uses the console as a splash screen instead.
>
Since you were seeing black screen I guess your U-Boot was not running
the VGA BIOS for the Intel Baytrail IGD? The LCD driver is not the
Intel i915 graphics driver?
>>> Jumping to OS waking vector 0009a1d0
>>>
>>> And the POST debug byte is also identical (0x40).
>>>
>>
>> These logs looks good. Nothing strange.
>>
>>> Do you have any ideas, where this might come from? Could you
>>> perhaps check this on MinnoxMax as well, if such a setup also
>>> sometimes has problems with resuming? Is there anything that I could
>>> do to test this on my platform?
>>>
>>
>> To match your env, I will install a 16.04 from U-Boot for testing. Can
>> you add the following kernel parameters for testing suspend/resume?
>>
>> "console=ttyS0,115200 initcall_debug ignore_loglevel no_console_suspend"
>
> Ah, this brings some infos. Here the resume log:
>
> [ 49.810439] smpboot: CPU 3 is now offline
> [ 49.828153] PM: Calling kvm_suspend+0x0/0x30 [kvm]
> [ 49.833517] PM: Calling mce_syscore_suspend+0x0/0x20
> [ 49.839072] PM: Calling ledtrig_cpu_syscore_suspend+0x0/0x20
> [ 49.845404] PM: Calling acpi_processor_suspend+0x0/0x1e
> [ 49.851255] PM: Calling timekeeping_suspend+0x0/0x2a0
> [ 49.856925] PM: Calling irq_gc_suspend+0x0/0x70
> [ 49.861992] PM: Calling save_ioapic_entries+0x0/0x90
> [ 49.867738] PM: Calling i8259A_suspend+0x0/0x30
> [ 49.872806] PM: Calling fw_suspend+0x0/0x20
> [ 49.877484] PM: Calling lapic_suspend+0x0/0x1b0
> ��
>
> U-Boot 2017.05-rc2-00122-gf6a9c0b4fd-dirty (Apr 24 2017 - 10:50:06 +0200)
>
> CPU: x86_64, vendor Intel, device 30679h
> DRAM: 4 GiB
> MMC: ValleyView SDHCI: 0, ValleyView SDHCI: 1, ValleyView SDHCI: 2
> SF: Detected w25q64cv with page size 256 Bytes, erase size 4 KiB, total 8 MiB
> Model: congatec-QEVAL20-QA3-E3845
> SCSI: SATA link 0 timeout.
> Target spinup took 0 ms.
> AHCI 0001.0300 32 slots 2 ports 3 Gbps 0x3 impl SATA mode
> flags: 64bit ncq stag pm led clo pio slum part sxs
> scanning bus for devices...
> Device 0: (1:0) Vendor: ATA Prod.: SanDisk Ultra II Rev: X411
> Type: Hard Disk
> Capacity: 457862.8 MB = 447.1 GB (937703088 x 512)
> Found 1 device(s).
> Net: e1000: 00:13:95:1c:51:e8
> eth0: e1000#0
> Jumping to OS waking vector 0009a1d0
> [ 49.882704] ACPI: Low-level resume complete
> [ 49.887483] PM: Restoring platform NVS memory
> [ 49.892361] PM: Calling bsp_resume+0x0/0x20
> [ 49.897040] PM: Calling lapic_resume+0x0/0x2b0
> [ 49.902035] PM: Calling irqrouter_resume+0x0/0x3f
> [ 49.907297] PM: Calling i8259A_resume+0x0/0x30
> [ 49.912393] PM: Calling i8237A_resume+0x0/0x90
> [ 49.917434] PM: Calling ioapic_resume+0x0/0xa0
> [ 49.922495] PM: Calling irq_gc_resume+0x0/0x60
> [ 49.927464] PM: Calling irq_pm_syscore_resume+0x0/0x20
> [ 49.933256] PM: Calling timekeeping_resume+0x0/0x200
> [ 49.938844] PM: Calling acpi_processor_resume+0x0/0x5c
> [ 49.944595] PM: Calling ledtrig_cpu_syscore_resume+0x0/0x20
> [ 49.950829] PM: Calling mce_syscore_resume+0x0/0x30
> [ 49.956291] PM: Calling mc_bp_resume+0x0/0x50
> [ 49.961193] PM: Calling kvm_resume+0x0/0x40 [kvm]
> [ 49.966523] Enabling non-boot CPUs ...
> [ 49.990192] x86: Booting SMP configuration:
> [ 49.994894] smpboot: Booting Node 0 Processor 1 APIC 0x2
> [ 50.011048] cache: parent cpu1 should not be sleeping
> [ 50.017239] CPU1 is up
> [ 50.038380] smpboot: Booting Node 0 Processor 2 APIC 0x4
> [ 50.054552] cache: parent cpu2 should not be sleeping
> [ 50.060685] CPU2 is up
> [ 50.082550] smpboot: Booting Node 0 Processor 3 APIC 0x6
> [ 50.098820] cache: parent cpu3 should not be sleeping
> [ 50.104972] CPU3 is up
> [ 50.108534] ACPI: Waking up from system sleep state S3
> [ 50.114576] calling 0000:00:00.0+ @ 2269, parent: pci0000:00
> [ 50.114630] calling 0000:00:02.0+ @ 163, parent: pci0000:00
> [ 50.114728] calling 0000:00:11.0+ @ 2265, parent: pci0000:00
> [ 50.114759] calling 0000:00:12.0+ @ 2268, parent: pci0000:00
> [ 50.114800] calling 0000:00:13.0+ @ 159, parent: pci0000:00
> [ 50.114830] calling 0000:00:15.0+ @ 149, parent: pci0000:00
> [ 50.114926] call 0000:00:15.0+ returned 0 after 86 usecs
> [ 50.114942] calling 0000:00:17.0+ @ 149, parent: pci0000:00
> [ 50.114979] calling 0000:00:1c.0+ @ 2267, parent: pci0000:00
> [ 50.115003] calling 0000:00:1c.1+ @ 40, parent: pci0000:00
> [ 50.115020] calling 0000:00:1c.2+ @ 2266, parent: pci0000:00
> [ 50.115261] call 0000:00:1c.0+ returned 0 after 267 usecs
> [ 50.115282] calling 0000:00:1c.3+ @ 2267, parent: pci0000:00
> [ 50.115289] call 0000:00:1c.1+ returned 0 after 268 usecs
> [ 50.115304] calling 0000:00:1d.0+ @ 40, parent: pci0000:00
> [ 50.115409] calling 0000:00:1e.0+ @ 6, parent: pci0000:00
> [ 50.115446] calling 0000:00:1e.1+ @ 158, parent: pci0000:00
> [ 50.115465] call 0000:00:1c.3+ returned 0 after 171 usecs
> [ 50.115482] calling 0000:00:1e.2+ @ 2271, parent: pci0000:00
> [ 50.115487] calling 0000:00:1e.4+ @ 2267, parent: pci0000:00
> [ 50.115689] calling 0000:00:1e.5+ @ 2270, parent: pci0000:00
> [ 50.115748] call 0000:00:1e.5+ returned 0 after 51 usecs
> [ 50.115759] calling 0000:00:1f.0+ @ 2270, parent: pci0000:00
> [ 50.115804] call 0000:00:1f.0+ returned 0 after 38 usecs
> [ 50.115813] calling 0000:00:1f.3+ @ 2270, parent: pci0000:00
> [ 50.115899] call 0000:00:1f.3+ returned 0 after 77 usecs
> [ 50.115907] calling 0000:04:00.0+ @ 2270, parent: 0000:00:1c.3
> [ 50.129887] call 0000:00:1e.1+ returned 0 after 14073 usecs
> [ 50.129890] call 0000:00:1e.2+ returned 0 after 14040 usecs
> [ 50.129959] call 0000:00:1e.0+ returned 0 after 14181 usecs
> [ 50.130106] call 0000:04:00.0+ returned 0 after 13839 usecs
> [ 50.130142] ehci-pci 0000:00:1d.0: System wakeup disabled by ACPI
> [ 50.130149] call 0000:00:1e.4+ returned 0 after 14290 usecs
> [ 50.130151] call 0000:00:1d.0+ returned 0 after 14471 usecs
> [ 50.130210] call 0000:00:17.0+ returned 0 after 14882 usecs
> [ 50.130256] call 0000:00:13.0+ returned 0 after 15063 usecs
> [ 50.130268] call 0000:00:11.0+ returned 0 after 15145 usecs
> [ 50.130311] call 0000:00:12.0+ returned 0 after 15158 usecs
> [ 50.130327] call 0000:00:02.0+ returned 0 after 15299 usecs
> [ 50.359559] call 0000:00:00.0+ returned 0 after 16 usecs
> [ 76.935630] NMI watchdog: BUG: soft lockup - CPU#0 stuck for 22s! [kworker/u8:7:2266]
> [ 76.944393] Modules linked in: intel_rapl intel_soc_dts_iosf intel_powerclamp spi_pxa2xx_platform kvm_intel kvm irqbypass punit_atom_debug crct10dif_pclmul crc32_pclmul aesni_intel aes_x86_64 joydev input_leds lrw gf128mul glue_helper ablk_helper cryptd lpc_ich serio_raw pwm_lpss_pci spi_pxa2xx_pci pwm_lpss dw_dmac_pci dw_dmac_core shpchp 8250_fintek mac_hid nfsd auth_rpcgss nfs_acl lockd coretemp grace parport_pc ppdev lp parport sunrpc autofs4 hid_cherry usbhid hid mmc_block igb dca ptp i915 video drm_kms_helper syscopyarea sysfillrect sysimgblt fb_sys_fops ahci psmouse pps_core drm i2c_algo_bit sdhci_pci libahci sdhci fjes
> [ 77.006747] CPU: 0 PID: 2266 Comm: kworker/u8:7 Not tainted 4.4.0-36-generic #55-Ubuntu
> [ 77.015702] Hardware name: congatec conga-qeval20-qa3-e3845/conga-qeval20-qa3-e3845, BIOS 2017.05-rc2-00122-gf6a9c0b4fd-dirty 04/24/2017
> [ 77.029429] Workqueue: events_unbound async_run_entry_fn
> [ 77.035374] task: ffff8800628b0c80 ti: ffff880176dc8000 task.ti: ffff880176dc8000
> [ 77.043746] RIP: 0010:[<ffffffff81085ad1>] [<ffffffff81085ad1>] __do_softirq+0x81/0x290
> [ 77.052807] RSP: 0018:ffff88017fc03f28 EFLAGS: 00000206
> [ 77.058747] RAX: ffff880176dcc000 RBX: 0000000000000000 RCX: 00000000000006e0
> [ 77.066730] RDX: 0000000000000000 RSI: 0000000004208060 RDI: 00000000000006e0
> [ 77.074704] RBP: ffff88017fc03f80 R08: ffff88017820e400 R09: ffff88017fc16d30
> [ 77.082687] R10: 0000000000000020 R11: 0000000000000004 R12: 0000000000000246
> [ 77.090669] R13: 00000000000000e2 R14: 000000000000002c R15: 000000000000000c
> [ 77.098653] FS: 0000000000000000(0000) GS:ffff88017fc00000(0000) knlGS:0000000000000000
> [ 77.107706] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b
> [ 77.114132] CR2: 00007f7a3c016028 CR3: 0000000176cb5000 CR4: 00000000001006f0
> [ 77.122115] Stack:
> [ 77.124359] 042080607fc0ede8 ffff880176dcc000 00000000ffff0b90 ffffffff81f361c0
> [ 77.132648] ffff88010000000a 000002827fc0d640 0000000000000000 0000000000000246
> [ 77.140937] 00000000000000e2 000000000000002c 000000000000000c ffff88017fc03f90
> [ 77.149226] Call Trace:
> [ 77.151957] <IRQ>
> [ 77.154107] [<ffffffff81085e53>] irq_exit+0xa3/0xb0
> [ 77.159860] [<ffffffff81830a62>] smp_apic_timer_interrupt+0x42/0x50
> [ 77.166969] [<ffffffff8182ed22>] apic_timer_interrupt+0x82/0x90
> [ 77.173686] <EOI>
> [ 77.175834] [<ffffffff8182da05>] ? _raw_spin_unlock_irqrestore+0x15/0x20
> [ 77.183630] [<ffffffff81436269>] pci_bus_write_config_dword.part.7+0x59/0x70
> [ 77.191614] [<ffffffff81436299>] pci_bus_write_config_dword+0x19/0x20
> [ 77.198919] [<ffffffff8143c335>] pci_restore_config_dword+0x65/0xe0
> [ 77.206029] [<ffffffff8143e1a2>] pci_restore_state.part.33+0x222/0x250
> [ 77.213429] [<ffffffff8143e1e8>] pci_restore_state+0x18/0x20
> [ 77.219858] [<ffffffff8144237f>] pci_pm_resume_noirq+0x2f/0xa0
> [ 77.226480] [<ffffffff81442350>] ? pci_add_dynid+0xd0/0xd0
> [ 77.232715] [<ffffffff81560ebe>] dpm_run_callback+0x4e/0x140
> [ 77.239143] [<ffffffff81561060>] device_resume_noirq+0xb0/0x190
> [ 77.245861] [<ffffffff8156115d>] async_resume_noirq+0x1d/0x50
> [ 77.252378] [<ffffffff810a3208>] async_run_entry_fn+0x48/0x150
> [ 77.259001] [<ffffffff8109a2c5>] process_one_work+0x165/0x480
> [ 77.265526] [<ffffffff8109a62b>] worker_thread+0x4b/0x4c0
> [ 77.271662] [<ffffffff8109a5e0>] ? process_one_work+0x480/0x480
> [ 77.278381] [<ffffffff810a0808>] kthread+0xd8/0xf0
> [ 77.283826] [<ffffffff810a0730>] ? kthread_create_on_node+0x1e0/0x1e0
> [ 77.291130] [<ffffffff8182e34f>] ret_from_fork+0x3f/0x70
> [ 77.297168] [<ffffffff810a0730>] ? kthread_create_on_node+0x1e0/0x1e0
> [ 77.304460] Code: 00 c7 45 c8 0a 00 00 00 48 89 45 c0 65 48 8b 04 25 04 42 01 00 48 89 45 b0 65 c7 05 76 e6 f8 7e 00 00 00 00 fb 66 0f 1f 44 00 00 <b8> ff ff ff ff 49 c7 c4 c0 90 e0 81 0f bc 45 d4 83 c0 01 89 45
Thanks for the logs. Can you do the following before suspend and test again?
# echo 0 > /sys/power/pm_async
[snip]
Regards,
Bin
More information about the U-Boot
mailing list