X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=firmware%2Finclude%2Fjtag.h;h=f08ec854672460ac28b0176283d8883a6de14766;hb=d5cda2101dbfcb7d9868e907f2564c990f3fc763;hp=a681e261a488ad3c5b3f3ce362c519e9c4439c93;hpb=3e4369fde16445c994da1b1efb332704aad0716d;p=goodfet diff --git a/firmware/include/jtag.h b/firmware/include/jtag.h index a681e26..f08ec85 100644 --- a/firmware/include/jtag.h +++ b/firmware/include/jtag.h @@ -1,3 +1,7 @@ +/*! \file jtag.h + \author Travis Goodspeed + \brief JTAG handler functions. +*/ #include #include @@ -20,9 +24,12 @@ unsigned long jtagtransn(unsigned long word, unsigned char jtag_ir_shift8(unsigned char); //! Shift 16 bits of the DR. unsigned int jtag_dr_shift16(unsigned int); +//! Shift 20 bits of the DR, MSP430 specific. +unsigned long jtag_dr_shift20(unsigned long in); //! Stop JTAG, release pins void jtag_stop(); +//! Setup the JTAG pin directions. void jtagsetup(); // JTAG430 Commands @@ -126,3 +133,31 @@ extern int savedtclk; #define MSP430JTAGID 0x89 //MSP430X2 only #define MSP430X2JTAGID 0x91 + +//! Syncs a POR. +unsigned int jtag430x2_syncpor(); +//! Executes an MSP430X2 POR +unsigned int jtag430x2_por(); + + +//JTAG commands +#define JTAG_IR_SHIFT 0x80 +#define JTAG_DR_SHIFT 0x81 +#define JTAG_DR_SHIFT20 0x91 + + +//JTAG430 commands +#define JTAG430_HALTCPU 0xA0 +#define JTAG430_RELEASECPU 0xA1 +#define JTAG430_SETINSTRFETCH 0xC1 +#define JTAG430_SETPC 0xC2 +#define JTAG430_WRITEMEM 0xE0 +#define JTAG430_WRITEFLASH 0xE1 +#define JTAG430_READMEM 0xE2 +#define JTAG430_ERASEFLASH 0xE3 +#define JTAG430_ERASECHECK 0xE4 +#define JTAG430_VERIFYMEM 0xE5 +#define JTAG430_BLOWFUSE 0xE6 +#define JTAG430_ISFUSEBLOWN 0xE7 +#define JTAG430_COREIP_ID 0xF0 +#define JTAG430_DEVICE_ID 0xF1