#Define extra modules here.
moreapps?=apps/i2c/i2c.o apps/chipcon/chipcon.o apps/glitch/glitch.o apps/jtag/sbw.o
-apps= $(moreapps) apps/monitor/monitor.o apps/spi/spi.o apps/jtag/jtag.o apps/jtag/jtag430.o apps/jtag/jtag430x2.o apps/avr/avr.o
+apps= $(moreapps) apps/monitor/monitor.o apps/spi/spi.o apps/jtag/jtag.o apps/jtag/jtag430.o apps/jtag/jtag430x2.o apps/avr/avr.o apps/jtag/ejtag.c
libs= lib/$(mcu).o lib/command.o apps/jtag/jtag430asm.o
app= goodfet
--- /dev/null
+/*! \file ejtag.c
+ \author Travis Goodspeed <travis at radiantmachines.com>
+ \brief MIPS EJTAG (32-bit)
+*/
+
+#include "platform.h"
+#include "command.h"
+#include "jtag.h"
+
+//! Handles MIPS EJTAG commands. Forwards others to JTAG.
+void ejtaghandle(unsigned char app,
+ unsigned char verb,
+ unsigned long len){
+
+ switch(verb){
+ case START:
+ cmddata[0]=jtag_ir_shift8(IR_BYPASS);
+ txdata(app,verb,1);
+ break;
+ case STOP:
+ txdata(app,verb,0);
+ break;
+ case PEEK:
+ //WRITEME
+ case POKE:
+ //WRITEME
+ default:
+ jtaghandle(app,verb,len);
+ }
+}
case JTAG:\r
jtaghandle(app,verb,len);\r
break;\r
+ case EJTAG:\r
+ ejtaghandle(app,verb,len);\r
+ break;\r
case JTAG430: //Also JTAG430X, JTAG430X2\r
jtag430x2handle(app,verb,len);\r
break;\r
#define I2CAPP 0x02
#define JTAG 0x10
#define JTAG430 0x11
+#define EJTAG 0x12
#define CHIPCON 0x30
#define SIF 0x31
#define AVR 0x32
void cchandle(unsigned char, unsigned char, unsigned long) WEAKDEF;
void jtaghandle(unsigned char, unsigned char, unsigned long);
void jtag430handle(unsigned char, unsigned char, unsigned long);
+void ejtaghandle(unsigned char, unsigned char, unsigned long);
+
void jtag430x2handle(unsigned char app, unsigned char verb,
unsigned long len);
+
void avrhandle(unsigned char app,
unsigned char verb,
unsigned long len);
--- /dev/null
+/*! \file ejtag.h
+ \author Travis Goodspeed <travis at radiantmachines.com>
+ \brief MIPS EJTAG IR/DR definitions
+*/
+
+
+/* The following are standard EJTAG IR values. TCBCONTROL values,
+ reserved values, and device-specific values have been ommitted.
+ */
+#define EJTAG_IR_IDCODE 0x01
+#define EJTAG_IR_IMPCODE 0x03
+#define EJTAG_IR_ADDRESS 0x08
+#define EJTAG_IR_DATA 0x09
+#define EJTAG_IR_CONTROL 0x0A
+#define EJTAG_IR_ALL 0x0B
+#define EJTAG_IR_EJTAGBOOT 0x0C
+#define EJTAG_IR_NORMALBOOT 0x0D
+#define EJTAG_IR_FASTDATA 0x0E
+#define EJTAG_IR_PCSAMPLE 0x14
+#define EJTAG_IR_BYPASS 0xFF
+
//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