86xx: Add print_laws function to fsl_law.c
authorBecky Bruce <becky.bruce@freescale.com>
Wed, 23 Jan 2008 22:31:05 +0000 (16:31 -0600)
committerJon Loeliger <jdl@freescale.com>
Thu, 24 Jan 2008 18:12:51 +0000 (12:12 -0600)
This can be used for debug, and will be used by board code
to help implement reginfo.

Signed-off-by: Becky Bruce <becky.bruce@freescale.com>
drivers/misc/fsl_law.c
include/asm-ppc/fsl_law.h

index 8bdf5a7f412906d1897500b1f970a9a042c53b95..dca6a4da4a0ab83a2487b8c36e328876a1b2b1bb 100644 (file)
@@ -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;
index 7cb8840dde793cada98458e17ee61d2a7e112467..23bd5057a71a5bf8477e4e7710c628a000d07331 100644 (file)
@@ -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[];