nrf51: show proper part number

Change-Id: I3e8169eb577888ee54541a1e864a8ad5a9a7cfd1
Signed-off-by: Jiří Pinkava <j-pi@seznam.cz>
Reviewed-on: http://openocd.zylin.com/3733
Tested-by: jenkins
Reviewed-by: Fredrik Hederstierna <fredrik@hederstierna.com>
Reviewed-by: Michael Dietz <mjdietzx@gmail.com>
Reviewed-by: Freddie Chopin <freddie.chopin@gmail.com>
This commit is contained in:
Jiří Pinkava 2016-09-09 13:22:59 +02:00 committed by Freddie Chopin
parent 19df456a79
commit f6b8a4ea65
1 changed files with 42 additions and 3 deletions

View File

@ -120,6 +120,7 @@ struct nrf51_info {
struct nrf51_device_spec { struct nrf51_device_spec {
uint16_t hwid; uint16_t hwid;
const char *part;
const char *variant; const char *variant;
const char *build_code; const char *build_code;
unsigned int flash_size_kb; unsigned int flash_size_kb;
@ -141,30 +142,35 @@ static const struct nrf51_device_spec nrf51_known_devices_table[] = {
/* nRF51822 Devices (IC rev 1). */ /* nRF51822 Devices (IC rev 1). */
{ {
.hwid = 0x001D, .hwid = 0x001D,
.part = "51822",
.variant = "QFAA", .variant = "QFAA",
.build_code = "CA/C0", .build_code = "CA/C0",
.flash_size_kb = 256, .flash_size_kb = 256,
}, },
{ {
.hwid = 0x0026, .hwid = 0x0026,
.part = "51822",
.variant = "QFAB", .variant = "QFAB",
.build_code = "AA", .build_code = "AA",
.flash_size_kb = 128, .flash_size_kb = 128,
}, },
{ {
.hwid = 0x0027, .hwid = 0x0027,
.part = "51822",
.variant = "QFAB", .variant = "QFAB",
.build_code = "A0", .build_code = "A0",
.flash_size_kb = 128, .flash_size_kb = 128,
}, },
{ {
.hwid = 0x0020, .hwid = 0x0020,
.part = "51822",
.variant = "CEAA", .variant = "CEAA",
.build_code = "BA", .build_code = "BA",
.flash_size_kb = 256, .flash_size_kb = 256,
}, },
{ {
.hwid = 0x002F, .hwid = 0x002F,
.part = "51822",
.variant = "CEAA", .variant = "CEAA",
.build_code = "B0", .build_code = "B0",
.flash_size_kb = 256, .flash_size_kb = 256,
@ -173,54 +179,63 @@ static const struct nrf51_device_spec nrf51_known_devices_table[] = {
/* nRF51822 Devices (IC rev 2). */ /* nRF51822 Devices (IC rev 2). */
{ {
.hwid = 0x002A, .hwid = 0x002A,
.part = "51822",
.variant = "QFAA", .variant = "QFAA",
.build_code = "FA0", .build_code = "FA0",
.flash_size_kb = 256, .flash_size_kb = 256,
}, },
{ {
.hwid = 0x0044, .hwid = 0x0044,
.part = "51822",
.variant = "QFAA", .variant = "QFAA",
.build_code = "GC0", .build_code = "GC0",
.flash_size_kb = 256, .flash_size_kb = 256,
}, },
{ {
.hwid = 0x003C, .hwid = 0x003C,
.part = "51822",
.variant = "QFAA", .variant = "QFAA",
.build_code = "G0", .build_code = "G0",
.flash_size_kb = 256, .flash_size_kb = 256,
}, },
{ {
.hwid = 0x0057, .hwid = 0x0057,
.part = "51822",
.variant = "QFAA", .variant = "QFAA",
.build_code = "G2", .build_code = "G2",
.flash_size_kb = 256, .flash_size_kb = 256,
}, },
{ {
.hwid = 0x0058, .hwid = 0x0058,
.part = "51822",
.variant = "QFAA", .variant = "QFAA",
.build_code = "G3", .build_code = "G3",
.flash_size_kb = 256, .flash_size_kb = 256,
}, },
{ {
.hwid = 0x004C, .hwid = 0x004C,
.part = "51822",
.variant = "QFAB", .variant = "QFAB",
.build_code = "B0", .build_code = "B0",
.flash_size_kb = 128, .flash_size_kb = 128,
}, },
{ {
.hwid = 0x0040, .hwid = 0x0040,
.part = "51822",
.variant = "CEAA", .variant = "CEAA",
.build_code = "CA0", .build_code = "CA0",
.flash_size_kb = 256, .flash_size_kb = 256,
}, },
{ {
.hwid = 0x0047, .hwid = 0x0047,
.part = "51822",
.variant = "CEAA", .variant = "CEAA",
.build_code = "DA0", .build_code = "DA0",
.flash_size_kb = 256, .flash_size_kb = 256,
}, },
{ {
.hwid = 0x004D, .hwid = 0x004D,
.part = "51822",
.variant = "CEAA", .variant = "CEAA",
.build_code = "D00", .build_code = "D00",
.flash_size_kb = 256, .flash_size_kb = 256,
@ -229,42 +244,49 @@ static const struct nrf51_device_spec nrf51_known_devices_table[] = {
/* nRF51822 Devices (IC rev 3). */ /* nRF51822 Devices (IC rev 3). */
{ {
.hwid = 0x0072, .hwid = 0x0072,
.part = "51822",
.variant = "QFAA", .variant = "QFAA",
.build_code = "H0", .build_code = "H0",
.flash_size_kb = 256, .flash_size_kb = 256,
}, },
{ {
.hwid = 0x007B, .hwid = 0x007B,
.part = "51822",
.variant = "QFAB", .variant = "QFAB",
.build_code = "C0", .build_code = "C0",
.flash_size_kb = 128, .flash_size_kb = 128,
}, },
{ {
.hwid = 0x0083, .hwid = 0x0083,
.part = "51822",
.variant = "QFAC", .variant = "QFAC",
.build_code = "A0", .build_code = "A0",
.flash_size_kb = 256, .flash_size_kb = 256,
}, },
{ {
.hwid = 0x0084, .hwid = 0x0084,
.part = "51822",
.variant = "QFAC", .variant = "QFAC",
.build_code = "A1", .build_code = "A1",
.flash_size_kb = 256, .flash_size_kb = 256,
}, },
{ {
.hwid = 0x007D, .hwid = 0x007D,
.part = "51822",
.variant = "CDAB", .variant = "CDAB",
.build_code = "A0", .build_code = "A0",
.flash_size_kb = 128, .flash_size_kb = 128,
}, },
{ {
.hwid = 0x0079, .hwid = 0x0079,
.part = "51822",
.variant = "CEAA", .variant = "CEAA",
.build_code = "E0", .build_code = "E0",
.flash_size_kb = 256, .flash_size_kb = 256,
}, },
{ {
.hwid = 0x0087, .hwid = 0x0087,
.part = "51822",
.variant = "CFAC", .variant = "CFAC",
.build_code = "A0", .build_code = "A0",
.flash_size_kb = 256, .flash_size_kb = 256,
@ -273,18 +295,21 @@ static const struct nrf51_device_spec nrf51_known_devices_table[] = {
/* nRF51422 Devices (IC rev 1). */ /* nRF51422 Devices (IC rev 1). */
{ {
.hwid = 0x001E, .hwid = 0x001E,
.part = "51422",
.variant = "QFAA", .variant = "QFAA",
.build_code = "CA", .build_code = "CA",
.flash_size_kb = 256, .flash_size_kb = 256,
}, },
{ {
.hwid = 0x0024, .hwid = 0x0024,
.part = "51422",
.variant = "QFAA", .variant = "QFAA",
.build_code = "C0", .build_code = "C0",
.flash_size_kb = 256, .flash_size_kb = 256,
}, },
{ {
.hwid = 0x0031, .hwid = 0x0031,
.part = "51422",
.variant = "CEAA", .variant = "CEAA",
.build_code = "A0A", .build_code = "A0A",
.flash_size_kb = 256, .flash_size_kb = 256,
@ -293,24 +318,28 @@ static const struct nrf51_device_spec nrf51_known_devices_table[] = {
/* nRF51422 Devices (IC rev 2). */ /* nRF51422 Devices (IC rev 2). */
{ {
.hwid = 0x002D, .hwid = 0x002D,
.part = "51422",
.variant = "QFAA", .variant = "QFAA",
.build_code = "DAA", .build_code = "DAA",
.flash_size_kb = 256, .flash_size_kb = 256,
}, },
{ {
.hwid = 0x002E, .hwid = 0x002E,
.part = "51422",
.variant = "QFAA", .variant = "QFAA",
.build_code = "E0", .build_code = "E0",
.flash_size_kb = 256, .flash_size_kb = 256,
}, },
{ {
.hwid = 0x0061, .hwid = 0x0061,
.part = "51422",
.variant = "QFAB", .variant = "QFAB",
.build_code = "A00", .build_code = "A00",
.flash_size_kb = 128, .flash_size_kb = 128,
}, },
{ {
.hwid = 0x0050, .hwid = 0x0050,
.part = "51422",
.variant = "CEAA", .variant = "CEAA",
.build_code = "B0", .build_code = "B0",
.flash_size_kb = 256, .flash_size_kb = 256,
@ -319,42 +348,49 @@ static const struct nrf51_device_spec nrf51_known_devices_table[] = {
/* nRF51422 Devices (IC rev 3). */ /* nRF51422 Devices (IC rev 3). */
{ {
.hwid = 0x0073, .hwid = 0x0073,
.part = "51422",
.variant = "QFAA", .variant = "QFAA",
.build_code = "F0", .build_code = "F0",
.flash_size_kb = 256, .flash_size_kb = 256,
}, },
{ {
.hwid = 0x007C, .hwid = 0x007C,
.part = "51422",
.variant = "QFAB", .variant = "QFAB",
.build_code = "B0", .build_code = "B0",
.flash_size_kb = 128, .flash_size_kb = 128,
}, },
{ {
.hwid = 0x0085, .hwid = 0x0085,
.part = "51422",
.variant = "QFAC", .variant = "QFAC",
.build_code = "A0", .build_code = "A0",
.flash_size_kb = 256, .flash_size_kb = 256,
}, },
{ {
.hwid = 0x0086, .hwid = 0x0086,
.part = "51422",
.variant = "QFAC", .variant = "QFAC",
.build_code = "A1", .build_code = "A1",
.flash_size_kb = 256, .flash_size_kb = 256,
}, },
{ {
.hwid = 0x007E, .hwid = 0x007E,
.part = "51422",
.variant = "CDAB", .variant = "CDAB",
.build_code = "A0", .build_code = "A0",
.flash_size_kb = 128, .flash_size_kb = 128,
}, },
{ {
.hwid = 0x007A, .hwid = 0x007A,
.part = "51422",
.variant = "CEAA", .variant = "CEAA",
.build_code = "C0", .build_code = "C0",
.flash_size_kb = 256, .flash_size_kb = 256,
}, },
{ {
.hwid = 0x0088, .hwid = 0x0088,
.part = "51422",
.variant = "CFAC", .variant = "CFAC",
.build_code = "A0", .build_code = "A0",
.flash_size_kb = 256, .flash_size_kb = 256,
@ -365,6 +401,7 @@ static const struct nrf51_device_spec nrf51_known_devices_table[] = {
in the nRF51 Series Compatibility Matrix V1.0. */ in the nRF51 Series Compatibility Matrix V1.0. */
{ {
.hwid = 0x0071, .hwid = 0x0071,
.part = "51822",
.variant = "QFAC", .variant = "QFAC",
.build_code = "AB", .build_code = "AB",
.flash_size_kb = 256, .flash_size_kb = 256,
@ -626,16 +663,18 @@ static int nrf51_probe(struct flash_bank *bank)
* bytes of the CONFIGID register */ * bytes of the CONFIGID register */
const struct nrf51_device_spec *spec = NULL; const struct nrf51_device_spec *spec = NULL;
for (size_t i = 0; i < ARRAY_SIZE(nrf51_known_devices_table); i++) for (size_t i = 0; i < ARRAY_SIZE(nrf51_known_devices_table); i++) {
if (hwid == nrf51_known_devices_table[i].hwid) { if (hwid == nrf51_known_devices_table[i].hwid) {
spec = &nrf51_known_devices_table[i]; spec = &nrf51_known_devices_table[i];
break; break;
} }
}
if (!chip->bank[0].probed && !chip->bank[1].probed) { if (!chip->bank[0].probed && !chip->bank[1].probed) {
if (spec) if (spec)
LOG_INFO("nRF51822-%s(build code: %s) %ukB Flash", LOG_INFO("nRF%s-%s(build code: %s) %ukB Flash",
spec->variant, spec->build_code, spec->flash_size_kb); spec->part, spec->variant, spec->build_code,
spec->flash_size_kb);
else else
LOG_WARNING("Unknown device (HWID 0x%08" PRIx32 ")", hwid); LOG_WARNING("Unknown device (HWID 0x%08" PRIx32 ")", hwid);
} }