From: Wei Huang <wei@redhat.com>
To: Shannon Zhao <shannon.zhao@linaro.org>,
qemu-devel@nongnu.org, peter.maydell@linaro.org, mst@redhat.com,
imammedo@redhat.com
Cc: peter.huangpeng@huawei.com, zhaoshenglong@huawei.com
Subject: Re: [Qemu-devel] [PATCH v2 0/8] Add system_powerdown support on ARM for ACPI and DT
Date: Tue, 10 Nov 2015 14:56:12 -0600 [thread overview]
Message-ID: <564259EC.2000308@redhat.com> (raw)
In-Reply-To: <56422B7A.3070107@redhat.com>
On 11/10/2015 11:38 AM, Wei Huang wrote:
>
>
> On 10/29/2015 09:27 AM, Shannon Zhao wrote:
>> ACPI SPEC 5.0 defines GPIO-signaled ACPI Events for Hardware-reduced
>> platforms(like ARM). It uses GPIO pin to trigger an event to the guest.
>> For QEMU, here we add PL061 GPIO controller and use PIN 3 for
>> system_powerdown, reserving PIN 0, 1, 2 for PCI hotplug, CPU hotplug and
>> memory hotplug.
>>
>> This patchset adds system_powerdown support on ARM through both ACPI and
>> DT ways. It adds a GPIO controller(here is PL061) in machine virt and
>> uses GPIO-singled event for ACPI while gpio-keys for DT. It can be
>> fetched from [1] and has been tested for the guests starting by ACPI or
>> DT while guests use systemd or acpid.
>>
>> a) ACPI way. Since Graeme send a patchset to make ACPI on ARM64 support
>> amba device[2], it could use PL061 directly without modification to its
>> kernel driver code. In addition, we should use ACPI to start VM,
>> referring to below script. QEMU_EFI.fd can be fetched from [3].
>>
>> qemu-system-aarch64 \
>> -smp 1 -m 1024 -M virt \
>> -cpu cortex-a57 -nographic \
>> -monitor telnet::4444,server,nowait \
>> -bios QEMU_EFI.fd \
>> -kernel Image \
>> -initrd guestfs.cpio.gz \
>> -append "rdinit=/sbin/init console=ttyAMA0 mem=512M root=/dev/ram
>> earlycon=pl011,0x9000000 rw acpi=force"
>>
>> b) DT way. Start vm as usual.
>>
>> qemu-system-aarch64 \
>> -smp 1 -m 1024 -M virt \
>> -cpu cortex-a57 -nographic \
>> -monitor telnet::4444,server,nowait \
>> -kernel Image \
>> -initrd guestfs.cpio.gz \
>> -append "rdinit=/sbin/init console=ttyAMA0 mem=512M root=/dev/ram
>> earlycon=pl011,0x9000000 rw"
>>
>> Guest internal setup:
>> If your guest FS uses systemd, you should check file
>> /lib/udev/rules.d/70-power-switch.rules and add the following line in it
>> if it doesn't exist.
>>
>> SUBSYSTEM=="input", KERNEL=="event*", SUBSYSTEMS=="platform",
>> ATTRS{keys}=="116", TAG+="power-switch"
>>
>> If your guest FS uses acpid, you should check it has
>> /etc/acpi/powerbtn.sh and /etc/acpi/events/powerbtn. Refer to [4] for
>> the setup of acpid.
>>
>> Thanks,
>> Shannon
>>
>> [1] https://git.linaro.org/people/shannon.zhao/qemu.git/shortlog/refs/heads/PowerButton_v2
>> [2] https://lkml.org/lkml/2015/9/30/392
>> [3] http://people.linaro.org/~shannon.zhao/ACPI_ARM/QEMU_EFI.fd
>> [4] https://wiki.linaro.org/LEG/Engineering/Kernel/ACPI/GPIOPowerButton
>
> Compared with v1, this version doesn't work with system_powerdown
> command. In my setup, the testing environment is exactly same for both
> v1 and v2. So something changed in v2 caused system_powerdown fail to work.
>
I found this was caused by the change of "_HID" name for GPIO device. It
was changed from "LNRO0009" (v1) to "ARMH0061" (v2), which doesn't match
with my stock guest kernel PL061 driver. After changing the guest
kernel, it is working again. So:
Tested-by: Wei Huang <wei@redhat.com>
I will provide reviews to each individual patches.
> -Wei
>
>>
>> Changes since v1:
>> * rewrite GPIO Connection Descriptor (Michael)
>>
>> Shannon Zhao (8):
>> hw/arm/virt: Add a GPIO controller
>> hw/arm/virt-acpi-build: Add GPIO controller in ACPI DSDT table
>> hw/arm/virt-acpi-build: Add power button device in ACPI DSDT table
>> hw/acpi/aml-build: Add GPIO Connection Descriptor
>> hw/acpi/aml-build: Add a wrapper for GPIO Interrupt Connection
>> hw/arm/virt-acpi-build: Add _E03 for Power Button
>> hw/arm/virt: Add QEMU powerdown notifier and hook it to GPIO Pin 3
>> hw/arm/virt: Add gpio-keys node for Poweroff using DT
>>
>> hw/acpi/aml-build.c | 79 +++++++++++++++++++++++++++++++++++++++++++++
>> hw/arm/virt-acpi-build.c | 45 ++++++++++++++++++++++++++
>> hw/arm/virt.c | 60 ++++++++++++++++++++++++++++++++++
>> include/hw/acpi/aml-build.h | 26 +++++++++++++++
>> include/hw/arm/virt.h | 1 +
>> 5 files changed, 211 insertions(+)
>>
>
next prev parent reply other threads:[~2015-11-10 20:56 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-10-29 14:27 [Qemu-devel] [PATCH v2 0/8] Add system_powerdown support on ARM for ACPI and DT Shannon Zhao
2015-10-29 14:27 ` [Qemu-devel] [PATCH v2 1/8] hw/arm/virt: Add a GPIO controller Shannon Zhao
2015-11-10 22:42 ` Wei Huang
2015-10-29 14:27 ` [Qemu-devel] [PATCH v2 2/8] hw/arm/virt-acpi-build: Add GPIO controller in ACPI DSDT table Shannon Zhao
2015-10-29 14:27 ` [Qemu-devel] [PATCH v2 3/8] hw/arm/virt-acpi-build: Add power button device " Shannon Zhao
2015-11-11 5:09 ` Wei Huang
2015-10-29 14:27 ` [Qemu-devel] [PATCH v2 4/8] hw/acpi/aml-build: Add GPIO Connection Descriptor Shannon Zhao
2015-10-29 14:27 ` [Qemu-devel] [PATCH v2 5/8] hw/acpi/aml-build: Add a wrapper for GPIO Interrupt Connection Shannon Zhao
2015-10-29 14:27 ` [Qemu-devel] [PATCH v2 6/8] hw/arm/virt-acpi-build: Add _E03 for Power Button Shannon Zhao
2015-10-29 14:27 ` [Qemu-devel] [PATCH v2 7/8] hw/arm/virt: Add QEMU powerdown notifier and hook it to GPIO Pin 3 Shannon Zhao
2015-11-11 6:57 ` Wei Huang
2015-11-11 8:52 ` Peter Maydell
2015-10-29 14:27 ` [Qemu-devel] [PATCH v2 8/8] hw/arm/virt: Add gpio-keys node for Poweroff using DT Shannon Zhao
2015-10-29 18:17 ` [Qemu-devel] [PATCH v2 0/8] Add system_powerdown support on ARM for ACPI and DT Wei Huang
2015-10-30 1:09 ` Shannon Zhao
2015-11-10 17:38 ` Wei Huang
2015-11-10 20:56 ` Wei Huang [this message]
2015-11-11 1:29 ` Shannon Zhao
2015-11-11 8:36 ` Peter Maydell
2015-11-11 8:53 ` Shannon Zhao
2015-11-27 17:18 ` Peter Maydell
2015-12-02 12:15 ` Igor Mammedov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=564259EC.2000308@redhat.com \
--to=wei@redhat.com \
--cc=imammedo@redhat.com \
--cc=mst@redhat.com \
--cc=peter.huangpeng@huawei.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=shannon.zhao@linaro.org \
--cc=zhaoshenglong@huawei.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).