summaryrefslogtreecommitdiffstats
path: root/arch/arm
diff options
context:
space:
mode:
authorBaruch Siach <baruch@tkos.co.il>2010-08-02 14:58:52 +0300
committerSascha Hauer <s.hauer@pengutronix.de>2010-08-04 09:28:15 +0200
commit8d657541aa73dea3472b72ea8bb5c960cffdd962 (patch)
tree282353f10134bd3503e787e5492a339a4b32a519 /arch/arm
parente74f2160e7f0ea36f3b74fb3271b08c75f77b547 (diff)
downloadbarebox-8d657541aa73dea3472b72ea8bb5c960cffdd962.tar.gz
barebox-8d657541aa73dea3472b72ea8bb5c960cffdd962.tar.xz
imx25: add support for UID read from eFuse
Signed-off-by: Baruch Siach <baruch@tkos.co.il> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'arch/arm')
-rw-r--r--arch/arm/mach-imx/imx25.c12
-rw-r--r--arch/arm/mach-imx/include/mach/generic.h1
-rw-r--r--arch/arm/mach-imx/include/mach/imx25-regs.h3
3 files changed, 16 insertions, 0 deletions
diff --git a/arch/arm/mach-imx/imx25.c b/arch/arm/mach-imx/imx25.c
index 00a1e4eec4..de70247b16 100644
--- a/arch/arm/mach-imx/imx25.c
+++ b/arch/arm/mach-imx/imx25.c
@@ -16,6 +16,8 @@
*/
#include <common.h>
+#include <mach/imx-regs.h>
+#include <asm/io.h>
#include "gpio.h"
@@ -28,3 +30,13 @@ void *imx_gpio_base[] = {
int imx_gpio_count = ARRAY_SIZE(imx_gpio_base) * 32;
+u64 imx_uid(void)
+{
+ u64 uid = 0;
+ int i;
+
+ for (i = 0; i < 8; i++)
+ uid = (uid << 8) | readb(IMX_IIM_BASE + IIM_UID + i*4);
+
+ return uid;
+}
diff --git a/arch/arm/mach-imx/include/mach/generic.h b/arch/arm/mach-imx/include/mach/generic.h
index 48ed336cee..4b89838685 100644
--- a/arch/arm/mach-imx/include/mach/generic.h
+++ b/arch/arm/mach-imx/include/mach/generic.h
@@ -6,6 +6,7 @@ int imx_silicon_revision(void);
#define IMX35_CHIP_REVISION_1_0 0x10
#define IMX35_CHIP_REVISION_2_0 0x20
+u64 imx_uid(void);
#ifdef CONFIG_ARCH_IMX1
diff --git a/arch/arm/mach-imx/include/mach/imx25-regs.h b/arch/arm/mach-imx/include/mach/imx25-regs.h
index e91e7b69ad..7c2b5f9af0 100644
--- a/arch/arm/mach-imx/include/mach/imx25-regs.h
+++ b/arch/arm/mach-imx/include/mach/imx25-regs.h
@@ -140,5 +140,8 @@
/* important definition of some bits of WCR */
#define WCR_WDE 0x04
+/* IIM fuse definitions */
+#define IIM_UID 0x820
+
#endif /* __ASM_ARCH_MX25_REGS_H */