diff -rU5 binutils-2.16.1/bfd/archures.c binutils-2.16.1-patched/bfd/archures.c --- binutils-2.16.1/bfd/archures.c 2005-01-17 22:08:03.000000000 +0800 +++ binutils-2.16.1-patched/bfd/archures.c 2005-08-17 13:02:51.120454400 +0800 @@ -344,10 +344,11 @@ .#define bfd_mach_msp12 12 .#define bfd_mach_msp13 13 .#define bfd_mach_msp14 14 .#define bfd_mach_msp15 15 .#define bfd_mach_msp16 16 +.#define bfd_mach_msp210 210 .#define bfd_mach_msp31 31 .#define bfd_mach_msp32 32 .#define bfd_mach_msp33 33 .#define bfd_mach_msp41 41 .#define bfd_mach_msp42 42 diff -rU5 binutils-2.16.1/bfd/bfd-in2.h binutils-2.16.1-patched/bfd/bfd-in2.h --- binutils-2.16.1/bfd/bfd-in2.h 2005-03-03 05:23:20.000000000 +0800 +++ binutils-2.16.1-patched/bfd/bfd-in2.h 2005-08-17 14:14:46.525702400 +0800 @@ -1788,11 +1788,12 @@ #define bfd_mach_msp110 110 #define bfd_mach_msp12 12 #define bfd_mach_msp13 13 #define bfd_mach_msp14 14 #define bfd_mach_msp15 15 -#define bfd_mach_msp16 16 +#define bfd_mach_msp16 16 +#define bfd_mach_msp210 210 #define bfd_mach_msp31 31 #define bfd_mach_msp32 32 #define bfd_mach_msp33 33 #define bfd_mach_msp41 41 #define bfd_mach_msp42 42 diff -rU5 binutils-2.16.1/bfd/cpu-msp430.c binutils-2.16.1-patched/bfd/cpu-msp430.c --- binutils-2.16.1/bfd/cpu-msp430.c 2003-11-04 19:30:54.000000000 +0800 +++ binutils-2.16.1-patched/bfd/cpu-msp430.c 2005-08-17 13:02:51.230612800 +0800 @@ -62,27 +62,30 @@ N (16, bfd_mach_msp15, "msp:15", FALSE, & arch_info_struct[6]), /* msp430x16x. */ N (16, bfd_mach_msp16, "msp:16", FALSE, & arch_info_struct[7]), + /* msp430x21x1. */ + N (16, bfd_mach_msp210, "msp:210", FALSE, & arch_info_struct[8]), + /* msp430x31x. */ - N (16, bfd_mach_msp31, "msp:31", FALSE, & arch_info_struct[8]), + N (16, bfd_mach_msp31, "msp:31", FALSE, & arch_info_struct[9]), /* msp430x32x. */ - N (16, bfd_mach_msp32, "msp:32", FALSE, & arch_info_struct[9]), + N (16, bfd_mach_msp32, "msp:32", FALSE, & arch_info_struct[10]), /* msp430x33x. */ - N (16, bfd_mach_msp33, "msp:33", FALSE, & arch_info_struct[10]), + N (16, bfd_mach_msp33, "msp:33", FALSE, & arch_info_struct[11]), /* msp430x41x. */ - N (16, bfd_mach_msp41, "msp:41", FALSE, & arch_info_struct[11]), + N (16, bfd_mach_msp41, "msp:41", FALSE, & arch_info_struct[12]), /* msp430x42x. */ - N (16, bfd_mach_msp42, "msp:42", FALSE, & arch_info_struct[12]), + N (16, bfd_mach_msp42, "msp:42", FALSE, & arch_info_struct[13]), /* msp430x43x. */ - N (16, bfd_mach_msp43, "msp:43", FALSE, & arch_info_struct[13]), + N (16, bfd_mach_msp43, "msp:43", FALSE, & arch_info_struct[14]), /* msp430x44x. */ N (16, bfd_mach_msp43, "msp:44", FALSE, NULL) }; diff -rU5 binutils-2.16.1/bfd/doc/archures.texi binutils-2.16.1-patched/bfd/doc/archures.texi --- binutils-2.16.1/bfd/doc/archures.texi 2005-03-09 01:19:41.000000000 +0800 +++ binutils-2.16.1-patched/bfd/doc/archures.texi 2005-08-17 14:26:02.697990400 +0800 @@ -309,11 +309,12 @@ #define bfd_mach_msp110 110 #define bfd_mach_msp12 12 #define bfd_mach_msp13 13 #define bfd_mach_msp14 14 #define bfd_mach_msp15 15 -#define bfd_mach_msp16 16 +#define bfd_mach_msp16 16 +#define bfd_mach_msp16 210 #define bfd_mach_msp31 31 #define bfd_mach_msp32 32 #define bfd_mach_msp33 33 #define bfd_mach_msp41 41 #define bfd_mach_msp42 42 diff -rU5 binutils-2.16.1/bfd/elf32-msp430.c binutils-2.16.1-patched/bfd/elf32-msp430.c --- binutils-2.16.1/bfd/elf32-msp430.c 2004-10-21 23:28:23.000000000 +0800 +++ binutils-2.16.1-patched/bfd/elf32-msp430.c 2005-08-17 13:02:51.300713600 +0800 @@ -568,10 +568,14 @@ case bfd_mach_msp16: val = E_MSP430_MACH_MSP430x16; break; + case bfd_mach_msp210: + val = E_MSP430_MACH_MSP430x21x1; + break; + case bfd_mach_msp31: val = E_MSP430_MACH_MSP430x31; break; case bfd_mach_msp32: @@ -645,10 +649,14 @@ case E_MSP430_MACH_MSP430x16: e_set = bfd_mach_msp16; break; + case E_MSP430_MACH_MSP430x21x1: + e_set = bfd_mach_msp210; + break; + case E_MSP430_MACH_MSP430x31: e_set = bfd_mach_msp31; break; case E_MSP430_MACH_MSP430x32: diff -rU5 binutils-2.16.1/gas/config/tc-msp430.c binutils-2.16.1-patched/gas/config/tc-msp430.c --- binutils-2.16.1/gas/config/tc-msp430.c 2005-02-23 20:28:05.000000000 +0800 +++ binutils-2.16.1-patched/gas/config/tc-msp430.c 2005-08-17 13:06:58.015472000 +0800 @@ -203,10 +203,11 @@ #define MSP430_ISA_12 12 #define MSP430_ISA_13 13 #define MSP430_ISA_14 14 #define MSP430_ISA_15 15 #define MSP430_ISA_16 16 +#define MSP430_ISA_210 210 #define MSP430_ISA_31 31 #define MSP430_ISA_32 32 #define MSP430_ISA_33 33 #define MSP430_ISA_41 41 #define MSP430_ISA_42 42 @@ -238,10 +239,13 @@ {"msp430x1331", MSP430_ISA_13, bfd_mach_msp13}, {"msp430x1351", MSP430_ISA_13, bfd_mach_msp13}, {"msp430x147", MSP430_ISA_14, bfd_mach_msp14}, {"msp430x148", MSP430_ISA_14, bfd_mach_msp14}, {"msp430x149", MSP430_ISA_14, bfd_mach_msp14}, + {"msp430x1471", MSP430_ISA_14, bfd_mach_msp14}, + {"msp430x1481", MSP430_ISA_14, bfd_mach_msp14}, + {"msp430x1491", MSP430_ISA_14, bfd_mach_msp14}, {"msp430x155", MSP430_ISA_15, bfd_mach_msp15}, {"msp430x156", MSP430_ISA_15, bfd_mach_msp15}, {"msp430x157", MSP430_ISA_15, bfd_mach_msp15}, {"msp430x167", MSP430_ISA_16, bfd_mach_msp16}, @@ -249,10 +253,15 @@ {"msp430x169", MSP430_ISA_16, bfd_mach_msp16}, {"msp430x1610", MSP430_ISA_16, bfd_mach_msp16}, {"msp430x1611", MSP430_ISA_16, bfd_mach_msp16}, {"msp430x1612", MSP430_ISA_16, bfd_mach_msp16}, + {"msp430x2101", MSP430_ISA_210, bfd_mach_msp210}, + {"msp430x2111", MSP430_ISA_210, bfd_mach_msp210}, + {"msp430x2121", MSP430_ISA_210, bfd_mach_msp210}, + {"msp430x2131", MSP430_ISA_210, bfd_mach_msp210}, + {"msp430x311", MSP430_ISA_31, bfd_mach_msp31}, {"msp430x312", MSP430_ISA_31, bfd_mach_msp31}, {"msp430x313", MSP430_ISA_31, bfd_mach_msp31}, {"msp430x314", MSP430_ISA_31, bfd_mach_msp31}, {"msp430x315", MSP430_ISA_31, bfd_mach_msp31}, @@ -264,10 +273,18 @@ {"msp430x412", MSP430_ISA_41, bfd_mach_msp41}, {"msp430x413", MSP430_ISA_41, bfd_mach_msp41}, {"msp430x415", MSP430_ISA_41, bfd_mach_msp41}, {"msp430x417", MSP430_ISA_41, bfd_mach_msp41}, + {"msp430x423", MSP430_ISA_42, bfd_mach_msp42}, + {"msp430x425", MSP430_ISA_42, bfd_mach_msp42}, + {"msp430x427", MSP430_ISA_42, bfd_mach_msp42}, + + {"msp430x4230", MSP430_ISA_42, bfd_mach_msp42}, + {"msp430x4250", MSP430_ISA_42, bfd_mach_msp42}, + {"msp430x4270", MSP430_ISA_42, bfd_mach_msp42}, + {"msp430xE423", MSP430_ISA_42, bfd_mach_msp42}, {"msp430xE425", MSP430_ISA_42, bfd_mach_msp42}, {"msp430xE427", MSP430_ISA_42, bfd_mach_msp42}, {"msp430xW423", MSP430_ISA_42, bfd_mach_msp42}, @@ -731,24 +748,28 @@ { fprintf (stream, _("MSP430 options:\n" " -mmcu=[msp430-name] select microcontroller type\n" " msp430x110 msp430x112\n" - " msp430x1101 msp430x1111\n" - " msp430x1121 msp430x1122 msp430x1132\n" + " msp430x1101 msp430x1111 msp430x1121\n" + " msp430x1122 msp430x1132\n" " msp430x122 msp430x123\n" " msp430x1222 msp430x1232\n" " msp430x133 msp430x135\n" " msp430x1331 msp430x1351\n" " msp430x147 msp430x148 msp430x149\n" + " msp430x1471 msp430x1481 msp430x1491\n" " msp430x155 msp430x156 msp430x157\n" " msp430x167 msp430x168 msp430x169\n" " msp430x1610 msp430x1611 msp430x1612\n" + " msp430x2101 msp430x2111 msp430x2121 msp430x2131\n" " msp430x311 msp430x312 msp430x313 msp430x314 msp430x315\n" " msp430x323 msp430x325\n" " msp430x336 msp430x337\n" " msp430x412 msp430x413 msp430x415 msp430x417\n" + " msp430x423 msp430x425 msp430427\n" + " msp430x4250 msp430x4260 msp4304270\n" " msp430xE423 msp430xE425 msp430E427\n" " msp430xW423 msp430xW425 msp430W427\n" " msp430xG437 msp430xG438 msp430G439\n" " msp430x435 msp430x436 msp430x437\n" " msp430x447 msp430x448 msp430x449\n")); diff -rU5 binutils-2.16.1/include/elf/msp430.h binutils-2.16.1-patched/include/elf/msp430.h --- binutils-2.16.1/include/elf/msp430.h 2005-03-03 19:58:08.000000000 +0800 +++ binutils-2.16.1-patched/include/elf/msp430.h 2005-08-17 13:02:51.480972800 +0800 @@ -31,10 +31,11 @@ #define E_MSP430_MACH_MSP430x12 12 #define E_MSP430_MACH_MSP430x13 13 #define E_MSP430_MACH_MSP430x14 14 #define E_MSP430_MACH_MSP430x15 15 #define E_MSP430_MACH_MSP430x16 16 +#define E_MSP430_MACH_MSP430x21x1 210 #define E_MSP430_MACH_MSP430x31 31 #define E_MSP430_MACH_MSP430x32 32 #define E_MSP430_MACH_MSP430x33 33 #define E_MSP430_MACH_MSP430x41 41 #define E_MSP430_MACH_MSP430x42 42 diff -rU5 binutils-2.16.1/ld/emulparams/msp430all.sh binutils-2.16.1-patched/ld/emulparams/msp430all.sh --- binutils-2.16.1/ld/emulparams/msp430all.sh 2004-08-25 20:54:10.000000000 +0800 +++ binutils-2.16.1-patched/ld/emulparams/msp430all.sh 2005-08-17 13:08:52.359891200 +0800 @@ -308,10 +308,61 @@ RAM_SIZE=0x0800 STACK=0xa00 fi +if [ "${MSP430_NAME}" = "msp430x1471" ] ; then +ARCH=msp:14 +MACHINE= +SCRIPT_NAME=elf32msp430 +OUTPUT_FORMAT="elf32-msp430" +MAXPAGESIZE=1 +EMBEDDED=yes +TEMPLATE_NAME=generic + +ROM_START=0x8000 +ROM_SIZE=0x7fe0 +RAM_START=0x0200 +RAM_SIZE=1K + +STACK=0x600 +fi + +if [ "${MSP430_NAME}" = "msp430x1481" ] ; then +ARCH=msp:14 +MACHINE= +SCRIPT_NAME=elf32msp430 +OUTPUT_FORMAT="elf32-msp430" +MAXPAGESIZE=1 +EMBEDDED=yes +TEMPLATE_NAME=generic + +ROM_START=0x4000 +ROM_SIZE=0xbfe0 +RAM_START=0x0200 +RAM_SIZE=0x0800 + +STACK=0xa00 +fi + +if [ "${MSP430_NAME}" = "msp430x1491" ] ; then +ARCH=msp:14 +MACHINE= +SCRIPT_NAME=elf32msp430 +OUTPUT_FORMAT="elf32-msp430" +MAXPAGESIZE=1 +EMBEDDED=yes +TEMPLATE_NAME=generic + +ROM_START=0x1100 +ROM_SIZE=0xeee0 +RAM_START=0x0200 +RAM_SIZE=0x0800 + +STACK=0xa00 +fi + if [ "${MSP430_NAME}" = "msp430x155" ] ; then ARCH=msp:15 MACHINE= SCRIPT_NAME=elf32msp430 OUTPUT_FORMAT="elf32-msp430" @@ -461,10 +512,78 @@ RAM_SIZE=0x1400 STACK=0x2500 fi +if [ "${MSP430_NAME}" = "msp430x2101" ] ; then +ARCH=msp:210 +MACHINE= +SCRIPT_NAME=elf32msp430 +OUTPUT_FORMAT="elf32-msp430" +MAXPAGESIZE=1 +EMBEDDED=yes +TEMPLATE_NAME=generic + +ROM_START=0xfc00 +ROM_SIZE=0x3e0 +RAM_START=0x0200 +RAM_SIZE=128 + +STACK=0x280 +fi + +if [ "${MSP430_NAME}" = "msp430x2111" ] ; then +ARCH=msp:210 +MACHINE= +SCRIPT_NAME=elf32msp430 +OUTPUT_FORMAT="elf32-msp430" +MAXPAGESIZE=1 +EMBEDDED=yes +TEMPLATE_NAME=generic + +ROM_START=0xf800 +ROM_SIZE=0x7e0 +RAM_START=0x0200 +RAM_SIZE=128 + +STACK=0x280 +fi + +if [ "${MSP430_NAME}" = "msp430x2121" ] ; then +ARCH=msp:210 +MACHINE= +SCRIPT_NAME=elf32msp430 +OUTPUT_FORMAT="elf32-msp430" +MAXPAGESIZE=1 +EMBEDDED=yes +TEMPLATE_NAME=generic + +ROM_START=0xf000 +ROM_SIZE=0xfe0 +RAM_START=0x0200 +RAM_SIZE=256 + +STACK=0x300 +fi + +if [ "${MSP430_NAME}" = "msp430x2131" ] ; then +ARCH=msp:210 +MACHINE= +SCRIPT_NAME=elf32msp430 +OUTPUT_FORMAT="elf32-msp430" +MAXPAGESIZE=1 +EMBEDDED=yes +TEMPLATE_NAME=generic + +ROM_START=0xe000 +ROM_SIZE=0x1fe0 +RAM_START=0x0200 +RAM_SIZE=256 + +STACK=0x300 +fi + if [ "${MSP430_NAME}" = "msp430x311" ] ; then ARCH=msp:31 MACHINE= SCRIPT_NAME=elf32msp430_3 OUTPUT_FORMAT="elf32-msp430" @@ -682,10 +801,112 @@ RAM_SIZE=1024 STACK=0x600 fi +if [ "${MSP430_NAME}" = "msp430x423" ] ; then +ARCH=msp:42 +MACHINE= +SCRIPT_NAME=elf32msp430 +OUTPUT_FORMAT="elf32-msp430" +MAXPAGESIZE=1 +EMBEDDED=yes +TEMPLATE_NAME=generic + +ROM_START=0xe000 +ROM_SIZE=0x1fe0 +RAM_START=0x0200 +RAM_SIZE=256 + +STACK=0x300 +fi + +if [ "${MSP430_NAME}" = "msp430x425" ] ; then +ARCH=msp:42 +MACHINE= +SCRIPT_NAME=elf32msp430 +OUTPUT_FORMAT="elf32-msp430" +MAXPAGESIZE=1 +EMBEDDED=yes +TEMPLATE_NAME=generic + +ROM_START=0xc000 +ROM_SIZE=0x3fe0 +RAM_START=0x0200 +RAM_SIZE=512 + +STACK=0x400 +fi + +if [ "${MSP430_NAME}" = "msp430x427" ] ; then +ARCH=msp:42 +MACHINE= +SCRIPT_NAME=elf32msp430 +OUTPUT_FORMAT="elf32-msp430" +MAXPAGESIZE=1 +EMBEDDED=yes +TEMPLATE_NAME=generic + +ROM_START=0x8000 +ROM_SIZE=0x7fe0 +RAM_START=0x0200 +RAM_SIZE=1024 + +STACK=0x600 +fi + +if [ "${MSP430_NAME}" = "msp430x4250" ] ; then +ARCH=msp:42 +MACHINE= +SCRIPT_NAME=elf32msp430 +OUTPUT_FORMAT="elf32-msp430" +MAXPAGESIZE=1 +EMBEDDED=yes +TEMPLATE_NAME=generic + +ROM_START=0xc000 +ROM_SIZE=0x3fe0 +RAM_START=0x0200 +RAM_SIZE=256 + +STACK=0x300 +fi + +if [ "${MSP430_NAME}" = "msp430x4260" ] ; then +ARCH=msp:42 +MACHINE= +SCRIPT_NAME=elf32msp430 +OUTPUT_FORMAT="elf32-msp430" +MAXPAGESIZE=1 +EMBEDDED=yes +TEMPLATE_NAME=generic + +ROM_START=0xa000 +ROM_SIZE=0x5fe0 +RAM_START=0x0200 +RAM_SIZE=256 + +STACK=0x300 +fi + +if [ "${MSP430_NAME}" = "msp430x4270" ] ; then +ARCH=msp:42 +MACHINE= +SCRIPT_NAME=elf32msp430 +OUTPUT_FORMAT="elf32-msp430" +MAXPAGESIZE=1 +EMBEDDED=yes +TEMPLATE_NAME=generic + +ROM_START=0x8000 +ROM_SIZE=0x7fe0 +RAM_START=0x0200 +RAM_SIZE=256 + +STACK=0x300 +fi + if [ "${MSP430_NAME}" = "msp430x435" ] ; then ARCH=msp:43 MACHINE= SCRIPT_NAME=elf32msp430 OUTPUT_FORMAT="elf32-msp430"