osmo-ccid-firmware/sysmoOCTSIM
Eric Wild 95b7503977 fsm completion event handling from main loop
Change-Id: I14062c51494d3abb08e9237ace17726c53deeccc
2019-11-11 14:22:52 +01:00
..
CMSIS update CMSIS to 5.1.2 2019-04-17 12:06:11 +02:00
config proper sercom config for the other 6 slots 2019-11-05 19:08:29 +01:00
dma_m2m add ASFv4 M2M (memory-to-memory DMA) middleware 2019-04-17 10:25:09 +02:00
documentation add ASFv4 M2M (memory-to-memory DMA) middleware 2019-04-17 10:25:09 +02:00
gcc setparameters/PPS works 2019-10-29 19:15:10 +01:00
hal ASF: add new utils 2019-06-13 18:34:46 +02:00
hpl ASF: add related RTC files 2019-06-06 13:54:56 +02:00
hri ASF: update E54 SERCOM library 2019-06-13 18:34:46 +02:00
include ASF: minor, update copyright 2019-06-13 18:34:46 +02:00
stdio_redirect Switch SERCOM7 (Debug UART) to sync mode + add STDIO 2019-02-27 13:17:17 +00:00
usb wip broken atr 2019-10-23 17:28:07 +02:00
.gitignore ignore output files 2019-02-07 15:56:04 +01:00
AtmelStart.env_conf Update from Atmel START 1.0.87 to 1.1.134 2019-05-17 16:10:00 +02:00
AtmelStart.gpdsc ASF: update e54 library 2019-06-13 18:34:46 +02:00
LICENSE add GPLv2 license 2019-02-07 16:23:30 +01:00
README.md add README file 2019-02-07 16:50:47 +01:00
atmel_start.c Re-structure USB descriptors 2019-05-16 23:05:21 +02:00
atmel_start.h add ASFv4 M2M (memory-to-memory DMA) middleware 2019-04-17 10:25:09 +02:00
atmel_start_config.atstart Add RTC peripheral from ASF4 (CALENDAR) 2019-05-17 18:23:55 +02:00
atmel_start_pins.h output 50 MHz for RMII 2019-05-09 15:46:38 +02:00
ccid_common split ccid into common and host-only code 2019-10-09 13:18:21 +02:00
command.c UART_debug now uses the async library with tx ring 2019-05-09 15:46:38 +02:00
command.h command.c: Print prompt when starting up 2019-04-16 21:11:40 +02:00
cuart_driver_asf4_usart_async.c fix icc clock setting 2019-10-31 17:47:47 +01:00
driver_init.c increase debug buffer size 2019-10-29 19:21:43 +01:00
driver_init.h Add RTC peripheral from ASF4 (CALENDAR) 2019-05-17 18:23:55 +02:00
i2c_bitbang.c Support for sysmoOCTSIM NCN8025/SX1503 control 2019-02-24 23:05:15 +01:00
i2c_bitbang.h Support for sysmoOCTSIM NCN8025/SX1503 control 2019-02-24 23:05:15 +01:00
libosmo_emb.c wip broken atr 2019-10-23 17:28:07 +02:00
linuxlist_atomic.h Add missing linuxlist_atomic.h 2019-05-23 20:30:43 +02:00
logging.h ISO7816-3 FSMs as osmo_fsm 2019-10-09 17:58:15 +02:00
main.c fsm completion event handling from main loop 2019-11-11 14:22:52 +01:00
manual_test.c UART_debug now uses the async library with tx ring 2019-05-09 15:46:38 +02:00
ncn8025.c setparameters/PPS works 2019-10-29 19:15:10 +01:00
ncn8025.h setparameters/PPS works 2019-10-29 19:15:10 +01:00
octsim_i2c.c Support for sysmoOCTSIM NCN8025/SX1503 control 2019-02-24 23:05:15 +01:00
octsim_i2c.h Support for sysmoOCTSIM NCN8025/SX1503 control 2019-02-24 23:05:15 +01:00
replace.h Import libtalloc-2.1.14 into the tree 2019-05-11 20:21:41 +02:00
stdio_start.c UART_debug now uses the async library with tx ring 2019-05-09 15:46:38 +02:00
stdio_start.h Switch SERCOM7 (Debug UART) to sync mode + add STDIO 2019-02-27 13:17:17 +00:00
talloc.c assert on free in interrupt, too 2019-11-07 14:26:22 +01:00
talloc.h Import libtalloc-2.1.14 into the tree 2019-05-11 20:21:41 +02:00
usb_descriptors.c additional fixes 2019-11-05 19:07:13 +01:00
usb_descriptors.h wip broken atr 2019-10-23 17:28:07 +02:00
usb_start.c WIP: Actual 'main' integration of CCID using msgb queues for USB transfers 2019-05-16 23:05:21 +02:00
usb_start.h WIP: Actual 'main' integration of CCID using msgb queues for USB transfers 2019-05-16 23:05:21 +02:00

README.md

The sysmocom sysmoOCTSIM is a USB CCID device with eight smart card slots. This is the open source firmware for this device.

Hardware

The sysmocom sysmoOCTSIM hardware is proprietary.

It has the following specifications:

  • 8 smart cards slots for 2FF cards (e.g. normal SIM format)
  • each slot is driven individually (e.g. they are not multiplexed)
  • each card can be operated in class A (5.0 V), B (3.0 V), or C (1.8 V)
  • the ISO/IEC 7816-4 T=0 communication protocol is used
  • each card can be clock up to 20 MHz (e.g. maximum allowed by the standard)

For more detailed specification refer to the USB description of the device.

Firmware

Compiling

GNU make and the arm-none-eabi-gcc compiler are required to build the firmware.

The compile the firmware, run the following commands:

cd sysmoOCTSIM/gcc
make

The sysmoOCTSIM/gcc/AtmelStart.bin file is the resulting firmware for the device.

Flashing

The device comes pre-flash with a USB DFU bootloader (e.g. osmo-asf4-dfu). To start the USB DFU bootloader, press on the button on the front right of the panel while powering up the device.

Use the dfu-util utility to flash the firmware onto the device:

dfu-util --device 1d50:6141 --download sysmoOCTSIM/gcc/AtmelStart.bin