aboutsummaryrefslogtreecommitdiff
path: root/hw
diff options
context:
space:
mode:
authorPeter Maydell <peter.maydell@linaro.org>2015-09-21 17:01:46 +0100
committerPeter Maydell <peter.maydell@linaro.org>2015-09-21 17:01:46 +0100
commitd345e0d7b755591da379b23c628613d0a5cd2566 (patch)
tree733b14777790da56e378facdfa1fc396d6e55657 /hw
parent18640989a9f5e4d2e84b566c52ff1fccfa0dbf4a (diff)
parent8f60f8e2e574f341709128ff7637e685fd640254 (diff)
downloadqemu-d345e0d7b755591da379b23c628613d0a5cd2566.zip
qemu-d345e0d7b755591da379b23c628613d0a5cd2566.tar.gz
qemu-d345e0d7b755591da379b23c628613d0a5cd2566.tar.bz2
Merge remote-tracking branch 'remotes/agraf/tags/signed-ppc-for-upstream' into staging
Patch queue for ppc - 2015-09-20 Highlights this time around: - e500: Fix u-boot boot with -M virt by updating to new version - e500: fix ATMU reads - book3s: Fixes (unaligned exceptions, vector instructions) - yet another dbdma ide fix I'm out taking care of my son for the next 2 months. During that time please consider David Gibson the interim ppc queue maintainer. I'm sure Aurelien will be more than happy to help him review patches as well ;-). # gpg: Signature made Sun 20 Sep 2015 21:51:16 BST using RSA key ID 03FEDC60 # gpg: Good signature from "Alexander Graf <agraf@suse.de>" # gpg: aka "Alexander Graf <alex@csgraf.de>" * remotes/agraf/tags/signed-ppc-for-upstream: target-ppc: fix xscmpodp and xscmpudp decoding target-ppc: fix vcipher, vcipherlast, vncipherlast and vpermxor PPC: E500: Update u-boot to commit 79c884d7e4 target-ppc: Fix SRR0 when taking unaligned exceptions PPC: e500 pci host: Fix ATMUs register reads mac_dbdma: always clear FLUSH bit once DBDMA channel flush is complete kvm_ppc: remove kvmppc_timer_hack Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'hw')
-rw-r--r--hw/misc/macio/mac_dbdma.c12
-rw-r--r--hw/pci-host/ppce500.c4
-rw-r--r--hw/ppc/e500.c4
-rw-r--r--hw/ppc/ppc440_bamboo.c3
4 files changed, 7 insertions, 16 deletions
diff --git a/hw/misc/macio/mac_dbdma.c b/hw/misc/macio/mac_dbdma.c
index b25e851..779683c 100644
--- a/hw/misc/macio/mac_dbdma.c
+++ b/hw/misc/macio/mac_dbdma.c
@@ -590,10 +590,11 @@ dbdma_control_write(DBDMA_channel *ch)
if ((ch->regs[DBDMA_STATUS] & RUN) && !(status & RUN)) {
/* RUN is cleared */
status &= ~(ACTIVE|DEAD);
- if ((status & FLUSH) && ch->flush) {
- ch->flush(&ch->io);
- status &= ~FLUSH;
- }
+ }
+
+ if ((status & FLUSH) && ch->flush) {
+ ch->flush(&ch->io);
+ status &= ~FLUSH;
}
DBDMA_DPRINTF(" status 0x%08x\n", status);
@@ -603,9 +604,6 @@ dbdma_control_write(DBDMA_channel *ch)
if (status & ACTIVE) {
DBDMA_kick(dbdma_from_ch(ch));
}
- if ((status & FLUSH) && ch->flush) {
- ch->flush(&ch->io);
- }
}
static void dbdma_write(void *opaque, hwaddr addr,
diff --git a/hw/pci-host/ppce500.c b/hw/pci-host/ppce500.c
index 613ba73..50add34 100644
--- a/hw/pci-host/ppce500.c
+++ b/hw/pci-host/ppce500.c
@@ -140,7 +140,7 @@ static uint64_t pci_reg_read4(void *opaque, hwaddr addr,
case PPCE500_PCI_OW3:
case PPCE500_PCI_OW4:
idx = (addr >> 5) & 0x7;
- switch (addr & 0xC) {
+ switch (addr & 0x1F) {
case PCI_POTAR:
value = pci->pob[idx].potar;
break;
@@ -162,7 +162,7 @@ static uint64_t pci_reg_read4(void *opaque, hwaddr addr,
case PPCE500_PCI_IW2:
case PPCE500_PCI_IW1:
idx = ((addr >> 5) & 0x3) - 1;
- switch (addr & 0xC) {
+ switch (addr & 0x1F) {
case PCI_PITAR:
value = pci->pib[idx].pitar;
break;
diff --git a/hw/ppc/e500.c b/hw/ppc/e500.c
index d300846..e968386 100644
--- a/hw/ppc/e500.c
+++ b/hw/ppc/e500.c
@@ -1048,10 +1048,6 @@ void ppce500_init(MachineState *machine, PPCE500Params *params)
boot_info->entry = bios_entry;
boot_info->dt_base = dt_base;
boot_info->dt_size = dt_size;
-
- if (kvm_enabled()) {
- kvmppc_init();
- }
}
static int e500_ccsr_initfn(SysBusDevice *dev)
diff --git a/hw/ppc/ppc440_bamboo.c b/hw/ppc/ppc440_bamboo.c
index 4726832..ada676c 100644
--- a/hw/ppc/ppc440_bamboo.c
+++ b/hw/ppc/ppc440_bamboo.c
@@ -288,9 +288,6 @@ static void bamboo_init(MachineState *machine)
exit(1);
}
}
-
- if (kvm_enabled())
- kvmppc_init();
}
static void bamboo_machine_init(MachineClass *mc)