Advertisement
Guest User

usb_cmd.h

a guest
Jun 13th, 2012
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 5.19 KB | None | 0 0
  1. //-----------------------------------------------------------------------------
  2. // Jonathan Westhues, Mar 2006
  3. // Edits by Gerhard de Koning Gans, Sep 2007
  4. //
  5. // This code is licensed to you under the terms of the GNU GPL, version 2 or,
  6. // at your option, any later version. See the LICENSE.txt file for the text of
  7. // the license.
  8. //-----------------------------------------------------------------------------
  9. // Definitions for all the types of commands that may be sent over USB; our
  10. // own protocol.
  11. //-----------------------------------------------------------------------------
  12.  
  13. #ifndef __USB_CMD_H
  14. #define __USB_CMD_H
  15. #ifdef _MSC_VER
  16. typedef DWORD uint32_t;
  17. typedef BYTE uint8_t;
  18. #define PACKED
  19. // stuff
  20. #else
  21. #include <stdint.h>
  22. #include <stdbool.h>
  23. #define PACKED __attribute__((packed))
  24. #endif
  25.  
  26. typedef struct {
  27.     uint32_t    cmd;
  28.     uint32_t    arg[3];
  29.     union {
  30.         uint8_t     asBytes[48];
  31.         uint32_t    asDwords[12];
  32.     } d;
  33. } PACKED UsbCommand;
  34.  
  35. // For the bootloader
  36. #define CMD_DEVICE_INFO                             0x0000
  37. #define CMD_SETUP_WRITE                             0x0001
  38. #define CMD_FINISH_WRITE                            0x0003
  39. #define CMD_HARDWARE_RESET                      0x0004
  40. #define CMD_START_FLASH                             0x0005
  41. #define CMD_NACK                                            0x00fe
  42. #define CMD_ACK                                             0x00ff
  43.  
  44. // For general mucking around
  45. #define CMD_DEBUG_PRINT_STRING              0x0100
  46. #define CMD_DEBUG_PRINT_INTEGERS            0x0101
  47. #define CMD_DEBUG_PRINT_BYTES                   0x0102
  48. #define CMD_LCD_RESET                                   0x0103
  49. #define CMD_LCD                                             0x0104
  50. #define CMD_BUFF_CLEAR                              0x0105
  51. #define CMD_READ_MEM                                    0x0106
  52. #define CMD_VERSION                                     0x0107
  53.  
  54. // For low-frequency tags
  55. #define CMD_READ_TI_TYPE                                                        0x0202
  56. #define CMD_WRITE_TI_TYPE                                                       0x0203
  57. #define CMD_DOWNLOADED_RAW_BITS_TI_TYPE                         0x0204
  58. #define CMD_ACQUIRE_RAW_ADC_SAMPLES_125K                        0x0205
  59. #define CMD_MOD_THEN_ACQUIRE_RAW_ADC_SAMPLES_125K       0x0206
  60. #define CMD_DOWNLOAD_RAW_ADC_SAMPLES_125K                       0x0207
  61. #define CMD_DOWNLOADED_RAW_ADC_SAMPLES_125K                 0x0208
  62. #define CMD_DOWNLOADED_SIM_SAMPLES_125K                         0x0209
  63. #define CMD_SIMULATE_TAG_125K                                               0x020A
  64. #define CMD_HID_DEMOD_FSK                               0x020B
  65. #define CMD_HID_SIM_TAG                                 0x020C
  66. #define CMD_SET_LF_DIVISOR                          0x020D
  67. #define CMD_LF_SIMULATE_BIDIR                       0x020E
  68. #define CMD_SET_ADC_MUX                                 0x020F
  69. #define CMD_HID_CLONE_TAG                               0x0210
  70. #define CMD_EM410X_WRITE_TAG                        0x0211
  71.  
  72. /* CMD_SET_ADC_MUX: ext1 is 0 for lopkd, 1 for loraw, 2 for hipkd, 3 for hiraw */
  73.  
  74. // For the 13.56 MHz tags
  75. #define CMD_ACQUIRE_RAW_ADC_SAMPLES_ISO_15693       0x0300
  76. #define CMD_ACQUIRE_RAW_ADC_SAMPLES_ISO_14443       0x0301
  77. #define CMD_READ_SRI512_TAG                                         0x0303
  78. #define CMD_READ_SRIX4K_TAG                                         0x0304
  79. #define CMD_READER_ISO_15693                                        0x0310
  80. #define CMD_SIMTAG_ISO_15693                                        0x0311
  81. #define CMD_RECORD_RAW_ADC_SAMPLES_ISO_15693        0x0312
  82. #define CMD_ISO_15693_COMMAND                                       0x0313
  83. #define CMD_ISO_15693_COMMAND_DONE                          0x0314
  84. #define CMD_ISO_15693_FIND_AFI                  0x0315
  85. #define CMD_ISO_15693_DEBUG                         0x0316
  86. #define CMD_SIMULATE_TAG_HF_LISTEN          0x0380
  87. #define CMD_SIMULATE_TAG_ISO_14443          0x0381
  88. #define CMD_SNOOP_ISO_14443                         0x0382
  89. #define CMD_SNOOP_ISO_14443a                        0x0383
  90. #define CMD_SIMULATE_TAG_ISO_14443a         0x0384
  91. #define CMD_READER_ISO_14443a                       0x0385
  92. #define CMD_SIMULATE_TAG_LEGIC_RF               0x0387
  93. #define CMD_READER_LEGIC_RF                         0x0388
  94. #define CMD_WRITER_LEGIC_RF                         0x0399
  95.  
  96. #define CMD_SNOOP_ICLASS                                0x0392
  97.  
  98. // For measurements of the antenna tuning
  99. #define CMD_MEASURE_ANTENNA_TUNING          0x0400
  100. #define CMD_MEASURE_ANTENNA_TUNING_HF       0x0401
  101. #define CMD_MEASURED_ANTENNA_TUNING         0x0410
  102. #define CMD_LISTEN_READER_FIELD                 0x0420
  103.  
  104. // For direct FPGA control
  105. #define CMD_FPGA_MAJOR_MODE_OFF                 0x0500
  106.  
  107. // For mifare commands
  108. #define CMD_MIFARE_SET_DBGMODE                  0x0600
  109. #define CMD_MIFARE_EML_MEMCLR                       0x0601
  110. #define CMD_MIFARE_EML_MEMSET                       0x0602
  111. #define CMD_MIFARE_EML_MEMGET                       0x0603
  112. #define CMD_MIFARE_EML_CARDLOAD                 0x0604
  113.  
  114. #define CMD_SIMULATE_MIFARE_CARD                0x0610
  115.  
  116. #define CMD_READER_MIFARE                               0x0611
  117. #define CMD_MIFARE_NESTED                               0x0612
  118.  
  119. #define CMD_MIFARE_READBL                               0x0620
  120. #define CMD_MIFARE_READSC                               0x0621
  121. #define CMD_MIFARE_WRITEBL                          0x0622
  122. #define CMD_MIFARE_CHKKEYS                          0x0623
  123.  
  124. #define CMD_UNKNOWN                                         0xFFFF
  125.  
  126. // CMD_DEVICE_INFO response packet has flags in arg[0], flag definitions:
  127. /* Whether a bootloader that understands the common_area is present */
  128. #define DEVICE_INFO_FLAG_BOOTROM_PRESENT            (1<<0)
  129.  
  130. /* Whether a osimage that understands the common_area is present */
  131. #define DEVICE_INFO_FLAG_OSIMAGE_PRESENT            (1<<1)
  132.  
  133. /* Set if the bootloader is currently executing */
  134. #define DEVICE_INFO_FLAG_CURRENT_MODE_BOOTROM       (1<<2)
  135.  
  136. /* Set if the OS is currently executing */
  137. #define DEVICE_INFO_FLAG_CURRENT_MODE_OS            (1<<3)
  138.  
  139. /* Set if this device understands the extend start flash command */
  140. #define DEVICE_INFO_FLAG_UNDERSTANDS_START_FLASH    (1<<4)
  141.  
  142. /* CMD_START_FLASH may have three arguments: start of area to flash,
  143.    end of area to flash, optional magic.
  144.    The bootrom will not allow to overwrite itself unless this magic
  145.    is given as third parameter */
  146.  
  147. #define START_FLASH_MAGIC 0x54494f44 // 'DOIT'
  148.  
  149. #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement