[U-Boot-Users] [PATCH 6/7] 86xx: Add print_laws function to fsl_law.c

Becky Bruce becky.bruce at freescale.com
Wed Jan 23 23:24:55 CET 2008


This can be used for debug, and will be used by board code
to help implement reginfo.

Signed-off-by: Becky Bruce <becky.bruce at freescale.com>
---
 drivers/misc/fsl_law.c    |   19 +++++++++++++++++++
 include/asm-ppc/fsl_law.h |    1 +
 2 files changed, 20 insertions(+), 0 deletions(-)

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 <asm/io.h>
 
 #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[];
-- 
1.5.3.7





More information about the U-Boot mailing list