[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v3 11/24] cpu/a15mpcore: Embed GICState
From: |
Peter Maydell |
Subject: |
Re: [Qemu-devel] [PATCH v3 11/24] cpu/a15mpcore: Embed GICState |
Date: |
Wed, 21 Aug 2013 22:05:29 +0100 |
On 20 August 2013 16:21, Andreas Färber <address@hidden> wrote:
> From: Andreas Färber <address@hidden>
>
> This covers both emulated and KVM GIC.
> @@ -35,40 +36,48 @@ typedef struct A15MPPrivState {
> uint32_t num_cpu;
> uint32_t num_irq;
> MemoryRegion container;
> - DeviceState *gic;
> +
> + GICState gic;
> } A15MPPrivState;
> static void a15mp_priv_initfn(Object *obj)
> {
> SysBusDevice *sbd = SYS_BUS_DEVICE(obj);
> A15MPPrivState *s = A15MPCORE_PRIV(obj);
> + DeviceState *gicdev;
> + const char *gictype = "arm_gic";
> +
> + if (kvm_irqchip_in_kernel()) {
> + gictype = "kvm-arm-gic";
> + }
>
> memory_region_init(&s->container, obj, "a15mp-priv-container", 0x8000);
> sysbus_init_mmio(sbd, &s->container);
> +
> + object_initialize(&s->gic, gictype);
> + gicdev = DEVICE(&s->gic);
> + qdev_set_parent_bus(gicdev, sysbus_get_default());
> + qdev_prop_set_uint32(gicdev, "revision", 2);
So this is basically assuming that kvm-arm-gic and arm-gic
both have an instance struct of exactly the same size,
even though they're different classes (they happen to be
so at the moment, because neither adds extra state beyond
that needed by common base class). Is that really a good
idea? (If it ever becomes not true we get silent memory
corruption here...)
-- PMM
- [Qemu-devel] [PATCH v3 00/24] arm: ARM11MPCore+A9MPCore+A15MPCore QOM'ification, Andreas Färber, 2013/08/20
- [Qemu-devel] [PATCH v3 02/24] intc/arm_gic: Extract headers hw/intc/arm_gic{, _common}.h, Andreas Färber, 2013/08/20
- [Qemu-devel] [PATCH v3 14/24] a9scu: Build only once, Andreas Färber, 2013/08/20
- [Qemu-devel] [PATCH v3 01/24] cpu/a9mpcore: Split off instance_init, Andreas Färber, 2013/08/20
- [Qemu-devel] [PATCH v3 03/24] cpu/a9mpcore: Embed GICState, Andreas Färber, 2013/08/20
- [Qemu-devel] [PATCH v3 10/24] cpu/a15mpcore: Split off instance_init, Andreas Färber, 2013/08/20
- [Qemu-devel] [PATCH v3 08/24] cpu/a9mpcore: Convert to QOM realize, Andreas Färber, 2013/08/20
- [Qemu-devel] [PATCH v3 11/24] cpu/a15mpcore: Embed GICState, Andreas Färber, 2013/08/20
- Re: [Qemu-devel] [PATCH v3 11/24] cpu/a15mpcore: Embed GICState,
Peter Maydell <=
- [Qemu-devel] [PATCH v3 04/24] misc/a9scu: QOM cleanups, Andreas Färber, 2013/08/20
- [Qemu-devel] [PATCH v3 15/24] arm11mpcore: Fix typo in MemoryRegion name, Andreas Färber, 2013/08/20
- [Qemu-devel] [PATCH v3 05/24] cpu/a9mpcore: Embed A9SCUState, Andreas Färber, 2013/08/20
- [Qemu-devel] [PATCH v3 07/24] cpu/a9mpcore: Embed ARMMPTimerState, Andreas Färber, 2013/08/20
- [Qemu-devel] [PATCH v3 06/24] timer/arm_mptimer: Convert to QOM realize, Andreas Färber, 2013/08/20
- [Qemu-devel] [PATCH v3 17/24] arm11mpcore: Create container MemoryRegion in instance_init, Andreas Färber, 2013/08/20
- [Qemu-devel] [PATCH v3 20/24] realview_gic: Convert to QOM realize, Andreas Färber, 2013/08/20
- [Qemu-devel] [PATCH v3 16/24] arm11mpcore: Drop unused fields, Andreas Färber, 2013/08/20