1. 11 7月, 2007 36 次提交
  2. 10 7月, 2007 1 次提交
  3. 06 7月, 2007 3 次提交
    • R
      [MIPS] Fix scheduling latency issue on 24K, 34K and 74K cores · 4b3e975e
      Ralf Baechle 提交于
      The idle loop goes to sleep using the WAIT instruction if !need_resched().
      This has is suffering from from a race condition that if if just after
      need_resched has returned 0 an interrupt might set TIF_NEED_RESCHED but
      we've just completed the test so go to sleep anyway.  This would be
      trivial to fix by just disabling interrupts during that sequence as in:
      
              local_irq_disable();
              if (!need_resched())
                      __asm__("wait");
              local_irq_enable();
      
      but the processor architecture leaves it undefined if a processor calling
      WAIT with interrupts disabled will ever restart its pipeline and indeed
      some processors have made use of the freedom provided by the architecture
      definition.  This has been resolved and the Config7.WII bit indicates that
      the use of WAIT is safe on 24K, 24KE and 34K cores.  It also is safe on
      74K starting revision 2.1.0 so enable the use of WAIT with interrupts
      disabled for 74K based on a c0_prid of at least that.
      Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
      4b3e975e
    • R
      [MIPS] Add macros to encode processor revisions. · fde97822
      Ralf Baechle 提交于
      Older processors used to encode processor version and revision in two
      4-bit bitfields, the 4K seems to simply count up and even newer MTI cores
      have switched to use the 8-bits as 3:3:2 bitfield with the last field as
      the patch number.
      Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
      fde97822
    • R
      [MIPS] RM7000: Enable ICACHE_REFILLS_WORKAROUND_WAR. · 075c733e
      Ralf Baechle 提交于
      The RM7000 processors and the E9000 cores have a bug (though PMC-Sierra
      opposes it being called that) where invalid instructions in the same
      I-cache line worth of instructions being fetched may case spurious
      exceptions.
      
      The workaround for this was only enabled for E9000 cores; enable it also
      for all RM7000-based platforms.
      Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
      075c733e