]> git.zerfleddert.de Git - proxmark3-svn/blobdiff - include/proxmark3.h
Pushed standard AT91 defines into main code
[proxmark3-svn] / include / proxmark3.h
index 31c7164249b07dda68c0b2045c7a3e07ab5d7cd2..f1894f999eecc391e9841cf1f2812a6aae06a53a 100644 (file)
@@ -7,11 +7,56 @@
 #define __PROXMARK3_H\r
 \r
 // Might as well have the hardware-specific defines everywhere.\r
 #define __PROXMARK3_H\r
 \r
 // Might as well have the hardware-specific defines everywhere.\r
-#include <at91sam7s128.h>\r
-\r
+#include <at91sam7s512.h>\r
 #include <config_gpio.h>\r
 #include <config_gpio.h>\r
-#define LOW(x) PIO_OUTPUT_DATA_CLEAR = (1 << (x))\r
-#define HIGH(x)        PIO_OUTPUT_DATA_SET = (1 << (x))\r
+\r
+#define WDT_HIT()                                                              AT91C_BASE_WDTC->WDTC_WDCR = 0xa5000001\r
+\r
+#define PWM_CH_MODE_PRESCALER(x)                               ((x)<<0)\r
+#define PWM_CHANNEL(x)                                                 (1<<(x))\r
+\r
+#define TC_CMR_TCCLKS_TIMER_CLOCK1                             (0<<0)\r
+\r
+#define ADC_CHAN_LF                                                            4\r
+#define ADC_CHAN_HF                                                            5\r
+#define ADC_MODE_PRESCALE(x)                                   ((x)<<8)\r
+#define ADC_MODE_STARTUP_TIME(x)                               ((x)<<16)\r
+#define ADC_MODE_SAMPLE_HOLD_TIME(x)                   ((x)<<24)\r
+#define ADC_CHANNEL(x)                                                 (1<<(x))\r
+#define ADC_END_OF_CONVERSION(x)                               (1<<(x))\r
+\r
+#define SSC_CLOCK_MODE_START(x)                                        ((x)<<8)\r
+#define SSC_FRAME_MODE_WORDS_PER_TRANSFER(x)   ((x)<<8)\r
+#define SSC_CLOCK_MODE_SELECT(x)                               ((x)<<0)\r
+#define SSC_FRAME_MODE_BITS_IN_WORD(x)                 (((x)-1)<<0)\r
+\r
+#define MC_FLASH_COMMAND_KEY                                   ((0x5a)<<24)\r
+#define MC_FLASH_STATUS_READY                                  (1<<0)\r
+#define MC_FLASH_MODE_FLASH_WAIT_STATES(x)             ((x)<<8)\r
+#define MC_FLASH_MODE_MASTER_CLK_IN_MHZ(x)             ((x)<<16)\r
+#define MC_FLASH_COMMAND_PAGEN(x)                              ((x)<<8)\r
+\r
+#define RST_CONTROL_KEY                                                        (0xa5<<24)\r
+\r
+#define PMC_MAIN_OSC_ENABLE                                            (1<<0)\r
+#define PMC_MAIN_OSC_STABILIZED                                        (1<<0)\r
+#define PMC_MAIN_OSC_PLL_LOCK                                  (1<<2)\r
+#define PMC_MAIN_OSC_MCK_READY                                 (1<<3)\r
+\r
+#define PMC_MAIN_OSC_STARTUP_DELAY(x)                  ((x)<<8)\r
+#define PMC_PLL_DIVISOR(x)                                             (x)\r
+#define PMC_CLK_PRESCALE_DIV_2                                 (1<<2)\r
+#define PMC_PLL_MULTIPLIER(x)                                  (((x)-1)<<16)\r
+#define PMC_PLL_COUNT_BEFORE_LOCK(x)                   ((x)<<8)\r
+#define PMC_PLL_FREQUENCY_RANGE(x)                             ((x)<<14)\r
+#define PMC_PLL_USB_DIVISOR(x)                                 ((x)<<28)\r
+\r
+#define UDP_INTERRUPT_ENDPOINT(x)                              (1<<(x))\r
+#define UDP_CSR_BYTES_RECEIVED(x)                              (((x) >> 16) & 0x7ff)\r
+//**************************************************************\r
+\r
+#define LOW(x) AT91C_BASE_PIOA->PIO_CODR = (x)\r
+#define HIGH(x)        AT91C_BASE_PIOA->PIO_SODR = (x)\r
 \r
 #define SPI_FPGA_MODE  0\r
 #define SPI_LCD_MODE   1\r
 \r
 #define SPI_FPGA_MODE  0\r
 #define SPI_LCD_MODE   1\r
