nrf51: refine and extend known devices table

The notation Gx0 in the nRF51 Series Compatibility Matrix indicates that
the specified HWID is valid only for build code 0 of each chip, and for
subsequent builds the HWID will be different.  Replace the Gx0 notation
with G0 throughout, and add the missing HWID for nRF51422 QFAC A1
(present on the newer nRF51 developer boards).

See: https://www.nordicsemi.com/eng/nordic/download_resource/41917/5/55913589
See: https://devzone.nordicsemi.com/question/30774/mapping-hwid-to-revision-information/

Change-Id: I79d842137d41342db35904867c48b06fbc6fbc70
Signed-off-by: Peter A. Bigot <pab@pabigot.com>
Signed-off-by: Angus Gratton <gus@projectgus.com>
Reviewed-on: http://openocd.zylin.com/2593
Tested-by: jenkins
Reviewed-by: Paul Fertser <fercerpav@gmail.com>
This commit is contained in:
Peter A. Bigot 2015-03-10 08:44:28 -05:00 committed by Paul Fertser
parent 218747dbd3
commit a50f5afd06
1 changed files with 34 additions and 16 deletions

View File

@ -128,6 +128,18 @@ struct nrf51_device_spec {
unsigned int flash_size_kb; unsigned int flash_size_kb;
}; };
/* The known devices table below is derived from the "nRF51 Series
* Compatibility Matrix" document, which can be found by searching for
* ATTN-51 on the Nordic Semi website:
*
* http://www.nordicsemi.com/eng/content/search?SearchText=ATTN-51
*
* Up to date with Matrix v2.0, plus some additional HWIDs.
*
* The additional HWIDs apply where the build code in the matrix is
* shown as Gx0, Bx0, etc. In these cases the HWID in the matrix is
* for x==0, x!=0 means different (unspecified) HWIDs.
*/
static const struct nrf51_device_spec nrf51_known_devices_table[] = { static const struct nrf51_device_spec nrf51_known_devices_table[] = {
/* nRF51822 Devices (IC rev 1). */ /* nRF51822 Devices (IC rev 1). */
{ {
@ -177,13 +189,13 @@ static const struct nrf51_device_spec nrf51_known_devices_table[] = {
{ {
.hwid = 0x003C, .hwid = 0x003C,
.variant = "QFAA", .variant = "QFAA",
.build_code = "Gx0", .build_code = "G0",
.flash_size_kb = 256, .flash_size_kb = 256,
}, },
{ {
.hwid = 0x004C, .hwid = 0x004C,
.variant = "QFAB", .variant = "QFAB",
.build_code = "Bx0", .build_code = "B0",
.flash_size_kb = 128, .flash_size_kb = 128,
}, },
{ {
@ -209,37 +221,37 @@ static const struct nrf51_device_spec nrf51_known_devices_table[] = {
{ {
.hwid = 0x0072, .hwid = 0x0072,
.variant = "QFAA", .variant = "QFAA",
.build_code = "Hx0", .build_code = "H0",
.flash_size_kb = 256, .flash_size_kb = 256,
}, },
{ {
.hwid = 0x007B, .hwid = 0x007B,
.variant = "QFAB", .variant = "QFAB",
.build_code = "Cx0", .build_code = "C0",
.flash_size_kb = 128, .flash_size_kb = 128,
}, },
{ {
.hwid = 0x0083, .hwid = 0x0083,
.variant = "QFAC", .variant = "QFAC",
.build_code = "Ax0", .build_code = "A0",
.flash_size_kb = 256, .flash_size_kb = 256,
}, },
{ {
.hwid = 0x007D, .hwid = 0x007D,
.variant = "CDAB", .variant = "CDAB",
.build_code = "Ax0", .build_code = "A0",
.flash_size_kb = 128, .flash_size_kb = 128,
}, },
{ {
.hwid = 0x0079, .hwid = 0x0079,
.variant = "CEAA", .variant = "CEAA",
.build_code = "Ex0", .build_code = "E0",
.flash_size_kb = 256, .flash_size_kb = 256,
}, },
{ {
.hwid = 0x0087, .hwid = 0x0087,
.variant = "CFAC", .variant = "CFAC",
.build_code = "Ax0", .build_code = "A0",
.flash_size_kb = 256, .flash_size_kb = 256,
}, },
@ -273,7 +285,7 @@ static const struct nrf51_device_spec nrf51_known_devices_table[] = {
{ {
.hwid = 0x002E, .hwid = 0x002E,
.variant = "QFAA", .variant = "QFAA",
.build_code = "Ex0", .build_code = "E0",
.flash_size_kb = 256, .flash_size_kb = 256,
}, },
{ {
@ -285,7 +297,7 @@ static const struct nrf51_device_spec nrf51_known_devices_table[] = {
{ {
.hwid = 0x0050, .hwid = 0x0050,
.variant = "CEAA", .variant = "CEAA",
.build_code = "Bx0", .build_code = "B0",
.flash_size_kb = 256, .flash_size_kb = 256,
}, },
@ -293,37 +305,43 @@ static const struct nrf51_device_spec nrf51_known_devices_table[] = {
{ {
.hwid = 0x0073, .hwid = 0x0073,
.variant = "QFAA", .variant = "QFAA",
.build_code = "Fx0", .build_code = "F0",
.flash_size_kb = 256, .flash_size_kb = 256,
}, },
{ {
.hwid = 0x007C, .hwid = 0x007C,
.variant = "QFAB", .variant = "QFAB",
.build_code = "Bx0", .build_code = "B0",
.flash_size_kb = 128, .flash_size_kb = 128,
}, },
{ {
.hwid = 0x0085, .hwid = 0x0085,
.variant = "QFAC", .variant = "QFAC",
.build_code = "Ax0", .build_code = "A0",
.flash_size_kb = 256,
},
{
.hwid = 0x0086,
.variant = "QFAC",
.build_code = "A1",
.flash_size_kb = 256, .flash_size_kb = 256,
}, },
{ {
.hwid = 0x007E, .hwid = 0x007E,
.variant = "CDAB", .variant = "CDAB",
.build_code = "Ax0", .build_code = "A0",
.flash_size_kb = 128, .flash_size_kb = 128,
}, },
{ {
.hwid = 0x007A, .hwid = 0x007A,
.variant = "CEAA", .variant = "CEAA",
.build_code = "Cx0", .build_code = "C0",
.flash_size_kb = 256, .flash_size_kb = 256,
}, },
{ {
.hwid = 0x0088, .hwid = 0x0088,
.variant = "CFAC", .variant = "CFAC",
.build_code = "Ax0", .build_code = "A0",
.flash_size_kb = 256, .flash_size_kb = 256,
}, },