Commit d345e0d7 authored by Peter Maydell's avatar Peter Maydell
Browse files

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: default avatarPeter Maydell <peter.maydell@linaro.org>
parents 18640989 8f60f8e2
Loading
Loading
Loading
Loading
+5 −7
Original line number Diff line number Diff line
@@ -590,11 +590,12 @@ 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;
    }
    }

    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,
+2 −2
Original line number Diff line number Diff line
@@ -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;
+0 −4
Original line number Diff line number Diff line
@@ -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)
+0 −3
Original line number Diff line number Diff line
@@ -288,9 +288,6 @@ static void bamboo_init(MachineState *machine)
            exit(1);
        }
    }

    if (kvm_enabled())
        kvmppc_init();
}

static void bamboo_machine_init(MachineClass *mc)
+1 −1
Original line number Diff line number Diff line
@@ -1650,7 +1650,7 @@ void cpu_loop(CPUPPCState *env)
            info.si_signo = TARGET_SIGBUS;
            info.si_errno = 0;
            info.si_code = TARGET_BUS_ADRALN;
            info._sifields._sigfault._addr = env->nip - 4;
            info._sifields._sigfault._addr = env->nip;
            queue_signal(env, info.si_signo, &info);
            break;
        case POWERPC_EXCP_PROGRAM:  /* Program exception                     */
Loading