nrf51: Update known devices table.
[fw/openocd] / src / flash / nor / nrf51.c
index af412e2827565ac83ff09213cc05c636624bf7a0..34297efbd80f5591dae4e7994169ce27ea2d8f5e 100644 (file)
@@ -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)