diff options
| author | Becky Bruce <beckyb@kernel.crashing.org> | 2010-06-17 11:37:22 -0500 | 
|---|---|---|
| committer | Kumar Gala <galak@kernel.crashing.org> | 2010-07-16 10:55:09 -0500 | 
| commit | 70e02bca6bdd18e03a5e2c0265126ef277e635b3 (patch) | |
| tree | d61012e76bb1f6ccdffd70ca79673abb6bf6cfd0 | |
| parent | 4e63df300f05df2eb3ee87deed043a718ffc6a4e (diff) | |
| download | olio-uboot-2014.01-70e02bca6bdd18e03a5e2c0265126ef277e635b3.tar.xz olio-uboot-2014.01-70e02bca6bdd18e03a5e2c0265126ef277e635b3.zip | |
mpc85xx: Add print_tlbcam() function
This dumps out the contents of TLB1 on 85xx-based systems.
Signed-off-by: Becky Bruce <beckyb@kernel.crashing.org>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
| -rw-r--r-- | arch/powerpc/cpu/mpc85xx/tlb.c | 20 | ||||
| -rw-r--r-- | arch/powerpc/include/asm/mmu.h | 1 | 
2 files changed, 21 insertions, 0 deletions
| diff --git a/arch/powerpc/cpu/mpc85xx/tlb.c b/arch/powerpc/cpu/mpc85xx/tlb.c index eebb6ae04..f2833a5df 100644 --- a/arch/powerpc/cpu/mpc85xx/tlb.c +++ b/arch/powerpc/cpu/mpc85xx/tlb.c @@ -74,6 +74,26 @@ void read_tlbcam_entry(int idx, u32 *valid, u32 *tsize, unsigned long *epn,  }  #ifndef CONFIG_NAND_SPL +void print_tlbcam(void) +{ +	int i; +	unsigned int num_cam = mfspr(SPRN_TLB1CFG) & 0xfff; + +	/* walk all the entries */ +	printf("TLBCAM entries\n"); +	for (i = 0; i < num_cam; i++) { +		unsigned long epn; +		u32 tsize, valid; +		phys_addr_t rpn; + +		read_tlbcam_entry(i, &valid, &tsize, &epn, &rpn); +		printf("entry %02d: V: %d EPN 0x%08x RPN 0x%08llx size:", +			i, (valid == 0) ? 0 : 1, (unsigned int)epn, +			(unsigned long long)rpn); +		print_size(TSIZE_TO_BYTES(tsize), "\n"); +	} +} +  static inline void use_tlb_cam(u8 idx)  {  	int i = idx / 32; diff --git a/arch/powerpc/include/asm/mmu.h b/arch/powerpc/include/asm/mmu.h index d4c7b759f..c01c85f6d 100644 --- a/arch/powerpc/include/asm/mmu.h +++ b/arch/powerpc/include/asm/mmu.h @@ -486,6 +486,7 @@ extern void init_tlbs(void);  extern int find_tlb_idx(void *addr, u8 tlbsel);  extern void init_used_tlb_cams(void);  extern int find_free_tlbcam(void); +extern void print_tlbcam(void);  extern unsigned int setup_ddr_tlbs(unsigned int memsize_in_meg); |