From bd8fb9e267b92921fd7d5fbe27514ec3c1957171 Mon Sep 17 00:00:00 2001 From: neel Date: Sat, 23 Jan 2010 03:19:13 +0000 Subject: Remove Sibyte specific code from locore.S that sets the k0seg coherency. Move it to platform_start() instead. Approved by: imp (mentor) --- sys/mips/sibyte/sb_machdep.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'sys/mips/sibyte') diff --git a/sys/mips/sibyte/sb_machdep.c b/sys/mips/sibyte/sb_machdep.c index 8bb265c..4e4d81a 100644 --- a/sys/mips/sibyte/sb_machdep.c +++ b/sys/mips/sibyte/sb_machdep.c @@ -230,12 +230,29 @@ platform_trap_exit(void) } +static void +kseg0_map_coherent(void) +{ + uint32_t config; + const int CFG_K0_COHERENT = 5; + + config = mips_rd_config(); + config &= ~CFG_K0_MASK; + config |= CFG_K0_COHERENT; + mips_wr_config(config); +} + void platform_start(__register_t a0, __register_t a1, __register_t a2, __register_t a3) { vm_offset_t kernend; + /* + * Make sure that kseg0 is mapped cacheable-coherent + */ + kseg0_map_coherent(); + /* clear the BSS and SBSS segments */ memset(&edata, 0, (vm_offset_t)&end - (vm_offset_t)&edata); kernend = round_page((vm_offset_t)&end); -- cgit v1.1