summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Schaeffer <daniel.schaeffer@timesys.com>2009-10-08 13:36:26 -0400
committerDaniel Schaeffer <daniel.schaeffer@timesys.com>2009-10-08 13:36:26 -0400
commitfc6e894ba8850cdf81396b08406c4a85bfdce12f (patch)
treecd98b8e4dad6d448c9035c9317582166bf5bb54e
parent833f9c9bed3c36521d9cb43385955b9872e34f5d (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.c38
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"
+);