All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PULL 0/4] PPC updates
@ 2010-09-07 11:53 Alexander Graf
  2010-09-07 11:53 ` [Qemu-devel] [PATCH 1/4] KVM: PPC: Add level based interrupt logic Alexander Graf
                   ` (5 more replies)
  0 siblings, 6 replies; 22+ messages in thread
From: Alexander Graf @ 2010-09-07 11:53 UTC (permalink / raw)
  To: QEMU Developers

I would really appriciate if these would also make it for 0.13. Should I
create a separate pull tree for that?

The following changes since commit ba5e7f82169f32ab8163c707d97c799ca09f8924:
  Izumi Tsutsui (1):
        vnc: use bswapNN() rather than bswap_NN()

are available in the git repository at:

  git://repo.or.cz/qemu/agraf.git ppc-next

Alexander Graf (4):
  KVM: PPC: Add level based interrupt logic
  PPC: Qdev'ify e500 pci
  PPC: Make e500 pci byte swap config data
  PPC: Change PPC maintainer

 MAINTAINERS          |    8 ++--
 hw/ppc.c             |   11 +++++
 hw/ppce500_pci.c     |  106 ++++++++++++++++++++++++++++++++++---------------
 target-ppc/kvm.c     |   37 ++++++++++++++++-
 target-ppc/kvm_ppc.h |   13 ++++++
 5 files changed, 136 insertions(+), 39 deletions(-)

^ permalink raw reply	[flat|nested] 22+ messages in thread

* [Qemu-devel] [PATCH 1/4] KVM: PPC: Add level based interrupt logic
  2010-09-07 11:53 [Qemu-devel] [PULL 0/4] PPC updates Alexander Graf
@ 2010-09-07 11:53 ` Alexander Graf
  2010-09-07 11:53 ` [Qemu-devel] [PATCH 2/4] PPC: Qdev'ify e500 pci Alexander Graf
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 22+ messages in thread
From: Alexander Graf @ 2010-09-07 11:53 UTC (permalink / raw)
  To: QEMU Developers

KVM on PowerPC used to have completely broken interrupt logic. Usually,
interrupts work by having a PIC that pulls a line up/down, so the CPU knows
that an interrupt is active. This line stays active until some action is
done to the PIC to release the line.

On KVM for PPC, we just checked if there was an interrupt pending and pulled
a line in the kernel module. We never released it though, hoping that kernel
space would just declare an interrupt as released when injected - which is
wrong.

To fix this, we need to completely redesign the interrupt injection logic.
Whenever an interrupt line gets triggered, we need to notify kernel space
that the line is up. Whenever it gets released, we do the same. This way
we can assure that the interrupt state is always known to kernel space.

This fixes random stalls in KVM guests on PowerPC that were waiting for
an interrupt while everyone else thought they received it already.

Signed-off-by: Alexander Graf <agraf@suse.de>
---
 hw/ppc.c             |   11 +++++++++++
 target-ppc/kvm.c     |   37 +++++++++++++++++++++++++++++++++++--
 target-ppc/kvm_ppc.h |   13 +++++++++++++
 3 files changed, 59 insertions(+), 2 deletions(-)

diff --git a/hw/ppc.c b/hw/ppc.c
index 2a77eb9..55e3808 100644
--- a/hw/ppc.c
+++ b/hw/ppc.c
@@ -28,6 +28,8 @@
 #include "nvram.h"
 #include "qemu-log.h"
 #include "loader.h"
+#include "kvm.h"
+#include "kvm_ppc.h"
 
 //#define PPC_DEBUG_IRQ
 //#define PPC_DEBUG_TB
