1. 30 7月, 2014 2 次提交
    • A
      powerpc/e6500: Add support for hardware threads · e16c8765
      Andy Fleming 提交于
      The general idea is that each core will release all of its
      threads into the secondary thread startup code, which will
      eventually wait in the secondary core holding area, for the
      appropriate bit in the PACA to be set. The kick_cpu function
      pointer will set that bit in the PACA, and thus "release"
      the core/thread to boot. We also need to do a few things that
      U-Boot normally does for CPUs (like enable branch prediction).
      Signed-off-by: NAndy Fleming <afleming@freescale.com>
      [scottwood@freescale.com: various changes, including only enabling
       threads if Linux wants to kick them]
      Signed-off-by: NScott Wood <scottwood@freescale.com>
      e16c8765
    • S
      powerpc/booke: Define MSR bits the same way as reg.h · 7251a24e
      Scott Wood 提交于
      This ensures that all MSR definitions are consistently unsigned long,
      and that MSR_CM does not become 0xffffffff80000000 (this is usually
      harmless because MSR is 32-bit on booke and is mainly noticeable when
      debugging, but still I'd rather avoid it).
      Signed-off-by: NScott Wood <scottwood@freescale.com>
      7251a24e
  2. 21 6月, 2014 1 次提交
  3. 30 5月, 2014 1 次提交
    • A
      KVM: PPC: E500: Add dcbtls emulation · 8f20a3ab
      Alexander Graf 提交于
      The dcbtls instruction is able to lock data inside the L1 cache.
      
      We don't want to give the guest actual access to hardware cache locks,
      as that could influence other VMs on the same system. But we can tell
      the guest that its locking attempt failed.
      
      By implementing the instruction we at least don't give the guest a
      program exception which it definitely does not expect.
      Signed-off-by: NAlexander Graf <agraf@suse.de>
      8f20a3ab
  4. 08 1月, 2014 2 次提交
  5. 19 10月, 2013 1 次提交
  6. 17 10月, 2013 1 次提交
  7. 14 8月, 2013 1 次提交
  8. 13 2月, 2013 1 次提交
  9. 06 10月, 2012 1 次提交
  10. 20 4月, 2012 1 次提交
    • B
      powerpc: fix build when CONFIG_BOOKE_WDT is enabled · eda713e2
      Baruch Siach 提交于
      Commit ae3a197e (Disintegrate asm/system.h for PowerPC) broke build of
      assembly files when CONFIG_BOOKE_WDT is enabled as follows:
      
        AS      arch/powerpc/lib/string.o
      /home/baruch/git/stable/arch/powerpc/include/asm/reg_booke.h: Assembler messages:
      /home/baruch/git/stable/arch/powerpc/include/asm/reg_booke.h:19: Error: Unrecognized opcode: `extern'
      /home/baruch/git/stable/arch/powerpc/include/asm/reg_booke.h:20: Error: Unrecognized opcode: `extern'
      
      Since setup_32.c is the only user of the booke_wdt configuration variables, move
      the declarations there.
      
      Cc: David Howells <dhowells@redhat.com>
      Signed-off-by: NBaruch Siach <baruch@tkos.co.il>
      Signed-off-by: NKumar Gala <galak@kernel.crashing.org>
      eda713e2
  11. 08 4月, 2012 1 次提交
    • S
      KVM: PPC: booke: category E.HV (GS-mode) support · d30f6e48
      Scott Wood 提交于
      Chips such as e500mc that implement category E.HV in Power ISA 2.06
      provide hardware virtualization features, including a new MSR mode for
      guest state.  The guest OS can perform many operations without trapping
      into the hypervisor, including transitions to and from guest userspace.
      
      Since we can use SRR1[GS] to reliably tell whether an exception came from
      guest state, instead of messing around with IVPR, we use DO_KVM similarly
      to book3s.
      
      Current issues include:
       - Machine checks from guest state are not routed to the host handler.
       - The guest can cause a host oops by executing an emulated instruction
         in a page that lacks read permission.  Existing e500/4xx support has
         the same problem.
      
      Includes work by Ashish Kalra <Ashish.Kalra@freescale.com>,
      Varun Sethi <Varun.Sethi@freescale.com>, and
      Liu Yu <yu.liu@freescale.com>.
      Signed-off-by: NScott Wood <scottwood@freescale.com>
      [agraf: remove pt_regs usage]
      Signed-off-by: NAlexander Graf <agraf@suse.de>
      Signed-off-by: NAvi Kivity <avi@redhat.com>
      d30f6e48
  12. 29 3月, 2012 1 次提交
  13. 16 3月, 2012 1 次提交
  14. 25 11月, 2011 1 次提交
  15. 17 11月, 2011 1 次提交
    • K
      powerpc/book3e-64: Fix debug support for userspace · 187b9f2a
      Kumar Gala 提交于
      With the introduction of CONFIG_PPC_ADV_DEBUG_REGS user space debug is
      broken on Book-E 64-bit parts that support delayed debug events.  When
      switch_booke_debug_regs() sets DBCR0 we'll start getting debug events as
      MSR_DE is also set and we aren't able to handle debug events from kernel
      space.
      
      We can remove the hack that always enables MSR_DE and loads up DBCR0 and
      just utilize switch_booke_debug_regs() to get user space debug working
      again.
      
      We still need to handle critical/debug exception stacks & proper
      save/restore of state for those exception levles to support debug events
      from kernel space like we have on 32-bit.
      Signed-off-by: NKumar Gala <galak@kernel.crashing.org>
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      187b9f2a
  16. 07 10月, 2011 1 次提交
  17. 12 7月, 2011 1 次提交
  18. 19 5月, 2011 1 次提交
  19. 27 4月, 2011 1 次提交
  20. 31 3月, 2011 1 次提交
  21. 30 3月, 2011 1 次提交
  22. 04 3月, 2011 1 次提交
  23. 13 1月, 2011 1 次提交
  24. 14 7月, 2010 1 次提交
  25. 09 7月, 2010 1 次提交
    • B
      powerpc/book3e: Hack to get gdb moving along on Book3E 64-bit · a2e19811
      Benjamin Herrenschmidt 提交于
      Our handling of debug interrupts on Book3E 64-bit is not quite
      the way it should be just yet. This is a workaround to let gdb
      work at least for now. We ensure that when context switching,
      we set the appropriate DBCR0 value for the new task. We also
      make sure that we turn off MSR[DE] within the kernel, and set
      it as part of the bits that get set when going back to userspace.
      
      In the long run, we will probably set the userspace DBCR0 on the
      exception exit code path and ensure we have some proper kernel
      value to set on the way into the kernel, a bit like ppc32 does,
      but that will take more work.
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      a2e19811
  26. 21 5月, 2010 1 次提交
  27. 05 5月, 2010 1 次提交
  28. 09 3月, 2010 1 次提交
  29. 17 2月, 2010 1 次提交
  30. 28 8月, 2009 1 次提交
  31. 25 8月, 2009 1 次提交
  32. 20 8月, 2009 1 次提交
  33. 16 6月, 2009 1 次提交
  34. 02 4月, 2009 1 次提交
  35. 11 3月, 2009 1 次提交
  36. 29 1月, 2009 1 次提交
    • K
      powerpc/fsl-booke: Cleanup init/exception setup to be runtime · 105c31df
      Kumar Gala 提交于
      We currently have a few variants of fsl-booke processors (e500v1, e500v2,
      e500mc, and e200).  They all have minor differences that we had previously
      been handling via ifdefs.
      
      To move towards having this support the following changes have been made:
      
      * PID1, PID2 only exist on e500v1 & e500v2 and should not be accessed on
        e500mc or e200.  We use MMUCFG[NPIDS] to determine which case we are
        since we only touch PID1/2 in extremely early init code.
      
      * Not all IVORs exist on all the processors so introduce cpu_setup
        functions for each variant to setup the proper IVORs that are either
        unique or exist but have some variations between the processors
      Signed-off-by: NKumar Gala <galak@kernel.crashing.org>
      105c31df
  37. 25 9月, 2008 1 次提交
    • K
      powerpc: Introduce local (non-broadcast) forms of tlb invalidates · 0ba3418b
      Kumar Gala 提交于
      Introduced a new set of low level tlb invalidate functions that do not
      broadcast invalidates on the bus:
      
      _tlbil_all - invalidate all
      _tlbil_pid - invalidate based on process id (or mm context)
      _tlbil_va  - invalidate based on virtual address (ea + pid)
      
      On non-SMP configs _tlbil_all should be functionally equivalent to _tlbia and
      _tlbil_va should be functionally equivalent to _tlbie.
      
      The intent of this change is to handle SMP based invalidates via IPIs instead
      of broadcasts as the mechanism scales better for larger number of cores.
      
      On e500 (fsl-booke mmu) based cores move to using MMUCSR for invalidate alls
      and tlbsx/tlbwe for invalidate virtual address.
      Signed-off-by: NKumar Gala <galak@kernel.crashing.org>
      0ba3418b
  38. 04 8月, 2008 1 次提交