From: "Andreas Färber" <afaerber@suse.de>
To: Christoffer Dall <christoffer.dall@linaro.org>
Cc: linaro-kernel@lists.linaro.org, qemu-devel@nongnu.org,
patches@linaro.org, kvmarm@lists.cs.columbia.edu
Subject: Re: [Qemu-devel] [PATCH 4/5] hw: arm_gic: Support setting/getting binary point reg
Date: Fri, 23 Aug 2013 23:57:02 +0200 [thread overview]
Message-ID: <5217DAAE.4000308@suse.de> (raw)
In-Reply-To: <1377288624-7418-5-git-send-email-christoffer.dall@linaro.org>
"arm_gic:" is sufficient, "hw/arm_gic:" if you see the need.
Am 23.08.2013 22:10, schrieb Christoffer Dall:
> Add a binary_point field to the gic emulation structure and support
> setting/getting this register now when we have it. We don't actually
> support interrupt grouping yet, oh well.
>
> Signed-off-by: Christoffer Dall <christoffer.dall@linaro.org>
> ---
> hw/intc/arm_gic.c | 5 ++---
> hw/intc/arm_gic_common.c | 1 +
> hw/intc/gic_internal.h | 3 +++
> 3 files changed, 6 insertions(+), 3 deletions(-)
>
> diff --git a/hw/intc/arm_gic.c b/hw/intc/arm_gic.c
> index 4da534f..cb2004d 100644
> --- a/hw/intc/arm_gic.c
> +++ b/hw/intc/arm_gic.c
> @@ -568,8 +568,7 @@ static uint32_t gic_cpu_read(GICState *s, int cpu, int offset)
> case 0x04: /* Priority mask */
> return s->priority_mask[cpu];
> case 0x08: /* Binary Point */
> - /* ??? Not implemented. */
> - return 0;
> + return s->binary_point[0][cpu];
> case 0x0c: /* Acknowledge */
> value = gic_acknowledge_irq(s, cpu);
> value |= (GIC_SGI_SRC(value, cpu) & 0x7) << 10;
> @@ -596,7 +595,7 @@ static void gic_cpu_write(GICState *s, int cpu, int offset, uint32_t value)
> s->priority_mask[cpu] = (value & 0xff);
> break;
> case 0x08: /* Binary Point */
> - /* ??? Not implemented. */
> + s->binary_point[0][cpu] = (value & 0x7);
> break;
> case 0x10: /* End Of Interrupt */
> return gic_complete_irq(s, cpu, value & 0x3ff);
> diff --git a/hw/intc/arm_gic_common.c b/hw/intc/arm_gic_common.c
> index 7a1c9e5..a50ded2 100644
> --- a/hw/intc/arm_gic_common.c
> +++ b/hw/intc/arm_gic_common.c
> @@ -76,6 +76,7 @@ static const VMStateDescription vmstate_gic = {
> VMSTATE_UINT16_ARRAY(running_irq, GICState, NCPU),
> VMSTATE_UINT16_ARRAY(running_priority, GICState, NCPU),
> VMSTATE_UINT16_ARRAY(current_pending, GICState, NCPU),
> + VMSTATE_UINT8_2DARRAY(binary_point, GICState, 2, NCPU),
> VMSTATE_END_OF_LIST()
> }
> };
You can't just add VMState fields without bumping the version_id and
marking the field as starting in that version. That breaks
loadvm/migration format compatibility.
> diff --git a/hw/intc/gic_internal.h b/hw/intc/gic_internal.h
> index 6f04885..424a41f 100644
> --- a/hw/intc/gic_internal.h
> +++ b/hw/intc/gic_internal.h
> @@ -98,6 +98,9 @@ typedef struct GICState {
> uint16_t running_priority[NCPU];
> uint16_t current_pending[NCPU];
>
> + /* these registers are mainly used for save/restore of KVM state */
> + uint8_t binary_point[2][NCPU]; /* [0]: group 0, [1]: group 1 */
binary_point[1] is never used, but changing the VMState field from
length 1 to length 2 is probably more difficult than having a few extra
bytes here.
Regards,
Andreas
> +
> uint32_t num_cpu;
>
> MemoryRegion iomem; /* Distributor */
--
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg
next prev parent reply other threads:[~2013-08-23 21:57 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-08-23 20:10 [Qemu-devel] [PATCH 0/5] Support arm-gic-kvm save/restore Christoffer Dall
2013-08-23 20:10 ` [Qemu-devel] [PATCH 1/5] hw: arm_gic: Fix gic_set_irq handling Christoffer Dall
2013-09-06 13:59 ` Peter Maydell
2013-09-13 6:38 ` Christoffer Dall
2013-08-23 20:10 ` [Qemu-devel] [PATCH 2/5] hw: arm_gic: Introduce GIC_SET_PRIORITY macro Christoffer Dall
2013-08-25 15:37 ` Alexander Graf
2013-09-13 6:47 ` Christoffer Dall
2013-08-23 20:10 ` [Qemu-devel] [PATCH 3/5] hw: arm_gic: Keep track of SGI sources Christoffer Dall
2013-09-06 14:08 ` Peter Maydell
2013-09-13 19:29 ` Christoffer Dall
2013-08-23 20:10 ` [Qemu-devel] [PATCH 4/5] hw: arm_gic: Support setting/getting binary point reg Christoffer Dall
2013-08-23 21:57 ` Andreas Färber [this message]
2013-09-06 14:41 ` Peter Maydell
2013-09-14 1:52 ` Christoffer Dall
2013-09-14 9:46 ` Peter Maydell
2013-09-19 19:48 ` Christoffer Dall
2013-09-19 20:03 ` Christoffer Dall
2013-08-23 20:10 ` [Qemu-devel] [PATCH 5/5] hw: arm_gic_kvm: Add KVM VGIC save/restore logic Christoffer Dall
2013-08-25 15:47 ` Alexander Graf
2013-09-06 14:57 ` Paolo Bonzini
2013-09-20 20:41 ` Christoffer Dall
2013-09-20 21:09 ` Paolo Bonzini
2013-09-20 21:23 ` Christoffer Dall
2013-09-20 20:39 ` Christoffer Dall
2013-09-06 15:13 ` Peter Maydell
2013-09-20 19:50 ` Christoffer Dall
2013-09-20 21:22 ` Peter Maydell
2013-09-20 21:46 ` Christoffer Dall
2013-09-21 9:38 ` Peter Maydell
2013-09-23 2:14 ` Christoffer Dall
2013-09-23 12:02 ` Peter Maydell
2013-09-23 15:30 ` Christoffer Dall
2013-08-25 15:48 ` [Qemu-devel] [PATCH 0/5] Support arm-gic-kvm save/restore Alexander Graf
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=5217DAAE.4000308@suse.de \
--to=afaerber@suse.de \
--cc=christoffer.dall@linaro.org \
--cc=kvmarm@lists.cs.columbia.edu \
--cc=linaro-kernel@lists.linaro.org \
--cc=patches@linaro.org \
--cc=qemu-devel@nongnu.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.