X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=firmware%2Finclude%2Fjtag.h;h=c1abdf3647f70b09f33297f7957504973b815ec5;hb=0fb25630e9970a4e6d18e190c484f654490565b0;hp=17833d66a3bf6784dd9791199242d476697bbccb;hpb=a653ba1562dc444e4be791e22264a89a3c6b4a19;p=goodfet diff --git a/firmware/include/jtag.h b/firmware/include/jtag.h index 17833d6..c1abdf3 100644 --- a/firmware/include/jtag.h +++ b/firmware/include/jtag.h @@ -4,8 +4,18 @@ #include +extern unsigned int drwidth; + +#define MSP430MODE 0 +#define MSP430XMODE 1 +#define MSP430X2MODE 2 +extern unsigned int jtag430mode; + // Generic Commands +//! Shift n bytes. +unsigned long jtagtransn(unsigned long word, + unsigned int bitcount); //! Shift 8 bits of the IR. unsigned char jtag_ir_shift8(unsigned char); //! Shift 16 bits of the DR. @@ -13,6 +23,7 @@ unsigned int jtag_dr_shift16(unsigned int); //! Stop JTAG, release pins void jtag_stop(); +void jtagsetup(); // JTAG430 Commands @@ -21,6 +32,9 @@ void jtag430_start(); //! Reset the TAP state machine, check the fuse. void jtag430_resettap(); +//! Defined in jtag430asm.S +void jtag430_tclk_flashpulses(int); + //High-level Macros follow //! Write data to address. void jtag430_writemem(unsigned int adr, unsigned int data); @@ -83,7 +97,8 @@ extern int savedtclk; #define SAVETCLK savedtclk=P5OUT&TCLK; #define RESTORETCLK if(savedtclk) P5OUT|=TCLK; else P5OUT&=~TCLK -//JTAG commands, bit-swapped + +//16-bit MSP430 JTAG commands, bit-swapped #define IR_CNTRL_SIG_16BIT 0xC8 // 0x13 #define IR_CNTRL_SIG_CAPTURE 0x28 // 0x14 #define IR_CNTRL_SIG_RELEASE 0xA8 // 0x15