Skip to content

Commit

Permalink
MIPS: print MAAR configuration during boot
Browse files Browse the repository at this point in the history
Verifying that the MAAR configuration is as expected is useful when
debugging the performance of a system. Print out the memory regions
configured via MAAR along with their attributes.

Signed-off-by: Paul Burton <paul.burton@imgtec.com>
Cc: linux-mips@linux-mips.org
Cc: Steven J. Hill <Steven.Hill@imgtec.com>
Cc: David Hildenbrand <dahi@linux.vnet.ibm.com>
Cc: linux-kernel@vger.kernel.org
Cc: Peter Zijlstra (Intel) <peterz@infradead.org>
Patchwork: https://patchwork.linux-mips.org/patch/11238/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
  • Loading branch information
Paul Burton authored and Ralf Baechle committed Sep 27, 2015
1 parent def3ab5 commit 651ca7f
Showing 1 changed file with 29 additions and 0 deletions.
29 changes: 29 additions & 0 deletions arch/mips/mm/init.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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
Expand Down

0 comments on commit 651ca7f

Please sign in to comment.