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 <n...@ti.com>
---

 arch/arm/cpu/armv7/omap3/sys_info.c         |   19 ++++++++++++++-----
 arch/arm/include/asm/arch-omap3/sys_proto.h |    1 +
 2 files changed, 15 insertions(+), 5 deletions(-)

diff --git a/arch/arm/cpu/armv7/omap3/sys_info.c 
b/arch/arm/cpu/armv7/omap3/sys_info.c
index 258786b..bef5f05 100644
--- a/arch/arm/cpu/armv7/omap3/sys_info.c
+++ b/arch/arm/cpu/armv7/omap3/sys_info.c
@@ -41,11 +41,23 @@ static char *rev_s_37xx[CPU_37XX_MAX_REV] = {
 #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;
diff --git a/arch/arm/include/asm/arch-omap3/sys_proto.h 
b/arch/arm/include/asm/arch-omap3/sys_proto.h
index 44fa66f..1f62941 100644
--- a/arch/arm/include/asm/arch-omap3/sys_proto.h
+++ b/arch/arm/include/asm/arch-omap3/sys_proto.h
@@ -69,6 +69,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);
-- 
1.7.9.5

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to