@@ -50,6 +52,8 @@ static void cpu_ppc_tb_start (CPUState *env);
 
 static void ppc_set_irq (CPUState *env, int n_IRQ, int level)
 {
+    unsigned int old_pending = env->pending_interrupts;
+
     if (level) {
         env->pending_interrupts |= 1 << n_IRQ;
         cpu_interrupt(env, CPU_INTERRUPT_HARD);
@@ -58,6 +62,13 @@ static void ppc_set_irq (CPUState *env, int n_IRQ, int level)
         if (env->pending_interrupts == 0)
             cpu_reset_interrupt(env, CPU_INTERRUPT_HARD);
     }
+
+    if (old_pending != env->pending_interrupts) {
+#ifdef CONFIG_KVM
+        kvmppc_set_interrupt(env, n_IRQ, level);
+#endif
+    }
+
     LOG_IRQ("%s: %p n_IRQ %d level %d => pending %08" PRIx32
                 "req %08x\n", __func__, env, n_IRQ, level,
                 env->pending_interrupts, env->interrupt_request);
diff --git a/target-ppc/kvm.c b/target-ppc/kvm.c
index 14d6365..5cacef7 100644
--- a/target-ppc/kvm.c
+++ b/target-ppc/kvm.c
@@ -37,6 +37,9 @@
     do { } while (0)
 #endif
 
+static int cap_interrupt_unset = false;
+static int cap_interrupt_level = false;
+
 /* XXX We have a race condition where we actually have a level triggered
  *     interrupt, but the infrastructure can't expose that yet, so the guest
  *     takes but ignores it, goes to sleep and never gets notified that there's
@@ -55,6 +58,18 @@ static void kvm_kick_env(void *env)
 
 int kvm_arch_init(KVMState *s, int smp_cpus)
 {
+#ifdef KVM_CAP_PPC_UNSET_IRQ
+    cap_interrupt_unset = kvm_check_extension(s, KVM_CAP_PPC_UNSET_IRQ);
+#endif
+#ifdef KVM_CAP_PPC_IRQ_LEVEL
+    cap_interrupt_level = kvm_check_extension(s, KVM_CAP_PPC_IRQ_LEVEL);
+#endif
+
+    if (!cap_interrupt_level) {
+        fprintf(stderr, "KVM: Couldn't find level irq capability. Expect the "
+                        "VM to stall at times!\n");
+    }
+
     return 0;
 }
 
@@ -178,6 +193,23 @@ int kvm_arch_get_registers(CPUState *env)
     return 0;
 }
 
+int kvmppc_set_interrupt(CPUState *env, int irq, int level)
+{
+    unsigned virq = level ? KVM_INTERRUPT_SET_LEVEL : KVM_INTERRUPT_UNSET;
+
+    if (irq != PPC_INTERRUPT_EXT) {
+        return 0;
+    }
+
+    if (!kvm_enabled() || !cap_interrupt_unset || !cap_interrupt_level) {
+        return 0;
+    }
+
+    kvm_vcpu_ioctl(env, KVM_INTERRUPT, &virq);
+
+    return 0;
+}
+
 #if defined(TARGET_PPCEMB)
 #define PPC_INPUT_INT PPC40x_INPUT_INT
 #elif defined(TARGET_PPC64)
@@ -193,7 +225,8 @@ int kvm_arch_pre_run(CPUState *env, struct kvm_run *run)
 
     /* PowerPC Qemu tracks the various core input pins (interrupt, critical
      * interrupt, reset, etc) in PPC-specific env->irq_input_state. */
-    if (run->ready_for_interrupt_injection &&
+    if (!cap_interrupt_level &&
+        run->ready_for_interrupt_injection &&
         (env->interrupt_request & CPU_INTERRUPT_HARD) &&
         (env->irq_input_state & (1<<PPC_INPUT_INT)))
     {
@@ -201,7 +234,7 @@ int kvm_arch_pre_run(CPUState *env, struct kvm_run *run)
          * future KVM could cache it in-kernel to avoid a heavyweight exit
          * when reading the UIC.
          */
-        irq = -1U;
+        irq = KVM_INTERRUPT_SET;
 
         dprintf("injected interrupt %d\n", irq);
         r = kvm_vcpu_ioctl(env, KVM_INTERRUPT, &irq);
diff --git a/target-ppc/kvm_ppc.h b/target-ppc/kvm_ppc.h
index 65e31c9..911b19e 100644
--- a/target-ppc/kvm_ppc.h
+++ b/target-ppc/kvm_ppc.h
@@ -16,5 +16,18 @@ int kvmppc_read_host_property(const char *node_path, const char *prop,
 
 uint32_t kvmppc_get_tbfreq(void);
 int kvmppc_get_hypercall(CPUState *env, uint8_t *buf, int buf_len);
+int kvmppc_set_interrupt(CPUState *env, int irq, int level);
+
+#ifndef KVM_INTERRUPT_SET
+#define KVM_INTERRUPT_SET -1
+#endif
+
+#ifndef KVM_INTERRUPT_UNSET
+#define KVM_INTERRUPT_UNSET -2
+#endif
+
+#ifndef KVM_INTERRUPT_SET_LEVEL
+#define KVM_INTERRUPT_SET_LEVEL -3
+#endif
 
 #endif /* __KVM_PPC_H__ */
-- 
1.6.0.2

^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [Qemu-devel] [PATCH 2/4] PPC: Qdev'ify e500 pci
  2010-09-07 11:53 [Qemu-devel] [PULL 0/4] PPC updates Alexander Graf
  2010-09-07 11:53 ` [Qemu-devel] [PATCH 1/4] KVM: PPC: Add level based interrupt logic Alexander Graf
@ 2010-09-07 11:53 ` Alexander Graf
  2010-09-07 18:21   ` Blue Swirl
  2010-09-07 11:53 ` [Qemu-devel] [PATCH 3/4] PPC: Make e500 pci byte swap config data Alexander Graf
                   ` (3 subsequent siblings)
  5 siblings, 1 reply; 22+ messages in thread
From: Alexander Graf @ 2010-09-07 11:53 UTC (permalink / raw)
  To: QEMU Developers

The e500 PCI controller isn't qdev'ified yet. This leads to severe issues
when running with -drive.

To be able to use a virtio disk with an e500 VM, let's convert the PCI
controller over to qdev.

Signed-off-by: Alexander Graf <agraf@suse.de>
---
 hw/ppce500_pci.c |  106 +++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 73 insertions(+), 33 deletions(-)

diff --git a/hw/ppce500_pci.c b/hw/ppce500_pci.c
index 8ac99f2..3fa42d2 100644
--- a/hw/ppce500_pci.c
+++ b/hw/ppce500_pci.c
@@ -73,11 +73,11 @@ struct pci_inbound {
 };
 
 struct PPCE500PCIState {
+    PCIHostState pci_state;
     struct pci_outbound pob[PPCE500_PCI_NR_POBS];
     struct pci_inbound pib[PPCE500_PCI_NR_PIBS];
     uint32_t gasket_time;
-    PCIHostState pci_state;
-    PCIDevice *pci_dev;
+    uint64_t base_addr;
 };
 
 typedef struct PPCE500PCIState PPCE500PCIState;
@@ -221,7 +221,7 @@ static void ppce500_pci_save(QEMUFile *f, void *opaque)
     PPCE500PCIState *controller = opaque;
     int i;
 
-    pci_device_save(controller->pci_dev, f);
+    /* pci_device_save(controller->pci_dev, f); */
 
     for (i = 0; i < PPCE500_PCI_NR_POBS; i++) {
         qemu_put_be32s(f, &controller->pob[i].potar);
@@ -247,7 +247,7 @@ static int ppce500_pci_load(QEMUFile *f, void *opaque, int version_id)
     if (version_id != 1)
         return -EINVAL;
 
-    pci_device_load(controller->pci_dev, f);
+    /* pci_device_load(controller->pci_dev, f); */
 
     for (i = 0; i < PPCE500_PCI_NR_POBS; i++) {
         qemu_get_be32s(f, &controller->pob[i].potar);
@@ -269,55 +269,95 @@ static int ppce500_pci_load(QEMUFile *f, void *opaque, int version_id)
 
 PCIBus *ppce500_pci_init(qemu_irq pci_irqs[4], target_phys_addr_t registers)
 {
-    PPCE500PCIState *controller;
+    DeviceState *dev;
+    PCIBus *b;
+    PCIHostState *h;
+    PPCE500PCIState *s;
     PCIDevice *d;
-    int index;
     static int ppce500_pci_id;
 
-    controller = qemu_mallocz(sizeof(PPCE500PCIState));
+    dev = qdev_create(NULL, "e500-pcihost");
+    h = FROM_SYSBUS(PCIHostState, sysbus_from_qdev(dev));
+    s = DO_UPCAST(PPCE500PCIState, pci_state, h);
+
+    qdev_prop_set_uint64(dev, "base_addr", registers);
+    b = pci_register_bus(&s->pci_state.busdev.qdev, NULL, mpc85xx_pci_set_irq,
+                         mpc85xx_pci_map_irq, pci_irqs, PCI_DEVFN(0x11, 0), 4);
+
+    s->pci_state.bus = b;
+    qdev_init_nofail(dev);
+    d = pci_create_simple(b, 0, "e500-host-bridge");
+
+    /* XXX load/save code not tested. */
+    register_savevm(&d->qdev, "ppce500_pci", ppce500_pci_id++,
+                    1, ppce500_pci_save, ppce500_pci_load, s);
 
-    controller->pci_state.bus = pci_register_bus(NULL, "pci",
-                                                 mpc85xx_pci_set_irq,
-                                                 mpc85xx_pci_map_irq,
-                                                 pci_irqs, PCI_DEVFN(0x11, 0),
-                                                 4);
-    d = pci_register_device(controller->pci_state.bus,
-                            "host bridge", sizeof(PCIDevice),
-                            0, NULL, NULL);
+    return b;
+}
 
-    pci_config_set_vendor_id(d->config, PCI_VENDOR_ID_FREESCALE);
-    pci_config_set_device_id(d->config, PCI_DEVICE_ID_MPC8533E);
-    pci_config_set_class(d->config, PCI_CLASS_PROCESSOR_POWERPC);
+static int e500_pcihost_initfn(SysBusDevice *dev)
+{
+    PCIHostState *h;
+    PPCE500PCIState *s;
+    target_phys_addr_t registers;
+    int index;
 
-    controller->pci_dev = d;
+    h = FROM_SYSBUS(PCIHostState, sysbus_from_qdev(dev));
+    s = DO_UPCAST(PPCE500PCIState, pci_state, h);
+    registers = (target_phys_addr_t)s->base_addr;
 
     /* CFGADDR */
-    index = pci_host_conf_register_mmio(&controller->pci_state, 0);
+    index = pci_host_conf_register_mmio(&s->pci_state, 0);
     if (index < 0)
-        goto free;
+        return -1;
     cpu_register_physical_memory(registers + PCIE500_CFGADDR, 4, index);
 
     /* CFGDATA */
-    index = pci_host_data_register_mmio(&controller->pci_state, 0);
+    index = pci_host_data_register_mmio(&s->pci_state, 0);
     if (index < 0)
-        goto free;
+        return -1;
     cpu_register_physical_memory(registers + PCIE500_CFGDATA, 4, index);
 
     index = cpu_register_io_memory(e500_pci_reg_read,
-                                   e500_pci_reg_write, controller);
+                                   e500_pci_reg_write, s);
     if (index < 0)
-        goto free;
+        return -1;
     cpu_register_physical_memory(registers + PCIE500_REG_BASE,
                                    PCIE500_REG_SIZE, index);
+    return 0;
+}
 
-    /* XXX load/save code not tested. */
-    register_savevm(&d->qdev, "ppce500_pci", ppce500_pci_id++,
-                    1, ppce500_pci_save, ppce500_pci_load, controller);
+static int e500_host_bridge_initfn(PCIDevice *dev)
+{
+    pci_config_set_vendor_id(dev->config, PCI_VENDOR_ID_FREESCALE);
+    pci_config_set_device_id(dev->config, PCI_DEVICE_ID_MPC8533E);
+    pci_config_set_class(dev->config, PCI_CLASS_PROCESSOR_POWERPC);
+
+    return 0;
+}
+
+static PCIDeviceInfo e500_host_bridge_info = {
+    .qdev.name    = "e500-host-bridge",
+    .qdev.desc    = "Host bridge",
+    .qdev.size    = sizeof(PCIDevice),
+    .qdev.no_user = 1,
+    .init         = e500_host_bridge_initfn,
+};
 
-    return controller->pci_state.bus;
+static SysBusDeviceInfo e500_pcihost_info = {
+    .init         = e500_pcihost_initfn,
+    .qdev.name    = "e500-pcihost",
+    .qdev.size    = sizeof(PPCE500PCIState),
+    .qdev.no_user = 1,
+    .qdev.props = (Property[]) {
+        DEFINE_PROP_UINT64("base_addr", PPCE500PCIState, base_addr, 0),
+        DEFINE_PROP_END_OF_LIST(),
+    }
+};
 
-free:
-    printf("%s error\n", __func__);
-    qemu_free(controller);
-    return NULL;
+static void e500_pci_register(void)
+{
+    sysbus_register_withprop(&e500_pcihost_info);
+    pci_qdev_register(&e500_host_bridge_info);
 }
+device_init(e500_pci_register);
-- 
1.6.0.2

^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [Qemu-devel] [PATCH 3/4] PPC: Make e500 pci byte swap config data
  2010-09-07 11:53 [Qemu-devel] [PULL 0/4] PPC updates Alexander Graf
  2010-09-07 11:53 ` [Qemu-devel] [PATCH 1/4] KVM: PPC: Add level based interrupt logic Alexander Graf
  2010-09-07 11:53 ` [Qemu-devel] [PATCH 2/4] PPC: Qdev'ify e500 pci Alexander Graf
@ 2010-09-07 11:53 ` Alexander Graf
  2010-09-07 11:53 ` [Qemu-devel] [PATCH 4/4] PPC: Change PPC maintainer Alexander Graf
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 22+ messages in thread
From: Alexander Graf @ 2010-09-07 11:53 UTC (permalink / raw)
  To: QEMU Developers

The config data field on the e500 pci controller is in little endian, so we need
to enable byte swap there.

Signed-off-by: Alexander Graf <agraf@suse.de>
---
 hw/ppce500_pci.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/hw/ppce500_pci.c b/hw/ppce500_pci.c
index 3fa42d2..629b242 100644
--- a/hw/ppce500_pci.c
+++ b/hw/ppce500_pci.c
@@ -313,7 +313,7 @@ static int e500_pcihost_initfn(SysBusDevice *dev)
     cpu_register_physical_memory(registers + PCIE500_CFGADDR, 4, index);
 
     /* CFGDATA */
-    index = pci_host_data_register_mmio(&s->pci_state, 0);
+    index = pci_host_data_register_mmio(&s->pci_state, 1);
     if (index < 0)
         return -1;
     cpu_register_physical_memory(registers + PCIE500_CFGDATA, 4, index);
-- 
1.6.0.2

^ permalink raw reply related	[flat|nested] 22+ messages in thread

* [Qemu-devel] [PATCH 4/4] PPC: Change PPC maintainer
  2010-09-07 11:53 [Qemu-devel] [PULL 0/4] PPC updates Alexander Graf
                   ` (2 preceding siblings ...)
  2010-09-07 11:53 ` [Qemu-devel] [PATCH 3/4] PPC: Make e500 pci byte swap config data Alexander Graf
@ 2010-09-07 11:53 ` Alexander Graf
  2010-09-07 21:17   ` Andreas Färber
  2010-09-08 19:26 ` [Qemu-devel] [PULL 0/4] PPC updates Anthony Liguori
  2010-09-08 19:31 ` Anthony Liguori
  5 siblings, 1 reply; 22+ messages in thread
From: Alexander Graf @ 2010-09-07 11:53 UTC (permalink / raw)
  To: QEMU Developers

Since nobody else seems interested in maintaining PPC, let's change the
maintainer to myself. I keep a staging tree anyways and am probably the
person touching most of that code these days.

This changes the maintainer entry for working ppc targets to myself.

Signed-off-by: Alexander Graf <agraf@suse.de>
---
 MAINTAINERS |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/MAINTAINERS b/MAINTAINERS
index 1dca65e..e5165fb 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -14,7 +14,7 @@ x86                Fabrice Bellard
 ARM                Paul Brook
 SPARC              Blue Swirl
 MIPS               ?
-PowerPC            ?
+PowerPC            Alexander Graf
 M68K               Paul Brook
 SH4                ?
 CRIS               Edgar E. Iglesias
@@ -48,9 +48,9 @@ MIPS
   mips_mipssim.c          ?
 PowerPC
   ppc_prep.c              ?
-  ppc_oldworld.c          Fabrice Bellard
-  ppc_chrp.c              Fabrice Bellard
-  ppc405_boards.c         ?
+  ppc_oldworld.c          Alexander Graf
+  ppc_newworld.c          Alexander Graf
+  ppc405_boards.c         Alexander Graf
 M86K
   mcf5208.c               Paul Brook
   an5206.c                Paul Brook
-- 
1.6.0.2

^ permalink raw reply related	[flat|nested] 22+ messages in thread

* Re: [Qemu-devel] [PATCH 2/4] PPC: Qdev'ify e500 pci
  2010-09-07 11:53 ` [Qemu-devel] [PATCH 2/4] PPC: Qdev'ify e500 pci Alexander Graf
@ 2010-09-07 18:21   ` Blue Swirl
  2010-09-07 21:33     ` Alexander Graf
  0 siblings, 1 reply; 22+ messages in thread
From: Blue Swirl @ 2010-09-07 18:21 UTC (permalink / raw)
  To: Alexander Graf; +Cc: QEMU Developers

On Tue, Sep 7, 2010 at 11:53 AM, Alexander Graf <agraf@suse.de> wrote:
> The e500 PCI controller isn't qdev'ified yet. This leads to severe issues
> when running with -drive.
>
> To be able to use a virtio disk with an e500 VM, let's convert the PCI
> controller over to qdev.
>
> Signed-off-by: Alexander Graf <agraf@suse.de>
> ---
>  hw/ppce500_pci.c |  106 +++++++++++++++++++++++++++++++++++++-----------------
>  1 files changed, 73 insertions(+), 33 deletions(-)
>
> diff --git a/hw/ppce500_pci.c b/hw/ppce500_pci.c
> index 8ac99f2..3fa42d2 100644
> --- a/hw/ppce500_pci.c
> +++ b/hw/ppce500_pci.c
> @@ -73,11 +73,11 @@ struct pci_inbound {
>  };
>
>  struct PPCE500PCIState {
> +    PCIHostState pci_state;
>     struct pci_outbound pob[PPCE500_PCI_NR_POBS];
>     struct pci_inbound pib[PPCE500_PCI_NR_PIBS];
>     uint32_t gasket_time;
> -    PCIHostState pci_state;
> -    PCIDevice *pci_dev;
> +    uint64_t base_addr;
>  };
>
>  typedef struct PPCE500PCIState PPCE500PCIState;
> @@ -221,7 +221,7 @@ static void ppce500_pci_save(QEMUFile *f, void *opaque)
>     PPCE500PCIState *controller = opaque;
>     int i;
>
> -    pci_device_save(controller->pci_dev, f);
> +    /* pci_device_save(controller->pci_dev, f); */

Why, is loading/saving broken?

>
>     for (i = 0; i < PPCE500_PCI_NR_POBS; i++) {
>         qemu_put_be32s(f, &controller->pob[i].potar);
> @@ -247,7 +247,7 @@ static int ppce500_pci_load(QEMUFile *f, void *opaque, int version_id)
>     if (version_id != 1)
>         return -EINVAL;
>
> -    pci_device_load(controller->pci_dev, f);
> +    /* pci_device_load(controller->pci_dev, f); */
>
>     for (i = 0; i < PPCE500_PCI_NR_POBS; i++) {
>         qemu_get_be32s(f, &controller->pob[i].potar);
> @@ -269,55 +269,95 @@ static int ppce500_pci_load(QEMUFile *f, void *opaque, int version_id)
>
>  PCIBus *ppce500_pci_init(qemu_irq pci_irqs[4], target_phys_addr_t registers)
>  {
> -    PPCE500PCIState *controller;
> +    DeviceState *dev;
> +    PCIBus *b;
> +    PCIHostState *h;
> +    PPCE500PCIState *s;
>     PCIDevice *d;
> -    int index;
>     static int ppce500_pci_id;
>
> -    controller = qemu_mallocz(sizeof(PPCE500PCIState));
> +    dev = qdev_create(NULL, "e500-pcihost");
> +    h = FROM_SYSBUS(PCIHostState, sysbus_from_qdev(dev));
> +    s = DO_UPCAST(PPCE500PCIState, pci_state, h);
> +
> +    qdev_prop_set_uint64(dev, "base_addr", registers);

This property should not be needed. You should simply use
sysbus_mmio_map() here.  See for example grackle_pci.c.

> +    b = pci_register_bus(&s->pci_state.busdev.qdev, NULL, mpc85xx_pci_set_irq,
> +                         mpc85xx_pci_map_irq, pci_irqs, PCI_DEVFN(0x11, 0), 4);
> +
> +    s->pci_state.bus = b;
> +    qdev_init_nofail(dev);
> +    d = pci_create_simple(b, 0, "e500-host-bridge");
> +
> +    /* XXX load/save code not tested. */
> +    register_savevm(&d->qdev, "ppce500_pci", ppce500_pci_id++,
> +                    1, ppce500_pci_save, ppce500_pci_load, s);

It would be nice if you also converted the device to VMState and vmsd.
A reset function would be cool too, if it's needed after Anthony's
reset changes.

>
> -    controller->pci_state.bus = pci_register_bus(NULL, "pci",
> -                                                 mpc85xx_pci_set_irq,
> -                                                 mpc85xx_pci_map_irq,
> -                                                 pci_irqs, PCI_DEVFN(0x11, 0),
> -                                                 4);
> -    d = pci_register_device(controller->pci_state.bus,
> -                            "host bridge", sizeof(PCIDevice),
> -                            0, NULL, NULL);
> +    return b;
> +}
>
> -    pci_config_set_vendor_id(d->config, PCI_VENDOR_ID_FREESCALE);
> -    pci_config_set_device_id(d->config, PCI_DEVICE_ID_MPC8533E);
> -    pci_config_set_class(d->config, PCI_CLASS_PROCESSOR_POWERPC);
> +static int e500_pcihost_initfn(SysBusDevice *dev)
> +{
> +    PCIHostState *h;
> +    PPCE500PCIState *s;
> +    target_phys_addr_t registers;
> +    int index;
>
> -    controller->pci_dev = d;
> +    h = FROM_SYSBUS(PCIHostState, sysbus_from_qdev(dev));
> +    s = DO_UPCAST(PPCE500PCIState, pci_state, h);
> +    registers = (target_phys_addr_t)s->base_addr;
>
>     /* CFGADDR */
> -    index = pci_host_conf_register_mmio(&controller->pci_state, 0);
> +    index = pci_host_conf_register_mmio(&s->pci_state, 0);
>     if (index < 0)
> -        goto free;
> +        return -1;
>     cpu_register_physical_memory(registers + PCIE500_CFGADDR, 4, index);

Instead of cpu_register_physical_memory(), you should use
sysbus_register_mmio().

>
>     /* CFGDATA */
> -    index = pci_host_data_register_mmio(&controller->pci_state, 0);
> +    index = pci_host_data_register_mmio(&s->pci_state, 0);
>     if (index < 0)
> -        goto free;
> +        return -1;
>     cpu_register_physical_memory(registers + PCIE500_CFGDATA, 4, index);
>
>     index = cpu_register_io_memory(e500_pci_reg_read,
> -                                   e500_pci_reg_write, controller);
> +                                   e500_pci_reg_write, s);
>     if (index < 0)
> -        goto free;
> +        return -1;
>     cpu_register_physical_memory(registers + PCIE500_REG_BASE,
>                                    PCIE500_REG_SIZE, index);
> +    return 0;
> +}
>
> -    /* XXX load/save code not tested. */
> -    register_savevm(&d->qdev, "ppce500_pci", ppce500_pci_id++,
> -                    1, ppce500_pci_save, ppce500_pci_load, controller);
> +static int e500_host_bridge_initfn(PCIDevice *dev)
> +{
> +    pci_config_set_vendor_id(dev->config, PCI_VENDOR_ID_FREESCALE);
> +    pci_config_set_device_id(dev->config, PCI_DEVICE_ID_MPC8533E);
> +    pci_config_set_class(dev->config, PCI_CLASS_PROCESSOR_POWERPC);
> +
> +    return 0;
> +}
> +
> +static PCIDeviceInfo e500_host_bridge_info = {
> +    .qdev.name    = "e500-host-bridge",
> +    .qdev.desc    = "Host bridge",
> +    .qdev.size    = sizeof(PCIDevice),
> +    .qdev.no_user = 1,
> +    .init         = e500_host_bridge_initfn,
> +};
>
> -    return controller->pci_state.bus;
> +static SysBusDeviceInfo e500_pcihost_info = {
> +    .init         = e500_pcihost_initfn,
> +    .qdev.name    = "e500-pcihost",
> +    .qdev.size    = sizeof(PPCE500PCIState),
> +    .qdev.no_user = 1,
> +    .qdev.props = (Property[]) {
> +        DEFINE_PROP_UINT64("base_addr", PPCE500PCIState, base_addr, 0),
> +        DEFINE_PROP_END_OF_LIST(),
> +    }
> +};
>
> -free:
> -    printf("%s error\n", __func__);
> -    qemu_free(controller);
> -    return NULL;
> +static void e500_pci_register(void)
> +{
> +    sysbus_register_withprop(&e500_pcihost_info);
> +    pci_qdev_register(&e500_host_bridge_info);
>  }
> +device_init(e500_pci_register);
> --
> 1.6.0.2
>
>
>

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [Qemu-devel] [PATCH 4/4] PPC: Change PPC maintainer
  2010-09-07 11:53 ` [Qemu-devel] [PATCH 4/4] PPC: Change PPC maintainer Alexander Graf
@ 2010-09-07 21:17   ` Andreas Färber
  2010-09-07 21:36     ` Alexander Graf
  0 siblings, 1 reply; 22+ messages in thread
From: Andreas Färber @ 2010-09-07 21:17 UTC (permalink / raw)
  To: Alexander Graf; +Cc: QEMU Developers

Am 07.09.2010 um 13:53 schrieb Alexander Graf:

> Since nobody else seems interested in maintaining PPC, let's change  
> the
> maintainer to myself. I keep a staging tree anyways and am probably  
> the
> person touching most of that code these days.
>
> This changes the maintainer entry for working ppc targets to myself.
>
> Signed-off-by: Alexander Graf <agraf@suse.de>

Fwiw,

Acked-by: Andreas Färber <andreas.faerber@web.de>

Alex seems like the most active in the ppc machines code and its  
OpenBIOS counterpart lately.

Malc has been the maintainer of TCG/ppc[64] though.

Cheers,
Andreas

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [Qemu-devel] [PATCH 2/4] PPC: Qdev'ify e500 pci
  2010-09-07 18:21   ` Blue Swirl
@ 2010-09-07 21:33     ` Alexander Graf
  2010-09-08 17:38       ` Blue Swirl
  0 siblings, 1 reply; 22+ messages in thread
From: Alexander Graf @ 2010-09-07 21:33 UTC (permalink / raw)
  To: Blue Swirl; +Cc: QEMU Developers


On 07.09.2010, at 20:21, Blue Swirl wrote:

> On Tue, Sep 7, 2010 at 11:53 AM, Alexander Graf <agraf@suse.de> wrote:
>> The e500 PCI controller isn't qdev'ified yet. This leads to severe issues
>> when running with -drive.
>> 
>> To be able to use a virtio disk with an e500 VM, let's convert the PCI
>> controller over to qdev.
>> 
>> Signed-off-by: Alexander Graf <agraf@suse.de>
>> ---
>>  hw/ppce500_pci.c |  106 +++++++++++++++++++++++++++++++++++++-----------------
>>  1 files changed, 73 insertions(+), 33 deletions(-)
>> 
>> diff --git a/hw/ppce500_pci.c b/hw/ppce500_pci.c
>> index 8ac99f2..3fa42d2 100644
>> --- a/hw/ppce500_pci.c
>> +++ b/hw/ppce500_pci.c
>> @@ -73,11 +73,11 @@ struct pci_inbound {
>>  };
>> 
>>  struct PPCE500PCIState {
>> +    PCIHostState pci_state;
>>     struct pci_outbound pob[PPCE500_PCI_NR_POBS];
>>     struct pci_inbound pib[PPCE500_PCI_NR_PIBS];
>>     uint32_t gasket_time;
>> -    PCIHostState pci_state;
>> -    PCIDevice *pci_dev;
>> +    uint64_t base_addr;
>>  };
>> 
>>  typedef struct PPCE500PCIState PPCE500PCIState;
>> @@ -221,7 +221,7 @@ static void ppce500_pci_save(QEMUFile *f, void *opaque)
>>     PPCE500PCIState *controller = opaque;
>>     int i;
>> 
>> -    pci_device_save(controller->pci_dev, f);
>> +    /* pci_device_save(controller->pci_dev, f); */
> 
> Why, is loading/saving broken?

It was never tested before and save/restore won't work for this combination anyways, because it requires KVM which doesn't implement full save/restore yet FWIW.

> 
>> 
>>     for (i = 0; i < PPCE500_PCI_NR_POBS; i++) {
>>         qemu_put_be32s(f, &controller->pob[i].potar);
>> @@ -247,7 +247,7 @@ static int ppce500_pci_load(QEMUFile *f, void *opaque, int version_id)
>>     if (version_id != 1)
>>         return -EINVAL;
>> 
>> -    pci_device_load(controller->pci_dev, f);
>> +    /* pci_device_load(controller->pci_dev, f); */
>> 
>>     for (i = 0; i < PPCE500_PCI_NR_POBS; i++) {
>>         qemu_get_be32s(f, &controller->pob[i].potar);
>> @@ -269,55 +269,95 @@ static int ppce500_pci_load(QEMUFile *f, void *opaque, int version_id)
>> 
>>  PCIBus *ppce500_pci_init(qemu_irq pci_irqs[4], target_phys_addr_t registers)
>>  {
>> -    PPCE500PCIState *controller;
>> +    DeviceState *dev;
>> +    PCIBus *b;
>> +    PCIHostState *h;
>> +    PPCE500PCIState *s;
>>     PCIDevice *d;
>> -    int index;
>>     static int ppce500_pci_id;
>> 
>> -    controller = qemu_mallocz(sizeof(PPCE500PCIState));
>> +    dev = qdev_create(NULL, "e500-pcihost");
>> +    h = FROM_SYSBUS(PCIHostState, sysbus_from_qdev(dev));
>> +    s = DO_UPCAST(PPCE500PCIState, pci_state, h);
>> +
>> +    qdev_prop_set_uint64(dev, "base_addr", registers);
> 
> This property should not be needed. You should simply use
> sysbus_mmio_map() here.  See for example grackle_pci.c.

The base address can be different for different boards. I thought the idea of the qdev variables was to enable machine description files one day in which case we'll have to pass it?

> 
>> +    b = pci_register_bus(&s->pci_state.busdev.qdev, NULL, mpc85xx_pci_set_irq,
>> +                         mpc85xx_pci_map_irq, pci_irqs, PCI_DEVFN(0x11, 0), 4);
>> +
>> +    s->pci_state.bus = b;
>> +    qdev_init_nofail(dev);
>> +    d = pci_create_simple(b, 0, "e500-host-bridge");
>> +
>> +    /* XXX load/save code not tested. */
>> +    register_savevm(&d->qdev, "ppce500_pci", ppce500_pci_id++,
>> +                    1, ppce500_pci_save, ppce500_pci_load, s);
> 
> It would be nice if you also converted the device to VMState and vmsd.
> A reset function would be cool too, if it's needed after Anthony's
> reset changes.

I agree 100%. Next time I'll touch the code will probably be to convert it to VMState too. For now, qdev got me -drive working, so it was the more pressing issue :).

> 
>> 
>> -    controller->pci_state.bus = pci_register_bus(NULL, "pci",
>> -                                                 mpc85xx_pci_set_irq,
>> -                                                 mpc85xx_pci_map_irq,
>> -                                                 pci_irqs, PCI_DEVFN(0x11, 0),
>> -                                                 4);
>> -    d = pci_register_device(controller->pci_state.bus,
>> -                            "host bridge", sizeof(PCIDevice),
>> -                            0, NULL, NULL);
>> +    return b;
>> +}
>> 
>> -    pci_config_set_vendor_id(d->config, PCI_VENDOR_ID_FREESCALE);
>> -    pci_config_set_device_id(d->config, PCI_DEVICE_ID_MPC8533E);
>> -    pci_config_set_class(d->config, PCI_CLASS_PROCESSOR_POWERPC);
>> +static int e500_pcihost_initfn(SysBusDevice *dev)
>> +{
>> +    PCIHostState *h;
>> +    PPCE500PCIState *s;
>> +    target_phys_addr_t registers;
>> +    int index;
>> 
>> -    controller->pci_dev = d;
>> +    h = FROM_SYSBUS(PCIHostState, sysbus_from_qdev(dev));
>> +    s = DO_UPCAST(PPCE500PCIState, pci_state, h);
>> +    registers = (target_phys_addr_t)s->base_addr;
>> 
>>     /* CFGADDR */
>> -    index = pci_host_conf_register_mmio(&controller->pci_state, 0);
>> +    index = pci_host_conf_register_mmio(&s->pci_state, 0);
>>     if (index < 0)
>> -        goto free;
>> +        return -1;
>>     cpu_register_physical_memory(registers + PCIE500_CFGADDR, 4, index);
> 
> Instead of cpu_register_physical_memory(), you should use
> sysbus_register_mmio().

Oh? Interesting. I'll change that then.


Alex

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [Qemu-devel] [PATCH 4/4] PPC: Change PPC maintainer
  2010-09-07 21:17   ` Andreas Färber
@ 2010-09-07 21:36     ` Alexander Graf
  2010-09-07 22:21       ` Andreas Färber
  0 siblings, 1 reply; 22+ messages in thread
From: Alexander Graf @ 2010-09-07 21:36 UTC (permalink / raw)
  To: Andreas Färber; +Cc: QEMU Developers


On 07.09.2010, at 23:17, Andreas Färber wrote:

> Am 07.09.2010 um 13:53 schrieb Alexander Graf:
> 
>> Since nobody else seems interested in maintaining PPC, let's change the
>> maintainer to myself. I keep a staging tree anyways and am probably the
>> person touching most of that code these days.
>> 
>> This changes the maintainer entry for working ppc targets to myself.
>> 
>> Signed-off-by: Alexander Graf <agraf@suse.de>
> 
> Fwiw,
> 
> Acked-by: Andreas Färber <andreas.faerber@web.de>
> 
> Alex seems like the most active in the ppc machines code and its OpenBIOS counterpart lately.

Thanks for the support :). May I recommend you as the Mac OS X host support maintainer?

> Malc has been the maintainer of TCG/ppc[64] though.

Yup. TCG backends are missing completely from the MAINTAINERS file, no?


Alex

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [Qemu-devel] [PATCH 4/4] PPC: Change PPC maintainer
  2010-09-07 21:36     ` Alexander Graf
@ 2010-09-07 22:21       ` Andreas Färber
  2010-09-07 22:48         ` malc
  0 siblings, 1 reply; 22+ messages in thread
From: Andreas Färber @ 2010-09-07 22:21 UTC (permalink / raw)
  To: Alexander Graf; +Cc: QEMU Developers

Am 07.09.2010 um 23:36 schrieb Alexander Graf:

> On 07.09.2010, at 23:17, Andreas Färber wrote:
>
>> Am 07.09.2010 um 13:53 schrieb Alexander Graf:
>>
>>> Since nobody else seems interested in maintaining PPC, let's  
>>> change the
>>> maintainer to myself. I keep a staging tree anyways and am  
>>> probably the
>>> person touching most of that code these days.
>>>
>>> This changes the maintainer entry for working ppc targets to myself.
>>>
>>> Signed-off-by: Alexander Graf <agraf@suse.de>
>>
>> Fwiw,
>>
>> Acked-by: Andreas Färber <andreas.faerber@web.de>
>>
>> Alex seems like the most active in the ppc machines code and its  
>> OpenBIOS counterpart lately.
>
> Thanks for the support :). May I recommend you as the Mac OS X host  
> support maintainer?

Hm, I would volunteer as Cocoa maintainer. Virtually all Cocoa patches  
than were committed, except for the DisplayState conversion, went  
through my queue for some time now.
Some topics still on my list include: 'daemon' deprecation warning in  
nbd code (same on Solaris), the qemu_main ugliness and a Cocoa warning  
on Snow Leopard spotted by the Nokia guys. What I don't intend to  
investigate any time soon is the chatty CoreAudio code.

>> Malc has been the maintainer of TCG/ppc[64] though.
>
> Yup. TCG backends are missing completely from the MAINTAINERS file,  
> no?

Right. Elsewhere I suggested to add entries for them, doesn't need to  
be in this patch of course.

I'd consider it handy to put the maintainer's preferred email address  
alongside there, but that's yet another potential source of spam then.

Andreas

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [Qemu-devel] [PATCH 4/4] PPC: Change PPC maintainer
  2010-09-07 22:21       ` Andreas Färber
@ 2010-09-07 22:48         ` malc
  2010-09-07 23:00           ` Alexander Graf
  0 siblings, 1 reply; 22+ messages in thread
From: malc @ 2010-09-07 22:48 UTC (permalink / raw)
  To: Andreas Färber; +Cc: Alexander Graf, QEMU Developers

On Wed, 8 Sep 2010, Andreas F?rber wrote:

> Am 07.09.2010 um 23:36 schrieb Alexander Graf:
> 
> > On 07.09.2010, at 23:17, Andreas F?rber wrote:
> > 
> > > Am 07.09.2010 um 13:53 schrieb Alexander Graf:
> > > 
> > > > Since nobody else seems interested in maintaining PPC, let's change the
> > > > maintainer to myself. I keep a staging tree anyways and am probably the
> > > > person touching most of that code these days.
> > > > 
> > > > This changes the maintainer entry for working ppc targets to myself.
> > > > 
> > > > Signed-off-by: Alexander Graf <agraf@suse.de>
> > > 
> > > Fwiw,
> > > 
> > > Acked-by: Andreas F?rber <andreas.faerber@web.de>
> > > 
> > > Alex seems like the most active in the ppc machines code and its OpenBIOS
> > > counterpart lately.
> > 
> > Thanks for the support :). May I recommend you as the Mac OS X host support
> > maintainer?
> 
> Hm, I would volunteer as Cocoa maintainer. Virtually all Cocoa patches than
> were committed, except for the DisplayState conversion, went through my queue
> for some time now.
> Some topics still on my list include: 'daemon' deprecation warning in nbd code
> (same on Solaris), the qemu_main ugliness and a Cocoa warning on Snow Leopard
> spotted by the Nokia guys. What I don't intend to investigate any time soon is
> the chatty CoreAudio code.

What about it?

> 
> > > Malc has been the maintainer of TCG/ppc[64] though.
> > 
> > Yup. TCG backends are missing completely from the MAINTAINERS file, no?
> 
> Right. Elsewhere I suggested to add entries for them, doesn't need to be in
> this patch of course.
> 
> I'd consider it handy to put the maintainer's preferred email address
> alongside there, but that's yet another potential source of spam then.
> 
> Andreas

-- 
mailto:av1474@comtv.ru

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [Qemu-devel] [PATCH 4/4] PPC: Change PPC maintainer
  2010-09-07 22:48         ` malc
@ 2010-09-07 23:00           ` Alexander Graf
  2010-09-08  1:19             ` malc
  0 siblings, 1 reply; 22+ messages in thread
From: Alexander Graf @ 2010-09-07 23:00 UTC (permalink / raw)
  To: malc; +Cc: Andreas Färber, QEMU Developers


On 08.09.2010, at 00:48, malc wrote:

> On Wed, 8 Sep 2010, Andreas F?rber wrote:
> 
>> Am 07.09.2010 um 23:36 schrieb Alexander Graf:
>> 
>>> On 07.09.2010, at 23:17, Andreas F?rber wrote:
>>> 
>>>> Am 07.09.2010 um 13:53 schrieb Alexander Graf:
>>>> 
>>>>> Since nobody else seems interested in maintaining PPC, let's change the
>>>>> maintainer to myself. I keep a staging tree anyways and am probably the
>>>>> person touching most of that code these days.
>>>>> 
>>>>> This changes the maintainer entry for working ppc targets to myself.
>>>>> 
>>>>> Signed-off-by: Alexander Graf <agraf@suse.de>
>>>> 
>>>> Fwiw,
>>>> 
>>>> Acked-by: Andreas F?rber <andreas.faerber@web.de>
>>>> 
>>>> Alex seems like the most active in the ppc machines code and its OpenBIOS
>>>> counterpart lately.
>>> 
>>> Thanks for the support :). May I recommend you as the Mac OS X host support
>>> maintainer?
>> 
>> Hm, I would volunteer as Cocoa maintainer. Virtually all Cocoa patches than
>> were committed, except for the DisplayState conversion, went through my queue
>> for some time now.
>> Some topics still on my list include: 'daemon' deprecation warning in nbd code
>> (same on Solaris), the qemu_main ugliness and a Cocoa warning on Snow Leopard
>> spotted by the Nokia guys. What I don't intend to investigate any time soon is
>> the chatty CoreAudio code.
> 
> What about it?

It throws about 100 warnings when compiled on 10.6 :).


Alex

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [Qemu-devel] [PATCH 4/4] PPC: Change PPC maintainer
  2010-09-07 23:00           ` Alexander Graf
@ 2010-09-08  1:19             ` malc
  2010-09-09 20:23               ` [Qemu-devel] CoreAudio warnings (was: [PATCH 4/4] PPC: Change PPC maintainer) Andreas Färber
  0 siblings, 1 reply; 22+ messages in thread
From: malc @ 2010-09-08  1:19 UTC (permalink / raw)
  To: Alexander Graf; +Cc: Andreas Färber, QEMU Developers

On Wed, 8 Sep 2010, Alexander Graf wrote:

> 
> On 08.09.2010, at 00:48, malc wrote:
> 
> > On Wed, 8 Sep 2010, Andreas F?rber wrote:
> > 
> >> Am 07.09.2010 um 23:36 schrieb Alexander Graf:
> >> 
> >>> On 07.09.2010, at 23:17, Andreas F?rber wrote:
> >>> 
> >>>> Am 07.09.2010 um 13:53 schrieb Alexander Graf:
> >>>> 

[..snip..]

> >> Some topics still on my list include: 'daemon' deprecation warning in nbd code
> >> (same on Solaris), the qemu_main ugliness and a Cocoa warning on Snow Leopard
> >> spotted by the Nokia guys. What I don't intend to investigate any time soon is
> >> the chatty CoreAudio code.
> > 
> > What about it?
> 
> It throws about 100 warnings when compiled on 10.6 :).
> 

Oh, i thought it was a runtime issue, aslo and given that i don't have
10.6...

-- 
mailto:av1474@comtv.ru

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [Qemu-devel] [PATCH 2/4] PPC: Qdev'ify e500 pci
  2010-09-07 21:33     ` Alexander Graf
@ 2010-09-08 17:38       ` Blue Swirl
  0 siblings, 0 replies; 22+ messages in thread
From: Blue Swirl @ 2010-09-08 17:38 UTC (permalink / raw)
  To: Alexander Graf; +Cc: QEMU Developers

On Tue, Sep 7, 2010 at 9:33 PM, Alexander Graf <agraf@suse.de> wrote:
>
> On 07.09.2010, at 20:21, Blue Swirl wrote:
>
>> On Tue, Sep 7, 2010 at 11:53 AM, Alexander Graf <agraf@suse.de> wrote:
>>> The e500 PCI controller isn't qdev'ified yet. This leads to severe issues
>>> when running with -drive.
>>>
>>> To be able to use a virtio disk with an e500 VM, let's convert the PCI
>>> controller over to qdev.
>>>
>>> Signed-off-by: Alexander Graf <agraf@suse.de>
>>> ---
>>>  hw/ppce500_pci.c |  106 +++++++++++++++++++++++++++++++++++++-----------------
>>>  1 files changed, 73 insertions(+), 33 deletions(-)
>>>
>>> diff --git a/hw/ppce500_pci.c b/hw/ppce500_pci.c
>>> index 8ac99f2..3fa42d2 100644
>>> --- a/hw/ppce500_pci.c
>>> +++ b/hw/ppce500_pci.c
>>> @@ -73,11 +73,11 @@ struct pci_inbound {
>>>  };
>>>
>>>  struct PPCE500PCIState {
>>> +    PCIHostState pci_state;
>>>     struct pci_outbound pob[PPCE500_PCI_NR_POBS];
>>>     struct pci_inbound pib[PPCE500_PCI_NR_PIBS];
>>>     uint32_t gasket_time;
>>> -    PCIHostState pci_state;
>>> -    PCIDevice *pci_dev;
>>> +    uint64_t base_addr;
>>>  };
>>>
>>>  typedef struct PPCE500PCIState PPCE500PCIState;
>>> @@ -221,7 +221,7 @@ static void ppce500_pci_save(QEMUFile *f, void *opaque)
>>>     PPCE500PCIState *controller = opaque;
>>>     int i;
>>>
>>> -    pci_device_save(controller->pci_dev, f);
>>> +    /* pci_device_save(controller->pci_dev, f); */
>>
>> Why, is loading/saving broken?
>
> It was never tested before and save/restore won't work for this combination anyways, because it requires KVM which doesn't implement full save/restore yet FWIW.
>
>>
>>>
>>>     for (i = 0; i < PPCE500_PCI_NR_POBS; i++) {
>>>         qemu_put_be32s(f, &controller->pob[i].potar);
>>> @@ -247,7 +247,7 @@ static int ppce500_pci_load(QEMUFile *f, void *opaque, int version_id)
>>>     if (version_id != 1)
>>>         return -EINVAL;
>>>
>>> -    pci_device_load(controller->pci_dev, f);
>>> +    /* pci_device_load(controller->pci_dev, f); */
>>>
>>>     for (i = 0; i < PPCE500_PCI_NR_POBS; i++) {
>>>         qemu_get_be32s(f, &controller->pob[i].potar);
>>> @@ -269,55 +269,95 @@ static int ppce500_pci_load(QEMUFile *f, void *opaque, int version_id)
>>>
>>>  PCIBus *ppce500_pci_init(qemu_irq pci_irqs[4], target_phys_addr_t registers)
>>>  {
>>> -    PPCE500PCIState *controller;
>>> +    DeviceState *dev;
>>> +    PCIBus *b;
>>> +    PCIHostState *h;
>>> +    PPCE500PCIState *s;
>>>     PCIDevice *d;
>>> -    int index;
>>>     static int ppce500_pci_id;
>>>
>>> -    controller = qemu_mallocz(sizeof(PPCE500PCIState));
>>> +    dev = qdev_create(NULL, "e500-pcihost");
>>> +    h = FROM_SYSBUS(PCIHostState, sysbus_from_qdev(dev));
>>> +    s = DO_UPCAST(PPCE500PCIState, pci_state, h);
>>> +
>>> +    qdev_prop_set_uint64(dev, "base_addr", registers);
>>
>> This property should not be needed. You should simply use
>> sysbus_mmio_map() here.  See for example grackle_pci.c.
>
> The base address can be different for different boards. I thought the idea of the qdev variables was to enable machine description files one day in which case we'll have to pass it?

Yes, but the addresses will be specified by sysbus_mmio_map(), there
is very rarely a need to create a property for the base address.

>>> +    b = pci_register_bus(&s->pci_state.busdev.qdev, NULL, mpc85xx_pci_set_irq,
>>> +                         mpc85xx_pci_map_irq, pci_irqs, PCI_DEVFN(0x11, 0), 4);
>>> +
>>> +    s->pci_state.bus = b;
>>> +    qdev_init_nofail(dev);
>>> +    d = pci_create_simple(b, 0, "e500-host-bridge");
>>> +
>>> +    /* XXX load/save code not tested. */
>>> +    register_savevm(&d->qdev, "ppce500_pci", ppce500_pci_id++,
>>> +                    1, ppce500_pci_save, ppce500_pci_load, s);
>>
>> It would be nice if you also converted the device to VMState and vmsd.
>> A reset function would be cool too, if it's needed after Anthony's
>> reset changes.
>
> I agree 100%. Next time I'll touch the code will probably be to convert it to VMState too. For now, qdev got me -drive working, so it was the more pressing issue :).
>
>>
>>>
>>> -    controller->pci_state.bus = pci_register_bus(NULL, "pci",
>>> -                                                 mpc85xx_pci_set_irq,
>>> -                                                 mpc85xx_pci_map_irq,
>>> -                                                 pci_irqs, PCI_DEVFN(0x11, 0),
>>> -                                                 4);
>>> -    d = pci_register_device(controller->pci_state.bus,
>>> -                            "host bridge", sizeof(PCIDevice),
>>> -                            0, NULL, NULL);
>>> +    return b;
>>> +}
>>>
>>> -    pci_config_set_vendor_id(d->config, PCI_VENDOR_ID_FREESCALE);
>>> -    pci_config_set_device_id(d->config, PCI_DEVICE_ID_MPC8533E);
>>> -    pci_config_set_class(d->config, PCI_CLASS_PROCESSOR_POWERPC);
>>> +static int e500_pcihost_initfn(SysBusDevice *dev)
>>> +{
>>> +    PCIHostState *h;
>>> +    PPCE500PCIState *s;
>>> +    target_phys_addr_t registers;
>>> +    int index;
>>>
>>> -    controller->pci_dev = d;
>>> +    h = FROM_SYSBUS(PCIHostState, sysbus_from_qdev(dev));
>>> +    s = DO_UPCAST(PPCE500PCIState, pci_state, h);
>>> +    registers = (target_phys_addr_t)s->base_addr;
>>>
>>>     /* CFGADDR */
>>> -    index = pci_host_conf_register_mmio(&controller->pci_state, 0);
>>> +    index = pci_host_conf_register_mmio(&s->pci_state, 0);
>>>     if (index < 0)
>>> -        goto free;
>>> +        return -1;
>>>     cpu_register_physical_memory(registers + PCIE500_CFGADDR, 4, index);
>>
>> Instead of cpu_register_physical_memory(), you should use
>> sysbus_register_mmio().
>
> Oh? Interesting. I'll change that then.
>
>
> Alex
>
>

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [Qemu-devel] [PULL 0/4] PPC updates
  2010-09-07 11:53 [Qemu-devel] [PULL 0/4] PPC updates Alexander Graf
                   ` (3 preceding siblings ...)
  2010-09-07 11:53 ` [Qemu-devel] [PATCH 4/4] PPC: Change PPC maintainer Alexander Graf
@ 2010-09-08 19:26 ` Anthony Liguori
  2010-09-08 19:31 ` Anthony Liguori
  5 siblings, 0 replies; 22+ messages in thread
From: Anthony Liguori @ 2010-09-08 19:26 UTC (permalink / raw)
  To: Alexander Graf; +Cc: QEMU Developers

On 09/07/2010 06:53 AM, Alexander Graf wrote:
> I would really appriciate if these would also make it for 0.13. Should I
> create a separate pull tree for that?
>    

It's too late for 0.13.

Regards,

Anthony Liguori

> The following changes since commit ba5e7f82169f32ab8163c707d97c799ca09f8924:
>    Izumi Tsutsui (1):
>          vnc: use bswapNN() rather than bswap_NN()
>
> are available in the git repository at:
>
>    git://repo.or.cz/qemu/agraf.git ppc-next
>
> Alexander Graf (4):
>    KVM: PPC: Add level based interrupt logic
>    PPC: Qdev'ify e500 pci
>    PPC: Make e500 pci byte swap config data
>    PPC: Change PPC maintainer
>
>   MAINTAINERS          |    8 ++--
>   hw/ppc.c             |   11 +++++
>   hw/ppce500_pci.c     |  106 ++++++++++++++++++++++++++++++++++---------------
>   target-ppc/kvm.c     |   37 ++++++++++++++++-
>   target-ppc/kvm_ppc.h |   13 ++++++
>   5 files changed, 136 insertions(+), 39 deletions(-)
>
>
>
>    

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [Qemu-devel] [PULL 0/4] PPC updates
  2010-09-07 11:53 [Qemu-devel] [PULL 0/4] PPC updates Alexander Graf
                   ` (4 preceding siblings ...)
  2010-09-08 19:26 ` [Qemu-devel] [PULL 0/4] PPC updates Anthony Liguori
@ 2010-09-08 19:31 ` Anthony Liguori
  2010-09-08 19:41   ` Alexander Graf
  5 siblings, 1 reply; 22+ messages in thread
From: Anthony Liguori @ 2010-09-08 19:31 UTC (permalink / raw)
  To: Alexander Graf; +Cc: QEMU Developers

On 09/07/2010 06:53 AM, Alexander Graf wrote:
> I would really appriciate if these would also make it for 0.13. Should I
> create a separate pull tree for that?
>
> The following changes since commit ba5e7f82169f32ab8163c707d97c799ca09f8924:
>    Izumi Tsutsui (1):
>          vnc: use bswapNN() rather than bswap_NN()
>
> are available in the git repository at:
>
>    git://repo.or.cz/qemu/agraf.git ppc-next
>    

Pulled.  Thanks.

Regards,

Anthony Liguori
> Alexander Graf (4):
>    KVM: PPC: Add level based interrupt logic
>    PPC: Qdev'ify e500 pci
>    PPC: Make e500 pci byte swap config data
>    PPC: Change PPC maintainer
>
>   MAINTAINERS          |    8 ++--
>   hw/ppc.c             |   11 +++++
>   hw/ppce500_pci.c     |  106 ++++++++++++++++++++++++++++++++++---------------
>   target-ppc/kvm.c     |   37 ++++++++++++++++-
>   target-ppc/kvm_ppc.h |   13 ++++++
>   5 files changed, 136 insertions(+), 39 deletions(-)
>
>
>
>    

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [Qemu-devel] [PULL 0/4] PPC updates
  2010-09-08 19:31 ` Anthony Liguori
@ 2010-09-08 19:41   ` Alexander Graf
  2010-09-08 19:58     ` Anthony Liguori
  0 siblings, 1 reply; 22+ messages in thread
From: Alexander Graf @ 2010-09-08 19:41 UTC (permalink / raw)
  To: Anthony Liguori; +Cc: Blue Swirl, QEMU Developers


On 08.09.2010, at 21:31, Anthony Liguori wrote:

> On 09/07/2010 06:53 AM, Alexander Graf wrote:
>> I would really appriciate if these would also make it for 0.13. Should I
>> create a separate pull tree for that?
>> 
>> The following changes since commit ba5e7f82169f32ab8163c707d97c799ca09f8924:
>>   Izumi Tsutsui (1):
>>         vnc: use bswapNN() rather than bswap_NN()
>> 
>> are available in the git repository at:
>> 
>>   git://repo.or.cz/qemu/agraf.git ppc-next
>>   
> 
> Pulled.  Thanks.

Uh, I'll add a patch to address blue's comments on top then next time around :).


Thanks,

Alex

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [Qemu-devel] [PULL 0/4] PPC updates
  2010-09-08 19:41   ` Alexander Graf
@ 2010-09-08 19:58     ` Anthony Liguori
  2010-09-08 20:06       ` Alexander Graf
  0 siblings, 1 reply; 22+ messages in thread
From: Anthony Liguori @ 2010-09-08 19:58 UTC (permalink / raw)
  To: Alexander Graf; +Cc: Blue Swirl, QEMU Developers

On 09/08/2010 02:41 PM, Alexander Graf wrote:
> On 08.09.2010, at 21:31, Anthony Liguori wrote:
>
>    
>> On 09/07/2010 06:53 AM, Alexander Graf wrote:
>>      
>>> I would really appriciate if these would also make it for 0.13. Should I
>>> create a separate pull tree for that?
>>>
>>> The following changes since commit ba5e7f82169f32ab8163c707d97c799ca09f8924:
>>>    Izumi Tsutsui (1):
>>>          vnc: use bswapNN() rather than bswap_NN()
>>>
>>> are available in the git repository at:
>>>
>>>    git://repo.or.cz/qemu/agraf.git ppc-next
>>>
>>>        
>> Pulled.  Thanks.
>>      
> Uh, I'll add a patch to address blue's comments on top then next time around :).
>    

I've reverted the two commits in question so just re-add then when 
they're ready next time.

I see that patch was in the pull request from 9/2 but had never been on 
the list prior to that?

Please make sure to send patches to the list before doing a pull request 
as a pull request is more or less equivalent to a commit.  A pull 
request isn't that helpful if the individual patches still need to be 
reviewed.

Regards,

Anthony Liguori

> Thanks,
>
> Alex
>
>
>    

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [Qemu-devel] [PULL 0/4] PPC updates
  2010-09-08 19:58     ` Anthony Liguori
@ 2010-09-08 20:06       ` Alexander Graf
  0 siblings, 0 replies; 22+ messages in thread
From: Alexander Graf @ 2010-09-08 20:06 UTC (permalink / raw)
  To: Anthony Liguori; +Cc: Blue Swirl, QEMU Developers


Am 08.09.2010 um 21:58 schrieb Anthony Liguori <aliguori@linux.vnet.ibm.com>:

> On 09/08/2010 02:41 PM, Alexander Graf wrote:
>> On 08.09.2010, at 21:31, Anthony Liguori wrote:
>> 
>>   
>>> On 09/07/2010 06:53 AM, Alexander Graf wrote:
>>>     
>>>> I would really appriciate if these would also make it for 0.13. Should I
>>>> create a separate pull tree for that?
>>>> 
>>>> The following changes since commit ba5e7f82169f32ab8163c707d97c799ca09f8924:
>>>>   Izumi Tsutsui (1):
>>>>         vnc: use bswapNN() rather than bswap_NN()
>>>> 
>>>> are available in the git repository at:
>>>> 
>>>>   git://repo.or.cz/qemu/agraf.git ppc-next
>>>> 
>>>>       
>>> Pulled.  Thanks.
>>>     
>> Uh, I'll add a patch to address blue's comments on top then next time around :).
>>   
> 
> I've reverted the two commits in question so just re-add then when they're ready next time.
> 
> I see that patch was in the pull request from 9/2 but had never been on the list prior to that?
> 
> Please make sure to send patches to the list before doing a pull request as a pull request is more or less equivalent to a commit.  A pull request isn't that helpful if the individual patches still need to be reviewed.

Makes sense. Thank you!


Alex

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [Qemu-devel] CoreAudio warnings (was: [PATCH 4/4] PPC: Change PPC maintainer)
  2010-09-08  1:19             ` malc
@ 2010-09-09 20:23               ` Andreas Färber
  2010-09-09 21:31                 ` malc
  0 siblings, 1 reply; 22+ messages in thread
From: Andreas Färber @ 2010-09-09 20:23 UTC (permalink / raw)
  To: malc; +Cc: Alexander Graf, QEMU Developers

Am 08.09.2010 um 03:19 schrieb malc:

> On Wed, 8 Sep 2010, Alexander Graf wrote:
>
>> On 08.09.2010, at 00:48, malc wrote:
>>
>>> On Wed, 8 Sep 2010, Andreas F?rber wrote:
>>>> What I don't intend to investigate any time soon is
>>>> the chatty CoreAudio code.
>>>
>>> What about it?
>>
>> It throws about 100 warnings when compiled on 10.6 :).
>
> Oh, i thought it was a runtime issue, aslo and given that i don't have
> 10.6...

For reference here's v10.5/ppc64 audio output (ppc below):

   CC    audio/audio.o
   CC    audio/noaudio.o
   CC    audio/wavaudio.o
   CC    audio/mixeng.o
In file included from /Users/andreas/QEMU/qemu/audio/mixeng.c:112:
/Users/andreas/QEMU/qemu/audio/mixeng_template.h: In function  
‘conv_natural_int32_t’:
/Users/andreas/QEMU/qemu/audio/mixeng_template.h:59: warning: integer  
overflow in expression
/Users/andreas/QEMU/qemu/audio/mixeng_template.h: In function  
‘clip_natural_int32_t’:
/Users/andreas/QEMU/qemu/audio/mixeng_template.h:76: warning: integer  
overflow in expression
In file included from /Users/andreas/QEMU/qemu/audio/mixeng.c:117:
/Users/andreas/QEMU/qemu/audio/mixeng_template.h: In function  
‘conv_swap_int32_t’:
/Users/andreas/QEMU/qemu/audio/mixeng_template.h:59: warning: integer  
overflow in expression
/Users/andreas/QEMU/qemu/audio/mixeng_template.h: In function  
‘clip_swap_int32_t’:
/Users/andreas/QEMU/qemu/audio/mixeng_template.h:76: warning: integer  
overflow in expression
   CC    audio/coreaudio.o
/Users/andreas/QEMU/qemu/audio/coreaudio.c: In function  
‘coreaudio_logstatus’:
/Users/andreas/QEMU/qemu/audio/coreaudio.c:59: warning: initialization  
discards qualifiers from pointer target type
/Users/andreas/QEMU/qemu/audio/coreaudio.c:63: warning: assignment  
discards qualifiers from pointer target type
/Users/andreas/QEMU/qemu/audio/coreaudio.c:67: warning: assignment  
discards qualifiers from pointer target type
/Users/andreas/QEMU/qemu/audio/coreaudio.c:71: warning: assignment  
discards qualifiers from pointer target type
/Users/andreas/QEMU/qemu/audio/coreaudio.c:75: warning: assignment  
discards qualifiers from pointer target type
/Users/andreas/QEMU/qemu/audio/coreaudio.c:79: warning: assignment  
discards qualifiers from pointer target type
/Users/andreas/QEMU/qemu/audio/coreaudio.c:83: warning: assignment  
discards qualifiers from pointer target type
/Users/andreas/QEMU/qemu/audio/coreaudio.c:87: warning: assignment  
discards qualifiers from pointer target type
/Users/andreas/QEMU/qemu/audio/coreaudio.c:91: warning: assignment  
discards qualifiers from pointer target type
/Users/andreas/QEMU/qemu/audio/coreaudio.c:95: warning: assignment  
discards qualifiers from pointer target type
/Users/andreas/QEMU/qemu/audio/coreaudio.c:99: warning: assignment  
discards qualifiers from pointer target type
/Users/andreas/QEMU/qemu/audio/coreaudio.c:103: warning: assignment  
discards qualifiers from pointer target type
/Users/andreas/QEMU/qemu/audio/coreaudio.c:107: warning: format ‘%ld’  
expects type ‘long int’, but argument 3 has type ‘OSStatus’
/Users/andreas/QEMU/qemu/audio/coreaudio.c: In function  
‘coreaudio_init_out’:
/Users/andreas/QEMU/qemu/audio/coreaudio.c:364: warning: format ‘%ld’  
expects type ‘long int’, but argument 4 has type ‘UInt32’
/Users/andreas/QEMU/qemu/audio/coreaudio.c:419: warning:  
‘AudioDeviceAddIOProc’ is deprecated (declared at /System/Library/ 
Frameworks/CoreAudio.framework/Headers/AudioHardware.h:2067)
/Users/andreas/QEMU/qemu/audio/coreaudio.c:431: warning:  
‘AudioDeviceRemoveIOProc’ is deprecated (declared at /System/Library/ 
Frameworks/CoreAudio.framework/Headers/AudioHardware.h:2081)
/Users/andreas/QEMU/qemu/audio/coreaudio.c: In function  
‘coreaudio_fini_out’:
/Users/andreas/QEMU/qemu/audio/coreaudio.c:456: warning:  
‘AudioDeviceRemoveIOProc’ is deprecated (declared at /System/Library/ 
Frameworks/CoreAudio.framework/Headers/AudioHardware.h:2081)
   CC    audio/wavcapture.o

v10.5/ppc:

   CC    audio/audio.o
   CC    audio/noaudio.o
   CC    audio/wavaudio.o
   CC    audio/mixeng.o
In file included from /Users/andreas/QEMU/qemu/audio/mixeng.c:112:
/Users/andreas/QEMU/qemu/audio/mixeng_template.h: In function  
‘conv_natural_int32_t’:
/Users/andreas/QEMU/qemu/audio/mixeng_template.h:59: warning: integer  
overflow in expression
/Users/andreas/QEMU/qemu/audio/mixeng_template.h: In function  
‘clip_natural_int32_t’:
/Users/andreas/QEMU/qemu/audio/mixeng_template.h:76: warning: integer  
overflow in expression
In file included from /Users/andreas/QEMU/qemu/audio/mixeng.c:117:
/Users/andreas/QEMU/qemu/audio/mixeng_template.h: In function  
‘conv_swap_int32_t’:
/Users/andreas/QEMU/qemu/audio/mixeng_template.h:59: warning: integer  
overflow in expression
/Users/andreas/QEMU/qemu/audio/mixeng_template.h: In function  
‘clip_swap_int32_t’:
/Users/andreas/QEMU/qemu/audio/mixeng_template.h:76: warning: integer  
overflow in expression
   CC    audio/coreaudio.o
/Users/andreas/QEMU/qemu/audio/coreaudio.c: In function  
‘coreaudio_logstatus’:
/Users/andreas/QEMU/qemu/audio/coreaudio.c:59: warning: initialization  
discards qualifiers from pointer target type
/Users/andreas/QEMU/qemu/audio/coreaudio.c:63: warning: assignment  
discards qualifiers from pointer target type
/Users/andreas/QEMU/qemu/audio/coreaudio.c:67: warning: assignment  
discards qualifiers from pointer target type
/Users/andreas/QEMU/qemu/audio/coreaudio.c:71: warning: assignment  
discards qualifiers from pointer target type
/Users/andreas/QEMU/qemu/audio/coreaudio.c:75: warning: assignment  
discards qualifiers from pointer target type
/Users/andreas/QEMU/qemu/audio/coreaudio.c:79: warning: assignment  
discards qualifiers from pointer target type
/Users/andreas/QEMU/qemu/audio/coreaudio.c:83: warning: assignment  
discards qualifiers from pointer target type
/Users/andreas/QEMU/qemu/audio/coreaudio.c:87: warning: assignment  
discards qualifiers from pointer target type
/Users/andreas/QEMU/qemu/audio/coreaudio.c:91: warning: assignment  
discards qualifiers from pointer target type
/Users/andreas/QEMU/qemu/audio/coreaudio.c:95: warning: assignment  
discards qualifiers from pointer target type
/Users/andreas/QEMU/qemu/audio/coreaudio.c:99: warning: assignment  
discards qualifiers from pointer target type
/Users/andreas/QEMU/qemu/audio/coreaudio.c:103: warning: assignment  
discards qualifiers from pointer target type
/Users/andreas/QEMU/qemu/audio/coreaudio.c: In function  
‘coreaudio_init_out’:
/Users/andreas/QEMU/qemu/audio/coreaudio.c:419: warning:  
‘AudioDeviceAddIOProc’ is deprecated (declared at /System/Library/ 
Frameworks/CoreAudio.framework/Headers/AudioHardware.h:2067)
/Users/andreas/QEMU/qemu/audio/coreaudio.c:431: warning:  
‘AudioDeviceRemoveIOProc’ is deprecated (declared at /System/Library/ 
Frameworks/CoreAudio.framework/Headers/AudioHardware.h:2081)
/Users/andreas/QEMU/qemu/audio/coreaudio.c: In function  
‘coreaudio_fini_out’:
/Users/andreas/QEMU/qemu/audio/coreaudio.c:456: warning:  
‘AudioDeviceRemoveIOProc’ is deprecated (declared at /System/Library/ 
Frameworks/CoreAudio.framework/Headers/AudioHardware.h:2081)
   CC    audio/wavcapture.o

Haven't tested whether there are any audio runtime issues.

Andreas

^ permalink raw reply	[flat|nested] 22+ messages in thread

* Re: [Qemu-devel] CoreAudio warnings (was: [PATCH 4/4] PPC: Change PPC maintainer)
  2010-09-09 20:23               ` [Qemu-devel] CoreAudio warnings (was: [PATCH 4/4] PPC: Change PPC maintainer) Andreas Färber
@ 2010-09-09 21:31                 ` malc
  0 siblings, 0 replies; 22+ messages in thread
From: malc @ 2010-09-09 21:31 UTC (permalink / raw)
  To: Andreas Färber; +Cc: Alexander Graf, QEMU Developers

On Thu, 9 Sep 2010, Andreas F?rber wrote:

> Am 08.09.2010 um 03:19 schrieb malc:
> 
> > On Wed, 8 Sep 2010, Alexander Graf wrote:
> > 
> > > On 08.09.2010, at 00:48, malc wrote:
> > > 
> > > > On Wed, 8 Sep 2010, Andreas F?rber wrote:
> > > > > What I don't intend to investigate any time soon is
> > > > > the chatty CoreAudio code.
> > > > 
> > > > What about it?
> > > 
> > > It throws about 100 warnings when compiled on 10.6 :).
> > 
> > Oh, i thought it was a runtime issue, aslo and given that i don't have
> > 10.6...
> 
> For reference here's v10.5/ppc64 audio output (ppc below):
> 

[..snip..]

Thanks. Though most of those warnings are either bogus or require access
to the 10.5/6 system to fix.

-- 
mailto:av1474@comtv.ru

^ permalink raw reply	[flat|nested] 22+ messages in thread

* [Qemu-devel] [PULL 0/4] PPC updates
@ 2010-09-02 23:16 Alexander Graf
  0 siblings, 0 replies; 22+ messages in thread
From: Alexander Graf @ 2010-09-02 23:16 UTC (permalink / raw)
  To: qemu-devel List

This time around I also included a fix for the shmem compile bug, as my tree
wouldn't compile otherwise.

The following changes since commit cb93bbdd7db92e50ff5e60a346b23df68acae46b:
  Blue Swirl (1):
        Fix OpenBSD linker warning

are available in the git repository at:

  git://repo.or.cz/qemu/agraf.git ppc-next

Alexander Graf (4):
  Fix compile of ivshmem on 32 bit hosts
  KVM: PPC: Add level based interrupt logic
  PPC: Qdev'ify e500 pci
  PPC: Make e500 pci byte swap config data

 hw/ivshmem.c         |    6 +-
 hw/ppc.c             |   11 +++++
 hw/ppce500_pci.c     |  106 ++++++++++++++++++++++++++++++++++---------------
 target-ppc/kvm.c     |   37 ++++++++++++++++-
 target-ppc/kvm_ppc.h |   13 ++++++
 5 files changed, 135 insertions(+), 38 deletions(-)

^ permalink raw reply	[flat|nested] 22+ messages in thread

end of thread, other threads:[~2010-09-09 21:32 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-09-07 11:53 [Qemu-devel] [PULL 0/4] PPC updates Alexander Graf
2010-09-07 11:53 ` [Qemu-devel] [PATCH 1/4] KVM: PPC: Add level based interrupt logic Alexander Graf
2010-09-07 11:53 ` [Qemu-devel] [PATCH 2/4] PPC: Qdev'ify e500 pci Alexander Graf
2010-09-07 18:21   ` Blue Swirl
2010-09-07 21:33     ` Alexander Graf
2010-09-08 17:38       ` Blue Swirl
2010-09-07 11:53 ` [Qemu-devel] [PATCH 3/4] PPC: Make e500 pci byte swap config data Alexander Graf
2010-09-07 11:53 ` [Qemu-devel] [PATCH 4/4] PPC: Change PPC maintainer Alexander Graf
2010-09-07 21:17   ` Andreas Färber
2010-09-07 21:36     ` Alexander Graf
2010-09-07 22:21       ` Andreas Färber
2010-09-07 22:48         ` malc
2010-09-07 23:00           ` Alexander Graf
2010-09-08  1:19             ` malc
2010-09-09 20:23               ` [Qemu-devel] CoreAudio warnings (was: [PATCH 4/4] PPC: Change PPC maintainer) Andreas Färber
2010-09-09 21:31                 ` malc
2010-09-08 19:26 ` [Qemu-devel] [PULL 0/4] PPC updates Anthony Liguori
2010-09-08 19:31 ` Anthony Liguori
2010-09-08 19:41   ` Alexander Graf
2010-09-08 19:58     ` Anthony Liguori
2010-09-08 20:06       ` Alexander Graf
  -- strict thread matches above, loose matches on Subject: below --
2010-09-02 23:16 Alexander Graf

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.