Commit 86e2fca2 authored by Peter Maydell's avatar Peter Maydell
Browse files

Merge remote-tracking branch 'remotes/dgibson/tags/ppc-for-4.0-20190319' into staging



ppc patch queue for 2019-03-19

This is a small set, it has a number of fixes and a couple of minor
cleanups to go in for the hard freeze.

# gpg: Signature made Tue 19 Mar 2019 10:05:48 GMT
# gpg:                using RSA key 75F46586AE61A66CC44E87DC6C38CACA20D9B392
# gpg: Good signature from "David Gibson <david@gibson.dropbear.id.au>" [full]
# gpg:                 aka "David Gibson (Red Hat) <dgibson@redhat.com>" [full]
# gpg:                 aka "David Gibson (ozlabs.org) <dgibson@ozlabs.org>" [full]
# gpg:                 aka "David Gibson (kernel.org) <dwg@kernel.org>" [unknown]
# Primary key fingerprint: 75F4 6586 AE61 A66C C44E  87DC 6C38 CACA 20D9 B392

* remotes/dgibson/tags/ppc-for-4.0-20190319:
  spapr: Remove NULL checks on error_propagate() calls
  ppc/xics/spapr: Fix H_IPOLL implementation
  ppc/pnv: Fix variable size in pnv_psi_power9_irq_set()
  ppc/pnv: Use local_err variable in pnv_chip_power9_intc_create()
  MAINTAINERS: PPC: add a PowerNV machine entry
  ppc/pnv: update skiboot to commit 261ca8e779e5.
  spapr: Correctly set LPCR[GTSE] in H_REGISTER_PROCESS_TABLE

Signed-off-by: default avatarPeter Maydell <peter.maydell@linaro.org>
parents 54281eef e366d181
Loading
Loading
Loading
Loading
+12 −1
Original line number Diff line number Diff line
@@ -1061,7 +1061,6 @@ F: include/hw/*/xics*
F: pc-bios/spapr-rtas/*
F: pc-bios/spapr-rtas.bin
F: pc-bios/slof.bin
F: pc-bios/skiboot.lid
F: docs/specs/ppc-spapr-hcalls.txt
F: docs/specs/ppc-spapr-hotplug.txt
F: tests/spapr*
@@ -1069,6 +1068,18 @@ F: tests/libqos/*spapr*
F: tests/rtas*
F: tests/libqos/rtas*

PowerNV (Non-Virtualized)
M: Cédric Le Goater <clg@kaod.org>
M: David Gibson <david@gibson.dropbear.id.au>
L: qemu-ppc@nongnu.org
S: Maintained
F: hw/ppc/pnv*
F: hw/intc/pnv*
F: hw/intc/xics_pnv.c
F: include/hw/ppc/pnv*
F: pc-bios/skiboot.lid
F: tests/pnv*

virtex_ml507
M: Edgar E. Iglesias <edgar.iglesias@gmail.com>
L: qemu-ppc@nongnu.org
+8 −1
Original line number Diff line number Diff line
@@ -95,8 +95,15 @@ static target_ulong h_eoi(PowerPCCPU *cpu, SpaprMachineState *spapr,
static target_ulong h_ipoll(PowerPCCPU *cpu, SpaprMachineState *spapr,
                            target_ulong opcode, target_ulong *args)
{
    ICPState *icp = xics_icp_get(XICS_FABRIC(spapr), args[0]);
    uint32_t mfrr;
    uint32_t xirr = icp_ipoll(spapr_cpu_state(cpu)->icp, &mfrr);
    uint32_t xirr;

    if (!icp) {
        return H_PARAMETER;
    }

    xirr = icp_ipoll(icp, &mfrr);

    args[0] = xirr;
    args[1] = mfrr;
+1 −1
Original line number Diff line number Diff line
@@ -755,7 +755,7 @@ static void pnv_chip_power9_intc_create(PnvChip *chip, PowerPCCPU *cpu,
     * controller object is initialized afterwards. Hopefully, it's
     * only used at runtime.
     */
    obj = xive_tctx_create(OBJECT(cpu), XIVE_ROUTER(&chip9->xive), errp);
    obj = xive_tctx_create(OBJECT(cpu), XIVE_ROUTER(&chip9->xive), &local_err);
    if (local_err) {
        error_propagate(errp, local_err);
        return;
+1 −1
Original line number Diff line number Diff line
@@ -786,7 +786,7 @@ static const MemoryRegionOps pnv_psi_p9_xscom_ops = {

static void pnv_psi_power9_irq_set(PnvPsi *psi, int irq, bool state)
{
    uint32_t irq_method = psi->regs[PSIHB_REG(PSIHB9_INTERRUPT_CONTROL)];
    uint64_t irq_method = psi->regs[PSIHB_REG(PSIHB9_INTERRUPT_CONTROL)];

    if (irq > PSIHB9_NUM_IRQS) {
        qemu_log_mask(LOG_GUEST_ERROR, "PSI: Unsupported irq %d\n", irq);
+2 −1
Original line number Diff line number Diff line
@@ -1400,7 +1400,8 @@ static target_ulong h_register_process_table(PowerPCCPU *cpu,
    else if (flags & FLAG_HASH_PROC_TBL) /* Hash with process tables */
        update_lpcr |= LPCR_UPRT;
    if (flags & FLAG_GTSE)      /* Guest translation shootdown enable */
        update_lpcr |= FLAG_GTSE;
        update_lpcr |= LPCR_GTSE;

    spapr_set_all_lpcrs(update_lpcr, LPCR_UPRT | LPCR_HR | LPCR_GTSE);

    if (kvm_enabled()) {
Loading