From 2d3371ed65dabcc66091ab215f9b3cfb3a0b2e08 Mon Sep 17 00:00:00 2001 From: Harald Welte Date: Mon, 30 Nov 2015 11:59:03 +0100 Subject: [PATCH] split board.h into generic part and simtrace-specific part --- firmware/Makefile | 1 + firmware/include_board/board_common.h | 112 +++++++++++++++++ firmware/include_board/{ => simtrace}/board.h | 118 +----------------- 3 files changed, 116 insertions(+), 115 deletions(-) create mode 100644 firmware/include_board/board_common.h rename firmware/include_board/{ => simtrace}/board.h (56%) diff --git a/firmware/Makefile b/firmware/Makefile index b1a1cef2..d48fc129 100644 --- a/firmware/Makefile +++ b/firmware/Makefile @@ -91,6 +91,7 @@ NM = $(CROSS_COMPILE)nm INCLUDES_USB = -Iatmel_softpack_libraries/usb/include INCLUDES = -Iinclude_board -Iinclude_sam3s -Iinclude -Isrc_simtrace +INCLUDES += -Iinclude_board/simtrace INCLUDES += -Icmsis INCLUDES += $(INCLUDES_USB) diff --git a/firmware/include_board/board_common.h b/firmware/include_board/board_common.h new file mode 100644 index 00000000..881444d5 --- /dev/null +++ b/firmware/include_board/board_common.h @@ -0,0 +1,112 @@ +#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 "simtrace.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_MAINOSC 18432000 +#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 + +#endif diff --git a/firmware/include_board/board.h b/firmware/include_board/simtrace/board.h similarity index 56% rename from firmware/include_board/board.h rename to firmware/include_board/simtrace/board.h index 634729fa..97b34ad9 100644 --- a/firmware/include_board/board.h +++ b/firmware/include_board/simtrace/board.h @@ -1,59 +1,10 @@ -#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 "simtrace.h" - -#define MIN(a, b) ((a < b) ? a : b) - -#ifdef __GNUC__ -#undef __GNUC__ -#endif +#pragma once +#include "board_common.h" /** Name of the board */ #define BOARD_NAME "SAM3S-SIMTRACE" /** Board definition */ #define simtrace -/** Family definition (already defined) */ -#define sam3s -/** Core definition */ -#define cortexm3 - -#define BOARD_MAINOSC 18432000 -#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 /** Phone (SIM card emulator)/CCID Reader/MITM configuration **/ /* Normally the communication lines between phone and SIM card are disconnected */ @@ -72,44 +23,6 @@ #define PINS_SIM_SNIFF_SIM PIN_PHONE_IO, PIN_PHONE_CLK - - -/** 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 - #define SIM_PWEN_PIN {PIO_PA5, PIOA, ID_PIOA, PIO_OUTPUT_1, PIO_DEFAULT} #define PWR_PINS \ @@ -118,7 +31,6 @@ /* Enable second power converter: VCC_PHONE to VCC_SIM; high: on */ \ {VCC_FWD, PIOA, ID_PIOA, PIO_OUTPUT_1, PIO_DEFAULT} - #define SW_SIM PIO_PA8 #define SMARTCARD_CONNECT_PIN {SW_SIM, PIOA, ID_PIOA, PIO_INPUT, PIO_PULLUP | PIO_DEBOUNCE | PIO_DEGLITCH | PIO_IT_EDGE } //#define SMARTCARD_CONNECT_PIN {SW_SIM, PIOB, ID_PIOB, PIO_INPUT, PIO_PULLUP | PIO_DEBOUNCE | PIO_IT_EDGE} @@ -160,31 +72,7 @@ /// SPI chip select 0 pin definition (PA11). #define PIN_SPI_NPCS0 {1 << 11, PIOA, PIOA, PIO_PERIPH_A, PIO_DEFAULT} -//** 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 SIMTRACE_VENDOR_ID 0x1d50 #define SIMTRACE_PRODUCT_ID 0x60e3 -#define USB_VENDOR_ID OPENPCD_VENDOR_ID +#define USB_VENDOR_ID SIMTRACE_VENDOR_ID #define USB_PRODUCT_ID SIMTRACE_PRODUCT_ID - - -#endif