From 7a050793220758e948380641e3406699369cead1 Mon Sep 17 00:00:00 2001 From: Philipp Tomsich Date: Tue, 6 Sep 2016 22:51:16 +0200 Subject: sunxi: Support chip-id reading on sun9i (A80) The chip-id on the sun9i resides in the SID block, but at an offset from what we'd expect with older variants. --- arch/arm/cpu/armv7/sunxi/cpu_info.c | 8 +++++++- arch/arm/include/asm/arch-sunxi/cpu_sun9i.h | 1 + 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/arch/arm/cpu/armv7/sunxi/cpu_info.c b/arch/arm/cpu/armv7/sunxi/cpu_info.c index b9bc70ca86..86340e5792 100644 --- a/arch/arm/cpu/armv7/sunxi/cpu_info.c +++ b/arch/arm/cpu/armv7/sunxi/cpu_info.c @@ -83,6 +83,12 @@ int print_cpuinfo(void) } #endif +#if defined(CONFIG_MACH_SUN9I) +#define SUNXI_SID_CHIPID_OFFSET 0x200 +#else +#define SUNXI_SID_CHIPID_OFFSET 0 +#endif + int sunxi_get_sid(unsigned int *sid) { #ifdef CONFIG_AXP221_POWER @@ -91,7 +97,7 @@ int sunxi_get_sid(unsigned int *sid) int i; for (i = 0; i< 4; i++) - sid[i] = readl(SUNXI_SID_BASE + 4 * i); + sid[i] = readl(SUNXI_SID_BASE + SUNXI_SID_CHIPID_OFFSET + 4 * i); return 0; #else diff --git a/arch/arm/include/asm/arch-sunxi/cpu_sun9i.h b/arch/arm/include/asm/arch-sunxi/cpu_sun9i.h index ec37bb9afb..63dcbdf08f 100644 --- a/arch/arm/include/asm/arch-sunxi/cpu_sun9i.h +++ b/arch/arm/include/asm/arch-sunxi/cpu_sun9i.h @@ -24,6 +24,7 @@ #define SUNXI_TSC_BASE (REGS_AHB0_BASE + 0x4000) #define SUNXI_GTBUS_BASE (REGS_AHB0_BASE + 0x9000) +#define SUNXI_SID_BASE (REGS_AHB0_BASE + 0xE000) #define SUNXI_MMC0_BASE (REGS_AHB0_BASE + 0x0f000) #define SUNXI_MMC1_BASE (REGS_AHB0_BASE + 0x10000) -- cgit v1.2.3