[1/3] ARM: uniphier: display revision of Micro Support Card 3.6.x kindly

Message ID 1472112154-6156-2-git-send-email-yamada.masahiro@socionext.com
State New
Headers show

Commit Message

Masahiro Yamada Aug. 25, 2016, 8:02 a.m.
The revision of the original support card (rev 3.5, rev 3.6) fits in
the 8 bit width revision register.  When it was extended in a weird
way, it was versioned in the format of "3.6.x" (where it should have
been "3.7", of course).  What is worse, only the sub-level version
"6.x" was recorded in the 8 bit width register, completely ignoring
the compatibility of the revision register format.

This patch saves madly-versioned support cards by assuming the major
version "3" when the MSB 4 bit of the register is read as "6".  With
this, the support card revision that were displayed as "6.10" is now
corrected to "3.6.10".

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>

---

 arch/arm/mach-uniphier/micro-support-card.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

-- 
1.9.1

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Patch

diff --git a/arch/arm/mach-uniphier/micro-support-card.c b/arch/arm/mach-uniphier/micro-support-card.c
index eeb515a..c1c51ef 100644
--- a/arch/arm/mach-uniphier/micro-support-card.c
+++ b/arch/arm/mach-uniphier/micro-support-card.c
@@ -38,7 +38,12 @@  static int support_card_show_revision(void)
 	u32 revision;
 
 	revision = readl(MICRO_SUPPORT_CARD_REVISION);
-	printf("(CPLD version %d.%d)\n", revision >> 4, revision & 0xf);
+	revision &= 0xff;
+
+	/* revision 3.6.x card changed the revision format */
+	printf("(CPLD version %s%d.%d)\n", revision >> 4 == 6 ? "3." : "",
+	       revision >> 4, revision & 0xf);
+
 	return 0;
 }