]>
cvs.zerfleddert.de Git - proxmark3-svn/blob - include/proxmark3.h
8cbb98c4c3c368ff1261d3b1426ff3bb3f0f6c06
   1 //----------------------------------------------------------------------------- 
   2 // Definitions of interest to most of the software for this project. 
   3 // Jonathan Westhues, Mar 2006 
   4 //----------------------------------------------------------------------------- 
   9 // Might as well have the hardware-specific defines everywhere. 
  10 #include <at91sam7s512.h> 
  11 #include <config_gpio.h> 
  13 #define WDT_HIT()                                                               AT91C_BASE_WDTC->WDTC_WDCR = 0xa5000001 
  15 #define PWM_CH_MODE_PRESCALER(x)                                ((x)<<0) 
  16 #define PWM_CHANNEL(x)                                                  (1<<(x)) 
  18 #define TC_CMR_TCCLKS_TIMER_CLOCK1                              (0<<0) 
  19 #define TC_CMR_TCCLKS_TIMER_CLOCK2                              (1<<0) 
  20 #define TC_CMR_TCCLKS_TIMER_CLOCK3                              (2<<0) 
  21 #define TC_CMR_TCCLKS_TIMER_CLOCK4                              (3<<0) 
  22 #define TC_CMR_TCCLKS_TIMER_CLOCK5                              (4<<0) 
  26 #define ADC_MODE_PRESCALE(x)                                    ((x)<<8) 
  27 #define ADC_MODE_STARTUP_TIME(x)                                ((x)<<16) 
  28 #define ADC_MODE_SAMPLE_HOLD_TIME(x)                    ((x)<<24) 
  29 #define ADC_CHANNEL(x)                                                  (1<<(x)) 
  30 #define ADC_END_OF_CONVERSION(x)                                (1<<(x)) 
  32 #define SSC_CLOCK_MODE_START(x)                                 ((x)<<8) 
  33 #define SSC_FRAME_MODE_WORDS_PER_TRANSFER(x)    ((x)<<8) 
  34 #define SSC_CLOCK_MODE_SELECT(x)                                ((x)<<0) 
  35 #define SSC_FRAME_MODE_BITS_IN_WORD(x)                  (((x)-1)<<0) 
  37 #define MC_FLASH_COMMAND_KEY                                    ((0x5a)<<24) 
  38 #define MC_FLASH_STATUS_READY                                   (1<<0) 
  39 #define MC_FLASH_MODE_FLASH_WAIT_STATES(x)              ((x)<<8) 
  40 #define MC_FLASH_MODE_MASTER_CLK_IN_MHZ(x)              ((x)<<16) 
  41 #define MC_FLASH_COMMAND_PAGEN(x)                               ((x)<<8) 
  43 #define RST_CONTROL_KEY                                                 (0xa5<<24) 
  45 #define PMC_MAIN_OSC_ENABLE                                             (1<<0) 
  46 #define PMC_MAIN_OSC_STABILIZED                                 (1<<0) 
  47 #define PMC_MAIN_OSC_PLL_LOCK                                   (1<<2) 
  48 #define PMC_MAIN_OSC_MCK_READY                                  (1<<3) 
  50 #define PMC_MAIN_OSC_STARTUP_DELAY(x)                   ((x)<<8) 
  51 #define PMC_PLL_DIVISOR(x)                                              (x) 
  52 #define PMC_CLK_PRESCALE_DIV_2                                  (1<<2) 
  53 #define PMC_PLL_MULTIPLIER(x)                                   (((x)-1)<<16) 
  54 #define PMC_PLL_COUNT_BEFORE_LOCK(x)                    ((x)<<8) 
  55 #define PMC_PLL_FREQUENCY_RANGE(x)                              ((x)<<14) 
  56 #define PMC_PLL_USB_DIVISOR(x)                                  ((x)<<28) 
  58 #define UDP_INTERRUPT_ENDPOINT(x)                               (1<<(x)) 
  59 #define UDP_CSR_BYTES_RECEIVED(x)                               (((x) >> 16) & 0x7ff) 
  60 //************************************************************** 
  62 #define LOW(x)  AT91C_BASE_PIOA->PIO_CODR = (x) 
  63 #define HIGH(x) AT91C_BASE_PIOA->PIO_SODR = (x) 
  65 #define SPI_FPGA_MODE   0 
  66 #define SPI_LCD_MODE    1 
  68 typedef unsigned long DWORD
