1. 07 7月, 2012 1 次提交
  2. 29 3月, 2012 1 次提交
  3. 21 9月, 2011 2 次提交
  4. 26 7月, 2011 1 次提交
    • D
      MIPS: Close races in TLB modify handlers. · bf28607f
      David Daney 提交于
      Page table entries are made invalid by writing a zero into the the PTE
      slot in a page table.  This creates a race condition with the TLB
      modify handlers when they are updating the PTE.
      
      CPU0                              CPU1
      
      Test for _PAGE_PRESENT
      .                                 set to not _PAGE_PRESENT (zero)
      Set to _PAGE_VALID
      
      So now the page not present value (zero) is suddenly valid and user
      space programs have access to physical page zero.
      
      We close the race by putting the test for _PAGE_PRESENT and setting of
      _PAGE_VALID into an atomic LL/SC section.  This requires more registers
      than just K0 and K1 in the handlers, so we need to save some registers
      to a save area and then restore them when we are done.
      
      The save area is an array of cacheline aligned structures that should
      not suffer cache line bouncing as they are CPU private.
      
      [ralf@linux-mips.org: Fix !defined(CONFIG_MIPS_PGD_C0_CONTEXT) build error.]
      Signed-off-by: NDavid Daney <david.daney@cavium.com>
      To: linux-mips@linux-mips.org
      Patchwork: https://patchwork.linux-mips.org/patch/2577/Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
      bf28607f
  5. 19 5月, 2011 1 次提交
  6. 11 5月, 2011 1 次提交
    • R
      MIPS: tlbex: Fix GCC 4.6.0 build error · 4a9040f4
      Ralf Baechle 提交于
        CC      arch/mips/mm/tlbex.o
      arch/mips/mm/tlbex.c: In function 'build_r4000_tlb_refill_handler':
      arch/mips/mm/tlbex.c:1155:22: error: variable 'vmalloc_mode' set but not used [-Werror=unused-but-set-variable]
      arch/mips/mm/tlbex.c:1154:28: error: variable 'htlb_info' set but not used [-Werror=unused-but-set-variable]
      cc1: all warnings being treated as errors
      Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
      4a9040f4
  7. 31 3月, 2011 1 次提交
  8. 15 3月, 2011 1 次提交
  9. 19 1月, 2011 3 次提交
  10. 30 10月, 2010 1 次提交
    • K
      MIPS: Decouple BMIPS CPU support from bcm47xx/bcm63xx SoC code · 602977b0
      Kevin Cernekee 提交于
      BMIPS processor cores are used in 50+ different chipsets spread across
      5+ product lines.  In many cases the chipsets do not share the same
      peripheral register layouts, the same register blocks, the same
      interrupt controllers, the same memory maps, or much of anything else.
      
      But, across radically different SoCs that share nothing more than the
      same BMIPS CPU, a few things are still mostly constant:
      
      SMP operations
      Access to performance counters
      DMA cache coherency quirks
      Cache and memory bus configuration
      
      So, it makes sense to treat each BMIPS processor type as a generic
      "building block," rather than tying it to a specific SoC.  This makes it
      easier to support a large number of BMIPS-based chipsets without
      unnecessary duplication of code, and provides the infrastructure needed
      to support BMIPS-proprietary features.
      Signed-off-by: NKevin Cernekee <cernekee@gmail.com>
      Cc: mbizon@freebox.fr
      Cc: linux-mips@linux-mips.org
      Cc: linux-kernel@vger.kernel.org
      Tested-by: NFlorian Fainelli <ffainelli@freebox.fr>
      Patchwork: https://patchwork.linux-mips.org/patch/1706/
      Signed-off-by: Ralf Baechle <ralf@linux-mips.org
      602977b0
  11. 05 8月, 2010 1 次提交
  12. 01 5月, 2010 2 次提交
  13. 13 4月, 2010 1 次提交
  14. 27 2月, 2010 4 次提交
  15. 13 1月, 2010 1 次提交
  16. 17 12月, 2009 1 次提交
    • D
      MIPS: Put PGD in C0_CONTEXT for 64-bit R2 processors. · 82622284
      David Daney 提交于
      Processors that support the mips64r2 ISA can in four instructions
      convert a shifted PGD pointer stored in the upper bits of c0_context
      into a usable pointer.  By doing this we save a memory load and
      associated potential cache miss in the TLB exception handlers.
      
      Since the upper bits of c0_context were holding the CPU number, we
      move this to the upper bits of c0_xcontext which doesn't have enough
      bits to hold the PGD pointer, but has plenty for the CPU number.
      Signed-off-by: NDavid Daney <ddaney@caviumnetworks.com>
      Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
      82622284
  17. 18 9月, 2009 2 次提交
  18. 25 6月, 2009 1 次提交
  19. 17 6月, 2009 6 次提交
  20. 30 3月, 2009 2 次提交
    • M
      MIPS: Alchemy: MIPS hazard workarounds are not required. · 2f794d09
      Manuel Lauss 提交于
      The Alchemy manuals state:
      
      "All pipeline hazards and dependencies are enforced by hardware interlocks
       so that any sequence of instructions is guaranteed to execute correctly.
       Therefore, it is not necessary to pad legacy MIPS hazards (such as
       load delay slots and coprocessor accesses) with NOPs."
      
      Run-tested on Au12x0, without any ill effects.
      Signed-off-by: NManuel Lauss <mano@roarinelk.homelinux.net>
      Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
      2f794d09
    • M
      MIPS: Alchemy: unify CPU model constants. · 270717a8
      Manuel Lauss 提交于
      This patch removes the various CPU_AU1??? model constants in favor of
      a single CPU_ALCHEMY one.
      
      All currently existing Alchemy models are identical in terms of cpu
      core and cache size/organization.  The parts of the mips kernel which
      need to know the exact CPU revision extract it from the c0_prid register
      already; and finally nothing else in-tree depends on those any more.
      
      Should a new variant with slightly different "company options" and/or
      "processor revision" bits in c0_prid appear, it will be supported
      immediately (minus an exact model string in cpuinfo).
      Signed-off-by: NManuel Lauss <mano@roarinelk.homelinux.net>
      Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
      270717a8
  21. 12 3月, 2009 1 次提交
    • S
      MIPS: NEC VR5500 processor support fixup · a644b277
      Shinya Kuribayashi 提交于
      Current VR5500 processor support lacks of some functions which are
      expected to be configured/synthesized on arch initialization.
      
      Here're some VR5500A spec notes:
      
      * All execution hazards are handled in hardware.
      
      * Once VR5500A stops the operation of the pipeline by WAIT instruction,
        it could return from the standby mode only when either a reset, NMI
        request, or all enabled interrupts is/are detected.  In other words,
        if interrupts are disabled by Status.IE=0, it keeps in standby mode
        even when interrupts are internally asserted.
      
        Notes on WAIT: The operation of the processor is undefined if WAIT
        insn is in the branch delay slot.  The operation is also undefined
        if WAIT insn is executed when Status.EXL and Status.ERL are set to 1.
      
      * VR5500A core only implements the Load prefetch.
      
      With these changes, it boots fine.
      Signed-off-by: NShinya Kuribayashi <shinya.kuribayashi@necel.com>
      Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
      a644b277
  22. 11 1月, 2009 1 次提交
  23. 06 9月, 2008 1 次提交
  24. 06 6月, 2008 1 次提交
  25. 01 4月, 2008 1 次提交
  26. 12 3月, 2008 1 次提交