[U-Boot] [PATCH 4/4] arm: rmobile: kzm9g: separate cpu_rev to integer and fraction

Tetsuyuki Kobayshi koba at kmckk.co.jp
Thu Jul 26 06:24:21 CEST 2012


From: Tetsuyuki Kobayashi <koba at kmckk.co.jp>

According to SoC document, revision info is separated to integer part and fracton part. So I separete rmobile_get_cpu_rev() to rmobile_get_cpu_rev_integer() and rmobile_get_cpu_rev_fraction().

Signed-off-by: Tetsuyuki Kobayashi <koba at kmckk.co.jp>
---
 arch/arm/cpu/armv7/rmobile/cpu_info-sh73a0.c |   16 ++++++++++++++--
 arch/arm/cpu/armv7/rmobile/cpu_info.c        |   23 ++++++++++++++++-------
 2 files changed, 30 insertions(+), 9 deletions(-)

diff --git a/arch/arm/cpu/armv7/rmobile/cpu_info-sh73a0.c b/arch/arm/cpu/armv7/rmobile/cpu_info-sh73a0.c
index a715efa..8239155 100644
--- a/arch/arm/cpu/armv7/rmobile/cpu_info-sh73a0.c
+++ b/arch/arm/cpu/armv7/rmobile/cpu_info-sh73a0.c
@@ -36,14 +36,26 @@ u32 rmobile_get_cpu_type(void)
 	return type;
 }
 
-u32 rmobile_get_cpu_rev(void)
+u32 rmobile_get_cpu_rev_integer(void)
 {
 	u32 id;
 	u32 rev;
 	struct sh73a0_hpb *hpb = (struct sh73a0_hpb *)HPB_BASE;
 
 	id = readl(&hpb->cccr);
-	rev = (id >> 4) & 0xF;
+	rev = ((id >> 4) & 0xF) + 1;
+
+	return rev;
+}
+
+u32 rmobile_get_cpu_rev_fraction(void)
+{
+	u32 id;
+	u32 rev;
+	struct sh73a0_hpb *hpb = (struct sh73a0_hpb *)HPB_BASE;
+
+	id = readl(&hpb->cccr);
+	rev = id & 0xF;
 
 	return rev;
 }
diff --git a/arch/arm/cpu/armv7/rmobile/cpu_info.c b/arch/arm/cpu/armv7/rmobile/cpu_info.c
index 957a4fc..87287ce 100644
--- a/arch/arm/cpu/armv7/rmobile/cpu_info.c
+++ b/arch/arm/cpu/armv7/rmobile/cpu_info.c
@@ -46,23 +46,32 @@ static u32 __rmobile_get_cpu_type(void)
 u32 rmobile_get_cpu_type(void)
 		__attribute__((weak, alias("__rmobile_get_cpu_type")));
 
-static u32 __rmobile_get_cpu_rev(void)
+static u32 __rmobile_get_cpu_rev_integer(void)
 {
 	return 0;
 }
-u32 rmobile_get_cpu_rev(void)
-		__attribute__((weak, alias("__rmobile_get_cpu_rev")));
+u32 rmobile_get_cpu_rev_integer(void)
+		__attribute__((weak, alias("__rmobile_get_cpu_rev_integer")));
+
+static u32 __rmobile_get_cpu_rev_fraction(void)
+{
+	return 0;
+}
+u32 rmobile_get_cpu_rev_fraction(void)
+		__attribute__((weak, alias("__rmobile_get_cpu_rev_fraction")));
 
 int print_cpuinfo(void)
 {
 	switch (rmobile_get_cpu_type()) {
 	case 0x37:
-		printf("CPU: Renesas Electronics SH73A0 rev %d\n",
-				rmobile_get_cpu_rev());
+		printf("CPU: Renesas Electronics SH73A0 rev %d.%d\n",
+		       rmobile_get_cpu_rev_integer(),
+		       rmobile_get_cpu_rev_fraction());
 		break;
 	default:
-		printf("CPU: Renesas Electronics CPU rev %d\n",
-				rmobile_get_cpu_rev());
+		printf("CPU: Renesas Electronics CPU rev %d.%d\n",
+		       rmobile_get_cpu_rev_integer(),
+		       rmobile_get_cpu_rev_fraction());
 		break;
 	}
 	return 0;
-- 
1.7.9.5



More information about the U-Boot mailing list