Skip to content
  1. Aug 14, 2013
  2. Jun 20, 2013
  3. Nov 25, 2011
    • Benjamin Herrenschmidt's avatar
      powerpc/powernv: PCI support for p7IOC under OPAL v2 · 184cd4a3
      Benjamin Herrenschmidt authored
      
      
      This adds support for p7IOC (and possibly other IODA v1 IO Hubs)
      using OPAL v2 interfaces.
      
      We completely take over resource assignment and assign them using an
      algorithm that hands out device BARs in a way that makes them fit in
      individual segments of the M32 window of the bridge, which enables us
      to assign individual PEs to devices and functions.
      
      The current implementation gives out a PE per functions on PCIe, and a
      PE for the entire bridge for PCIe to PCI-X bridges.
      
      This can be adjusted / fine tuned later.
      
      We also setup DMA resources (32-bit only for now) and MSIs (both 32-bit
      and 64-bit MSI are supported).
      
      The DMA allocation tries to divide the available 256M segments of the
      32-bit DMA address space "fairly" among PEs. This is done using a
      "weight" heuristic which assigns less value to things like OHCI USB
      controllers than, for example SCSI RAID controllers. This algorithm
      will probably want some fine tuning for specific devices or device
      types.
      
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      184cd4a3
  4. Sep 20, 2011
    • Benjamin Herrenschmidt's avatar
      powerpc/powernv: Add support for p5ioc2 PCI-X and PCIe · 61305a96
      Benjamin Herrenschmidt authored
      
      
      This adds support for PCI-X and PCIe on the p5ioc2 IO hub using
      OPAL. This includes allocating & setting up TCE tables and config
      space access routines.
      
      This also supports fallbacks via RTAS when OPAL is absent, using
      legacy TCE format pre-allocated via the device-tree (BML style)
      
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      61305a96
    • Benjamin Herrenschmidt's avatar
      powerpc/powernv: Add RTC and NVRAM support plus RTAS fallbacks · 628daa8d
      Benjamin Herrenschmidt authored
      
      
      Implements OPAL RTC and NVRAM support and wire all that up to
      the powernv platform.
      
      We use RTAS for RTC as a fallback if available. Using RTAS for nvram
      is not supported yet, pending some rework/cleanup and generalization
      of the pSeries & CHRP code. We also use RTAS fallbacks for power off
      and reboot
      
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      628daa8d
    • Benjamin Herrenschmidt's avatar
      powerpc/powernv: Basic support for OPAL · 14a43e69
      Benjamin Herrenschmidt authored
      
      
      Add definition of OPAL interfaces along with  the wrappers to call
      into OPAL runtime and the early device-tree parsing hook to locate
      the OPAL runtime firmware.
      
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      14a43e69
    • Benjamin Herrenschmidt's avatar
      powerpc/powernv: Add OPAL takeover from PowerVM · 27f44888
      Benjamin Herrenschmidt authored
      
      
      On machines supporting the OPAL firmware version 1, the system
      is initially booted under pHyp. We then use a special hypercall
      to verify if OPAL is available and if it is, we then trigger
      a "takeover" which disables pHyp and loads the OPAL runtime
      firmware, giving control to the kernel in hypervisor mode.
      
      This patch add the necessary code to detect that the OPAL takeover
      capability is present when running under PowerVM (aka pHyp) and
      perform said takeover to get hypervisor control of the processor.
      
      To perform the takeover, we must first use RTAS (within Open
      Firmware runtime environment) to start all processors & threads,
      in order to give control to OPAL on all of them. We then call
      the takeover hypercall on everybody, OPAL will re-enter the kernel
      main entry point passing it a flat device-tree.
      
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      27f44888
    • Benjamin Herrenschmidt's avatar
      powerpc: Add skeleton PowerNV platform · 55190f88
      Benjamin Herrenschmidt authored
      
      
      This adds a skeletton for the new Power "Non Virtualized"
      platform which will be used by machines supporting running
      without an hypervisor, for example in order to run KVM.
      
      These machines will be using a new firmware called OPAL
      for which the support will be provided by later patches.
      
      The PowerNV platform is intended to be also usable under
      the BML environment used internally for early CPU bringup
      which is why the code also supports using RTAS instead of
      OPAL in various places.
      
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      55190f88
Loading