From ddcebcb638715a6278da93b553d5016f99823816 Mon Sep 17 00:00:00 2001 From: Becky Bruce Date: Wed, 23 Jan 2008 16:31:05 -0600 Subject: [PATCH] 86xx: Add print_laws function to fsl_law.c This can be used for debug, and will be used by board code to help implement reginfo. Signed-off-by: Becky Bruce --- drivers/misc/fsl_law.c | 19 +++++++++++++++++++ include/asm-ppc/fsl_law.h | 1 + 2 files changed, 20 insertions(+) diff --git a/drivers/misc/fsl_law.c b/drivers/misc/fsl_law.c index 8bdf5a7..dca6a4d 100644 --- a/drivers/misc/fsl_law.c +++ b/drivers/misc/fsl_law.c @@ -28,6 +28,7 @@ #include #define LAWAR_EN 0x80000000 +#define FSL_HW_NUM_LAWS 10 /* number of LAWs in the hw implementation */ void set_law(u8 idx, phys_addr_t addr, enum law_size sz, enum law_trgt_if id) { @@ -53,6 +54,24 @@ void disable_law(u8 idx) return; } +void print_laws(void) +{ + volatile u32 *base = (volatile u32 *)(CFG_IMMR + 0xc08); + volatile u32 *lawbar = base; + volatile u32 *lawar = base + 2; + int i; + + printf("\nLocal Access Window Configuration\n"); + for(i = 0; i < FSL_HW_NUM_LAWS; i++) { + printf("\tLAWBAR%d : 0x%08x, LAWAR%d : 0x%08x\n", + i, in_be32(lawbar), i, in_be32(lawar)); + lawbar += 8; + lawar += 8; + } + + return; +} + void init_laws(void) { int i; diff --git a/include/asm-ppc/fsl_law.h b/include/asm-ppc/fsl_law.h index 7cb8840..23bd505 100644 --- a/include/asm-ppc/fsl_law.h +++ b/include/asm-ppc/fsl_law.h @@ -73,6 +73,7 @@ struct law_entry { extern void set_law(u8 idx, phys_addr_t addr, enum law_size sz, enum law_trgt_if id); extern void disable_law(u8 idx); extern void init_laws(void); +extern void print_laws(void); /* define in board code */ extern struct law_entry law_table[];