[U-Boot] [PATCH] OMAP3: Print correct silicon revision
Sanjeev Premi
premi at ti.com
Tue Apr 21 18:23:38 CEST 2009
The function display_board_info() displays the silicon
revision as 2 - based on the return value from get_cpu_rev().
This is incorrect as the current Si version is 3.1
This patch displays the correct version; but does not
change get_cpu_rev() to minimize the code impact.
Signed-off-by: Sanjeev Premi <premi at ti.com>
---
cpu/arm_cortexa8/omap3/sys_info.c | 37 +++++++++++++++++++++++++++++++++++--
1 files changed, 35 insertions(+), 2 deletions(-)
diff --git a/cpu/arm_cortexa8/omap3/sys_info.c b/cpu/arm_cortexa8/omap3/sys_info.c
index b385b91..8c6a4d6 100644
--- a/cpu/arm_cortexa8/omap3/sys_info.c
+++ b/cpu/arm_cortexa8/omap3/sys_info.c
@@ -36,6 +36,8 @@ static gpmc_csx_t *gpmc_cs_base = (gpmc_csx_t *)GPMC_CONFIG_CS0_BASE;
static sdrc_t *sdrc_base = (sdrc_t *)OMAP34XX_SDRC_BASE;
static ctrl_t *ctrl_base = (ctrl_t *)OMAP34XX_CTRL_BASE;
+static char omap_revision[8] = "";
+
/*****************************************************************
* dieid_num_r(void) - read and set die ID
*****************************************************************/
@@ -90,6 +92,36 @@ u32 get_cpu_rev(void)
}
+/**
+ * Converts cpu revision into a string
+ */
+void set_omap_revision(void)
+{
+ u32 idcode;
+ ctrl_id_t *id_base;
+ char *str_rev = &omap_revision[0];
+
+ if (get_cpu_rev() == CPU_3430_ES1) {
+ strcat (str_rev, "ES1.0");
+ }
+ else {
+ id_base = (ctrl_id_t *)OMAP34XX_ID_L4_IO_BASE;
+
+ idcode = readl(&id_base->idcode);
+
+ if (idcode == 0x1B7AE02F)
+ strcat (str_rev, "ES2.0");
+ else if (idcode == 0x2B7AE02F)
+ strcat (str_rev, "ES2.1");
+ else if (idcode == 0x3B7AE02F)
+ strcat (str_rev, "ES3.0");
+ else if (idcode == 0x4B7AE02F)
+ strcat (str_rev, "ES3.1");
+ else
+ strcat (str_rev, "ES??");
+ }
+}
+
/****************************************************
* is_mem_sdr() - return 1 if mem type in use is SDR
****************************************************/
@@ -232,9 +264,10 @@ void display_board_info(u32 btype)
sec_s = "?";
}
+ set_omap_revision();
- printf("OMAP%s-%s rev %d, CPU-OPP2 L3-165MHz\n", cpu_s,
- sec_s, get_cpu_rev());
+ printf("OMAP%s-%s (%s), CPU-OPP2 L3-165MHz\n", cpu_s,
+ sec_s, omap_revision);
printf("%s + %s/%s\n", sysinfo.board_string,
mem_s, sysinfo.nand_string);
--
1.6.2.1
More information about the U-Boot
mailing list