diff options
author | Daniel Schaeffer <daniel.schaeffer@timesys.com> | 2009-10-08 13:36:26 -0400 |
---|---|---|
committer | Daniel Schaeffer <daniel.schaeffer@timesys.com> | 2009-10-08 13:36:26 -0400 |
commit | fc6e894ba8850cdf81396b08406c4a85bfdce12f (patch) | |
tree | cd98b8e4dad6d448c9035c9317582166bf5bb54e | |
parent | 833f9c9bed3c36521d9cb43385955b9872e34f5d (diff) |
This patch originally from LogicPD OMAP35x Release 1.6.1 Original Patch Name: u-boot-2009.03-lv-som-06-dump_cs.patch
-rw-r--r-- | board/omap3/lv_som/lv_som.c | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/board/omap3/lv_som/lv_som.c b/board/omap3/lv_som/lv_som.c index 32c9c20636..9dd476be8e 100644 --- a/board/omap3/lv_som/lv_som.c +++ b/board/omap3/lv_som/lv_som.c @@ -375,3 +375,41 @@ U_BOOT_CMD( "dump_prcm_regs - display PRCM register values\n", "\n - display PRCM register values\n" ); + +void gpmc_dump_config(int cs) +{ + u32 gpmc_base = GPMC_CONFIG_CS0_BASE + (cs * GPMC_CONFIG_WIDTH); + u32 config7; + u32 base, len; + gpmc_csx_t *cs_base = (gpmc_csx_t *)gpmc_base; + + config7 = cs_base->config7; + if (config7 & (1<<6)) { + len = (((config7 >> 7 & 0xf) ^ 0xf) + 1) << 24; + base = (config7 & 0x3F) << 24; + printf("%d:%08x %08x %08x %08x %08x %08x %03x %08x-%08x\n", + cs, + cs_base->config1, cs_base->config2, cs_base->config3, + cs_base->config4, cs_base->config5, cs_base->config6, + cs_base->config7, base, base+len-1); + } +} + +int do_dump_cs (cmd_tbl_t *cmdtp, int flah, int argc, char *argv[]) +{ + int i; + gpmc_t *gpmc_base = (gpmc_t *)GPMC_BASE; + printf("CS: GPMC_CONFIG [%08x]\n", gpmc_base->config); + printf("CS: GPMC_IRQENABLE [%08x]\n", gpmc_base->irqenable); + printf("CS: GPMC_TIMEOUT_CONTROL [%08x]\n", gpmc_base->timeout_control); + for (i=0; i<8; ++i) + gpmc_dump_config(i); + + return 0; +} + +U_BOOT_CMD( + dump_cs, 1, 1, do_dump_cs, + "dump_cs - display OMAP Chip Select registers\n", + "\n - display active OMAP Chip Select registers\n" +); |