; 
  69 typedef signed long SDWORD
; 
  70 typedef unsigned long long QWORD
; 
  72 typedef unsigned char BYTE
; 
  73 typedef signed char SBYTE
; 
  74 typedef unsigned short WORD
; 
  75 typedef signed short SWORD
; 
  81 //#define PACKED __attribute__((__packed__)) 
  83 #define USB_D_PLUS_PULLUP_ON() { \ 
  85                 AT91C_BASE_PIOA->PIO_OER = GPIO_USB_PU; \ 
  87 #define USB_D_PLUS_PULLUP_OFF() AT91C_BASE_PIOA->PIO_ODR = GPIO_USB_PU 
  89 #define LED_A_ON()              HIGH(GPIO_LED_A) 
  90 #define LED_A_OFF()             LOW(GPIO_LED_A) 
  91 #define LED_B_ON()              HIGH(GPIO_LED_B) 
  92 #define LED_B_OFF()             LOW(GPIO_LED_B) 
  93 #define LED_C_ON()              HIGH(GPIO_LED_C) 
  94 #define LED_C_OFF()             LOW(GPIO_LED_C) 
  95 #define LED_D_ON()              HIGH(GPIO_LED_D) 
  96 #define LED_D_OFF()             LOW(GPIO_LED_D) 
  97 #define RELAY_ON()              HIGH(GPIO_RELAY) 
  98 #define RELAY_OFF()             LOW(GPIO_RELAY) 
  99 #define BUTTON_PRESS()  !(AT91C_BASE_PIOA->PIO_PDSR & GPIO_BUTTON) 
 100 //-------------------------------- 
 103 void UsbSendPacket(BYTE 
*packet
, int len
); 
 105 BOOL 
UsbPoll(BOOL blinkLeds
); 
 108 // This function is provided by the apps/bootrom, and called from UsbPoll 
 109 // if data are available. 
 110 void UsbPacketReceived(BYTE 
*packet
, int len
); 
 112 #define VERSION_INFORMATION_MAGIC 0x56334d50 
 113 struct version_information 
{ 
 114         int magic
; /* Magic sequence to identify this as a correct version information structure. Must be VERSION_INFORMATION_MAGIC */ 
 115         char versionversion
; /* Must be 1 */ 
 116         char present
; /* 1 if the version information could be created at compile time, otherwise 0 and the remaining fields (except for magic) are empty */ 
 117         char clean
; /* 1: Tree was clean, no local changes. 0: Tree was unclean. 2: Couldn't be determined */ 
 118         char svnversion
[9]; /* String with the SVN revision */ 
 119         char buildtime
[30]; /* string with the build time */ 
 120 } __attribute__((packed
)); 
 122 #define COMMON_AREA_MAGIC 0x43334d50 
 123 #define COMMON_AREA_COMMAND_NONE 0 
 124 #define COMMON_AREA_COMMAND_ENTER_FLASH_MODE 1 
 126         int magic
; /* Magic sequence, to distinguish against random uninitialized memory */ 
 127         char version
; /* Must be 1 */ 
 130                 unsigned int bootrom_present
:1; /* Set when a bootrom that is capable of parsing the common area is present */ 
 131                 unsigned int osimage_present
:1; /* Set when a osimage that is capable of parsing the common area is present */ 
 132         } __attribute__((packed
)) flags
; 
 134 } __attribute__((packed
));