]> git.sur5r.net Git - u-boot/blobdiff - cpu/arm_cortexa8/omap3/sys_info.c
OMAP3: Add support for OMAP3 die ID
[u-boot] / cpu / arm_cortexa8 / omap3 / sys_info.c
index 28a102091a8a939e61133be48de131e268de2ad2..b385b912b43f786c213c216aee159562aa1ce35c 100644 (file)
@@ -36,6 +36,32 @@ 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;
 
+/*****************************************************************
+ * dieid_num_r(void) - read and set die ID
+ *****************************************************************/
+void dieid_num_r(void)
+{
+       ctrl_id_t *id_base = (ctrl_id_t *)OMAP34XX_ID_L4_IO_BASE;
+       char *uid_s, die_id[34];
+       u32 id[4];
+
+       memset(die_id, 0, sizeof(die_id));
+
+       uid_s = getenv("dieid#");
+
+       if (uid_s == NULL) {
+               id[3] = readl(&id_base->die_id_0);
+               id[2] = readl(&id_base->die_id_1);
+               id[1] = readl(&id_base->die_id_2);
+               id[0] = readl(&id_base->die_id_3);
+               sprintf(die_id, "%08x%08x%08x%08x", id[0], id[1], id[2], id[3]);
+               setenv("dieid#", die_id);
+               uid_s = die_id;
+       }
+
+       printf("Die ID #%s\n", uid_s);
+}
+
 /******************************************
  * get_cpu_type(void) - extract cpu info
  ******************************************/