[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-ppc] [PATCH 11/58] PPC: Bump MPIC up to 32 supported CPUs
From: |
Alexander Graf |
Subject: |
[Qemu-ppc] [PATCH 11/58] PPC: Bump MPIC up to 32 supported CPUs |
Date: |
Wed, 14 Sep 2011 10:42:35 +0200 |
The MPIC emulation is now capable of handling up to 32 CPUs. Reflect that in
the code exporting the numbers out and fix an integer overflow while at it.
Signed-off-by: Alexander Graf <address@hidden>
---
v1 -> v2:
- Max cpus is 15 due to cINT routing
- Report nb_cpus not MAX_CPUS in MPIC capabilities
---
hw/openpic.c | 10 +++-------
1 files changed, 3 insertions(+), 7 deletions(-)
diff --git a/hw/openpic.c b/hw/openpic.c
index 109c1bc..03e442b 100644
--- a/hw/openpic.c
+++ b/hw/openpic.c
@@ -63,7 +63,7 @@
#elif defined(USE_MPCxxx)
-#define MAX_CPU 2
+#define MAX_CPU 15
#define MAX_IRQ 128
#define MAX_DBL 0
#define MAX_MBX 0
@@ -507,7 +507,7 @@ static inline void write_IRQreg (openpic_t *opp, int n_IRQ,
break;
case IRQ_IDE:
tmp = val & 0xC0000000;
- tmp |= val & ((1 << MAX_CPU) - 1);
+ tmp |= val & ((1ULL << MAX_CPU) - 1);
opp->src[n_IRQ].ide = tmp;
DPRINTF("Set IDE %d to 0x%08x\n", n_IRQ, opp->src[n_IRQ].ide);
break;
@@ -1283,7 +1283,7 @@ static void mpic_reset (void *opaque)
mpp->glbc = 0x80000000;
/* Initialise controller registers */
- mpp->frep = 0x004f0002;
+ mpp->frep = 0x004f0002 | ((mpp->nb_cpus - 1) << 8);
mpp->veni = VENI;
mpp->pint = 0x00000000;
mpp->spve = 0x0000FFFF;
@@ -1684,10 +1684,6 @@ qemu_irq *mpic_init (target_phys_addr_t base, int
nb_cpus,
{mpic_cpu_read, mpic_cpu_write, MPIC_CPU_REG_START, MPIC_CPU_REG_SIZE},
};
- /* XXX: for now, only one CPU is supported */
- if (nb_cpus != 1)
- return NULL;
-
mpp = g_malloc0(sizeof(openpic_t));
for (i = 0; i < sizeof(list)/sizeof(list[0]); i++) {
--
1.6.0.2
- Re: [Qemu-ppc] [PATCH 05/58] PPC: Add CPU local MMIO regions to MPIC, (continued)
[Qemu-ppc] [PATCH 47/58] Implement POWER7's CFAR in TCG, Alexander Graf, 2011/09/14
[Qemu-ppc] [PATCH 37/58] pseries: Add a phandle to the xicp interrupt controller device tree node, Alexander Graf, 2011/09/14
[Qemu-ppc] [PATCH 13/58] PPC: E500: Generate IRQ lines for many CPUs, Alexander Graf, 2011/09/14
[Qemu-ppc] [PATCH 43/58] KVM: Update kernel headers, Alexander Graf, 2011/09/14
[Qemu-ppc] [PATCH 52/58] ppc405: use RAM_ADDR_FMT instead of %08lx, Alexander Graf, 2011/09/14
[Qemu-ppc] [PATCH 11/58] PPC: Bump MPIC up to 32 supported CPUs,
Alexander Graf <=
[Qemu-ppc] [PATCH 51/58] Gdbstub: handle read of fpscr, Alexander Graf, 2011/09/14