00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 
00028 #ifndef _PP_JTAG_H
00029 #define _PP_JTAG_H
00030 
00031 #include "jtag.h"
00032 
00034 class PPJTAG : public JTAGControl {
00035 public:
00036         virtual bool init(int argc, char **argv);
00037 
00038         virtual void ireg(unsigned char *data);
00039 
00040         virtual void dreg(unsigned char *data, unsigned char length, bool writeOnly=false);
00041 
00042         virtual void jtagReset(void);
00043 
00044         virtual void cpuReset(bool state);
00045 
00046         virtual void trst(bool state);
00047 
00048         virtual void idle(unsigned int nbTCK);
00049 
00050         virtual void flushQueue(void) {}
00051 
00052         virtual const char *getName(void) const { return "pp"; }
00053 
00054         PPJTAG();
00055 
00056 private:
00058         unsigned short port;
00059         unsigned char permBits, portVal;
00060         int jtagRestarted;
00061 
00062         
00063         
00064         unsigned char readJTAG();
00065         void writeJTAG(unsigned char data);
00066         void jtagReg(unsigned char *_data, unsigned char length);
00067 };
00068 
00069 #endif // _PP_JTAG_H
00070