From: Theodore A. Roth Date: Thu, 29 Jan 2015 00:23:16 +0000 (-0700) Subject: nrf51: Update known devices table. X-Git-Tag: v0.9.0-rc1~112 X-Git-Url: https://review.openocd.org/gitweb?p=openocd.git;a=commitdiff_plain;h=db8029bc266187c54a35a37a80256c343bf4bf92 nrf51: Update known devices table. Added new entries to the nrf51_known_devices_table array. New entries are documented in the "nRF51 Series Compatability Matrix V1.0" found on the Nordic Semi web site. Reordered entries to match the order found in the document. Also added an entry for an undocumented hwid discovered while flashing the PCA10031 and PCA10028 dev boards. Change-Id: Icca7da103d437dc28e651f27ab937fe953b9aac9 Signed-off-by: Theodore A. Roth Reviewed-on: http://openocd.zylin.com/2514 Tested-by: jenkins Reviewed-by: Paul Fertser --- diff --git a/src/flash/nor/nrf51.c b/src/flash/nor/nrf51.c index af412e2827..34297efbd8 100644 --- a/src/flash/nor/nrf51.c +++ b/src/flash/nor/nrf51.c @@ -129,81 +129,213 @@ struct nrf51_device_spec { }; static const struct nrf51_device_spec nrf51_known_devices_table[] = { + /* nRF51822 Devices (IC rev 1). */ { .hwid = 0x001D, .variant = "QFAA", .build_code = "CA/C0", .flash_size_kb = 256, }, + { + .hwid = 0x0026, + .variant = "QFAB", + .build_code = "AA", + .flash_size_kb = 128, + }, + { + .hwid = 0x0027, + .variant = "QFAB", + .build_code = "A0", + .flash_size_kb = 128, + }, + { + .hwid = 0x0020, + .variant = "CEAA", + .build_code = "BA", + .flash_size_kb = 256, + }, + { + .hwid = 0x002F, + .variant = "CEAA", + .build_code = "B0", + .flash_size_kb = 256, + }, + + /* nRF51822 Devices (IC rev 2). */ { .hwid = 0x002A, .variant = "QFAA", - .build_code = "FA", + .build_code = "FA0", .flash_size_kb = 256, }, { .hwid = 0x0044, .variant = "QFAA", - .build_code = "GC", + .build_code = "GC0", .flash_size_kb = 256, }, { .hwid = 0x003C, .variant = "QFAA", - .build_code = "G0", + .build_code = "Gx0", .flash_size_kb = 256, }, - { - .hwid = 0x0020, + .hwid = 0x004C, + .variant = "QFAB", + .build_code = "Bx0", + .flash_size_kb = 128, + }, + { + .hwid = 0x0040, .variant = "CEAA", - .build_code = "BA", + .build_code = "CA0", .flash_size_kb = 256, }, { - .hwid = 0x002F, + .hwid = 0x0047, .variant = "CEAA", - .build_code = "B0", + .build_code = "DA0", .flash_size_kb = 256, }, { - .hwid = 0x0040, + .hwid = 0x004D, .variant = "CEAA", - .build_code = "CA", + .build_code = "D00", .flash_size_kb = 256, }, + + /* nRF51822 Devices (IC rev 3). */ { - .hwid = 0x0047, + .hwid = 0x0072, + .variant = "QFAA", + .build_code = "Hx0", + .flash_size_kb = 256, + }, + { + .hwid = 0x007B, + .variant = "QFAB", + .build_code = "Cx0", + .flash_size_kb = 128, + }, + { + .hwid = 0x0083, + .variant = "QFAC", + .build_code = "Ax0", + .flash_size_kb = 256, + }, + { + .hwid = 0x007D, + .variant = "CDAB", + .build_code = "Ax0", + .flash_size_kb = 128, + }, + { + .hwid = 0x0079, .variant = "CEAA", - .build_code = "DA", + .build_code = "Ex0", .flash_size_kb = 256, }, { - .hwid = 0x004D, + .hwid = 0x0087, + .variant = "CFAC", + .build_code = "Ax0", + .flash_size_kb = 256, + }, + + /* nRF51422 Devices (IC rev 1). */ + { + .hwid = 0x001E, + .variant = "QFAA", + .build_code = "CA", + .flash_size_kb = 256, + }, + { + .hwid = 0x0024, + .variant = "QFAA", + .build_code = "C0", + .flash_size_kb = 256, + }, + { + .hwid = 0x0031, .variant = "CEAA", - .build_code = "D0", + .build_code = "A0A", .flash_size_kb = 256, }, + /* nRF51422 Devices (IC rev 2). */ { - .hwid = 0x0026, + .hwid = 0x002D, + .variant = "QFAA", + .build_code = "DAA", + .flash_size_kb = 256, + }, + { + .hwid = 0x002E, + .variant = "QFAA", + .build_code = "Ex0", + .flash_size_kb = 256, + }, + { + .hwid = 0x0061, .variant = "QFAB", - .build_code = "AA", + .build_code = "A00", .flash_size_kb = 128, }, { - .hwid = 0x0027, + .hwid = 0x0050, + .variant = "CEAA", + .build_code = "Bx0", + .flash_size_kb = 256, + }, + + /* nRF51422 Devices (IC rev 3). */ + { + .hwid = 0x0073, + .variant = "QFAA", + .build_code = "Fx0", + .flash_size_kb = 256, + }, + { + .hwid = 0x007C, .variant = "QFAB", - .build_code = "A0", + .build_code = "Bx0", .flash_size_kb = 128, }, { - .hwid = 0x004C, - .variant = "QFAB", - .build_code = "B0", + .hwid = 0x0085, + .variant = "QFAC", + .build_code = "Ax0", + .flash_size_kb = 256, + }, + { + .hwid = 0x007E, + .variant = "CDAB", + .build_code = "Ax0", .flash_size_kb = 128, }, + { + .hwid = 0x007A, + .variant = "CEAA", + .build_code = "Cx0", + .flash_size_kb = 256, + }, + { + .hwid = 0x0088, + .variant = "CFAC", + .build_code = "Ax0", + .flash_size_kb = 256, + }, + /* Some early nRF51-DK (PCA10028) & nRF51-Dongle (PCA10031) boards + with built-in jlink seem to use engineering samples not listed + in the nRF51 Series Compatibility Matrix V1.0. */ + { + .hwid = 0x0071, + .variant = "QFAC", + .build_code = "AB", + .flash_size_kb = 256, + }, }; static int nrf51_bank_is_probed(struct flash_bank *bank)