aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/mips/mm/init.c29
1 files changed, 29 insertions, 0 deletions
diff --git a/arch/mips/mm/init.c b/arch/mips/mm/init.c
index 074ac5459026..023c164b9eb6 100644
--- a/arch/mips/mm/init.c
+++ b/arch/mips/mm/init.c
@@ -291,6 +291,7 @@ unsigned __weak platform_maar_init(unsigned num_pairs)
291static void maar_init(void) 291static void maar_init(void)
292{ 292{
293 unsigned num_maars, used, i; 293 unsigned num_maars, used, i;
294 phys_addr_t lower, upper, attr;
294 295
295 if (!cpu_has_maar) 296 if (!cpu_has_maar)
296 return; 297 return;
@@ -313,6 +314,34 @@ static void maar_init(void)
313 write_c0_maar(0); 314 write_c0_maar(0);
314 back_to_back_c0_hazard(); 315 back_to_back_c0_hazard();
315 } 316 }
317
318 pr_info("MAAR configuration:\n");
319 for (i = 0; i < num_maars; i += 2) {
320 write_c0_maari(i);
321 back_to_back_c0_hazard();
322 upper = read_c0_maar();
323
324 write_c0_maari(i + 1);
325 back_to_back_c0_hazard();
326 lower = read_c0_maar();
327
328 attr = lower & upper;
329 lower = (lower & MIPS_MAAR_ADDR) << 4;
330 upper = ((upper & MIPS_MAAR_ADDR) << 4) | 0xffff;
331
332 pr_info(" [%d]: ", i / 2);
333 if (!(attr & MIPS_MAAR_V)) {
334 pr_cont("disabled\n");
335 continue;
336 }
337
338 pr_cont("%pa-%pa", &lower, &upper);
339
340 if (attr & MIPS_MAAR_S)
341 pr_cont(" speculate");
342
343 pr_cont("\n");
344 }
316} 345}
317 346
318#ifndef CONFIG_NEED_MULTIPLE_NODES 347#ifndef CONFIG_NEED_MULTIPLE_NODES