[U-Boot] [PATCH 08/23] ARM: rmobile: Handle R8A7796 r1.1 in the PRR code

Marek Vasut marek.vasut at gmail.com
Sat May 13 13:57:38 UTC 2017


The R8A7796 r1.1 reports itself as r2.0 , add quirk into the
PRR code to fix this report.

Signed-off-by: Marek Vasut <marek.vasut+renesas at gmail.com>
Cc: Hiroyuki Yokoyama <hiroyuki.yokoyama.vx at renesas.com>
Cc: Nobuhiro Iwamatsu <iwamatsu at nigauri.org>
---
 arch/arm/mach-rmobile/cpu_info-rcar.c | 19 ++++++++++++++++---
 1 file changed, 16 insertions(+), 3 deletions(-)

diff --git a/arch/arm/mach-rmobile/cpu_info-rcar.c b/arch/arm/mach-rmobile/cpu_info-rcar.c
index 42ee30fbe7..c373eef73d 100644
--- a/arch/arm/mach-rmobile/cpu_info-rcar.c
+++ b/arch/arm/mach-rmobile/cpu_info-rcar.c
@@ -8,7 +8,10 @@
 #include <common.h>
 #include <asm/io.h>
 
-#define PRR 0xFF000044
+#define PRR			0xFF000044
+#define PRR_MASK		0x7fff
+#define R8A7796_REV_1_0		0x5200
+#define R8A7796_REV_1_1		0x5210
 
 u32 rmobile_get_cpu_type(void)
 {
@@ -17,10 +20,20 @@ u32 rmobile_get_cpu_type(void)
 
 u32 rmobile_get_cpu_rev_integer(void)
 {
-	return ((readl(PRR) & 0x000000F0) >> 4) + 1;
+	const u32 prr = readl(PRR);
+
+	if ((prr & PRR_MASK) == R8A7796_REV_1_1)
+		return 1;
+	else
+		return ((prr & 0x000000F0) >> 4) + 1;
 }
 
 u32 rmobile_get_cpu_rev_fraction(void)
 {
-	return readl(PRR) & 0x0000000F;
+	const u32 prr = readl(PRR);
+
+	if ((prr & PRR_MASK) == R8A7796_REV_1_1)
+		return 1;
+	else
+		return prr & 0x0000000F;
 }
-- 
2.11.0



More information about the U-Boot mailing list