diff options
author | Nishanth Menon <nm@ti.com> | 2014-03-28 11:00:05 -0500 |
---|---|---|
committer | Tom Rini <trini@ti.com> | 2014-04-17 14:39:54 -0400 |
commit | 79e7e87f9156c9e89c4c11b1dd2edbbb26757f31 (patch) | |
tree | 70e3a2f2225d601618e1a3df2d6cd445c7a49c82 /arch/arm/cpu/armv7 | |
parent | 8a0c6d6fa9de22c0c148492a8759bb456d52887c (diff) | |
download | u-boot-imx-79e7e87f9156c9e89c4c11b1dd2edbbb26757f31.zip u-boot-imx-79e7e87f9156c9e89c4c11b1dd2edbbb26757f31.tar.gz u-boot-imx-79e7e87f9156c9e89c4c11b1dd2edbbb26757f31.tar.bz2 |
omap3/sys_info: provide interface to read die id
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>
Diffstat (limited to 'arch/arm/cpu/armv7')
-rw-r--r-- | arch/arm/cpu/armv7/omap3/sys_info.c | 19 |
1 files changed, 14 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; |