Signed-off-by: Baruch Siach <baruch@xxxxxxxxxx> --- arch/arm/mach-imx/imx25.c | 12 ++++++++++++ arch/arm/mach-imx/include/mach/generic.h | 1 + arch/arm/mach-imx/include/mach/imx25-regs.h | 3 +++ 3 files changed, 16 insertions(+), 0 deletions(-) diff --git a/arch/arm/mach-imx/imx25.c b/arch/arm/mach-imx/imx25.c index 00a1e4e..de70247 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 48ed336..4b89838 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 e91e7b6..7c2b5f9 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 */ -- 1.7.1 _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox