ARM: uniphier: display revision of Micro Support Card 3.6.x kindly
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>
This commit is contained in:
@@ -1,5 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2012-2015 Masahiro Yamada <yamada.masahiro@socionext.com>
|
* Copyright (C) 2012-2015 Panasonic Corporation
|
||||||
|
* Copyright (C) 2015-2016 Socionext Inc.
|
||||||
|
* Author: Masahiro Yamada <yamada.masahiro@socionext.com>
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: GPL-2.0+
|
* SPDX-License-Identifier: GPL-2.0+
|
||||||
*/
|
*/
|
||||||
@@ -38,7 +40,12 @@ static int support_card_show_revision(void)
|
|||||||
u32 revision;
|
u32 revision;
|
||||||
|
|
||||||
revision = readl(MICRO_SUPPORT_CARD_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;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user