···123124 smp_setup_percpu_timer();125126+ if (cheetah_pcache_forced_on)127+ cheetah_enable_pcache();128+129 local_irq_enable();130131 calibrate_delay();
+19
arch/sparc64/kernel/traps.c
···421 }422}4230000000000000000000424/* Cheetah error trap handling. */425static unsigned long ecache_flush_physbase;426static unsigned long ecache_flush_linesize;
···421 }422}423424+int cheetah_pcache_forced_on;425+426+void cheetah_enable_pcache(void)427+{428+ unsigned long dcr;429+430+ printk("CHEETAH: Enabling P-Cache on cpu %d.\n",431+ smp_processor_id());432+433+ __asm__ __volatile__("ldxa [%%g0] %1, %0"434+ : "=r" (dcr)435+ : "i" (ASI_DCU_CONTROL_REG));436+ dcr |= (DCU_PE | DCU_HPE | DCU_SPE | DCU_SL);437+ __asm__ __volatile__("stxa %0, [%%g0] %1\n\t"438+ "membar #Sync"439+ : /* no outputs */440+ : "r" (dcr), "i" (ASI_DCU_CONTROL_REG));441+}442+443/* Cheetah error trap handling. */444static unsigned long ecache_flush_physbase;445static unsigned long ecache_flush_linesize;