diff options
| author | Becky Bruce <becky.bruce@freescale.com> | 2008-01-23 16:31:05 -0600 | 
|---|---|---|
| committer | Jon Loeliger <jdl@freescale.com> | 2008-01-24 12:12:51 -0600 | 
| commit | ddcebcb638715a6278da93b553d5016f99823816 (patch) | |
| tree | 3bee1d9c2d7c38ab14b7cec2439f5ae9e489ae74 | |
| parent | 9cd32426f26a0567bb61f339edd83c6a2ce9bfc3 (diff) | |
| download | olio-uboot-2014.01-ddcebcb638715a6278da93b553d5016f99823816.tar.xz olio-uboot-2014.01-ddcebcb638715a6278da93b553d5016f99823816.zip | |
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 <becky.bruce@freescale.com>
| -rw-r--r-- | drivers/misc/fsl_law.c | 19 | ||||
| -rw-r--r-- | 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 8bdf5a7f4..dca6a4da4 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 7cb8840dd..23bd5057a 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[]; |