X-Git-Url: http://git.rot13.org/?p=goodfet;a=blobdiff_plain;f=firmware%2Finclude%2Fcommand.h;h=4eda2177801b79107923ca97a2b2f2471a23279d;hp=e99a396002ac7dfcc79e27559fa2e5a20be27ccf;hb=e2a75fc68bc3cedaadb2db57b9e579a0f4468380;hpb=6c9b0c0ee024ae117e2b99698fab53556a25eda1 diff --git a/firmware/include/command.h b/firmware/include/command.h index e99a396..4eda217 100644 --- a/firmware/include/command.h +++ b/firmware/include/command.h @@ -3,8 +3,19 @@ \brief Command codes and buffers. */ + +//Types +#define u8 unsigned char +#define u16 unsigned int +#define u32 unsigned long + + +#ifndef CMDDATALEN +#define CMDDATALEN 0x204 +#endif + //! Global data buffer. -extern unsigned char cmddata[0x100]; +extern unsigned char cmddata[CMDDATALEN]; extern unsigned char silent; #define cmddataword ((unsigned int*) cmddata) @@ -41,34 +52,7 @@ extern unsigned char silent; #define MONITOR_SIZEBUF 0xC2 -//CHIPCON commands -#define CC_CHIP_ERASE 0x80 -#define CC_WR_CONFIG 0x81 -#define CC_RD_CONFIG 0x82 -#define CC_GET_PC 0x83 -#define CC_READ_STATUS 0x84 -#define CC_SET_HW_BRKPNT 0x85 -#define CC_HALT 0x86 -#define CC_RESUME 0x87 -#define CC_DEBUG_INSTR 0x88 -#define CC_STEP_INSTR 0x89 -#define CC_STEP_REPLACE 0x8a -#define CC_GET_CHIP_ID 0x8b -//CHIPCON macros -#define CC_READ_CODE_MEMORY 0x90 -#define CC_READ_XDATA_MEMORY 0x91 -#define CC_WRITE_XDATA_MEMORY 0x92 -#define CC_SET_PC 0x93 -#define CC_CLOCK_INIT 0x94 -#define CC_WRITE_FLASH_PAGE 0x95 -#define CC_READ_FLASH_PAGE 0x96 -#define CC_MASS_ERASE_FLASH 0x97 -#define CC_PROGRAM_FLASH 0x98 - -//JTAG commands -#define JTAG_IR_SHIFT 0x80 -#define JTAG_DR_SHIFT 0x81 -#define JTAG_DR_SHIFT20 0x91 + //SPI commands #define SPI_JEDEC 0x80 @@ -78,35 +62,41 @@ extern unsigned char silent; #define OCT_CMP 0x90 #define OCT_RES 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 + +//! Handle a plugin, weak-linked to error. +extern int pluginhandle(unsigned char app, + unsigned char verb, + unsigned int len) + __attribute__ ((weak)); + //! Handle a command. Defined in goodfet.c void handle(unsigned char app, unsigned char verb, - unsigned char len); - + unsigned long len); +//! Transmit a header. +void txhead(unsigned char app, + unsigned char verb, + unsigned long len); //! Transmit data. void txdata(unsigned char app, unsigned char verb, - unsigned char len); + unsigned long len); //! Transmit a string. void txstring(unsigned char app, unsigned char verb, const char *str); + +//! Receive a long. +unsigned long rxlong(); +//! Receive a word. +unsigned int rxword(); + +//! Transmit a long. +void txlong(unsigned long l); +//! Transmit a word. +void txword(unsigned int l); + //! Transmit a debug string. void debugstr(const char *str); @@ -116,12 +106,14 @@ void delay(unsigned int count); void msdelay(unsigned int ms); -void monitorhandle(unsigned char, unsigned char, unsigned char); -void spihandle(unsigned char, unsigned char, unsigned char); -void i2chandle(unsigned char, unsigned char, unsigned char); -void cchandle(unsigned char, unsigned char, unsigned char); -void jtaghandle(unsigned char, unsigned char, unsigned char); -void jtag430handle(unsigned char, unsigned char, unsigned char); +void monitorhandle(unsigned char, unsigned char, unsigned long); +void spihandle(unsigned char, unsigned char, unsigned long); +void i2chandle(unsigned char, unsigned char, unsigned long); +void cchandle(unsigned char, unsigned char, unsigned long); +void jtaghandle(unsigned char, unsigned char, unsigned long); +void jtag430handle(unsigned char, unsigned char, unsigned long); void jtag430x2handle(unsigned char app, unsigned char verb, - unsigned char len); - + unsigned long len); +void avrhandle(unsigned char app, + unsigned char verb, + unsigned long len);