7 #ifndef _SPARC_TURBOSPARC_H
8 #define _SPARC_TURBOSPARC_H
35 #define TURBOSPARC_MMUENABLE 0x00000001
36 #define TURBOSPARC_NOFAULT 0x00000002
37 #define TURBOSPARC_ICSNOOP 0x00000004
38 #define TURBOSPARC_PSO 0x00000080
39 #define TURBOSPARC_DCENABLE 0x00000100
40 #define TURBOSPARC_ICENABLE 0x00000200
41 #define TURBOSPARC_BMODE 0x00004000
42 #define TURBOSPARC_PARITYODD 0x00020000
43 #define TURBOSPARC_PCENABLE 0x00040000
54 #define TURBOSPARC_SCENABLE 0x00000008
55 #define TURBOSPARC_uS2 0x00000010
56 #define TURBOSPARC_WTENABLE 0x00000020
57 #define TURBOSPARC_SNENABLE 0x40000000
62 static inline void turbosparc_inv_insn_tag(
unsigned long addr)
64 __asm__ __volatile__(
"sta %%g0, [%0] %1\n\t"
71 static inline void turbosparc_inv_data_tag(
unsigned long addr)
73 __asm__ __volatile__(
"sta %%g0, [%0] %1\n\t"
79 static inline void turbosparc_flush_icache(
void)
83 for (addr = 0; addr < 0x4000; addr += 0x20)
84 turbosparc_inv_insn_tag(addr);
87 static inline void turbosparc_flush_dcache(
void)
91 for (addr = 0; addr < 0x4000; addr += 0x20)
92 turbosparc_inv_data_tag(addr);
95 static inline void turbosparc_idflash_clear(
void)
99 for (addr = 0; addr < 0x4000; addr += 0x20) {
100 turbosparc_inv_insn_tag(addr);
101 turbosparc_inv_data_tag(addr);
105 static inline void turbosparc_set_ccreg(
unsigned long regval)
107 __asm__ __volatile__(
"sta %0, [%1] %2\n\t"
113 static inline unsigned long turbosparc_get_ccreg(
void)
117 __asm__ __volatile__(
"lda [%1] %2, %0\n\t"