
On 21:53 Tue 21 Apr , Sanjeev Premi wrote:
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@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] = "";
why 8? you only have 5 chars so static char omap_revision[6] = ""; will be enough
/*****************************************************************
- dieid_num_r(void) - read and set die ID
*****************************************************************/ @@ -90,6 +92,36 @@ u32 get_cpu_rev(void)
}
why not this in the cpu header
#define ES20 1 #define ES21 2 #define ES30 3 #define ES31 4
+/**
- Converts cpu revision into a string
- */
+void set_omap_revision(void)
char* get_str_omap_revision(void) { u32 idcode; ctrl_id_t *id_base;
if (omap_revision[0] != '\0') return omap_revision;
if (get_cpu_rev() == CPU_3430_ES1) { strcat (omap_revision, "ES1.0"); } else { id_base = (ctrl_id_t *)OMAP34XX_ID_L4_IO_BASE;
idcode = readl(&id_base->idcode) >> 28;
switch(idcode) { case ES20: strcat (omap_revision, "ES2.0"); break; case ES21: strcat (omap_revision, "ES2.1"); break; case ES30: strcat (omap_revision, "ES3.0"); break; case ES31: strcat (omap_revision, "ES3.1"); break; default: strcat (str_rev, "ES??"); } return omap_revision; }
Best Regards, J.