blob: 8fadb72663304a65bc450ca9017339c3352f60eb [file] [log] [blame]
Harald Welte2d3371e2015-11-30 11:59:03 +01001#pragma once
2#include "board_common.h"
3
4/** Name of the board */
5#define BOARD_NAME "SAM3S-SIMTRACE"
6/** Board definition */
7#define simtrace
8
Harald Weltea02b6412016-08-21 18:32:12 +02009#define BOARD_MAINOSC 18432000
10
Harald Welte2d3371e2015-11-30 11:59:03 +010011/** Phone (SIM card emulator)/CCID Reader/MITM configuration **/
12/* Normally the communication lines between phone and SIM card are disconnected */
13// Disconnect SIM card I/O, VPP line from the phone lines
14// FIXME: Per default pins are input, therefore high-impedance, therefore they don not activate the bus switch, right?
15#define PIN_SC_SW_DEFAULT {PIO_PA20, PIOA, ID_PIOA, PIO_OUTPUT_1, PIO_DEFAULT}
16// Disconnect SIM card RST, CLK line from the phone lines
17#define PIN_IO_SW_DEFAULT {PIO_PA19, PIOA, ID_PIOA, PIO_OUTPUT_1, PIO_DEFAULT}
18#define PINS_BUS_DEFAULT PIN_SC_SW_DEFAULT, PIN_IO_SW_DEFAULT
19
20/** Sniffer configuration **/
21// Connect VPP, CLK and RST lines from smartcard to the phone
22#define PIN_SC_SW_SNIFF {PIO_PA20, PIOA, ID_PIOA, PIO_OUTPUT_0, PIO_DEFAULT}
23#define PIN_IO_SW_SNIFF {PIO_PA19, PIOA, ID_PIOA, PIO_OUTPUT_0, PIO_DEFAULT}
24#define PINS_BUS_SNIFF PIN_SC_SW_SNIFF, PIN_IO_SW_SNIFF
25
26#define PINS_SIM_SNIFF_SIM PIN_PHONE_IO, PIN_PHONE_CLK
27
28#define SIM_PWEN_PIN {PIO_PA5, PIOA, ID_PIOA, PIO_OUTPUT_1, PIO_DEFAULT}
29
30#define PWR_PINS \
31 /* Enable power converter 4.5-6V to 3.3V; low: off */ \
32 {SIM_PWEN, PIOA, ID_PIOA, PIO_OUTPUT_0, PIO_DEFAULT}, \
33 /* Enable second power converter: VCC_PHONE to VCC_SIM; high: on */ \
34 {VCC_FWD, PIOA, ID_PIOA, PIO_OUTPUT_1, PIO_DEFAULT}
35
36#define SW_SIM PIO_PA8
37#define SMARTCARD_CONNECT_PIN {SW_SIM, PIOA, ID_PIOA, PIO_INPUT, PIO_PULLUP | PIO_DEBOUNCE | PIO_DEGLITCH | PIO_IT_EDGE }
38//#define SMARTCARD_CONNECT_PIN {SW_SIM, PIOB, ID_PIOB, PIO_INPUT, PIO_PULLUP | PIO_DEBOUNCE | PIO_IT_EDGE}
39
40/// PIN used for resetting the smartcard
41// FIXME: Card is resetted with pin set to 0 --> PIO_OUTPUT_1 as default is right?
42#define PIN_ISO7816_RSTMC {PIO_PA7, PIOA, ID_PIOA, PIO_OUTPUT_0, PIO_DEFAULT}
43
44/// Pins used for connect the smartcard
45#define PIN_SIM_IO_INPUT {PIO_PA1, PIOA, ID_PIOA, PIO_INPUT, PIO_DEFAULT}
46#define PIN_SIM_IO {PIO_PA6, PIOA, ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT}
47#define PIN_SIM_CLK {PIO_PA2, PIOA, ID_PIOA, PIO_PERIPH_B, PIO_DEFAULT}
48#define PIN_SIM_CLK_INPUT {PIO_PA4, PIOA, ID_PIOA, PIO_INPUT, PIO_DEFAULT}
49//#define PINS_ISO7816 PIN_USART1_TXD, PIN_USART1_SCK, PIN_ISO7816_RSTMC
50#define PINS_ISO7816 PIN_SIM_IO, PIN_SIM_CLK, PIN_ISO7816_RSTMC // SIM_PWEN_PIN, PIN_SIM_IO2, PIN_SIM_CLK2
51
52#define PINS_TC PIN_SIM_IO_INPUT, PIN_SIM_CLK_INPUT
53
Harald Welteba2ad562017-11-28 19:49:41 +010054#define PIN_USIM1_VCC {PIO_PA25, PIOA, ID_PIOA, PIO_INPUT, PIO_DEFAULT}
55#define PIN_USIM1_nRST {PIO_PA24, PIOA, ID_PIOA, PIO_INPUT, PIO_IT_RISE_EDGE | PIO_DEGLITCH }
Harald Welte2d3371e2015-11-30 11:59:03 +010056#define PIN_PHONE_IO_INPUT {PIO_PA21, PIOA, ID_PIOA, PIO_INPUT, PIO_DEFAULT}
57#define PIN_PHONE_IO {PIO_PA22, PIOA, ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT}
58#define PIN_PHONE_CLK {PIO_PA23A_SCK1, PIOA, ID_PIOA, PIO_PERIPH_A, PIO_DEFAULT} // External Clock Input on PA28
59//#define PIN_PHONE_CLK {PIO_PA23A_SCK1, ID_PIOA, PIO_OUTPUT_1, PIO_DEFAULT} // External Clock Input on PA28
60#define PIN_PHONE_CLK_INPUT {PIO_PA29, PIOA, ID_PIOA, PIO_INPUT, PIO_DEFAULT}
Harald Welteba2ad562017-11-28 19:49:41 +010061#define PINS_USIM1 PIN_PHONE_IO, PIN_PHONE_CLK, PIN_PHONE_CLK_INPUT, PIN_USIM1_VCC, PIN_PHONE_IO_INPUT, PIN_USIM1_nRST
Harald Welte2d3371e2015-11-30 11:59:03 +010062//, VCC_PHONE
63
64
65//** SPI interface **/
66/// SPI MISO pin definition (PA12).
67#define PIN_SPI_MISO {1 << 12, PIOA, PIOA, PIO_PERIPH_A, PIO_PULLUP}
68/// SPI MOSI pin definition (PA13).
69#define PIN_SPI_MOSI {1 << 13, PIOA, PIOA, PIO_PERIPH_A, PIO_DEFAULT}
70/// SPI SPCK pin definition (PA14).
71#define PIN_SPI_SPCK {1 << 14, PIOA, PIOA, PIO_PERIPH_A, PIO_DEFAULT}
72/// SPI pins definition. Contains MISO, MOSI & SPCK (PA12, PA13 & PA14).
73#define PINS_SPI PIN_SPI_MISO, PIN_SPI_MOSI, PIN_SPI_SPCK
74/// SPI chip select 0 pin definition (PA11).
75#define PIN_SPI_NPCS0 {1 << 11, PIOA, PIOA, PIO_PERIPH_A, PIO_DEFAULT}
76
Harald Welte3ecbf672017-03-03 02:10:34 +010077#define BOARD_USB_BMATTRIBUTES USBConfigurationDescriptor_BUSPOWERED_NORWAKEUP
78
Harald Weltec6e482d2017-03-05 16:24:29 +010079#define BOARD_USB_VENDOR_ID USB_VENDOR_OPENMOKO
80#define BOARD_USB_PRODUCT_ID USB_PRODUCT_SIMTRACE2
81#define BOARD_DFU_USB_PRODUCT_ID USB_PRODUCT_SIMTRACE2_DFU
82#define BOARD_USB_RELEASE 0x000
Harald Welte2fb59962016-02-28 12:34:26 +010083
Harald Welteba2ad562017-11-28 19:49:41 +010084//#define HAVE_SNIFFER
Harald Welte5e6e8dc2017-11-28 20:58:06 +010085#define HAVE_CCID
Harald Welte2fb59962016-02-28 12:34:26 +010086#define HAVE_CARDEM
Harald Welteba2ad562017-11-28 19:49:41 +010087//#define HAVE_MITM