blob: 6d11dae78180e7caec00da80debb872a1c76cf5d [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
54#define VCC_PHONE {PIO_PA25, PIOA, ID_PIOA, PIO_INPUT, PIO_DEFAULT}
55#define PIN_ISO7816_RST_PHONE {PIO_PA24, PIOA, ID_PIOA, PIO_INPUT, PIO_IT_RISE_EDGE | PIO_DEGLITCH }
56#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}
61#define PINS_ISO7816_PHONE PIN_PHONE_IO, PIN_PHONE_CLK, PIN_PHONE_CLK_INPUT, VCC_PHONE, PIN_PHONE_IO_INPUT, PIN_ISO7816_RST_PHONE
62//, 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
77#define SIMTRACE_VENDOR_ID 0x1d50
78#define SIMTRACE_PRODUCT_ID 0x60e3
79#define USB_VENDOR_ID SIMTRACE_VENDOR_ID
80#define USB_PRODUCT_ID SIMTRACE_PRODUCT_ID
Harald Welte2fb59962016-02-28 12:34:26 +010081
82#define HAVE_SNIFFER
83#define HAVE_CCID
84#define HAVE_CARDEM
85#define HAVE_MITM