1. 27 Jun, 2011 3 commits
    • Timur Tabi's avatar
      powerpc: add Freescale hypervisor partition control functions · d173ea6b
      Timur Tabi authored
      Add functions to restart and halt the current partition when running under
      the Freescale hypervisor.  These functions should be assigned to various
      function pointers of the ppc_md structure during the .probe() function for
      the board:
      
      	ppc_md.restart = fsl_hv_restart;
      	ppc_md.power_off = fsl_hv_halt;
      	ppc_md.halt = fsl_hv_halt;
      Signed-off-by: default avatarTimur Tabi <timur@freescale.com>
      Signed-off-by: default avatarKumar Gala <galak@kernel.crashing.org>
      d173ea6b
    • Ashish Kalra's avatar
      powerpc: introduce the ePAPR embedded hypervisor vmpic driver · 3a93261f
      Ashish Kalra authored
      The Freescale ePAPR reference hypervisor provides interrupt controller
      services via a hypercall interface, instead of emulating the MPIC
      controller.  This is called the VMPIC.
      
      The ePAPR "virtual interrupt controller" provides interrupt controller
      services for external interrupts.  External interrupts received by a
      partition can come from two sources:
      
        - Hardware interrupts - hardware interrupts come from external
          interrupt lines or on-chip I/O devices.
        - Virtual interrupts - virtual interrupts are generated by the hypervisor
          as part of some hypervisor service or hypervisor-created virtual device.
      
      Both types of interrupts are processed using the same programming model and
      same set of hypercalls.
      Signed-off-by: default avatarAshish Kalra <ashish.kalra@freescale.com>
      Signed-off-by: default avatarTimur Tabi <timur@freescale.com>
      Signed-off-by: default avatarKumar Gala <galak@kernel.crashing.org>
      3a93261f
    • Timur Tabi's avatar
      powerpc: introduce ePAPR embedded hypervisor hcall interface · bd497fc9
      Timur Tabi authored
      ePAPR hypervisors provide operating system services via a "hypercall"
      interface.  The following steps need to be performed to make an hcall:
      
      1. Load r11 with the hcall number
      2. Load specific other registers with parameters
      3. Issue instrucion "sc 1"
      4. The return code is in r3
      5. Other returned parameters are in other registers.
      
      To provide this service to the kernel, these steps are wrapped in inline
      assembly functions.  Standard ePAPR hcalls are in epapr_hcalls.h, and
      Freescale extensions are in fsl_hcalls.h.
      Signed-off-by: default avatarTimur Tabi <timur@freescale.com>
      Signed-off-by: default avatarKumar Gala <galak@kernel.crashing.org>
      bd497fc9
  2. 23 Jun, 2011 14 commits
  3. 20 Jun, 2011 4 commits
  4. 17 Jun, 2011 2 commits
  5. 08 Jun, 2011 17 commits