8 #ifndef __ASM_MACH_KERNEL_ENTRY_INIT_H
9 #define __ASM_MACH_KERNEL_ENTRY_INIT_H
12 #include <asm/addrspace.h>
14 #define CO_CONFIGPR_VALID 0x3F1F41FF
15 #define HAZARD_CP0 nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop; nop;
16 #define CACHE_OPC 0xBC000000
17 #define ICACHE_LINE_SIZE 32
18 #define DCACHE_LINE_SIZE 32
20 #define ICACHE_SET_COUNT 256
21 #define DCACHE_SET_COUNT 128
23 #define ICACHE_SET_SIZE (ICACHE_SET_COUNT * ICACHE_LINE_SIZE)
24 #define DCACHE_SET_SIZE (DCACHE_SET_COUNT * DCACHE_LINE_SIZE)
26 .macro kernel_entry_setup
47 and t0, ~((1<<19) | (1<<20))
80 mtc0 t0, CP0_CONFIG, 7
111 and t0, t0, 0xFFFFFFF8
123 mfc0
t3, CP0_CONFIG, 1
130 beq t1,
zero, pr4450_instr_cache_invalidated
154 pr4450_next_instruction_cache_set:
157 bne
t2,
zero, pr4450_next_instruction_cache_set
159 pr4450_instr_cache_invalidated:
186 .macro cachePr4450ICReset
205 .word
CACHE_OPC | (9 << 21) | (Index_Invalidate_I << 16) | \
209 bne t2, zero, icache_invd_loop
224 .macro cachePr4450DCReset
248 bne t2, zero, dcache_wbinvd_loop