|
@@ -291,6 +291,7 @@ unsigned __weak platform_maar_init(unsigned num_pairs)
|
|
|
static void maar_init(void)
|
|
|
{
|
|
|
unsigned num_maars, used, i;
|
|
|
+ phys_addr_t lower, upper, attr;
|
|
|
|
|
|
if (!cpu_has_maar)
|
|
|
return;
|
|
@@ -313,6 +314,34 @@ static void maar_init(void)
|
|
|
write_c0_maar(0);
|
|
|
back_to_back_c0_hazard();
|
|
|
}
|
|
|
+
|
|
|
+ pr_info("MAAR configuration:\n");
|
|
|
+ for (i = 0; i < num_maars; i += 2) {
|
|
|
+ write_c0_maari(i);
|
|
|
+ back_to_back_c0_hazard();
|
|
|
+ upper = read_c0_maar();
|
|
|
+
|
|
|
+ write_c0_maari(i + 1);
|
|
|
+ back_to_back_c0_hazard();
|
|
|
+ lower = read_c0_maar();
|
|
|
+
|
|
|
+ attr = lower & upper;
|
|
|
+ lower = (lower & MIPS_MAAR_ADDR) << 4;
|
|
|
+ upper = ((upper & MIPS_MAAR_ADDR) << 4) | 0xffff;
|
|
|
+
|
|
|
+ pr_info(" [%d]: ", i / 2);
|
|
|
+ if (!(attr & MIPS_MAAR_V)) {
|
|
|
+ pr_cont("disabled\n");
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ pr_cont("%pa-%pa", &lower, &upper);
|
|
|
+
|
|
|
+ if (attr & MIPS_MAAR_S)
|
|
|
+ pr_cont(" speculate");
|
|
|
+
|
|
|
+ pr_cont("\n");
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
#ifndef CONFIG_NEED_MULTIPLE_NODES
|