[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-ppc] [PATCH v2 0/3] spapr: introduce a fixed IRQ number space
From: |
Cédric Le Goater |
Subject: |
[Qemu-ppc] [PATCH v2 0/3] spapr: introduce a fixed IRQ number space |
Date: |
Mon, 18 Jun 2018 19:33:59 +0200 |
Here is a proposal for a new IRQ number space layout using static
numbers and a bitmap allocator for the MSIs. The previous layout is
kept for compatibly in machines raising the 'xics_legacy' flag.
These are just the basics preparing ground for the new XIVE
controller. I would also like to introduce a structure like below to
abstract the IRQ controller in the sPAPR machine :
typedef struct sPAPRIrq {
uint32_t nr_irqs;
uint8_t ov5;
void (*init)(sPAPRMachineState *spapr, uint32_t nr_servers, Error **errp);
int (*claim)(sPAPRMachineState *spapr, uint32_t irq, bool lsi, Error
**errp);
void (*free)(sPAPRMachineState *spapr, int irq, int num, Error **errp);
qemu_irq (*qirq)(sPAPRMachineState *spapr, int irq);
void (*print_info)(sPAPRMachineState *spapr, Monitor *mon);
void (*dt_populate)(sPAPRMachineState *spapr, uint32_t nr_servers,
void *fdt, uint32_t phandle);
Object *(*cpu_intc_create)(sPAPRMachineState *spapr, Object *cpu,
Error **errp);
void (*post_load)(sPAPRMachineState *spapr);
} sPAPRIrq;
Thanks,
C.
Changes since v1 :
- removed block allocation
- spaced the IRQ offsets
- check for overlaps when allocating VIO irqs
- removed 'Error *' arg from spapr_irq_msi_init()
Cédric Le Goater (3):
spapr: split the IRQ allocation sequence
spapr: remove unused spapr_irq routines
spapr: introduce a fixed IRQ number space
include/hw/ppc/spapr.h | 12 ++++--
include/hw/ppc/spapr_irq.h | 30 ++++++++++++++
hw/ppc/spapr.c | 101 +++++++++++++++++++++++----------------------
hw/ppc/spapr_events.c | 26 ++++++++++--
hw/ppc/spapr_irq.c | 56 +++++++++++++++++++++++++
hw/ppc/spapr_pci.c | 39 +++++++++++++++--
hw/ppc/spapr_vio.c | 21 +++++++++-
hw/ppc/Makefile.objs | 2 +-
8 files changed, 225 insertions(+), 62 deletions(-)
create mode 100644 include/hw/ppc/spapr_irq.h
create mode 100644 hw/ppc/spapr_irq.c
--
2.13.6
- [Qemu-ppc] [PATCH v2 0/3] spapr: introduce a fixed IRQ number space,
Cédric Le Goater <=