aboutsummaryrefslogtreecommitdiffstats
path: root/firmware/libboard/common/include/board_common.h
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/libboard/common/include/board_common.h')
-rw-r--r--firmware/libboard/common/include/board_common.h121
1 files changed, 121 insertions, 0 deletions
diff --git a/firmware/libboard/common/include/board_common.h b/firmware/libboard/common/include/board_common.h
new file mode 100644
index 0000000..9943ae1
--- /dev/null
+++ b/firmware/libboard/common/include/board_common.h
@@ -0,0 +1,121 @@
+#ifndef _BOARD_
+#define _BOARD_
+
+/** Headers */
+#include "chip.h"
+/* We need this for a nop instruction in USB_HAL.c */
+#define __CC_ARM
+
+/** Board */
+#include "board_lowlevel.h"
+#include "uart_console.h"
+#include "iso7816_4.h"
+#include "led.h"
+#include "cciddriver.h"
+#include "usart.h"
+#include "USBD.h"
+
+#include "USBD_Config.h"
+#include "USBDDriver.h"
+
+/** Highlevel */
+#include "trace.h"
+#include "stdio.h"
+#include "stdlib.h"
+#include "string.h"
+#include "inttypes.h"
+#include "syscalls.h"
+
+#define MIN(a, b) ((a < b) ? a : b)
+
+#ifdef __GNUC__
+#undef __GNUC__
+#endif
+
+/** Family definition (already defined) */
+#define sam3s
+/** Core definition */
+#define cortexm3
+
+#define BOARD_MCK 48000000
+
+#define LED_RED PIO_PA17
+#define LED_GREEN PIO_PA18
+
+#define PIN_LED_RED {LED_RED, PIOA, ID_PIOA, PIO_OUTPUT_1, PIO_DEFAULT}
+#define PIN_LED_GREEN {LED_GREEN, PIOA, ID_PIOA, PIO_OUTPUT_1, PIO_DEFAULT}
+#define PINS_LEDS PIN_LED_RED, PIN_LED_GREEN
+
+#define LED_NUM_RED 0
+#define LED_NUM_GREEN 1
+
+/** USART0 pin RX */
+#define PIN_USART0_RXD {PIO_PA9A_URXD0, PIOA, ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT}
+/** USART0 pin TX */
+#define PIN_USART0_TXD {PIO_PA10A_UTXD0, PIOA, ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT}
+
+#define BOARD_PIN_USART_RXD PIN_USART0_RXD
+#define BOARD_PIN_USART_TXD PIN_USART0_TXD
+
+#define BOARD_ID_USART ID_USART0
+#define BOARD_USART_BASE USART0
+
+#define PINS_UART { PIO_PA9A_URXD0|PIO_PA10A_UTXD0, PIOA, ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT}
+
+/** UART0 */
+/** Console baudrate always using 115200. */
+#define CONSOLE_BAUDRATE 115200
+/** Usart Hw interface used by the console (UART0). */
+#define CONSOLE_USART UART0
+/** Usart Hw ID used by the console (UART0). */
+#define CONSOLE_ID ID_UART0
+/** Pins description corresponding to Rxd,Txd, (UART pins) */
+#define CONSOLE_PINS {PINS_UART}
+
+/// Smartcard detection pin
+// FIXME: add connect pin as iso pin...should it be periph b or interrupt oder input?
+#define BOARD_ISO7816_BASE_USART USART0
+#define BOARD_ISO7816_ID_USART ID_USART0
+
+#define USART_SIM USART0
+#define ID_USART_SIM ID_USART0
+#define USART_PHONE USART1
+#define ID_USART_PHONE ID_USART1
+
+#define SIM_PWEN PIO_PA5
+#define VCC_FWD PIO_PA26
+
+
+//** USB **/
+// USB pull-up control pin definition (PA16).
+// Default: 1 (USB Pullup deactivated)
+#define PIN_USB_PULLUP {1 << 16, PIOA, ID_PIOA, PIO_OUTPUT_1, PIO_DEFAULT}
+
+// Board has UDP controller
+#define BOARD_USB_UDP
+// D+ has external pull-up
+#define BOARD_USB_PULLUP_EXTERNAL
+
+#define BOARD_USB_NUMENDPOINTS 8
+
+// FIXME: in all other cases return 0?
+#define BOARD_USB_ENDPOINTS_MAXPACKETSIZE(i) (((i == 4) || (i == 5))? 512 : 64)
+#define BOARD_USB_ENDPOINTS_BANKS(i) (((i == 0) || (i == 3)) ? 1 : 2)
+
+/// USB attributes configuration descriptor (bus or self powered, remote wakeup)
+//#define BOARD_USB_BMATTRIBUTES USBConfigurationDescriptor_SELFPOWERED_NORWAKEUP
+#define BOARD_USB_BMATTRIBUTES USBConfigurationDescriptor_BUSPOWERED_NORWAKEUP
+//#define BOARD_USB_BMATTRIBUTES USBConfigurationDescriptor_SELFPOWERED_RWAKEUP
+
+#define BOARD_USB_VENDOR SIMTRACE_VENDOR_ID
+#define BOARD_USB_PRODUCT SIMTRACE_PRODUCT_ID
+#define BOARD_USB_RELEASE 0
+
+#define BOARD_USB_DFU
+#define BOARD_DFU_BOOT_SIZE (16 * 1024)
+#define BOARD_DFU_PAGE_SIZE 512
+#define BOARD_DFU_NUM_IF 2
+
+extern void board_exec_dbg_cmd(int ch);
+extern void board_main_top(void);
+#endif