diff options
author | Alexander Shiyan <shc_work@mail.ru> | 2020-10-27 09:52:44 +0300 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2020-10-28 09:28:04 +0100 |
commit | b6d75ef0f45d3d4e7da212a3d30d1097484328ee (patch) | |
tree | caf3e16de471f7719ee3d1da155dcd0fd5cc0c95 /arch/arm | |
parent | ca4292daf6a4d15b6e6ce0f610697e75df516533 (diff) | |
download | barebox-b6d75ef0f45d3d4e7da212a3d30d1097484328ee.tar.gz barebox-b6d75ef0f45d3d4e7da212a3d30d1097484328ee.tar.xz |
ARM: CCMX51: Add new module ID variant
This adds support for Digi ConnectCore module variant 0x15
Signed-off-by: Alexander Shiyan <shc_work@mail.ru>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'arch/arm')
-rw-r--r-- | arch/arm/boards/ccxmx51/ccxmx51.c | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/arch/arm/boards/ccxmx51/ccxmx51.c b/arch/arm/boards/ccxmx51/ccxmx51.c index 13fba51fec..09437b047f 100644 --- a/arch/arm/boards/ccxmx51/ccxmx51.c +++ b/arch/arm/boards/ccxmx51/ccxmx51.c @@ -31,7 +31,7 @@ static const struct ccxmx_ident { unsigned char eth1:1; unsigned char wless:1; unsigned char accel:1; -} *ccxmx_id, ccxmx51_ids[] = { +} ccxmx51_ids[] = { [0x00] = { NULL /* Unknown */, 0, 0, 0, 0, 0, 0 }, [0x01] = { NULL /* Not supported */, 0, 0, 0, 0, 0, 0 }, [0x02] = { "i.MX515@800MHz, Wireless, PHY, Ext. Eth, Accel", SZ_512M, 800, 1, 1, 1, 1 }, @@ -52,7 +52,9 @@ static const struct ccxmx_ident { [0x11] = { "i.MX515@800MHz, PHY, Accel", SZ_128M, 800, 1, 0, 0, 1 }, [0x12] = { "i.MX515@600MHz, Wireless, PHY, Accel", SZ_512M, 600, 1, 0, 1, 1 }, [0x13] = { "i.MX515@800MHz, PHY, Accel", SZ_512M, 800, 1, 0, 0, 1 }, -}; + [0x14] = { NULL, 0, 0, 0, 0, 0, 0 }, + [0x15] = { "i.MX515@600MHz, PHY, Accel", SZ_512M, 600, 1, 0, 0, 1 }, +}, *ccxmx_id = &ccxmx51_ids[0]; static u32 boardserial; @@ -228,13 +230,18 @@ static __init int ccxmx51_init(void) { char manloc = 'N'; u8 hwid[6]; + int ret; if (!ccxmx51_is_compatible()) return 0; - if ((imx_iim_read(1, 9, hwid, sizeof(hwid)) != sizeof(hwid)) || - (hwid[0] < 0x02) || (hwid[0] >= ARRAY_SIZE(ccxmx51_ids))) { - printf("Unknown board variant (0x%02x). System halted.\n", hwid[0]); + ret = imx_iim_read(1, 9, hwid, sizeof(hwid)); + if ((ret == sizeof(hwid)) && (hwid[0] < ARRAY_SIZE(ccxmx51_ids))) + ccxmx_id = &ccxmx51_ids[hwid[0]]; + + if (!ccxmx_id->mem_sz) { + printf("Unknown/unsupported board variant (0x%02x).\n" + "System halted.\n", hwid[0]); hang(); } |