nrf51: Update known devices table. 14/2514/2
authorTheodore A. Roth <troth@openavr.org>
Thu, 29 Jan 2015 00:23:16 +0000 (17:23 -0700)
committerPaul Fertser <fercerpav@gmail.com>
Tue, 24 Feb 2015 15:23:17 +0000 (15:23 +0000)
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 <troth@openavr.org>
Reviewed-on: http://openocd.zylin.com/2514
Tested-by: jenkins
Reviewed-by: Paul Fertser <fercerpav@gmail.com>
src/flash/nor/nrf51.c

index af412e2..34297ef 100644 (file)
@@ -129,6 +129,7 @@ struct nrf51_device_spec {
 };
 
 static const struct nrf51_device_spec nrf51_known_devices_table[] = {
+       /* nRF51822 Devices (IC rev 1). */
        {
                .hwid           = 0x001D,
                .variant        = "QFAA",
@@ -136,74 +137,205 @@ static const struct nrf51_device_spec nrf51_known_devices_table[] = {
                .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)