From 236b90b4447c8c17b0f351c22b4c2635c8e376d7 Mon Sep 17 00:00:00 2001 From: travisutk Date: Thu, 3 Feb 2011 21:44:18 +0000 Subject: [PATCH] Bringing back MSP430X2 JTAG. Not there yet. git-svn-id: https://svn.code.sf.net/p/goodfet/code/trunk@872 12e2690d-a6be-4b82-a7b7-67c4a43b65c8 --- firmware/Makefile | 2 +- firmware/apps/jtag/jtag.c | 7 +++++-- firmware/apps/jtag/jtag430.c | 20 +++++--------------- firmware/apps/jtag/jtag430x2.c | 11 +++++++++++ firmware/include/jtag.h | 4 ++++ firmware/include/jtag430.h | 4 +++- 6 files changed, 29 insertions(+), 19 deletions(-) diff --git a/firmware/Makefile b/firmware/Makefile index 41f8dab..86e794b 100644 --- a/firmware/Makefile +++ b/firmware/Makefile @@ -91,7 +91,7 @@ CC=msp430-gcc -Wall -Os -g -mmcu=$(mcu) -D$(mcu) -D$(platform) -Dplatform=$(plat #config = monitor sbw chipcon nrf ccspi spi jtagarm7 jtag430 jtag430x2 avr # New default. -config = monitor chipcon nrf spi jtagarm7 jtag430 avr +config = monitor chipcon nrf spi jtagarm7 jtag430 jtag430x2 avr # Build the needed list of app and lib object files from the config diff --git a/firmware/apps/jtag/jtag.c b/firmware/apps/jtag/jtag.c index 050e205..bda0fac 100644 --- a/firmware/apps/jtag/jtag.c +++ b/firmware/apps/jtag/jtag.c @@ -12,8 +12,11 @@ //! Handles a monitor command. void jtag_handle_fn(uint8_t const app, - uint8_t const verb, - uint32_t const len); + uint8_t const verb, + uint32_t const len); + +//! JTAG device ID. +unsigned char jtagid=0; // define the jtag app's app_t app_t const jtag_app = { diff --git a/firmware/apps/jtag/jtag430.c b/firmware/apps/jtag/jtag430.c index cd8b6b8..8b90f51 100644 --- a/firmware/apps/jtag/jtag430.c +++ b/firmware/apps/jtag/jtag430.c @@ -174,8 +174,6 @@ void jtag430_writeflash(unsigned int adr, unsigned int data){ //! Power-On Reset void jtag430_por(){ - unsigned int jtagid; - // Perform Reset jtag_ir_shift8(IR_CNTRL_SIG_16BIT); jtag_dr_shift16(0x2C01); // apply @@ -373,17 +371,6 @@ void jtag430_setinstrfetch(){ } } -//! Grab the core ID. -unsigned int jtag430_coreid(){ - jtag_ir_shift8(IR_COREIP_ID); - return jtag_dr_shift16(0); -} - -//! Grab the device ID. -unsigned long jtag430_deviceid(){ - jtag_ir_shift8(IR_DEVICE_ID); - return jtag_dr_shift20(0); -} @@ -551,11 +538,14 @@ void jtag430_handle_fn(uint8_t const app, txdata(app,verb,2); break; case JTAG430_COREIP_ID: - cmddataword[0]=jtag430_coreid(); + //cmddataword[0]=jtag430_coreid(); + cmddataword[0]=0xdead; txdata(app,verb,2); break; case JTAG430_DEVICE_ID: - cmddatalong[0]=jtag430_deviceid(); + //cmddatalong[0]=jtag430_deviceid(); + cmddataword[0]=0xdead; + cmddataword[0]=0xbeef; txdata(app,verb,4); break; default: diff --git a/firmware/apps/jtag/jtag430x2.c b/firmware/apps/jtag/jtag430x2.c index 445bb10..685484e 100644 --- a/firmware/apps/jtag/jtag430x2.c +++ b/firmware/apps/jtag/jtag430x2.c @@ -31,6 +31,17 @@ app_t const jtag430x2_app = { }; +//! Grab the core ID. +unsigned int jtag430_coreid(){ + jtag_ir_shift8(IR_COREIP_ID); + return jtag_dr_shift16(0); +} + +//! Grab the device ID. +unsigned long jtag430_deviceid(){ + jtag_ir_shift8(IR_DEVICE_ID); + return jtag_dr_shift20(0); +} //! Write data to address diff --git a/firmware/include/jtag.h b/firmware/include/jtag.h index 5735a95..7aa1856 100644 --- a/firmware/include/jtag.h +++ b/firmware/include/jtag.h @@ -10,6 +10,10 @@ #define JTAG 0x10 +//! JTAG device ID. +extern unsigned char jtagid; + + // Generic Commands //! Shift n bytes. diff --git a/firmware/include/jtag430.h b/firmware/include/jtag430.h index 91c4eba..6ac6fcd 100644 --- a/firmware/include/jtag430.h +++ b/firmware/include/jtag430.h @@ -20,8 +20,10 @@ extern unsigned int jtag430mode; // JTAG430 Commands -//! Start JTAG, unique to the '430. +//! Start JTAG, unique to the '430. Deprecated. void jtag430_start(); +//! Same thing, but also for '430X2. +unsigned char jtag430x2_start(); //! Reset the TAP state machine, check the fuse. void jtag430_resettap(); -- 2.20.1