omap3/sys_info: provide interface to read die id
authorNishanth Menon <nm@ti.com>
Fri, 28 Mar 2014 16:00:05 +0000 (11:00 -0500)
committerTom Rini <trini@ti.com>
Thu, 17 Apr 2014 18:39:54 +0000 (14:39 -0400)
introduce get_die_id() function which allows generation of
information such as fake MAC address from the processor ID code.

Signed-off-by: Nishanth Menon <nm@ti.com>
arch/arm/cpu/armv7/omap3/sys_info.c
arch/arm/include/asm/arch-omap3/sys_proto.h

index 258786b50e364d101b0919f38a08988b1ded912d..bef5f05eaa71e36e0323f12e82c2377435c2421e 100644 (file)
@@ -40,12 +40,24 @@ static char *rev_s_37xx[CPU_37XX_MAX_REV] = {
                                "1.2"};
 #endif /* CONFIG_DISPLAY_CPUINFO */
 
+/*****************************************************************
+ * get_dieid(u32 *id) - read die ID
+ *****************************************************************/
+void get_dieid(u32 *id)
+{
+       struct ctrl_id *id_base = (struct ctrl_id *)OMAP34XX_ID_L4_IO_BASE;
+
+       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);
+}
+
 /*****************************************************************
  * dieid_num_r(void) - read and set die ID
  *****************************************************************/
 void dieid_num_r(void)
 {
-       struct ctrl_id *id_base = (struct ctrl_id *)OMAP34XX_ID_L4_IO_BASE;
        char *uid_s, die_id[34];
        u32 id[4];
 
@@ -54,10 +66,7 @@ void dieid_num_r(void)
        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);
+               get_dieid(id);
                sprintf(die_id, "%08x%08x%08x%08x", id[0], id[1], id[2], id[3]);
                setenv("dieid#", die_id);
                uid_s = die_id;
index 10300f49abec1818aea1d1c277b2ea01282de732..75bf314fb73245ec4a4b316b5691f813ce2ed176 100644 (file)
@@ -68,6 +68,7 @@ void make_cs1_contiguous(void);
 void omap_nand_switch_ecc(uint32_t, uint32_t);
 void power_init_r(void);
 void dieid_num_r(void);
+void get_dieid(u32 *id);
 void do_omap3_emu_romcode_call(u32 service_id, u32 parameters);
 void omap3_gp_romcode_call(u32 service_id, u32 parameter);
 u32 warm_reset(void);