mspdebug fork adding the MehFET driver (USB device code at https://git.lain.faith/sys64738/DragonProbe/src/branch/isp-mehfet )
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

95279 lines
1.7 MiB

/* MSP430 chip database
*
* THIS FILE WAS GENERATED FROM MSP430.DLL v3.15.0.1
*
* Copyright (C) 2011 - 2018 Texas Instruments Incorporated - http://www.ti.com/
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the
* distribution.
*
* Neither the name of Texas Instruments Incorporated nor the names of
* its contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#define CI_DLL430_VERSION_MAJOR 3
#define CI_DLL430_VERSION_MINOR 15
#define CI_DLL430_VERSION_PATCH 0
#define CI_DLL430_VERSION_BUILD 1
#define CI_DLL430_VERSION_STRING "3.15.0.1"
static const struct chipinfo_funclet erase_xv2_fr41xx = {
.code_size = 42,
.max_payload = 0,
.entry_point = 0x0000,
.code = {
0x40b2, 0x5a80, 0x01cc, 0x40b2,
0x00d0, 0x0146, 0x40b2, 0xabad,
0x014e, 0x40b2, 0xbabe, 0x014c,
0xb3a2, 0x0146, 0x27fd, 0x90b2,
0xbeef, 0x0148, 0x23f9, 0x90b2,
0xdead, 0x014a, 0x23f5, 0x1800,
0x454a, 0x1800, 0x464b, 0x43ba,
0x0000, 0x1800, 0x536a, 0x1800,
0x836b, 0x930b, 0x23f8, 0x40b2,
0xcafe, 0x014e, 0x40b2, 0xbabe,
0x014c, 0x3fff,
}
};
static const struct chipinfo_funclet erase_fll = {
.code_size = 48,
.max_payload = 4,
.entry_point = 0x0000,
.code = {
0x400a, 0x40b2, 0x5a80, 0x0120,
0x503a, 0x005c, 0x40ba, 0xbeef,
0x0000, 0x3c06, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff,
0x403b, 0xdead, 0xea2b, 0x23fc,
0x403b, 0x000a, 0x4982, 0x0128,
0x450c, 0x40bc, 0xdead, 0x0000,
0x403c, 0x227a, 0x831c, 0x23fe,
0x40b2, 0xa500, 0x0128, 0x831b,
0x23f1, 0x3c08, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0x3fff, 0x4303,
}
};
static const struct chipinfo_funclet erase_dco = {
.code_size = 48,
.max_payload = 4,
.entry_point = 0x0000,
.code = {
0x400a, 0x40b2, 0x5a80, 0x0120,
0x4bc2, 0x0056, 0x4cc2, 0x0057,
0x503a, 0x005c, 0x40ba, 0xbeef,
0x0000, 0x3c02, 0x0000, 0x0000,
0x403b, 0xdead, 0xea2b, 0x23fc,
0x403b, 0x000a, 0x4982, 0x0128,
0x450c, 0x40bc, 0xdead, 0x0000,
0x403c, 0x227a, 0x831c, 0x23fe,
0x40b2, 0xa500, 0x0128, 0x831b,
0x23f1, 0x3c08, 0x0000, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000,
0x0000, 0x0000, 0x3fff, 0x4303,
}
};
static const struct chipinfo_funclet write_fll = {
.code_size = 48,
.max_payload = 128,
.entry_point = 0x0000,
.code = {
0x400a, 0x40b2, 0x5a80, 0x0120,
0x503a, 0x005c, 0x40ba, 0xbeef,
0x0000, 0x3c06, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff,
0x403b, 0xdead, 0xea2b, 0x23fc,
0x4a0b, 0x532b, 0x450c, 0x9bac,
0x0000, 0x240e, 0x40b2, 0xa540,
0x0128, 0x4bac, 0x0000, 0xb392,
0x012c, 0x23fd, 0x40b2, 0xa500,
0x0128, 0x40b2, 0xa500, 0x012c,
0x532b, 0x532c, 0x8316, 0x23eb,
0x3c01, 0xffff, 0x3fff, 0x4303,
}
};
static const struct chipinfo_funclet write_430i = {
.code_size = 48,
.max_payload = 128,
.entry_point = 0x0000,
.code = {
0x400a, 0x40b2, 0x5a80, 0x0120,
0x503a, 0x005c, 0x40ba, 0xbeef,
0x0000, 0x3c06, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff,
0x403b, 0xdead, 0xea2b, 0x23fc,
0x4a0b, 0x532b, 0x450c, 0x40b2,
0xa540, 0x0128, 0x4bac, 0x0000,
0xb392, 0x012c, 0x23fd, 0x40b2,
0xa500, 0x0128, 0x532b, 0x532c,
0x8316, 0x23f1, 0x40b2, 0xa500,
0x012c, 0x3c04, 0xffff, 0xffff,
0xffff, 0xffff, 0x3fff, 0x4303,
}
};
static const struct chipinfo_funclet write_dco = {
.code_size = 48,
.max_payload = 128,
.entry_point = 0x0000,
.code = {
0x400a, 0x40b2, 0x5a80, 0x0120,
0x4bc2, 0x0056, 0x4cc2, 0x0057,
0x503a, 0x005c, 0x40ba, 0xbeef,
0x0000, 0x3c02, 0x0000, 0x0000,
0x403b, 0xdead, 0xea2b, 0x23fc,
0x4a0b, 0x532b, 0x450c, 0x40b2,
0xa540, 0x0128, 0x4bac, 0x0000,
0xb392, 0x012c, 0x23fd, 0x40b2,
0xa500, 0x0128, 0x40b2, 0xa500,
0x012c, 0x532b, 0x532c, 0x8316,
0x23ee, 0x3c04, 0x0000, 0x0000,
0x0000, 0x0000, 0x3fff, 0x4303,
}
};
static const struct chipinfo_funclet erase_xfll = {
.code_size = 54,
.max_payload = 4,
.entry_point = 0x0000,
.code = {
0x1800, 0x404a, 0x40b2, 0x5a80,
0x0120, 0x1840, 0x503a, 0x0066,
0x1840, 0x40ba, 0xbeef, 0x0000,
0x3c04, 0x0000, 0x0000, 0x0000,
0x0000, 0x403b, 0xdead, 0x1840,
0xea1b, 0x0000, 0x23fa, 0x1840,
0x403b, 0x000a, 0x1840, 0x4982,
0x0128, 0x1800, 0x454c, 0x1840,
0x40bc, 0xdead, 0x0000, 0x1840,
0x403c, 0x227a, 0x832c, 0x23fe,
0x1840, 0x40b2, 0xa500, 0x0128,
0x832b, 0x23ec, 0x3c05, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000,
0x3fff, 0x4303,
}
};
static const struct chipinfo_funclet erase_xdco = {
.code_size = 54,
.max_payload = 4,
.entry_point = 0x0000,
.code = {
0x1800, 0x404a, 0x40b2, 0x5a80,
0x0120, 0x4bc2, 0x0056, 0x4cc2,
0x0057, 0x1840, 0x503a, 0x0066,
0x1840, 0x40ba, 0xbeef, 0x0000,
0x3c00, 0x403b, 0xdead, 0x1840,
0xea1b, 0x0000, 0x23fa, 0x1840,
0x403b, 0x000a, 0x1840, 0x4982,
0x0128, 0x1800, 0x454c, 0x1840,
0x40bc, 0xdead, 0x0000, 0x1840,
0x403c, 0x227a, 0x832c, 0x23fe,
0x1840, 0x40b2, 0xa500, 0x0128,
0x832b, 0x23ec, 0x3c05, 0x0000,
0x0000, 0x0000, 0x0000, 0x0000,
0x3fff, 0x4303,
}
};
static const struct chipinfo_funclet write_xfll = {
.code_size = 54,
.max_payload = 256,
.entry_point = 0x0000,
.code = {
0x1800, 0x404a, 0x40b2, 0x5a80,
0x0120, 0x1840, 0x503a, 0x0066,
0x1840, 0x40ba, 0xbeef, 0x0000,
0x3c04, 0xffff, 0xffff, 0xffff,
0xffff, 0x403b, 0xdead, 0x1840,
0xea1b, 0x0000, 0x23fa, 0x1840,
0x4a0b, 0x1840, 0x532b, 0x1800,
0x454c, 0x1840, 0x9bac, 0x0000,
0x240e, 0x40b2, 0xa540, 0x0128,
0x4bac, 0x0000, 0xb392, 0x012c,
0x23fd, 0x40b2, 0xa500, 0x0128,
0x40b2, 0xa500, 0x012c, 0x03eb,
0x03ec, 0x8316, 0x23ea, 0x3c00,
0x3fff, 0x4303,
}
};
static const struct chipinfo_funclet write_xdco = {
.code_size = 54,
.max_payload = 256,
.entry_point = 0x0000,
.code = {
0x1800, 0x404a, 0x40b2, 0x5a80,
0x0120, 0x4bc2, 0x0056, 0x4cc2,
0x0057, 0x1840, 0x503a, 0x0066,
0x1840, 0x40ba, 0xbeef, 0x0000,
0x3c00, 0x403b, 0xdead, 0x1840,
0xea1b, 0x0000, 0x23fa, 0x1840,
0x4a0b, 0x1840, 0x532b, 0x1800,
0x454c, 0x40b2, 0xa540, 0x0128,
0x4bac, 0x0000, 0xb392, 0x012c,
0x23fd, 0x40b2, 0xa500, 0x0128,
0x40b2, 0xa500, 0x012c, 0x03eb,
0x03ec, 0x8316, 0x23ee, 0x3c04,
0x0000, 0x0000, 0x0000, 0x0000,
0x3fff, 0x4303,
}
};
static const struct chipinfo_funclet erase_xv2_fram = {
.code_size = 60,
.max_payload = 0,
.entry_point = 0x000c,
.code = {
0x000c, 0x0076, 0xdead, 0x000b,
0xdead, 0x000b, 0x40b2, 0x5a80,
0x015c, 0x180f, 0x4ac0, 0xffee,
0x180f, 0x4bc0, 0xffec, 0x40b2,
0x00d0, 0x0186, 0x40b2, 0xabad,
0x018e, 0x40b2, 0xbabe, 0x018c,
0xb3a2, 0x0186, 0x27fd, 0x90b2,
0xbeef, 0x0188, 0x23f9, 0x90b2,
0xdead, 0x018a, 0x23f5, 0x1800,
0x454a, 0x1800, 0x464b, 0x43ba,
0x0000, 0x1800, 0x536a, 0x1800,
0x836b, 0x930b, 0x23f8, 0x1f80,
0x405a, 0xffa2, 0x1f80, 0x405b,
0xffa0, 0x40b2, 0xcafe, 0x018e,
0x40b2, 0xbabe, 0x018c, 0x3fff,
}
};
static const struct chipinfo_funclet write_xv2_fram = {
.code_size = 71,
.max_payload = 0,
.entry_point = 0x0012,
.code = {
0x0012, 0x008c, 0x0000, 0xa500,
0xa500, 0xdead, 0x000b, 0xdead,
0x000b, 0x40b2, 0x5a80, 0x015c,
0x40b2, 0xabad, 0x018e, 0x40b2,
0xbabe, 0x018c, 0x180f, 0x4ac0,
0xffe2, 0x180f, 0x4bc0, 0xffe0,
0x1800, 0x454a, 0x1800, 0x464b,
0x40b2, 0x00d0, 0x0186, 0xb3a2,
0x0186, 0x27fd, 0x429a, 0x0188,
0x0000, 0xc392, 0x0186, 0x1800,
0x536a, 0x1800, 0x835b, 0x930b,
0x2001, 0x3c0c, 0x429a, 0x018a,
0x0000, 0xc3a2, 0x0186, 0x1800,
0x536a, 0x1800, 0x835b, 0x930b,
0x23e6, 0x3c00, 0x1f80, 0x405a,
0xff92, 0x1f80, 0x405b, 0xff90,
0x40b2, 0xcafe, 0x018e, 0x40b2,
0xbabe, 0x018c, 0x3fff,
}
};
static const struct chipinfo_funclet bsl_unlock_xv2 = {
.code_size = 72,
.max_payload = 0,
.entry_point = 0x0018,
.code = {
0x0018, 0x008e, 0xdead, 0x000b,
0xdead, 0x000b, 0xdead, 0x000b,
0xdead, 0x000b, 0xdead, 0x000b,
0x40b2, 0x5a80, 0x015c, 0x4180,
0xfff4, 0x180f, 0x4bc0, 0xffea,
0x180f, 0x4cc0, 0xffd8, 0x180f,
0x4dc0, 0xffd6, 0x40b2, 0x00d0,
0x0186, 0x40b2, 0xabad, 0x018e,
0x40b2, 0xbabe, 0x018c, 0xb3a2,
0x0186, 0x27fd, 0x90b2, 0xbeef,
0x0188, 0x23f9, 0x90b2, 0xdead,
0x018a, 0x23f5, 0x1800, 0x435c,
0x403d, 0xdead, 0x403e, 0xbeef,
0x13b0, 0x1002, 0x4011, 0xffa6,
0x1f80, 0x405b, 0xff9c, 0x1f80,
0x405c, 0xff8a, 0x1f80, 0x405d,
0xff88, 0x40b2, 0xcafe, 0x018e,
0x40b2, 0xbabe, 0x018c, 0x3fff,
}
};
static const struct chipinfo_funclet erase_xv2 = {
.code_size = 102,
.max_payload = 0,
.entry_point = 0x000e,
.code = {
0x000e, 0x00ca, 0xa508, 0xa500,
0xa500, 0xdead, 0x000b, 0x40b2,
0x5a80, 0x015c, 0x4213, 0xfffe,
0x4290, 0x0140, 0xffea, 0x4290,
0x0144, 0xffe6, 0x180f, 0x4ac0,
0xffe2, 0x40b2, 0x00d0, 0x0186,
0x40b2, 0xabad, 0x018e, 0x40b2,
0xbabe, 0x018c, 0xb3a2, 0x0186,
0x27fd, 0x90b2, 0xbeef, 0x0188,
0x23f9, 0x90b2, 0xdead, 0x018a,
0x23f5, 0xb392, 0x0144, 0x23fd,
0x4882, 0x0144, 0x4290, 0x0144,
0xffa4, 0x98c0, 0xffa0, 0x2405,
0x480a, 0xd03a, 0x0040, 0x4a82,
0x0144, 0x1800, 0x454a, 0x4982,
0x0140, 0x40ba, 0xdead, 0x0000,
0xb392, 0x0144, 0x23fd, 0x1f80,
0x405a, 0xff80, 0xe0b0, 0x3300,
0xff76, 0xe0b0, 0x3300, 0xff72,
0x4092, 0xff6c, 0x0140, 0x4092,
0xff68, 0x0144, 0x4290, 0x0144,
0xff5c, 0x90d0, 0xff5c, 0xff56,
0x2406, 0xd0b0, 0x0040, 0xff52,
0x4092, 0xff4e, 0x0144, 0x40b2,
0xcafe, 0x018e, 0x40b2, 0xbabe,
0x018c, 0x3fff,
}
};
static const struct chipinfo_funclet write_xv2 = {
.code_size = 122,
.max_payload = 0,
.entry_point = 0x0012,
.code = {
0x0012, 0x00f2, 0xa508, 0xa500,
0xa500, 0xdead, 0x000b, 0xdead,
0x000b, 0x40b2, 0x5a80, 0x015c,
0x40b2, 0xabad, 0x018e, 0x40b2,
0xbabe, 0x018c, 0x4290, 0x0140,
0xffde, 0x4290, 0x0144, 0xffda,
0x180f, 0x4ac0, 0xffd6, 0x180f,
0x4bc0, 0xffd4, 0xb392, 0x0144,
0x23fd, 0x4882, 0x0144, 0x4290,
0x0144, 0xffba, 0x98c0, 0xffb6,
0x2405, 0x480a, 0xd03a, 0x0040,
0x4a82, 0x0144, 0x1800, 0x454a,
0x1800, 0x464b, 0x40b2, 0x00d0,
0x0186, 0xb3a2, 0x0186, 0x27fd,
0x40b2, 0xa580, 0x0140, 0x429a,
0x0188, 0x0000, 0x1800, 0x536a,
0x1800, 0x835b, 0x429a, 0x018a,
0x0000, 0xc3a2, 0x0186, 0xc392,
0x0186, 0xb392, 0x0144, 0x23fd,
0x40b2, 0xa500, 0x0140, 0x1800,
0x536a, 0x1800, 0x835b, 0x23e1,
0x1f80, 0x405a, 0xff5e, 0x1f80,
0x405b, 0xff5c, 0xe0b0, 0x3300,
0xff4e, 0xe0b0, 0x3300, 0xff4a,
0x4092, 0xff44, 0x0140, 0x4092,
0xff40, 0x0144, 0x4290, 0x0144,
0xff34, 0x90d0, 0xff34, 0xff2e,
0x2406, 0xd0b0, 0x0040, 0xff2a,
0x4092, 0xff26, 0x0144, 0x40b2,
0xcafe, 0x018e, 0x40b2, 0xbabe,
0x018c, 0x3fff,
}
};
static const struct chipinfo_funclet write_xv2_word = {
.code_size = 144,
.max_payload = 0,
.entry_point = 0x0012,
.code = {
0x0012, 0x011e, 0xa508, 0xa500,
0xa500, 0xdead, 0x000b, 0xdead,
0x000b, 0x40b2, 0x5a80, 0x015c,
0x40b2, 0xabad, 0x018e, 0x40b2,
0xbabe, 0x018c, 0x4290, 0x0140,
0xffde, 0x4290, 0x0144, 0xffda,
0x180f, 0x4ac0, 0xffd6, 0x180f,
0x4bc0, 0xffd4, 0xb392, 0x0144,
0x23fd, 0x4882, 0x0144, 0x4290,
0x0144, 0xffba, 0x98c0, 0xffb6,
0x2405, 0x480a, 0xd03a, 0x0040,
0x4a82, 0x0144, 0x1800, 0x454a,
0x1800, 0x464b, 0x40b2, 0x00d0,
0x0186, 0xb392, 0x0186, 0x27fd,
0x421d, 0x0188, 0xc392, 0x0186,
0xb392, 0x0144, 0x23fd, 0x40b2,
0xa500, 0x0140, 0x40b2, 0xa540,
0x0140, 0x4d8a, 0x0000, 0x1800,
0x536a, 0x1800, 0x835b, 0x2417,
0xb3a2, 0x0186, 0x27fd, 0x421e,
0x018a, 0xc3a2, 0x0186, 0xb392,
0x0144, 0x23fd, 0x40b2, 0xa500,
0x0140, 0x40b2, 0xa540, 0x0140,
0x4e8a, 0x0000, 0x1800, 0x536a,
0x1800, 0x835b, 0x23d2, 0xb392,
0x0144, 0x23fd, 0xc3a2, 0x0186,
0xc392, 0x0186, 0x1f80, 0x405a,
0xff32, 0x1f80, 0x405b, 0xff30,
0xe0b0, 0x3300, 0xff22, 0xe0b0,
0x3300, 0xff1e, 0x4092, 0xff18,
0x0140, 0x4092, 0xff14, 0x0144,
0x4290, 0x0144, 0xff08, 0x90d0,
0xff08, 0xff02, 0x2406, 0xd0b0,
0x0040, 0xfefe, 0x4092, 0xfefa,
0x0144, 0x40b2, 0xcafe, 0x018e,
0x40b2, 0xbabe, 0x018c, 0x3fff,
}
};
const struct chipinfo chipinfo_db[] = { {
.name = "F20x1_G2x0x_G2x1x",
.bits = 16,
.psa = CHIPINFO_PSA_REGULAR,
.clock_control = 0x01,
.mclk_control = 0x00000000,
.clock_map = {
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
},
.id = {
.ver_id = 0x01f2,
.ver_sub_id = 0x0000,
.revision = 0x00,
.fab = 0x00,
.self = 0x0000,
.config = 0x01,
.fuses = 0x00,
.activation_key = 0x00000000,
},
.id_mask = {
.ver_id = 0xffff,
.ver_sub_id = 0x0000,
.revision = 0x00,
.fab = 0x00,
.self = 0x0000,
.config = 0x7f,
.fuses = 0x00,
.activation_key = 0x00000000,
},
.eem = { /* no info */ },
.voltage = {
.vcc_min = 1800,
.vcc_max = 3600,
.vcc_flash_min = 2200,
.vcc_secure_min = 2500,
.vpp_secure_min = 6000,
.vpp_secure_max = 7000,
.has_test_vpp = 1,
},
.v3_functions = {
},
.v3_erase = &erase_dco,
.v3_write = &write_dco,
.clock_sys = CHIPINFO_CLOCK_SYS_BC_2XX,
.features = 0
| CHIPINFO_FEATURE_LCFE
| CHIPINFO_FEATURE_QUICK_MEM_READ,
.power = {
.reg_mask = 0x00000,
.enable_lpm5 = 0x00000,
.disable_lpm5 = 0x00000,
.reg_mask_3v = 0x00000,
.enable_lpm5_3v = 0x00000,
.disable_lpm5_3v = 0x00000,
},
.memory = {
{
.name = "Main",
.type = CHIPINFO_MEMTYPE_FLASH,
.bits = 16,
.mapped = 1,
.size = 2048,
.offset = 0x0f800,
.seg_size = 512,
.bank_size = 0 /* no info */,
.banks = 1,
},
{
.name = "Info",
.type = CHIPINFO_MEMTYPE_FLASH,
.bits = 16,
.mapped = 1,
.size = 256,
.offset = 0x01000,
.seg_size = 64,
.bank_size = 0 /* no info */,
.banks = 4,
},
{
.name = "Bsl",
.type = CHIPINFO_MEMTYPE_FLASH,
.bits = 16,
.mapped = 1,
.size = 1024,
.offset = 0x00c00,
.seg_size = 512,
.bank_size = 0 /* no info */,
.banks = 4,
},
{
.name = "Ram",
.type = CHIPINFO_MEMTYPE_RAM,
.bits = 16,
.mapped = 1,
.size = 128,
.offset = 0x00200,
.seg_size = 1,
.bank_size = 0 /* no info */,
.banks = 1,
},
{
.name = "Peripheral16bit",
.type = CHIPINFO_MEMTYPE_REGISTER,
.bits = 16,
.mapped = 1,
.size = 256,
.offset = 0x00100,
.seg_size = 1,
.bank_size = 0 /* no info */,
.banks = 1,
},
{
.name = "Peripheral8bit",
.type = CHIPINFO_MEMTYPE_REGISTER,
.bits = 8,
.mapped = 1,
.size = 256,
.offset = 0x00000,
.seg_size = 1,
.bank_size = 0 /* no info */,
.banks = 1,
},
{0}
},
},
{
.name = "F20x2_G2x2x_G2x3x",
.bits = 16,
.psa = CHIPINFO_PSA_REGULAR,
.clock_control = 0x01,
.mclk_control = 0x00000000,
.clock_map = {
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
},
.id = {
.ver_id = 0x01f2,
.ver_sub_id = 0x0000,
.revision = 0x00,
.fab = 0x00,
.self = 0x0000,
.config = 0x02,
.fuses = 0x00,
.activation_key = 0x00000000,
},
.id_mask = {
.ver_id = 0xffff,
.ver_sub_id = 0x0000,
.revision = 0x00,
.fab = 0x00,
.self = 0x0000,
.config = 0x7f,
.fuses = 0x00,
.activation_key = 0x00000000,
},
.eem = { /* no info */ },
.voltage = {
.vcc_min = 1800,
.vcc_max = 3600,
.vcc_flash_min = 2200,
.vcc_secure_min = 2500,
.vpp_secure_min = 6000,
.vpp_secure_max = 7000,
.has_test_vpp = 1,
},
.v3_functions = {
},
.v3_erase = &erase_dco,
.v3_write = &write_dco,
.clock_sys = CHIPINFO_CLOCK_SYS_BC_2XX,
.features = 0
| CHIPINFO_FEATURE_LCFE
| CHIPINFO_FEATURE_QUICK_MEM_READ,
.power = {
.reg_mask = 0x00000,
.enable_lpm5 = 0x00000,
.disable_lpm5 = 0x00000,
.reg_mask_3v = 0x00000,
.enable_lpm5_3v = 0x00000,
.disable_lpm5_3v = 0x00000,
},
.memory = {
{
.name = "Main",
.type = CHIPINFO_MEMTYPE_FLASH,
.bits = 16,
.mapped = 1,
.size = 2048,
.offset = 0x0f800,
.seg_size = 512,
.bank_size = 0 /* no info */,
.banks = 1,
},
{
.name = "Info",
.type = CHIPINFO_MEMTYPE_FLASH,
.bits = 16,
.mapped = 1,
.size = 256,
.offset = 0x01000,
.seg_size = 64,
.bank_size = 0 /* no info */,
.banks = 4,
},
{
.name = "Bsl",
.type = CHIPINFO_MEMTYPE_FLASH,
.bits = 16,
.mapped = 1,
.size = 1024,
.offset = 0x00c00,
.seg_size = 512,
.bank_size = 0 /* no info */,
.banks = 4,
},
{
.name = "Ram",
.type = CHIPINFO_MEMTYPE_RAM,
.bits = 16,
.mapped = 1,
.size = 128,
.offset = 0x00200,
.seg_size = 1,
.bank_size = 0 /* no info */,
.banks = 1,
},
{
.name = "Peripheral16bit",
.type = CHIPINFO_MEMTYPE_REGISTER,
.bits = 16,
.mapped = 1,
.size = 256,
.offset = 0x00100,
.seg_size = 1,
.bank_size = 0 /* no info */,
.banks = 1,
},
{
.name = "Peripheral8bit",
.type = CHIPINFO_MEMTYPE_REGISTER,
.bits = 8,
.mapped = 1,
.size = 256,
.offset = 0x00000,
.seg_size = 1,
.bank_size = 0 /* no info */,
.banks = 1,
},
{0}
},
},
{
.name = "MSP430F20x3",
.bits = 16,
.psa = CHIPINFO_PSA_REGULAR,
.clock_control = 0x01,
.mclk_control = 0x00000000,
.clock_map = {
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
},
.id = {
.ver_id = 0x01f2,
.ver_sub_id = 0x0000,
.revision = 0x00,
.fab = 0x00,
.self = 0x0000,
.config = 0x03,
.fuses = 0x00,
.activation_key = 0x00000000,
},
.id_mask = {
.ver_id = 0xffff,
.ver_sub_id = 0x0000,
.revision = 0x00,
.fab = 0x00,
.self = 0x0000,
.config = 0x7f,
.fuses = 0x00,
.activation_key = 0x00000000,
},
.eem = { /* no info */ },
.voltage = {
.vcc_min = 1800,
.vcc_max = 3600,
.vcc_flash_min = 2200,
.vcc_secure_min = 2500,
.vpp_secure_min = 6000,
.vpp_secure_max = 7000,
.has_test_vpp = 1,
},
.v3_functions = {
},
.v3_erase = &erase_dco,
.v3_write = &write_dco,
.clock_sys = CHIPINFO_CLOCK_SYS_BC_2XX,
.features = 0
| CHIPINFO_FEATURE_LCFE
| CHIPINFO_FEATURE_QUICK_MEM_READ,
.power = {
.reg_mask = 0x00000,
.enable_lpm5 = 0x00000,
.disable_lpm5 = 0x00000,
.reg_mask_3v = 0x00000,
.enable_lpm5_3v = 0x00000,
.disable_lpm5_3v = 0x00000,
},
.memory = {
{
.name = "Main",
.type = CHIPINFO_MEMTYPE_FLASH,
.bits = 16,
.mapped = 1,
.size = 2048,
.offset = 0x0f800,
.seg_size = 512,
.bank_size = 0 /* no info */,
.banks = 1,
},
{
.name = "Info",
.type = CHIPINFO_MEMTYPE_FLASH,
.bits = 16,
.mapped = 1,
.size = 256,
.offset = 0x01000,
.seg_size = 64,
.bank_size = 0 /* no info */,
.banks = 4,
},
{
.name = "Bsl",
.type = CHIPINFO_MEMTYPE_FLASH,
.bits = 16,
.mapped = 1,
.size = 1024,
.offset = 0x00c00,
.seg_size = 512,
.bank_size = 0 /* no info */,
.banks = 4,
},
{
.name = "Ram",
.type = CHIPINFO_MEMTYPE_RAM,
.bits = 16,
.mapped = 1,
.size = 128,
.offset = 0x00200,
.seg_size = 1,
.bank_size = 0 /* no info */,
.banks = 1,
},
{
.name = "Peripheral16bit",
.type = CHIPINFO_MEMTYPE_REGISTER,
.bits = 16,
.mapped = 1,
.size = 256,
.offset = 0x00100,
.seg_size = 1,
.bank_size = 0 /* no info */,
.banks = 1,
},
{
.name = "Peripheral8bit",
.type = CHIPINFO_MEMTYPE_REGISTER,
.bits = 8,
.mapped = 1,
.size = 256,
.offset = 0x00000,
.seg_size = 1,
.bank_size = 0 /* no info */,
.banks = 1,
},
{0}
},
},
{
.name = "MSP430F11x1",
.bits = 16,
.psa = CHIPINFO_PSA_REGULAR,
.clock_control = 0x00,
.mclk_control = 0x00000000,
.clock_map = {
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
},
.id = {
.ver_id = 0x12f1,
.ver_sub_id = 0x0000,
.revision = 0x10,
.fab = 0x40,
.self = 0x0000,
.config = 0x00,
.fuses = 0x00,
.activation_key = 0x00000000,
},
.id_mask = {
.ver_id = 0xffff,
.ver_sub_id = 0x0000,
.revision = 0xff,
.fab = 0xff,
.self = 0xffff,
.config = 0x00,
.fuses = 0x00,
.activation_key = 0x00000000,
},
.eem = { /* no info */ },
.voltage = {
.vcc_min = 1800,
.vcc_max = 3600,
.vcc_flash_min = 2700,
.vcc_secure_min = 2500,
.vpp_secure_min = 6000,
.vpp_secure_max = 7000,
.has_test_vpp = 1,
},
.v3_functions = {
},
.v3_erase = &erase_dco,
.v3_write = &write_dco,
.clock_sys = CHIPINFO_CLOCK_SYS_BC_1XX,
.features = 0
| CHIPINFO_FEATURE_QUICK_MEM_READ,
.power = {
.reg_mask = 0x00000,
.enable_lpm5 = 0x00000,
.disable_lpm5 = 0x00000,
.reg_mask_3v = 0x00000,
.enable_lpm5_3v = 0x00000,
.disable_lpm5_3v = 0x00000,
},
.memory = {
{
.name = "Main",
.type = CHIPINFO_MEMTYPE_FLASH,
.bits = 16,
.mapped = 1,
.size = 4096,
.offset = 0x0f000,
.seg_size = 512,
.bank_size = 0 /* no info */,
.banks = 1,
},
{
.name = "Info",
.type = CHIPINFO_MEMTYPE_FLASH,
.bits = 16,
.mapped = 1,
.size = 256,
.offset = 0x01000,
.seg_size = 128,
.bank_size = 0 /* no info */,
.banks = 2,
},
{
.name = "Bsl",
.type = CHIPINFO_MEMTYPE_FLASH,
.bits = 16,
.mapped = 1,
.size = 1024,
.offset = 0x00c00,
.seg_size = 512,
.bank_size = 0 /* no info */,
.banks = 4,
},
{
.name = "Ram",
.type = CHIPINFO_MEMTYPE_RAM,
.bits = 16,
.mapped = 1,
.size = 256,
.offset = 0x00200,
.seg_size = 1,
.bank_size = 0 /* no info */,
.banks = 1,
},
{
.name = "Peripheral16bit",
.type = CHIPINFO_MEMTYPE_REGISTER,
.bits = 16,
.mapped = 1,
.size = 256,
.offset = 0x00100,
.seg_size = 1,
.bank_size = 0 /* no info */,
.banks = 1,
},
{
.name = "Peripheral8bit",
.type = CHIPINFO_MEMTYPE_REGISTER,
.bits = 8,
.mapped = 1,
.size = 256,
.offset = 0x00000,
.seg_size = 1,
.bank_size = 0 /* no info */,
.banks = 1,
},
{0}
},
},
{
.name = "MSP430F11x1A",
.bits = 16,
.psa = CHIPINFO_PSA_REGULAR,
.clock_control = 0x00,
.mclk_control = 0x00000000,
.clock_map = {
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
},
.id = {
.ver_id = 0x12f1,
.ver_sub_id = 0x0000,
.revision = 0x13,
.fab = 0x00,
.self = 0x0000,
.config = 0x00,
.fuses = 0x00,
.activation_key = 0x00000000,
},
.id_mask = {
.ver_id = 0xffff,
.ver_sub_id = 0x0000,
.revision = 0xff,
.fab = 0x00,
.self = 0xffff,
.config = 0x00,
.fuses = 0x00,
.activation_key = 0x00000000,
},
.eem = { /* no info */ },
.voltage = {
.vcc_min = 1800,
.vcc_max = 3600,
.vcc_flash_min = 2700,
.vcc_secure_min = 2500,
.vpp_secure_min = 6000,
.vpp_secure_max = 7000,
.has_test_vpp = 1,
},
.v3_functions = {
},
.v3_erase = &erase_dco,
.v3_write = &write_dco,
.clock_sys = CHIPINFO_CLOCK_SYS_BC_1XX,
.features = 0
| CHIPINFO_FEATURE_QUICK_MEM_READ,
.power = {
.reg_mask = 0x00000,
.enable_lpm5 = 0x00000,
.disable_lpm5 = 0x00000,
.reg_mask_3v = 0x00000,
.enable_lpm5_3v = 0x00000,
.disable_lpm5_3v = 0x00000,
},
.memory = {
{
.name = "Main",
.type = CHIPINFO_MEMTYPE_FLASH,
.bits = 16,
.mapped = 1,
.size = 4096,
.offset = 0x0f000,
.seg_size = 512,
.bank_size = 0 /* no info */,
.banks = 1,
},
{
.name = "Info",
.type = CHIPINFO_MEMTYPE_FLASH,
.bits = 16,
.mapped = 1,
.size = 256,
.offset = 0x01000,
.seg_size = 128,
.bank_size = 0 /* no info */,
.banks = 2,
},
{
.name = "Bsl",
.type = CHIPINFO_MEMTYPE_FLASH,
.bits = 16,
.mapped = 1,
.size = 1024,
.offset = 0x00c00,
.seg_size = 512,
.bank_size = 0 /* no info */,
.banks = 4,
},
{
.name = "Ram",
.type = CHIPINFO_MEMTYPE_RAM,
.bits = 16,
.mapped = 1,
.size = 256,
.offset = 0x00200,
.seg_size = 1,
.bank_size = 0 /* no info */,
.banks = 1,
},
{
.name = "Peripheral16bit",
.type = CHIPINFO_MEMTYPE_REGISTER,
.bits = 16,
.mapped = 1,
.size = 256,
.offset = 0x00100,
.seg_size = 1,
.bank_size = 0 /* no info */,
.banks = 1,
},
{
.name = "Peripheral8bit",
.type = CHIPINFO_MEMTYPE_REGISTER,
.bits = 8,
.mapped = 1,
.size = 256,
.offset = 0x00000,
.seg_size = 1,
.bank_size = 0 /* no info */,
.banks = 1,
},
{0}
},
},
{
.name = "MSP430F5513",
.bits = 20,
.psa = CHIPINFO_PSA_REGULAR,
.clock_control = 0x02,
.mclk_control = 0x0000041f,
.clock_map = {
{0},
{0},
{0},
{"Comparator B", 0xa8},
{0},
{"RTC", 0x8a},
{"USCI3", 0x2b},
{"USCI2", 0x2a},
{"USCI1", 0x29},
{"USCI0", 0x28},
{"USB", 0x40},
{"Timer0_B7", 0x9d},
{"Timer2_A3", 0x8f},
{"Timer1_A3", 0x8e},
{"Timer0_A5", 0x91},
{"Watchdog Timer", 0x0a},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
},
.id = {
.ver_id = 0x1355,
.ver_sub_id = 0x0000,
.revision = 0x00,
.fab = 0x00,
.self = 0x0000,
.config = 0x00,
.fuses = 0x00,
.activation_key = 0x00000000,
},
.id_mask = {
.ver_id = 0xffff,
.ver_sub_id = 0xffff,
.revision = 0x00,
.fab = 0x00,
.self = 0x0000,
.config = 0x00,
.fuses = 0x00,
.activation_key = 0x00000000,
},
.eem = { /* no info */ },
.voltage = {
.vcc_min = 1800,
.vcc_max = 3600,
.vcc_flash_min = 1800,
.vcc_secure_min = 2500,
.vpp_secure_min = 6000,
.vpp_secure_max = 7000,
.has_test_vpp = 1,
},
.v3_functions = {
[0x09] = 0x38,
[0x12] = 0x3a,
[0x13] = 0x3b,
[0x14] = 0x3c,
[0x15] = 0x3d,
[0x16] = 0x3d,
[0x17] = 0x3e,
[0x18] = 0x3f,
[0x19] = 0x3f,
[0x1a] = 0x40,
[0x1c] = 0x41,
[0x1d] = 0x42,
[0x1e] = 0x43,
[0x1f] = 0x44,
[0x20] = 0x45,
[0x26] = 0x37,
[0x4a] = 0x4b,
},
.v3_erase = &erase_xv2,
.v3_write = &write_xv2,
.clock_sys = CHIPINFO_CLOCK_SYS_MOD_OSC,
.features = 0
| CHIPINFO_FEATURE_LCFE
| CHIPINFO_FEATURE_QUICK_MEM_READ
| CHIPINFO_FEATURE_1337,
.power = {
.reg_mask = 0x00000,
.enable_lpm5 = 0x00000,
.disable_lpm5 = 0x00000,
.reg_mask_3v = 0x00000,
.enable_lpm5_3v = 0x00000,
.disable_lpm5_3v = 0x00000,
},
.memory = {
{
.name = "Main",
.type = CHIPINFO_MEMTYPE_FLASH,
.bits = 16,
.mapped = 1,
.size = 32768,
.offset = 0x08000,
.seg_size = 512,
.bank_size = 0 /* no info */,
.banks = 2,
},
{
.name = "Ram",
.type = CHIPINFO_MEMTYPE_RAM,
.bits = 16,
.mapped = 1,
.size = 8192,
.offset = 0x02400,
.seg_size = 1,
.bank_size = 0 /* no info */,
.banks = 4,
},
{
.name = "UsbRam",
.type = CHIPINFO_MEMTYPE_RAM,
.bits = 16,
.mapped = 1,
.size = 2048,
.offset = 0x01c00,
.seg_size = 1,
.bank_size = 0 /* no info */,
.banks = 1,
},
{
.name = "BootCode",
.type = CHIPINFO_MEMTYPE_ROM,
.bits = 16,
.mapped = 1,
.size = 256,
.offset = 0x01a00,
.seg_size = 1,
.bank_size = 0 /* no info */,
.banks = 1,
},
{
.name = "Info",
.type = CHIPINFO_MEMTYPE_FLASH,
.bits = 16,
.mapped = 1,
.size = 512,
.offset = 0x01800,
.seg_size = 128,
.bank_size = 0 /* no info */,
.banks = 4,
},
{
.name = "Bsl",
.type = CHIPINFO_MEMTYPE_FLASH,
.bits = 16,
.mapped = 1,
.size = 2048,
.offset = 0x01000,
.seg_size = 512,
.bank_size = 0 /* no info */,
.banks = 4,
},
{
.name = "Peripheral16bit",
.type = CHIPINFO_MEMTYPE_REGISTER,
.bits = 16,
.mapped = 1,
.size = 4096,
.offset = 0x00000,
.seg_size = 1,
.bank_size = 0 /* no info */,
.banks = 1,
},
{0}
},
},
{
.name = "MSP430F21x1",
.bits = 16,
.psa = CHIPINFO_PSA_REGULAR,
.clock_control = 0x01,
.mclk_control = 0x00000000,
.clock_map = {
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
},
.id = {
.ver_id = 0x13f2,
.ver_sub_id = 0x0000,
.revision = 0x00,
.fab = 0x00,
.self = 0x0000,
.config = 0x01,
.fuses = 0x00,
.activation_key = 0x00000000,
},
.id_mask = {
.ver_id = 0xffff,
.ver_sub_id = 0x0000,
.revision = 0x00,
.fab = 0x00,
.self = 0x0000,
.config = 0x7f,
.fuses = 0x00,
.activation_key = 0x00000000,
},
.eem = { /* no info */ },
.voltage = {
.vcc_min = 1800,
.vcc_max = 3600,
.vcc_flash_min = 2200,
.vcc_secure_min = 2500,
.vpp_secure_min = 6000,
.vpp_secure_max = 7000,
.has_test_vpp = 1,
},
.v3_functions = {
},
.v3_erase = &erase_dco,
.v3_write = &write_dco,
.clock_sys = CHIPINFO_CLOCK_SYS_BC_2XX,
.features = 0
| CHIPINFO_FEATURE_LCFE
| CHIPINFO_FEATURE_QUICK_MEM_READ,
.power = {
.reg_mask = 0x00000,
.enable_lpm5 = 0x00000,
.disable_lpm5 = 0x00000,
.reg_mask_3v = 0x00000,
.enable_lpm5_3v = 0x00000,
.disable_lpm5_3v = 0x00000,
},
.memory = {
{
.name = "Main",
.type = CHIPINFO_MEMTYPE_FLASH,
.bits = 16,
.mapped = 1,
.size = 8192,
.offset = 0x0e000,
.seg_size = 512,
.bank_size = 0 /* no info */,
.banks = 1,
},
{
.name = "Info",
.type = CHIPINFO_MEMTYPE_FLASH,
.bits = 16,
.mapped = 1,
.size = 256,
.offset = 0x01000,
.seg_size = 64,
.bank_size = 0 /* no info */,
.banks = 4,
},
{
.name = "Bsl",
.type = CHIPINFO_MEMTYPE_FLASH,
.bits = 16,
.mapped = 1,
.size = 1024,
.offset = 0x00c00,
.seg_size = 512,
.bank_size = 0 /* no info */,
.banks = 4,
},
{
.name = "Ram",
.type = CHIPINFO_MEMTYPE_RAM,
.bits = 16,
.mapped = 1,
.size = 256,
.offset = 0x00200,
.seg_size = 1,
.bank_size = 0 /* no info */,
.banks = 1,
},
{
.name = "Peripheral16bit",
.type = CHIPINFO_MEMTYPE_REGISTER,
.bits = 16,
.mapped = 1,
.size = 256,
.offset = 0x00100,
.seg_size = 1,
.bank_size = 0 /* no info */,
.banks = 1,
},
{
.name = "Peripheral8bit",
.type = CHIPINFO_MEMTYPE_REGISTER,
.bits = 8,
.mapped = 1,
.size = 256,
.offset = 0x00000,
.seg_size = 1,
.bank_size = 0 /* no info */,
.banks = 1,
},
{0}
},
},
{
.name = "MSP430F2132",
.bits = 16,
.psa = CHIPINFO_PSA_ENHANCED,
.clock_control = 0x01,
.mclk_control = 0x00000000,
.clock_map = {
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
},
.id = {
.ver_id = 0x13f2,
.ver_sub_id = 0x0000,
.revision = 0x00,
.fab = 0x00,
.self = 0x0000,
.config = 0x02,
.fuses = 0x00,
.activation_key = 0x00000000,
},
.id_mask = {
.ver_id = 0xffff,
.ver_sub_id = 0x0000,
.revision = 0x00,
.fab = 0x00,
.self = 0x0000,
.config = 0x7f,
.fuses = 0x03,
.activation_key = 0x00000000,
},
.eem = { /* no info */ },
.voltage = {
.vcc_min = 1800,
.vcc_max = 3600,
.vcc_flash_min = 2200,
.vcc_secure_min = 2500,
.vpp_secure_min = 6000,
.vpp_secure_max = 7000,
.has_test_vpp = 1,
},
.v3_functions = {
},
.v3_erase = &erase_dco,
.v3_write = &write_dco,
.clock_sys = CHIPINFO_CLOCK_SYS_BC_2XX,
.features = 0
| CHIPINFO_FEATURE_LCFE
| CHIPINFO_FEATURE_QUICK_MEM_READ,
.power = {
.reg_mask = 0x00000,
.enable_lpm5 = 0x00000,
.disable_lpm5 = 0x00000,
.reg_mask_3v = 0x00000,
.enable_lpm5_3v = 0x00000,
.disable_lpm5_3v = 0x00000,
},
.memory = {
{
.name = "Main",
.type = CHIPINFO_MEMTYPE_FLASH,
.bits = 16,
.mapped = 1,
.size = 8192,
.offset = 0x0e000,
.seg_size = 512,
.bank_size = 0 /* no info */,
.banks = 1,
},
{
.name = "Info",
.type = CHIPINFO_MEMTYPE_FLASH,
.bits = 16,
.mapped = 1,
.size = 256,
.offset = 0x01000,
.seg_size = 64,
.bank_size = 0 /* no info */,
.banks = 4,
},
{
.name = "Bsl",
.type = CHIPINFO_MEMTYPE_FLASH,
.bits = 16,
.mapped = 1,
.size = 1024,
.offset = 0x00c00,
.seg_size = 512,
.bank_size = 0 /* no info */,
.banks = 4,
},
{
.name = "Ram",
.type = CHIPINFO_MEMTYPE_RAM,
.bits = 16,
.mapped = 1,
.size = 512,
.offset = 0x00200,
.seg_size = 1,
.bank_size = 0 /* no info */,
.banks = 1,
},
{
.name = "Peripheral16bit",
.type = CHIPINFO_MEMTYPE_REGISTER,
.bits = 16,
.mapped = 1,
.size = 256,
.offset = 0x00100,
.seg_size = 1,
.bank_size = 0 /* no info */,
.banks = 1,
},
{
.name = "Peripheral8bit",
.type = CHIPINFO_MEMTYPE_REGISTER,
.bits = 8,
.mapped = 1,
.size = 256,
.offset = 0x00000,
.seg_size = 1,
.bank_size = 0 /* no info */,
.banks = 1,
},
{0}
},
},
{
.name = "MSP430F2122",
.bits = 16,
.psa = CHIPINFO_PSA_ENHANCED,
.clock_control = 0x01,
.mclk_control = 0x00000000,
.clock_map = {
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
},
.id = {
.ver_id = 0x13f2,
.ver_sub_id = 0x0000,
.revision = 0x00,
.fab = 0x00,
.self = 0x0000,
.config = 0x02,
.fuses = 0x01,
.activation_key = 0x00000000,
},
.id_mask = {
.ver_id = 0xffff,
.ver_sub_id = 0x0000,
.revision = 0x00,
.fab = 0x00,
.self = 0x0000,
.config = 0x7f,
.fuses = 0x03,
.activation_key = 0x00000000,
},
.eem = { /* no info */ },
.voltage = {
.vcc_min = 1800,
.vcc_max = 3600,
.vcc_flash_min = 2200,
.vcc_secure_min = 2500,
.vpp_secure_min = 6000,
.vpp_secure_max = 7000,
.has_test_vpp = 1,
},
.v3_functions = {
},
.v3_erase = &erase_dco,
.v3_write = &write_dco,
.clock_sys = CHIPINFO_CLOCK_SYS_BC_2XX,
.features = 0
| CHIPINFO_FEATURE_LCFE
| CHIPINFO_FEATURE_QUICK_MEM_READ,
.power = {
.reg_mask = 0x00000,
.enable_lpm5 = 0x00000,
.disable_lpm5 = 0x00000,
.reg_mask_3v = 0x00000,
.enable_lpm5_3v = 0x00000,
.disable_lpm5_3v = 0x00000,
},
.memory = {
{
.name = "Main",
.type = CHIPINFO_MEMTYPE_FLASH,
.bits = 16,
.mapped = 1,
.size = 4096,
.offset = 0x0f000,
.seg_size = 512,
.bank_size = 0 /* no info */,
.banks = 1,
},
{
.name = "Info",
.type = CHIPINFO_MEMTYPE_FLASH,
.bits = 16,
.mapped = 1,
.size = 256,
.offset = 0x01000,
.seg_size = 64,
.bank_size = 0 /* no info */,
.banks = 4,
},
{
.name = "Bsl",
.type = CHIPINFO_MEMTYPE_FLASH,
.bits = 16,
.mapped = 1,
.size = 1024,
.offset = 0x00c00,
.seg_size = 512,
.bank_size = 0 /* no info */,
.banks = 4,
},
{
.name = "Ram",
.type = CHIPINFO_MEMTYPE_RAM,
.bits = 16,
.mapped = 1,
.size = 512,
.offset = 0x00200,
.seg_size = 1,
.bank_size = 0 /* no info */,
.banks = 1,
},
{
.name = "Peripheral16bit",
.type = CHIPINFO_MEMTYPE_REGISTER,
.bits = 16,
.mapped = 1,
.size = 256,
.offset = 0x00100,
.seg_size = 1,
.bank_size = 0 /* no info */,
.banks = 1,
},
{
.name = "Peripheral8bit",
.type = CHIPINFO_MEMTYPE_REGISTER,
.bits = 8,
.mapped = 1,
.size = 256,
.offset = 0x00000,
.seg_size = 1,
.bank_size = 0 /* no info */,
.banks = 1,
},
{0}
},
},
{
.name = "MSP430F2112",
.bits = 16,
.psa = CHIPINFO_PSA_ENHANCED,
.clock_control = 0x01,
.mclk_control = 0x00000000,
.clock_map = {
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
},
.id = {
.ver_id = 0x13f2,
.ver_sub_id = 0x0000,
.revision = 0x00,
.fab = 0x00,
.self = 0x0000,
.config = 0x02,
.fuses = 0x02,
.activation_key = 0x00000000,
},
.id_mask = {
.ver_id = 0xffff,
.ver_sub_id = 0x0000,
.revision = 0x00,
.fab = 0x00,
.self = 0x0000,
.config = 0x7f,
.fuses = 0x03,
.activation_key = 0x00000000,
},
.eem = { /* no info */ },
.voltage = {
.vcc_min = 1800,
.vcc_max = 3600,
.vcc_flash_min = 2200,
.vcc_secure_min = 2500,
.vpp_secure_min = 6000,
.vpp_secure_max = 7000,
.has_test_vpp = 1,
},
.v3_functions = {
},
.v3_erase = &erase_dco,
.v3_write = &write_dco,
.clock_sys = CHIPINFO_CLOCK_SYS_BC_2XX,
.features = 0
| CHIPINFO_FEATURE_LCFE
| CHIPINFO_FEATURE_QUICK_MEM_READ,
.power = {
.reg_mask = 0x00000,
.enable_lpm5 = 0x00000,
.disable_lpm5 = 0x00000,
.reg_mask_3v = 0x00000,
.enable_lpm5_3v = 0x00000,
.disable_lpm5_3v = 0x00000,
},
.memory = {
{
.name = "Main",
.type = CHIPINFO_MEMTYPE_FLASH,
.bits = 16,
.mapped = 1,
.size = 2048,
.offset = 0x0f800,
.seg_size = 512,
.bank_size = 0 /* no info */,
.banks = 1,
},
{
.name = "Info",
.type = CHIPINFO_MEMTYPE_FLASH,
.bits = 16,
.mapped = 1,
.size = 256,
.offset = 0x01000,
.seg_size = 64,
.bank_size = 0 /* no info */,
.banks = 4,
},
{
.name = "Bsl",
.type = CHIPINFO_MEMTYPE_FLASH,
.bits = 16,
.mapped = 1,
.size = 1024,
.offset = 0x00c00,
.seg_size = 512,
.bank_size = 0 /* no info */,
.banks = 4,
},
{
.name = "Ram",
.type = CHIPINFO_MEMTYPE_RAM,
.bits = 16,
.mapped = 1,
.size = 256,
.offset = 0x00200,
.seg_size = 1,
.bank_size = 0 /* no info */,
.banks = 1,
},
{
.name = "Peripheral16bit",
.type = CHIPINFO_MEMTYPE_REGISTER,
.bits = 16,
.mapped = 1,
.size = 256,
.offset = 0x00100,
.seg_size = 1,
.bank_size = 0 /* no info */,
.banks = 1,
},
{
.name = "Peripheral8bit",
.type = CHIPINFO_MEMTYPE_REGISTER,
.bits = 8,
.mapped = 1,
.size = 256,
.offset = 0x00000,
.seg_size = 1,
.bank_size = 0 /* no info */,
.banks = 1,
},
{0}
},
},
{
.name = "MSP430F41x",
.bits = 16,
.psa = CHIPINFO_PSA_REGULAR,
.clock_control = 0x01,
.mclk_control = 0x00000000,
.clock_map = {
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
},
.id = {
.ver_id = 0x13f4,
.ver_sub_id = 0x0000,
.revision = 0x02,
.fab = 0x40,
.self = 0x0000,
.config = 0x00,
.fuses = 0x00,
.activation_key = 0x00000000,
},
.id_mask = {
.ver_id = 0xffff,
.ver_sub_id = 0x0000,
.revision = 0xff,
.fab = 0xff,
.self = 0x0000,
.config = 0x00,
.fuses = 0x00,
.activation_key = 0x00000000,
},
.eem = { /* no info */ },
.voltage = {
.vcc_min = 1800,
.vcc_max = 3600,
.vcc_flash_min = 2700,
.vcc_secure_min = 2500,
.vpp_secure_min = 6000,
.vpp_secure_max = 7000,
.has_test_vpp = 0,
},
.v3_functions = {
[0x20] = 0x21,
[0x22] = 0x25,
},
.v3_erase = &erase_fll,
.v3_write = &write_fll,
.clock_sys = CHIPINFO_CLOCK_SYS_FLL_PLUS,
.features = 0
| CHIPINFO_FEATURE_SFLLDH
| CHIPINFO_FEATURE_JTAG
| CHIPINFO_FEATURE_INSTR,
.power = {
.reg_mask = 0x00000,
.enable_lpm5 = 0x00000,
.disable_lpm5 = 0x00000,
.reg_mask_3v = 0x00000,
.enable_lpm5_3v = 0x00000,
.disable_lpm5_3v = 0x00000,
},
.memory = {
{
.name = "Main",
.type = CHIPINFO_MEMTYPE_FLASH,
.bits = 16,
.mapped = 1,
.size = 8192,
.offset = 0x0e000,
.seg_size = 512,
.bank_size = 0 /* no info */,
.banks = 1,
},
{
.name = "Info",
.type = CHIPINFO_MEMTYPE_FLASH,
.bits = 16,
.mapped = 1,
.size = 256,
.offset = 0x01000,
.seg_size = 128,
.bank_size = 0 /* no info */,
.banks = 2,
},
{
.name = "Bsl",
.type = CHIPINFO_MEMTYPE_FLASH,
.bits = 16,
.mapped = 1,
.size = 1024,
.offset = 0x00c00,
.seg_size = 512,
.bank_size = 0 /* no info */,
.banks = 1,
},
{
.name = "Ram",
.type = CHIPINFO_MEMTYPE_RAM,
.bits = 16,
.mapped = 1,
.size = 256,
.offset = 0x00200,
.seg_size = 1,
.bank_size = 0 /* no info */,
.banks = 1,
},
{
.name = "Peripheral16bit",
.type = CHIPINFO_MEMTYPE_REGISTER,
.bits = 16,
.mapped = 1,
.size = 256,
.offset = 0x00100,
.seg_size = 1,
.bank_size = 0 /* no info */,
.banks = 1,
},
{
.name = "Lcd",
.type = CHIPINFO_MEMTYPE_RAM,
.bits = 16,
.mapped = 1,
.size = 13,
.offset = 0x00090,
.seg_size = 1,
.bank_size = 0 /* no info */,
.banks = 1,
},
{
.name = "Peripheral8bit",
.type = CHIPINFO_MEMTYPE_REGISTER,
.bits = 8,
.mapped = 1,
.size = 256,
.offset = 0x00000,
.seg_size = 1,
.bank_size = 0 /* no info */,
.banks = 1,
},
{0}
},
},
{
.name = "MSP430F5514",
.bits = 20,
.psa = CHIPINFO_PSA_REGULAR,
.clock_control = 0x02,
.mclk_control = 0x0000041f,
.clock_map = {
{0},
{0},
{0},
{"Comparator B", 0xa8},
{0},
{"RTC", 0x8a},
{"USCI3", 0x2b},
{"USCI2", 0x2a},
{"USCI1", 0x29},
{"USCI0", 0x28},
{"USB", 0x40},
{"Timer0_B7", 0x9d},
{"Timer2_A3", 0x8f},
{"Timer1_A3", 0x8e},
{"Timer0_A5", 0x91},
{"Watchdog Timer", 0x0a},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
},
.id = {
.ver_id = 0x1455,
.ver_sub_id = 0x0000,
.revision = 0x00,
.fab = 0x00,
.self = 0x0000,
.config = 0x00,
.fuses = 0x00,
.activation_key = 0x00000000,
},
.id_mask = {
.ver_id = 0xffff,
.ver_sub_id = 0xffff,
.revision = 0x00,
.fab = 0x00,
.self = 0x0000,
.config = 0x00,
.fuses = 0x00,
.activation_key = 0x00000000,
},
.eem = { /* no info */ },
.voltage = {
.vcc_min = 1800,
.vcc_max = 3600,
.vcc_flash_min = 1800,
.vcc_secure_min = 2500,
.vpp_secure_min = 6000,
.vpp_secure_max = 7000,
.has_test_vpp = 1,
},
.v3_functions = {
[0x09] = 0x38,
[0x12] = 0x3a,
[0x13] = 0x3b,
[0x14] = 0x3c,
[0x15] = 0x3d,
[0x16] = 0x3d,
[0x17] = 0x3e,
[0x18] = 0x3f,
[0x19] = 0x3f,
[0x1a] = 0x40,
[0x1c] = 0x41,
[0x1d] = 0x42,
[0x1e] = 0x43,
[0x1f] = 0x44,
[0x20] = 0x45,
[0x26] = 0x37,
[0x4a] = 0x4b,
},
.v3_erase = &erase_xv2,
.v3_write = &write_xv2,
.clock_sys = CHIPINFO_CLOCK_SYS_MOD_OSC,
.features = 0
| CHIPINFO_FEATURE_LCFE
| CHIPINFO_FEATURE_QUICK_MEM_READ
| CHIPINFO_FEATURE_1337,
.power = {
.reg_mask = 0x00000,
.enable_lpm5 = 0x00000,
.disable_lpm5 = 0x00000,
.reg_mask_3v = 0x00000,
.enable_lpm5_3v = 0x00000,
.disable_lpm5_3v = 0x00000,
},
.memory = {
{
.name = "Main",
.type = CHIPINFO_MEMTYPE_FLASH,
.bits = 16,
.mapped = 1,
.size = 65536,
.offset = 0x04400,
.seg_size = 512,
.bank_size = 0 /* no info */,
.banks = 2,
},
{
.name = "Ram",
.type = CHIPINFO_MEMTYPE_RAM,
.bits = 16,
.mapped = 1,
.size = 4096,
.offset = 0x02400,
.seg_size = 1,
.bank_size = 0 /* no info */,
.banks = 2,
},
{
.name = "UsbRam",
.type = CHIPINFO_MEMTYPE_RAM,
.bits = 16,
.mapped = 1,
.size = 2048,
.offset = 0x01c00,
.seg_size = 1,
.bank_size = 0 /* no info */,
.banks = 1,
},
{
.name = "BootCode",
.type = CHIPINFO_MEMTYPE_ROM,
.bits = 16,
.mapped = 1,
.size = 256,
.offset = 0x01a00,
.seg_size = 1,
.bank_size = 0 /* no info */,
.banks = 1,
},
{
.name = "Info",
.type = CHIPINFO_MEMTYPE_FLASH,
.bits = 16,
.mapped = 1,
.size = 512,
.offset = 0x01800,
.seg_size = 128,
.bank_size = 0 /* no info */,
.banks = 4,
},
{
.name = "Bsl",
.type = CHIPINFO_MEMTYPE_FLASH,
.bits = 16,
.mapped = 1,
.size = 2048,
.offset = 0x01000,
.seg_size = 512,
.bank_size = 0 /* no info */,
.banks = 4,
},
{
.name = "Peripheral16bit",
.type = CHIPINFO_MEMTYPE_REGISTER,
.bits = 16,
.mapped = 1,
.size = 4096,
.offset = 0x00000,
.seg_size = 1,
.bank_size = 0 /* no info */,
.banks = 1,
},
{0}
},
},
{
.name = "MSP430F5515",
.bits = 20,
.psa = CHIPINFO_PSA_REGULAR,
.clock_control = 0x02,
.mclk_control = 0x0000041f,
.clock_map = {
{0},
{0},
{0},
{"Comparator B", 0xa8},
{0},
{"RTC", 0x8a},
{"USCI3", 0x2b},
{"USCI2", 0x2a},
{"USCI1", 0x29},
{"USCI0", 0x28},
{"USB", 0x40},
{"Timer0_B7", 0x9d},
{"Timer2_A3", 0x8f},
{"Timer1_A3", 0x8e},
{"Timer0_A5", 0x91},
{"Watchdog Timer", 0x0a},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
},
.id = {
.ver_id = 0x1555,
.ver_sub_id = 0x0000,
.revision = 0x00,
.fab = 0x00,
.self = 0x0000,
.config = 0x00,
.fuses = 0x00,
.activation_key = 0x00000000,
},
.id_mask = {
.ver_id = 0xffff,
.ver_sub_id = 0xffff,
.revision = 0x00,
.fab = 0x00,
.self = 0x0000,
.config = 0x00,
.fuses = 0x00,
.activation_key = 0x00000000,
},
.eem = { /* no info */ },
.voltage = {
.vcc_min = 1800,
.vcc_max = 3600,
.vcc_flash_min = 1800,
.vcc_secure_min = 2500,
.vpp_secure_min = 6000,
.vpp_secure_max = 7000,
.has_test_vpp = 1,
},
.v3_functions = {
[0x09] = 0x38,
[0x12] = 0x3a,
[0x13] = 0x3b,
[0x14] = 0x3c,
[0x15] = 0x3d,
[0x16] = 0x3d,
[0x17] = 0x3e,
[0x18] = 0x3f,
[0x19] = 0x3f,
[0x1a] = 0x40,
[0x1c] = 0x41,
[0x1d] = 0x42,
[0x1e] = 0x43,
[0x1f] = 0x44,
[0x20] = 0x45,
[0x26] = 0x37,
[0x4a] = 0x4b,
},
.v3_erase = &erase_xv2,
.v3_write = &write_xv2,
.clock_sys = CHIPINFO_CLOCK_SYS_MOD_OSC,
.features = 0
| CHIPINFO_FEATURE_LCFE
| CHIPINFO_FEATURE_QUICK_MEM_READ
| CHIPINFO_FEATURE_1337,
.power = {
.reg_mask = 0x00000,
.enable_lpm5 = 0x00000,
.disable_lpm5 = 0x00000,
.reg_mask_3v = 0x00000,
.enable_lpm5_3v = 0x00000,
.disable_lpm5_3v = 0x00000,
},
.memory = {
{
.name = "Main",
.type = CHIPINFO_MEMTYPE_FLASH,
.bits = 16,
.mapped = 1,
.size = 65536,
.offset = 0x04400,
.seg_size = 512,
.bank_size = 0 /* no info */,
.banks = 2,
},
{
.name = "Ram",
.type = CHIPINFO_MEMTYPE_RAM,
.bits = 16,
.mapped = 1,
.size = 4096,
.offset = 0x02400,
.seg_size = 1,
.bank_size = 0 /* no info */,
.banks = 2,
},
{
.name = "UsbRam",
.type = CHIPINFO_MEMTYPE_RAM,
.bits = 16,
.mapped = 1,
.size = 2048,
.offset = 0x01c00,
.seg_size = 1,
.bank_size = 0 /* no info */,
.banks = 1,
},
{
.name = "BootCode",
.type = CHIPINFO_MEMTYPE_ROM,
.bits = 16,
.mapped = 1,
.size = 256,
.offset = 0x01a00,
.seg_size = 1,
.bank_size = 0 /* no info */,
.banks = 1,
},
{
.name = "Info",
.type = CHIPINFO_MEMTYPE_FLASH,
.bits = 16,
.mapped = 1,
.size = 512,
.offset = 0x01800,
.seg_size = 128,
.bank_size = 0 /* no info */,
.banks = 4,
},
{
.name = "Bsl",
.type = CHIPINFO_MEMTYPE_FLASH,
.bits = 16,
.mapped = 1,
.size = 2048,
.offset = 0x01000,
.seg_size = 512,
.bank_size = 0 /* no info */,
.banks = 4,
},
{
.name = "Peripheral16bit",
.type = CHIPINFO_MEMTYPE_REGISTER,
.bits = 16,
.mapped = 1,
.size = 4096,
.offset = 0x00000,
.seg_size = 1,
.bank_size = 0 /* no info */,
.banks = 1,
},
{0}
},
},
{
.name = "MSP430F5517",
.bits = 20,
.psa = CHIPINFO_PSA_REGULAR,
.clock_control = 0x02,
.mclk_control = 0x0000041f,
.clock_map = {
{0},
{0},
{0},
{"Comparator B", 0xa8},
{0},
{"RTC", 0x8a},
{"USCI3", 0x2b},
{"USCI2", 0x2a},
{"USCI1", 0x29},
{"USCI0", 0x28},
{"USB", 0x40},
{"Timer0_B7", 0x9d},
{"Timer2_A3", 0x8f},
{"Timer1_A3", 0x8e},
{"Timer0_A5", 0x91},
{"Watchdog Timer", 0x0a},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
},
.id = {
.ver_id = 0x1755,
.ver_sub_id = 0x0000,
.revision = 0x00,
.fab = 0x00,
.self = 0x0000,
.config = 0x00,
.fuses = 0x00,
.activation_key = 0x00000000,
},
.id_mask = {
.ver_id = 0xffff,
.ver_sub_id = 0xffff,
.revision = 0x00,
.fab = 0x00,
.self = 0x0000,
.config = 0x00,
.fuses = 0x00,
.activation_key = 0x00000000,
},
.eem = { /* no info */ },
.voltage = {
.vcc_min = 1800,
.vcc_max = 3600,
.vcc_flash_min = 1800,
.vcc_secure_min = 2500,
.vpp_secure_min = 6000,
.vpp_secure_max = 7000,
.has_test_vpp = 1,
},
.v3_functions = {
[0x09] = 0x38,
[0x12] = 0x3a,
[0x13] = 0x3b,
[0x14] = 0x3c,
[0x15] = 0x3d,
[0x16] = 0x3d,
[0x17] = 0x3e,
[0x18] = 0x3f,
[0x19] = 0x3f,
[0x1a] = 0x40,
[0x1c] = 0x41,
[0x1d] = 0x42,
[0x1e] = 0x43,
[0x1f] = 0x44,
[0x20] = 0x45,
[0x26] = 0x37,
[0x4a] = 0x4b,
},
.v3_erase = &erase_xv2,
.v3_write = &write_xv2,
.clock_sys = CHIPINFO_CLOCK_SYS_MOD_OSC,
.features = 0
| CHIPINFO_FEATURE_LCFE
| CHIPINFO_FEATURE_QUICK_MEM_READ
| CHIPINFO_FEATURE_1337,
.power = {
.reg_mask = 0x00000,
.enable_lpm5 = 0x00000,
.disable_lpm5 = 0x00000,
.reg_mask_3v = 0x00000,
.enable_lpm5_3v = 0x00000,
.disable_lpm5_3v = 0x00000,
},
.memory = {
{
.name = "Main",
.type = CHIPINFO_MEMTYPE_FLASH,
.bits = 16,
.mapped = 1,
.size = 98304,
.offset = 0x04400,
.seg_size = 512,
.bank_size = 0 /* no info */,
.banks = 3,
},
{
.name = "Ram",
.type = CHIPINFO_MEMTYPE_RAM,
.bits = 16,
.mapped = 1,
.size = 6144,
.offset = 0x02400,
.seg_size = 1,
.bank_size = 0 /* no info */,
.banks = 3,
},
{
.name = "UsbRam",
.type = CHIPINFO_MEMTYPE_RAM,
.bits = 16,
.mapped = 1,
.size = 2048,
.offset = 0x01c00,
.seg_size = 1,
.bank_size = 0 /* no info */,
.banks = 1,
},
{
.name = "BootCode",
.type = CHIPINFO_MEMTYPE_ROM,
.bits = 16,
.mapped = 1,
.size = 256,
.offset = 0x01a00,
.seg_size = 1,
.bank_size = 0 /* no info */,
.banks = 1,
},
{
.name = "Info",
.type = CHIPINFO_MEMTYPE_FLASH,
.bits = 16,
.mapped = 1,
.size = 512,
.offset = 0x01800,
.seg_size = 128,
.bank_size = 0 /* no info */,
.banks = 4,
},
{
.name = "Bsl",
.type = CHIPINFO_MEMTYPE_FLASH,
.bits = 16,
.mapped = 1,
.size = 2048,
.offset = 0x01000,
.seg_size = 512,
.bank_size = 0 /* no info */,
.banks = 4,
},
{
.name = "Peripheral16bit",
.type = CHIPINFO_MEMTYPE_REGISTER,
.bits = 16,
.mapped = 1,
.size = 4096,
.offset = 0x00000,
.seg_size = 1,
.bank_size = 0 /* no info */,
.banks = 1,
},
{0}
},
},
{
.name = "MSP430F5418",
.bits = 20,
.psa = CHIPINFO_PSA_REGULAR,
.clock_control = 0x02,
.mclk_control = 0x0000040f,
.clock_map = {
{0},
{0},
{0},
{0},
{"ADC12A", 0xd8},
{"RTC", 0x8a},
{0},
{0},
{"USCI1", 0x29},
{"USCI0", 0x28},
{0},
{0},
{"Timer0_B7", 0x9d},
{"Timer1_A3", 0x8e},
{"Timer0_A5", 0x91},
{"Watchdog Timer", 0x0a},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
},
.id = {
.ver_id = 0x1854,
.ver_sub_id = 0x0000,
.revision = 0x00,
.fab = 0x00,
.self = 0x0000,
.config = 0x00,
.fuses = 0x00,
.activation_key = 0x00000000,
},
.id_mask = {
.ver_id = 0xffff,
.ver_sub_id = 0xffff,
.revision = 0x00,
.fab = 0x00,
.self = 0x0000,
.config = 0x00,
.fuses = 0x00,
.activation_key = 0x00000000,
},
.eem = { /* no info */ },
.voltage = {
.vcc_min = 1800,
.vcc_max = 3600,
.vcc_flash_min = 1800,
.vcc_secure_min = 2500,
.vpp_secure_min = 6000,
.vpp_secure_max = 7000,
.has_test_vpp = 1,
},
.v3_functions = {
[0x09] = 0x38,
[0x12] = 0x3a,
[0x13] = 0x3b,
[0x14] = 0x3c,
[0x15] = 0x3d,
[0x16] = 0x3d,
[0x17] = 0x3e,
[0x18] = 0x3f,
[0x19] = 0x3f,
[0x1a] = 0x40,
[0x1c] = 0x41,
[0x1d] = 0x42,
[0x1e] = 0x43,
[0x1f] = 0x44,
[0x20] = 0x45,
[0x26] = 0x37,
[0x4a] = 0x4b,
[0x4d] = 0x59,
},
.v3_erase = &erase_xv2,
.v3_write = &write_xv2,
.clock_sys = CHIPINFO_CLOCK_SYS_MOD_OSC,
.features = 0
| CHIPINFO_FEATURE_LCFE
| CHIPINFO_FEATURE_QUICK_MEM_READ
| CHIPINFO_FEATURE_1337,
.power = {
.reg_mask = 0x00000,
.enable_lpm5 = 0x00000,
.disable_lpm5 = 0x00000,
.reg_mask_3v = 0x00000,
.enable_lpm5_3v = 0x00000,
.disable_lpm5_3v = 0x00000,
},
.memory = {
{
.name = "Main",
.type = CHIPINFO_MEMTYPE_FLASH,
.bits = 16,
.mapped = 1,
.size = 131072,
.offset = 0x05c00,
.seg_size = 512,
.bank_size = 0 /* no info */,
.banks = 4,
},
{
.name = "Ram",
.type = CHIPINFO_MEMTYPE_RAM,
.bits = 16,
.mapped = 1,
.size = 16384,
.offset = 0x01c00,
.seg_size = 1,
.bank_size = 0 /* no info */,
.banks = 1,
},
{
.name = "BootCode",
.type = CHIPINFO_MEMTYPE_ROM,
.bits = 16,
.mapped = 1,
.size = 256,
.offset = 0x01a00,
.seg_size = 1,
.bank_size = 0 /* no info */,
.banks = 1,
},
{
.name = "Info",
.type = CHIPINFO_MEMTYPE_FLASH,
.bits = 16,
.mapped = 1,
.size = 512,
.offset = 0x01800,
.seg_size = 128,
.bank_size = 0 /* no info */,
.banks = 4,
},
{
.name = "Bsl",
.type = CHIPINFO_MEMTYPE_FLASH,
.bits = 16,
.mapped = 1,
.size = 2048,
.offset = 0x01000,
.seg_size = 512,
.bank_size = 0 /* no info */,
.banks = 4,
},
{
.name = "Peripheral16bit",
.type = CHIPINFO_MEMTYPE_REGISTER,
.bits = 16,
.mapped = 1,
.size = 4096,
.offset = 0x00000,
.seg_size = 1,
.bank_size = 0 /* no info */,
.banks = 1,
},
{0}
},
},
{
.name = "MSP430F5419",
.bits = 20,
.psa = CHIPINFO_PSA_REGULAR,
.clock_control = 0x02,
.mclk_control = 0x0000040f,
.clock_map = {
{0},
{0},
{0},
{0},
{"ADC12A", 0xd8},
{"RTC", 0x8a},
{"USCI3", 0x2b},
{"USCI2", 0x2a},
{"USCI1", 0x29},
{"USCI0", 0x28},
{0},
{0},
{"Timer0_B7", 0x9d},
{"Timer1_A3", 0x8e},
{"Timer0_A5", 0x91},
{"Watchdog Timer", 0x0a},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
},
.id = {
.ver_id = 0x1954,
.ver_sub_id = 0x0000,
.revision = 0x00,
.fab = 0x00,
.self = 0x0000,
.config = 0x00,
.fuses = 0x00,
.activation_key = 0x00000000,
},
.id_mask = {
.ver_id = 0xffff,
.ver_sub_id = 0xffff,
.revision = 0x00,
.fab = 0x00,
.self = 0x0000,
.config = 0x00,
.fuses = 0x00,
.activation_key = 0x00000000,
},
.eem = { /* no info */ },
.voltage = {
.vcc_min = 1800,
.vcc_max = 3600,
.vcc_flash_min = 1800,
.vcc_secure_min = 2500,
.vpp_secure_min = 6000,
.vpp_secure_max = 7000,
.has_test_vpp = 1,
},
.v3_functions = {
[0x09] = 0x38,
[0x12] = 0x3a,
[0x13] = 0x3b,
[0x14] = 0x3c,
[0x15] = 0x3d,
[0x16] = 0x3d,
[0x17] = 0x3e,
[0x18] = 0x3f,
[0x19] = 0x3f,
[0x1a] = 0x40,
[0x1c] = 0x41,
[0x1d] = 0x42,
[0x1e] = 0x43,
[0x1f] = 0x44,
[0x20] = 0x45,
[0x26] = 0x37,
[0x4a] = 0x4b,
[0x4d] = 0x59,
},
.v3_erase = &erase_xv2,
.v3_write = &write_xv2,
.clock_sys = CHIPINFO_CLOCK_SYS_MOD_OSC,
.features = 0
| CHIPINFO_FEATURE_LCFE
| CHIPINFO_FEATURE_QUICK_MEM_READ
| CHIPINFO_FEATURE_1337,
.power = {
.reg_mask = 0x00000,
.enable_lpm5 = 0x00000,
.disable_lpm5 = 0x00000,
.reg_mask_3v = 0x00000,
.enable_lpm5_3v = 0x00000,
.disable_lpm5_3v = 0x00000,
},
.memory = {
{
.name = "Main",
.type = CHIPINFO_MEMTYPE_FLASH,
.bits = 16,
.mapped = 1,
.size = 131072,
.offset = 0x05c00,
.seg_size = 512,
.bank_size = 0 /* no info */,
.banks = 4,
},
{
.name = "Ram",
.type = CHIPINFO_MEMTYPE_RAM,
.bits = 16,
.mapped = 1,
.size = 16384,
.offset = 0x01c00,
.seg_size = 1,
.bank_size = 0 /* no info */,
.banks = 1,
},
{
.name = "BootCode",
.type = CHIPINFO_MEMTYPE_ROM,
.bits = 16,
.mapped = 1,
.size = 256,
.offset = 0x01a00,
.seg_size = 1,
.bank_size = 0 /* no info */,
.banks = 1,
},
{
.name = "Info",
.type = CHIPINFO_MEMTYPE_FLASH,
.bits = 16,
.mapped = 1,
.size = 512,
.offset = 0x01800,
.seg_size = 128,
.bank_size = 0 /* no info */,
.banks = 4,
},
{
.name = "Bsl",
.type = CHIPINFO_MEMTYPE_FLASH,
.bits = 16,
.mapped = 1,
.size = 2048,
.offset = 0x01000,
.seg_size = 512,
.bank_size = 0 /* no info */,
.banks = 4,
},
{
.name = "Peripheral16bit",
.type = CHIPINFO_MEMTYPE_REGISTER,
.bits = 16,
.mapped = 1,
.size = 4096,
.offset = 0x00000,
.seg_size = 1,
.bank_size = 0 /* no info */,
.banks = 1,
},
{0}
},
},
{
.name = "MSP430F5519",
.bits = 20,
.psa = CHIPINFO_PSA_REGULAR,
.clock_control = 0x02,
.mclk_control = 0x0000041f,
.clock_map = {
{0},
{0},
{0},
{"Comparator B", 0xa8},
{0},
{"RTC", 0x8a},
{"USCI3", 0x2b},
{"USCI2", 0x2a},
{"USCI1", 0x29},
{"USCI0", 0x28},
{"USB", 0x40},
{"Timer0_B7", 0x9d},
{"Timer2_A3", 0x8f},
{"Timer1_A3", 0x8e},
{"Timer0_A5", 0x91},
{"Watchdog Timer", 0x0a},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
},
.id = {
.ver_id = 0x1955,
.ver_sub_id = 0x0000,
.revision = 0x00,
.fab = 0x00,
.self = 0x0000,
.config = 0x00,
.fuses = 0x00,
.activation_key = 0x00000000,
},
.id_mask = {
.ver_id = 0xffff,
.ver_sub_id = 0xffff,
.revision = 0x00,
.fab = 0x00,
.self = 0x0000,
.config = 0x00,
.fuses = 0x00,
.activation_key = 0x00000000,
},
.eem = { /* no info */ },
.voltage = {
.vcc_min = 1800,
.vcc_max = 3600,
.vcc_flash_min = 1800,
.vcc_secure_min = 2500,
.vpp_secure_min = 6000,
.vpp_secure_max = 7000,
.has_test_vpp = 1,
},
.v3_functions = {
[0x09] = 0x38,
[0x12] = 0x3a,
[0x13] = 0x3b,
[0x14] = 0x3c,
[0x15] = 0x3d,
[0x16] = 0x3d,
[0x17] = 0x3e,
[0x18] = 0x3f,
[0x19] = 0x3f,
[0x1a] = 0x40,
[0x1c] = 0x41,
[0x1d] = 0x42,
[0x1e] = 0x43,
[0x1f] = 0x44,
[0x20] = 0x45,
[0x26] = 0x37,
[0x4a] = 0x4b,
},
.v3_erase = &erase_xv2,
.v3_write = &write_xv2,
.clock_sys = CHIPINFO_CLOCK_SYS_MOD_OSC,
.features = 0
| CHIPINFO_FEATURE_LCFE
| CHIPINFO_FEATURE_QUICK_MEM_READ
| CHIPINFO_FEATURE_1337,
.power = {
.reg_mask = 0x00000,
.enable_lpm5 = 0x00000,
.disable_lpm5 = 0x00000,
.reg_mask_3v = 0x00000,
.enable_lpm5_3v = 0x00000,
.disable_lpm5_3v = 0x00000,
},
.memory = {
{
.name = "Main",
.type = CHIPINFO_MEMTYPE_FLASH,
.bits = 16,
.mapped = 1,
.size = 131072,
.offset = 0x04400,
.seg_size = 512,
.bank_size = 0 /* no info */,
.banks = 4,
},
{
.name = "Ram",
.type = CHIPINFO_MEMTYPE_RAM,
.bits = 16,
.mapped = 1,
.size = 8192,
.offset = 0x02400,
.seg_size = 1,
.bank_size = 0 /* no info */,
.banks = 4,
},
{
.name = "UsbRam",
.type = CHIPINFO_MEMTYPE_RAM,
.bits = 16,
.mapped = 1,
.size = 2048,
.offset = 0x01c00,
.seg_size = 1,
.bank_size = 0 /* no info */,
.banks = 1,
},
{
.name = "BootCode",
.type = CHIPINFO_MEMTYPE_ROM,
.bits = 16,
.mapped = 1,
.size = 256,
.offset = 0x01a00,
.seg_size = 1,
.bank_size = 0 /* no info */,
.banks = 1,
},
{
.name = "Info",
.type = CHIPINFO_MEMTYPE_FLASH,
.bits = 16,
.mapped = 1,
.size = 512,
.offset = 0x01800,
.seg_size = 128,
.bank_size = 0 /* no info */,
.banks = 4,
},
{
.name = "Bsl",
.type = CHIPINFO_MEMTYPE_FLASH,
.bits = 16,
.mapped = 1,
.size = 2048,
.offset = 0x01000,
.seg_size = 512,
.bank_size = 0 /* no info */,
.banks = 4,
},
{
.name = "Peripheral16bit",
.type = CHIPINFO_MEMTYPE_REGISTER,
.bits = 16,
.mapped = 1,
.size = 4096,
.offset = 0x00000,
.seg_size = 1,
.bank_size = 0 /* no info */,
.banks = 1,
},
{0}
},
},
{
.name = "MSP430I204x_I203x_I202x",
.bits = 16,
.psa = CHIPINFO_PSA_REGULAR,
.clock_control = 0x03,
.mclk_control = 0x00000000,
.clock_map = {
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
},
.id = {
.ver_id = 0x2040,
.ver_sub_id = 0x0000,
.revision = 0x00,
.fab = 0x00,
.self = 0x0000,
.config = 0x00,
.fuses = 0x00,
.activation_key = 0x00000000,
},
.id_mask = {
.ver_id = 0xffff,
.ver_sub_id = 0x0000,
.revision = 0x00,
.fab = 0x00,
.self = 0x0000,
.config = 0x00,
.fuses = 0x00,
.activation_key = 0x00000000,
},
.eem = { /* no info */ },
.voltage = {
.vcc_min = 1800,
.vcc_max = 3600,
.vcc_flash_min = 2200,
.vcc_secure_min = 2500,
.vpp_secure_min = 6000,
.vpp_secure_max = 7000,
.has_test_vpp = 1,
},
.v3_functions = {
[0x09] = 0x58,
[0x4a] = 0x54,
[0x4d] = 0x53,
},
.v3_erase = &erase_dco,
.v3_write = &write_430i,
.clock_sys = CHIPINFO_CLOCK_SYS_BC_2XX,
.features = 0
| CHIPINFO_FEATURE_LCFE
| CHIPINFO_FEATURE_QUICK_MEM_READ,
.power = {
.reg_mask = 0x00000,
.enable_lpm5 = 0x00000,
.disable_lpm5 = 0x00000,
.reg_mask_3v = 0x00000,
.enable_lpm5_3v = 0x00000,
.disable_lpm5_3v = 0x00000,
},
.memory = {
{
.name = "Main",
.type = CHIPINFO_MEMTYPE_FLASH,
.bits = 16,
.mapped = 1,
.size = 32768,
.offset = 0x08000,
.seg_size = 1024,
.bank_size = 0 /* no info */,
.banks = 1,
},
{
.name = "Info",
.type = CHIPINFO_MEMTYPE_FLASH,
.bits = 16,
.mapped = 1,
.size = 1024,
.offset = 0x01000,
.seg_size = 1024,
.bank_size = 0 /* no info */,
.banks = 1,
},
{
.name = "Bsl",
.type = CHIPINFO_MEMTYPE_FLASH,
.bits = 16,
.mapped = 1,
.size = 1024,
.offset = 0x00c00,
.seg_size = 512,
.bank_size = 0 /* no info */,
.banks = 4,
},
{
.name = "Ram",
.type = CHIPINFO_MEMTYPE_RAM,
.bits = 16,
.mapped = 1,
.size = 2048,
.offset = 0x00200,
.seg_size = 1,
.bank_size = 0 /* no info */,
.banks = 1,
},
{
.name = "Peripheral16bit",
.type = CHIPINFO_MEMTYPE_REGISTER,
.bits = 16,
.mapped = 1,
.size = 256,
.offset = 0x00100,
.seg_size = 1,
.bank_size = 0 /* no info */,
.banks = 1,
},
{
.name = "Peripheral8bit",
.type = CHIPINFO_MEMTYPE_REGISTER,
.bits = 8,
.mapped = 1,
.size = 256,
.offset = 0x00000,
.seg_size = 1,
.bank_size = 0 /* no info */,
.banks = 1,
},
{0}
},
},
{
.name = "MSP430F5521",
.bits = 20,
.psa = CHIPINFO_PSA_REGULAR,
.clock_control = 0x02,
.mclk_control = 0x0000041f,
.clock_map = {
{0},
{0},
{0},
{"Comparator B", 0xa8},
{"ADC12A", 0xd8},
{"RTC", 0x8a},
{"USCI3", 0x2b},
{"USCI2", 0x2a},
{"USCI1", 0x29},
{"USCI0", 0x28},
{"USB", 0x40},
{"Timer0_B7", 0x9d},
{"Timer2_A3", 0x8f},
{"Timer1_A3", 0x8e},
{"Timer0_A5", 0x91},
{"Watchdog Timer", 0x0a},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
},
.id = {
.ver_id = 0x2155,
.ver_sub_id = 0x0000,
.revision = 0x00,
.fab = 0x00,
.self = 0x0000,
.config = 0x00,
.fuses = 0x00,
.activation_key = 0x00000000,
},
.id_mask = {
.ver_id = 0xffff,
.ver_sub_id = 0xffff,
.revision = 0x00,
.fab = 0x00,
.self = 0x0000,
.config = 0x00,
.fuses = 0x00,
.activation_key = 0x00000000,
},
.eem = { /* no info */ },
.voltage = {
.vcc_min = 1800,
.vcc_max = 3600,
.vcc_flash_min = 1800,
.vcc_secure_min = 2500,
.vpp_secure_min = 6000,
.vpp_secure_max = 7000,
.has_test_vpp = 1,
},
.v3_functions = {
[0x09] = 0x38,
[0x12] = 0x3a,
[0x13] = 0x3b,
[0x14] = 0x3c,
[0x15] = 0x3d,
[0x16] = 0x3d,
[0x17] = 0x3e,
[0x18] = 0x3f,
[0x19] = 0x3f,
[0x1a] = 0x40,
[0x1c] = 0x41,
[0x1d] = 0x42,
[0x1e] = 0x43,
[0x1f] = 0x44,
[0x20] = 0x45,
[0x26] = 0x37,
[0x4a] = 0x4b,
},
.v3_erase = &erase_xv2,
.v3_write = &write_xv2,
.clock_sys = CHIPINFO_CLOCK_SYS_MOD_OSC,
.features = 0
| CHIPINFO_FEATURE_LCFE
| CHIPINFO_FEATURE_QUICK_MEM_READ
| CHIPINFO_FEATURE_1337,
.power = {
.reg_mask = 0x00000,
.enable_lpm5 = 0x00000,
.disable_lpm5 = 0x00000,
.reg_mask_3v = 0x00000,
.enable_lpm5_3v = 0x00000,
.disable_lpm5_3v = 0x00000,
},
.memory = {
{
.name = "Main",
.type = CHIPINFO_MEMTYPE_FLASH,
.bits = 16,
.mapped = 1,
.size = 32768,
.offset = 0x08000,
.seg_size = 512,
.bank_size = 0 /* no info */,
.banks = 2,
},
{
.name = "Ram",
.type = CHIPINFO_MEMTYPE_RAM,
.bits = 16,
.mapped = 1,
.size = 8192,
.offset = 0x02400,
.seg_size = 1,
.bank_size = 0 /* no info */,
.banks = 4,
},
{
.name = "UsbRam",
.type = CHIPINFO_MEMTYPE_RAM,
.bits = 16,
.mapped = 1,
.size = 2048,
.offset = 0x01c00,
.seg_size = 1,
.bank_size = 0 /* no info */,
.banks = 1,
},
{
.name = "BootCode",
.type = CHIPINFO_MEMTYPE_ROM,
.bits = 16,
.mapped = 1,
.size = 256,
.offset = 0x01a00,
.seg_size = 1,
.bank_size = 0 /* no info */,
.banks = 1,
},
{
.name = "Info",
.type = CHIPINFO_MEMTYPE_FLASH,
.bits = 16,
.mapped = 1,
.size = 512,
.offset = 0x01800,
.seg_size = 128,
.bank_size = 0 /* no info */,
.banks = 4,
},
{
.name = "Bsl",
.type = CHIPINFO_MEMTYPE_FLASH,
.bits = 16,
.mapped = 1,
.size = 2048,
.offset = 0x01000,
.seg_size = 512,
.bank_size = 0 /* no info */,
.banks = 4,
},
{
.name = "Peripheral16bit",
.type = CHIPINFO_MEMTYPE_REGISTER,
.bits = 16,
.mapped = 1,
.size = 4096,
.offset = 0x00000,
.seg_size = 1,
.bank_size = 0 /* no info */,
.banks = 1,
},
{0}
},
},
{
.name = "MSP430F5522",
.bits = 20,
.psa = CHIPINFO_PSA_REGULAR,
.clock_control = 0x02,
.mclk_control = 0x0000041f,
.clock_map = {
{0},
{0},
{0},
{"Comparator B", 0xa8},
{"ADC12A", 0xd8},
{"RTC", 0x8a},
{"USCI3", 0x2b},
{"USCI2", 0x2a},
{"USCI1", 0x29},
{"USCI0", 0x28},
{"USB", 0x40},
{"Timer0_B7", 0x9d},
{"Timer2_A3", 0x8f},
{"Timer1_A3", 0x8e},
{"Timer0_A5", 0x91},
{"Watchdog Timer", 0x0a},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
},
.id = {
.ver_id = 0x2255,
.ver_sub_id = 0x0000,
.revision = 0x00,
.fab = 0x00,
.self = 0x0000,
.config = 0x00,
.fuses = 0x00,
.activation_key = 0x00000000,
},
.id_mask = {
.ver_id = 0xffff,
.ver_sub_id = 0xffff,
.revision = 0x00,
.fab = 0x00,
.self = 0x0000,
.config = 0x00,
.fuses = 0x00,
.activation_key = 0x00000000,
},
.eem = { /* no info */ },
.voltage = {
.vcc_min = 1800,
.vcc_max = 3600,
.vcc_flash_min = 1800,
.vcc_secure_min = 2500,
.vpp_secure_min = 6000,
.vpp_secure_max = 7000,
.has_test_vpp = 1,
},
.v3_functions = {
[0x09] = 0x38,
[0x12] = 0x3a,
[0x13] = 0x3b,
[0x14] = 0x3c,
[0x15] = 0x3d,
[0x16] = 0x3d,
[0x17] = 0x3e,
[0x18] = 0x3f,
[0x19] = 0x3f,
[0x1a] = 0x40,
[0x1c] = 0x41,
[0x1d] = 0x42,
[0x1e] = 0x43,
[0x1f] = 0x44,
[0x20] = 0x45,
[0x26] = 0x37,
[0x4a] = 0x4b,
},
.v3_erase = &erase_xv2,
.v3_write = &write_xv2,
.clock_sys = CHIPINFO_CLOCK_SYS_MOD_OSC,
.features = 0
| CHIPINFO_FEATURE_LCFE
| CHIPINFO_FEATURE_QUICK_MEM_READ
| CHIPINFO_FEATURE_1337,
.power = {
.reg_mask = 0x00000,
.enable_lpm5 = 0x00000,
.disable_lpm5 = 0x00000,
.reg_mask_3v = 0x00000,
.enable_lpm5_3v = 0x00000,
.disable_lpm5_3v = 0x00000,
},
.memory = {
{
.name = "Main",
.type = CHIPINFO_MEMTYPE_FLASH,
.bits = 16,
.mapped = 1,
.size = 32768,
.offset = 0x08000,
.seg_size = 512,
.bank_size = 0 /* no info */,
.banks = 2,
},
{
.name = "Ram",
.type = CHIPINFO_MEMTYPE_RAM,
.bits = 16,
.mapped = 1,
.size = 8192,
.offset = 0x02400,
.seg_size = 1,
.bank_size = 0 /* no info */,
.banks = 4,
},
{
.name = "UsbRam",
.type = CHIPINFO_MEMTYPE_RAM,
.bits = 16,
.mapped = 1,
.size = 2048,
.offset = 0x01c00,
.seg_size = 1,
.bank_size = 0 /* no info */,
.banks = 1,
},
{
.name = "BootCode",
.type = CHIPINFO_MEMTYPE_ROM,
.bits = 16,
.mapped = 1,
.size = 256,
.offset = 0x01a00,
.seg_size = 1,
.bank_size = 0 /* no info */,
.banks = 1,
},
{
.name = "Info",
.type = CHIPINFO_MEMTYPE_FLASH,
.bits = 16,
.mapped = 1,
.size = 512,
.offset = 0x01800,
.seg_size = 128,
.bank_size = 0 /* no info */,
.banks = 4,
},
{
.name = "Bsl",
.type = CHIPINFO_MEMTYPE_FLASH,
.bits = 16,
.mapped = 1,
.size = 2048,
.offset = 0x01000,
.seg_size = 512,
.bank_size = 0 /* no info */,
.banks = 4,
},
{
.name = "Peripheral16bit",
.type = CHIPINFO_MEMTYPE_REGISTER,
.bits = 16,
.mapped = 1,
.size = 4096,
.offset = 0x00000,
.seg_size = 1,
.bank_size = 0 /* no info */,
.banks = 1,
},
{0}
},
},
{
.name = "MSP430F12x",
.bits = 16,
.psa = CHIPINFO_PSA_REGULAR,
.clock_control = 0x00,
.mclk_control = 0x00000000,
.clock_map = {
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
{0},
},
.id = {
.ver_id = 0x23f1,
.ver_sub_id = 0x0000,
.revision = 0x00,
.fab = 0x00,
.self = 0x0000,
.config = 0x00,
.fuses = 0x00,
.activation_key = 0x00000000,
},
.id_mask = {
<