1. 31 Mar, 2018 5 commits
    • Jonathan Neuschäfer's avatar
      powerpc/wii.dts: Add ngpios property · 9693d570
      Jonathan Neuschäfer authored
      The Hollywood GPIO controller supports 32 GPIOs, but on the Wii, only 24
      are used.
      Signed-off-by: default avatarJonathan Neuschäfer <j.neuschaefer@gmx.net>
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      9693d570
    • Jonathan Neuschäfer's avatar
      powerpc/wii: Explicitly configure GPIO owner for poweroff pin · 9cbaaec1
      Jonathan Neuschäfer authored
      The Hollywood chipset's GPIO controller has two sets of registers: One
      for access by the PowerPC CPU, and one for access by the ARM coprocessor
      (but both are accessible from the PPC because the memory firewall
      (AHBPROT) is usually disabled when booting Linux, today).
      
      The wii_power_off function currently assumes that the poweroff GPIO pin
      is configured for use via the ARM side, but the upcoming GPIO driver
      configures all pins for use via the PPC side, breaking poweroff.
      
      Configure the owner register explicitly in wii_power_off to make
      wii_power_off work with and without the new GPIO driver.
      
      I think the Wii can be switched to the generic gpio-poweroff driver,
      after the GPIO driver is merged.
      Signed-off-by: default avatarJonathan Neuschäfer <j.neuschaefer@gmx.net>
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      9cbaaec1
    • Jonathan Neuschäfer's avatar
      powerpc/wii: Probe the whole devicetree · 7ab96c0a
      Jonathan Neuschäfer authored
      Previously, wii_device_probe would only initialize devices under the
      /hollywood node. After this patch, platform devices placed outside of
      /hollywood will also be initialized.
      
      The intended usecase for this are devices located outside of the
      Hollywood chip, such as GPIO LEDs and GPIO buttons.
      Signed-off-by: default avatarJonathan Neuschäfer <j.neuschaefer@gmx.net>
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      7ab96c0a
    • Michael Ellerman's avatar
      powerpc/64e: Fix oops due to deferral of paca allocation · 1d0afc0d
      Michael Ellerman authored
      On 64-bit Book3E systems, in setup_tlb_core_data() we reference other
      CPUs pacas. But in commit 59f57774 ("powerpc/64: Defer paca
      allocation until memory topology is discovered") the allocation of
      non-boot-CPU pacas was deferred until later in boot.
      
      This leads to an oops:
      
        CPU maps initialized for 1 thread per core
        Unable to handle kernel paging request for data at address 0x8888888888888918
        Faulting instruction address: 0xc000000000e2f0d0
        Oops: Kernel access of bad area, sig: 11 [#1]
        NIP .setup_tlb_core_data+0xdc/0x160
        Call Trace:
          .setup_tlb_core_data+0x5c/0x160 (unreliable)
          .setup_arch+0x80/0x348
          .start_kernel+0x7c/0x598
          start_here_common+0x1c/0x40
      
      Luckily setup_tlb_core_data() is called immediately prior to
      smp_setup_pacas(). So simply switching their order is sufficient to
      fix the oops and seems unlikely to have any other unwanted side
      effects.
      
      Fixes: 59f57774 ("powerpc/64: Defer paca allocation until memory topology is discovered")
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      1d0afc0d
    • Aneesh Kumar K.V's avatar
      powerpc/kvm: Fix guest boot failure on Power9 since DAWR changes · ca9a16c3
      Aneesh Kumar K.V authored
      SLOF checks for 'sc 1' (hypercall) support by issuing a hcall with
      H_SET_DABR. Since the recent commit e8ebedbf ("KVM: PPC: Book3S
      HV: Return error from h_set_dabr() on POWER9") changed H_SET_DABR to
      return H_UNSUPPORTED on Power9, we see guest boot failures, the
      symptom is the boot seems to just stop in SLOF, eg:
      
        SLOF ***************************************************************
        QEMU Starting
         Build Date = Sep 24 2017 12:23:07
         FW Version = buildd@ release 20170724
        <no further output>
      
      SLOF can cope if H_SET_DABR returns H_HARDWARE. So wwitch the return
      value to H_HARDWARE instead of H_UNSUPPORTED so that we don't break
      the guest boot.
      
      That does mean we return a different error to PowerVM in this case,
      but that's probably not a big concern.
      
      Fixes: e8ebedbf ("KVM: PPC: Book3S HV: Return error from h_set_dabr() on POWER9")
      Signed-off-by: default avatarAneesh Kumar K.V <aneesh.kumar@linux.ibm.com>
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      ca9a16c3
  2. 30 Mar, 2018 30 commits
  3. 28 Mar, 2018 1 commit
    • Michael Ellerman's avatar
      Merge branch 'fixes' into next · 95dff480
      Michael Ellerman authored
      Merge our fixes branch from the 4.16 cycle.
      
      There were a number of important fixes merged, in particular some Power9
      workarounds that we want in next for testing purposes. There's also been
      some conflicting changes in the CPU features code which are best merged
      and tested before going upstream.
      95dff480
  4. 27 Mar, 2018 4 commits