X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=firmware%2Finclude%2Fjtag.h;h=432c23d67f91b9379e0db17874d5ee4a3f7e7059;hb=ac438c880b976512eb377806fa0f470bf390fdde;hp=f08ec854672460ac28b0176283d8883a6de14766;hpb=6dc88d2f1713d2bf9f2fabb5fbfb9f235a679b2f;p=goodfet diff --git a/firmware/include/jtag.h b/firmware/include/jtag.h index f08ec85..432c23d 100644 --- a/firmware/include/jtag.h +++ b/firmware/include/jtag.h @@ -3,6 +3,9 @@ \brief JTAG handler functions. */ +#ifndef JTAG_H +#define JTAG_H + #include #include #include @@ -20,6 +23,8 @@ extern unsigned int jtag430mode; //! Shift n bytes. unsigned long jtagtransn(unsigned long word, unsigned int bitcount); +//! Shift the address width. +unsigned long jtag_dr_shiftadr(unsigned long in); //! Shift 8 bits of the IR. unsigned char jtag_ir_shift8(unsigned char); //! Shift 16 bits of the DR. @@ -104,8 +109,12 @@ extern int savedtclk; #define SAVETCLK savedtclk=P5OUT&TCLK; #define RESTORETCLK if(savedtclk) P5OUT|=TCLK; else P5OUT&=~TCLK +//Replace every "CLRTCK SETTCK" with this. +#define TCKTOCK CLRTCK,SETTCK + //16-bit MSP430 JTAG commands, bit-swapped +//Rewrite these with MSP430 prefix. #define IR_CNTRL_SIG_16BIT 0xC8 // 0x13 #define IR_CNTRL_SIG_CAPTURE 0x28 // 0x14 #define IR_CNTRL_SIG_RELEASE 0xA8 // 0x15 @@ -138,7 +147,8 @@ extern int savedtclk; unsigned int jtag430x2_syncpor(); //! Executes an MSP430X2 POR unsigned int jtag430x2_por(); - +//! Power-On Reset +void jtag430_por(); //JTAG commands #define JTAG_IR_SHIFT 0x80 @@ -147,17 +157,6 @@ unsigned int jtag430x2_por(); //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 +#include "jtag430.h" + +#endif