]>
cvs.zerfleddert.de Git - proxmark3-svn/blob - armsrc/fpgaloader.h
5e5e6af65fe877d73c8e483042c903f936820e1b
   1 //----------------------------------------------------------------------------- 
   2 // Jonathan Westhues, April 2006 
   3 // iZsh <izsh at fail0verflow.com>, 2014 
   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 
   8 //----------------------------------------------------------------------------- 
   9 // Routines to load the FPGA image, and then to configure the FPGA's major 
  10 // mode once it is configured. 
  11 //----------------------------------------------------------------------------- 
  13 void FpgaSendCommand(uint16_t cmd
, uint16_t v
); 
  14 void FpgaWriteConfWord(uint8_t v
); 
  15 void FpgaDownloadAndGo(int bitstream_version
); 
  16 void FpgaGatherVersion(int bitstream_version
, char *dst
, int len
); 
  17 void FpgaSetupSsc(void); 
  18 void SetupSpi(int mode
); 
  19 bool FpgaSetupSscDma(uint8_t *buf
, int len
); 
  20 void Fpga_print_status(); 
  21 #define FpgaDisableSscDma(void) AT91C_BASE_PDC_SSC->PDC_PTCR = AT91C_PDC_RXTDIS; 
  22 #define FpgaEnableSscDma(void) AT91C_BASE_PDC_SSC->PDC_PTCR = AT91C_PDC_RXTEN; 
  23 void SetAdcMuxFor(uint32_t whichGpio
); 
  25 // definitions for multiple FPGA config files support 
  26 #define FPGA_BITSTREAM_MAX 2    // the total number of FPGA bitstreams (configs) 
  27 #define FPGA_BITSTREAM_ERR 0 
  28 #define FPGA_BITSTREAM_LF 1 
  29 #define FPGA_BITSTREAM_HF 2 
  32 // Definitions for the FPGA commands. 
  33 #define FPGA_CMD_SET_CONFREG                                            (1<<12) 
  34 #define FPGA_CMD_SET_DIVISOR                                            (2<<12) 
  35 #define FPGA_CMD_SET_USER_BYTE1                                         (3<<12) 
  36 // Definitions for the FPGA configuration word. 
  38 #define FPGA_MAJOR_MODE_LF_ADC                                          (0<<5) 
  39 #define FPGA_MAJOR_MODE_LF_EDGE_DETECT                          (1<<5) 
  40 #define FPGA_MAJOR_MODE_LF_PASSTHRU                                     (2<<5) 
  42 #define FPGA_MAJOR_MODE_HF_READER_TX                            (0<<5) 
  43 #define FPGA_MAJOR_MODE_HF_READER_RX_XCORR                      (1<<5) 
  44 #define FPGA_MAJOR_MODE_HF_SIMULATOR                            (2<<5) 
  45 #define FPGA_MAJOR_MODE_HF_ISO14443A                            (3<<5) 
  46 #define FPGA_MAJOR_MODE_HF_SNOOP                                    (4<<5) 
  48 #define FPGA_MAJOR_MODE_OFF                                                     (7<<5) 
  50 #define FPGA_LF_ADC_READER_FIELD                                        (1<<0) 
  51 // Options for LF_EDGE_DETECT 
  52 #define FPGA_CMD_SET_EDGE_DETECT_THRESHOLD                      FPGA_CMD_SET_USER_BYTE1 
  53 #define FPGA_LF_EDGE_DETECT_READER_FIELD                        (1<<0) 
  54 #define FPGA_LF_EDGE_DETECT_TOGGLE_MODE                         (1<<1) 
  55 // Options for the HF reader, tx to tag 
  56 #define FPGA_HF_READER_TX_SHALLOW_MOD                           (1<<0) 
  57 // Options for the HF reader, correlating against rx from tag 
  58 #define FPGA_HF_READER_RX_XCORR_848_KHZ                         (1<<0) 
  59 #define FPGA_HF_READER_RX_XCORR_SNOOP                           (1<<1) 
  60 #define FPGA_HF_READER_RX_XCORR_QUARTER_FREQ            (1<<2) 
  61 // Options for the HF simulated tag, how to modulate 
  62 #define FPGA_HF_SIMULATOR_NO_MODULATION                         (0<<0) // 0000 
  63 #define FPGA_HF_SIMULATOR_MODULATE_BPSK                         (1<<0) // 0001 
  64 #define FPGA_HF_SIMULATOR_MODULATE_212K                         (2<<0) // 0010 
  65 #define FPGA_HF_SIMULATOR_MODULATE_424K                         (4<<0) // 0100 
  66 #define FPGA_HF_SIMULATOR_MODULATE_424K_8BIT            0x5    // 0101 
  69 // Options for ISO14443A 
  70 #define FPGA_HF_ISO14443A_SNIFFER                                       (0<<0) 
  71 #define FPGA_HF_ISO14443A_TAGSIM_LISTEN                         (1<<0) 
  72 #define FPGA_HF_ISO14443A_TAGSIM_MOD                            (2<<0) 
  73 #define FPGA_HF_ISO14443A_READER_LISTEN                         (3<<0) 
  74 #define FPGA_HF_ISO14443A_READER_MOD                            (4<<0)