From: Peter Maydell <peter.maydell@linaro.org>
To: "Philippe Mathieu-Daudé" <philmd@redhat.com>
Cc: Peng Hao <peng.hao2@zte.com.cn>,
QEMU Developers <qemu-devel@nongnu.org>,
Wen Congyang <wency@cn.fujitsu.com>,
Hu Tao <hutao@cn.fujitsu.com>,
"open list:ARM" <qemu-arm@nongnu.org>
Subject: Re: [Qemu-devel] [PATCH v3 4/4] hw/arm/virt: Use the pvpanic device
Date: Thu, 18 Oct 2018 14:37:12 +0100 [thread overview]
Message-ID: <CAFEAcA-WC1vRmGH0t87hHFtMNTRW16xYy5R4kqickohNhECOPw@mail.gmail.com> (raw)
In-Reply-To: <20181018130434.23237-5-philmd@redhat.com>
On 18 October 2018 at 14:04, Philippe Mathieu-Daudé <philmd@redhat.com> wrote:
> Signed-off-by: Peng Hao <peng.hao2@zte.com.cn>
> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
> [PMD: Use TYPE_PVPANIC definition, split in 2 patches]
> ---
> default-configs/arm-softmmu.mak | 2 +-
> hw/arm/virt.c | 21 +++++++++++++++++++++
> include/hw/arm/virt.h | 1 +
> 3 files changed, 23 insertions(+), 1 deletion(-)
>
> diff --git a/default-configs/arm-softmmu.mak b/default-configs/arm-softmmu.mak
> index 2420491aac..def07fa095 100644
> --- a/default-configs/arm-softmmu.mak
> +++ b/default-configs/arm-softmmu.mak
> @@ -43,7 +43,7 @@ CONFIG_USB_MUSB=y
> CONFIG_USB_EHCI_SYSBUS=y
> CONFIG_PLATFORM_BUS=y
> CONFIG_VIRTIO_MMIO=y
> -
> +CONFIG_PVPANIC=y
> CONFIG_ARM11MPCORE=y
> CONFIG_A9MPCORE=y
> CONFIG_A15MPCORE=y
> diff --git a/hw/arm/virt.c b/hw/arm/virt.c
> index 9f677825f9..40469e6785 100644
> --- a/hw/arm/virt.c
> +++ b/hw/arm/virt.c
> @@ -59,6 +59,7 @@
> #include "qapi/visitor.h"
> #include "standard-headers/linux/input.h"
> #include "hw/arm/smmuv3.h"
> +#include "hw/misc/pvpanic.h"
>
> #define DEFINE_VIRT_MACHINE_LATEST(major, minor, latest) \
> static void virt_##major##_##minor##_class_init(ObjectClass *oc, \
> @@ -140,6 +141,7 @@ static const MemMapEntry a15memmap[] = {
> [VIRT_UART] = { 0x09000000, 0x00001000 },
> [VIRT_RTC] = { 0x09010000, 0x00001000 },
> [VIRT_FW_CFG] = { 0x09020000, 0x00000018 },
> + [VIRT_PVPANIC_MMIO] = { 0x09020018, 0x00000002 },
This shouldn't be in the same physical 64K page as the preceding device:
we carefully keep them all separate so that the guest can give them
separate MMU permissions if it wants.
> [VIRT_GPIO] = { 0x09030000, 0x00001000 },
> [VIRT_SECURE_UART] = { 0x09040000, 0x00001000 },
> [VIRT_SMMU] = { 0x09050000, 0x00020000 },
> @@ -802,6 +804,23 @@ static void create_gpio(const VirtMachineState *vms, qemu_irq *pic)
> g_free(nodename);
> }
>
> +static void create_pvpanic_device(const VirtMachineState *vms)
> +{
> + char *nodename;
> + hwaddr base = vms->memmap[VIRT_PVPANIC_MMIO].base;
> + hwaddr size = vms->memmap[VIRT_PVPANIC_MMIO].size;
> +
> + sysbus_create_simple(TYPE_PVPANIC, base, NULL);
> +
> + nodename = g_strdup_printf("/pvpanic-mmio@%" PRIx64, base);
> + qemu_fdt_add_subnode(vms->fdt, nodename);
> + qemu_fdt_setprop_string(vms->fdt, nodename,
> + "compatible", "pvpanic,mmio");
> + qemu_fdt_setprop_sized_cells(vms->fdt, nodename, "reg",
> + 2, base, 2, size);
This doesn't seem to be an official DT binding. It would need to be
accepted upstream (ie in the kernel's Documentation/devicetree/bindings/)
before we could add the device in QEMU.
What about an ACPI table entry?
Does this really need to be an MMIO device, rather than a PCI device?
Being a PCI device would avoid all of these issues:
* having to specify a dt binding
* having to specify an ACPI binding
* having to either have the thing always present, or some custom
way for the user to enable/disable it
plus it means it's available for other boards and architectures than
just the Arm virt board.
I'd also like some confirmation from folks more familiar with the
current state of the art in guest-to-management-layer communication
that pvpanic is still the recommended way to achieve this goal,
and hasn't been obsoleted by something else.
thanks
-- PMM
next prev parent reply other threads:[~2018-10-18 13:37 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-10-18 13:04 [Qemu-devel] [PATCH v3 0/4] hw/misc: Add a MMIO interface to the pvpanic device Philippe Mathieu-Daudé
2018-10-18 13:04 ` [Qemu-devel] [PATCH v3 1/4] hw/misc/pvpanic: Build the pvpanic device in $(common-obj) Philippe Mathieu-Daudé
2018-10-18 13:04 ` [Qemu-devel] [PATCH v3 2/4] hw/misc/pvpanic: Cosmetic renaming Philippe Mathieu-Daudé
2018-10-18 13:04 ` [Qemu-devel] [PATCH v3 3/4] hw/misc/pvpanic: Add the MMIO interface Philippe Mathieu-Daudé
2018-10-18 13:08 ` Peter Maydell
2018-10-18 13:19 ` Philippe Mathieu-Daudé
2018-10-18 13:27 ` Peter Maydell
2018-10-18 16:13 ` peng.hao2
2018-10-18 13:04 ` [Qemu-devel] [PATCH v3 4/4] hw/arm/virt: Use the pvpanic device Philippe Mathieu-Daudé
2018-10-18 13:37 ` Peter Maydell [this message]
2018-10-18 16:07 ` peng.hao2
2018-10-18 13:09 ` [Qemu-devel] [PATCH v3 0/4] hw/misc: Add a MMIO interface to " Philippe Mathieu-Daudé
2018-10-25 5:47 ` [Qemu-devel] [PATCH v3 0/4] hw/misc: Add a MMIO interface to the pvpanicdevice peng.hao2
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=CAFEAcA-WC1vRmGH0t87hHFtMNTRW16xYy5R4kqickohNhECOPw@mail.gmail.com \
--to=peter.maydell@linaro.org \
--cc=hutao@cn.fujitsu.com \
--cc=peng.hao2@zte.com.cn \
--cc=philmd@redhat.com \
--cc=qemu-arm@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=wency@cn.fujitsu.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).