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

login
register
mail settings
Submitter Tetsuyuki Kobayashi
Date July 26, 2012, 4:24 a.m.
Message ID <1343276661-22803-5-git-send-email-koba@kmckk.co.jp>
Download mbox | patch
Permalink /patch/173324/
State Accepted
Delegated to: Albert ARIBAUD
Headers show

Comments

Tetsuyuki Kobayashi - July 26, 2012, 4:24 a.m.
From: Tetsuyuki Kobayashi <koba@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@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(-)
Nobuhiro Iwamatsu - July 27, 2012, 2:25 a.m.
Applied my rmobile branch.

Thanks.
  Nobuhiro


On Thu, Jul 26, 2012 at 1:24 PM, Tetsuyuki Kobayshi <koba@kmckk.co.jp> wrote:
> From: Tetsuyuki Kobayashi <koba@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@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
>

Patch

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;