diff options
| -rw-r--r-- | arch/mips/mm/init.c | 29 |
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) | |||
| 291 | static void maar_init(void) | 291 | static 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 |