@@ -32,22 +77,22 @@ typedef signed short SWORD;
 #define PACKED __attribute__((__packed__))\r
 \r
 #define USB_D_PLUS_PULLUP_ON() { \\r
 #define PACKED __attribute__((__packed__))\r
 \r
 #define USB_D_PLUS_PULLUP_ON() { \\r
-               PIO_OUTPUT_DATA_SET = (1<<GPIO_USB_PU); \\r
-               PIO_OUTPUT_ENABLE = (1<<GPIO_USB_PU); \\r
+               HIGH(GPIO_USB_PU); \\r
+               AT91C_BASE_PIOA->PIO_OER = GPIO_USB_PU; \\r
        }\r
        }\r
-#define USB_D_PLUS_PULLUP_OFF() PIO_OUTPUT_DISABLE = (1<<GPIO_USB_PU)\r
-\r
-#define LED_A_ON()             PIO_OUTPUT_DATA_SET = (1<<GPIO_LED_A)\r
-#define LED_A_OFF()            PIO_OUTPUT_DATA_CLEAR = (1<<GPIO_LED_A)\r
-#define LED_B_ON()             PIO_OUTPUT_DATA_SET = (1<<GPIO_LED_B)\r
-#define LED_B_OFF()            PIO_OUTPUT_DATA_CLEAR = (1<<GPIO_LED_B)\r
-#define LED_C_ON()             PIO_OUTPUT_DATA_SET = (1<<GPIO_LED_C)\r
-#define LED_C_OFF()            PIO_OUTPUT_DATA_CLEAR = (1<<GPIO_LED_C)\r
-#define LED_D_ON()             PIO_OUTPUT_DATA_SET = (1<<GPIO_LED_D)\r
-#define LED_D_OFF()            PIO_OUTPUT_DATA_CLEAR = (1<<GPIO_LED_D)\r
-#define RELAY_ON()             PIO_OUTPUT_DATA_SET = (1<<GPIO_RELAY)\r
-#define RELAY_OFF()            PIO_OUTPUT_DATA_CLEAR = (1<<GPIO_RELAY)\r
-#define BUTTON_PRESS() !(PIO_PIN_DATA_STATUS & (1<<GPIO_BUTTON))\r
+#define USB_D_PLUS_PULLUP_OFF() AT91C_BASE_PIOA->PIO_ODR = GPIO_USB_PU\r
+\r
+#define LED_A_ON()             HIGH(GPIO_LED_A)\r
+#define LED_A_OFF()            LOW(GPIO_LED_A)\r
+#define LED_B_ON()             HIGH(GPIO_LED_B)\r
+#define LED_B_OFF()            LOW(GPIO_LED_B)\r
+#define LED_C_ON()             HIGH(GPIO_LED_C)\r
+#define LED_C_OFF()            LOW(GPIO_LED_C)\r
+#define LED_D_ON()             HIGH(GPIO_LED_D)\r
+#define LED_D_OFF()            LOW(GPIO_LED_D)\r
+#define RELAY_ON()             HIGH(GPIO_RELAY)\r
+#define RELAY_OFF()            LOW(GPIO_RELAY)\r
+#define BUTTON_PRESS() !(AT91C_BASE_PIOA->PIO_PDSR & GPIO_BUTTON)\r
 //--------------------------------\r
 // USB declarations\r
 \r
 //--------------------------------\r
 // USB declarations\r
 \r
@@ -62,7 +107,7 @@ void UsbPacketReceived(BYTE *packet, int len);
 \r
 #define VERSION_INFORMATION_MAGIC 0x56334d50\r
 struct version_information {\r
 \r
 #define VERSION_INFORMATION_MAGIC 0x56334d50\r
 struct version_information {\r
-       int magic; /* Magic sequence to identify this as a correct version information structure. Must be VERSION_INFORMATION_MAGIC */ \r
+       int magic; /* Magic sequence to identify this as a correct version information structure. Must be VERSION_INFORMATION_MAGIC */\r
        char versionversion; /* Must be 1 */\r
        char present; /* 1 if the version information could be created at compile time, otherwise 0 and the remaining fields (except for magic) are empty */\r
        char clean; /* 1: Tree was clean, no local changes. 0: Tree was unclean. 2: Couldn't be determined */\r
        char versionversion; /* Must be 1 */\r
        char present; /* 1 if the version information could be created at compile time, otherwise 0 and the remaining fields (except for magic) are empty */\r
        char clean; /* 1: Tree was clean, no local changes. 0: Tree was unclean. 2: Couldn't be determined */\r
Impressum, Datenschutz