osmo-ccid-firmware/sysmoOCTSIM
Harald Welte 62e18147cc fix compilation with gcc-11
/usr/lib/gcc/arm-none-eabi/11.3.1/../../../arm-none-eabi/bin/ld: cuart_driver_asf4_usart_async.o:/space/home/laforge/projects/git/osmo-ccid-firmware/sysmoOCTSIM/gcc/../atmel_start.h:15: multiple definition of `dma_m2m_complete_flag'; atmel_start.o:/space/home/laforge/projects/git/osmo-ccid-firmware/sysmoOCTSIM/gcc/../atmel_start.h:15: first defined here
/usr/lib/gcc/arm-none-eabi/11.3.1/../../../arm-none-eabi/bin/ld: command.o:/space/home/laforge/projects/git/osmo-ccid-firmware/sysmoOCTSIM/gcc/../atmel_start.h:15: multiple definition of `dma_m2m_complete_flag'; atmel_start.o:/space/home/laforge/projects/git/osmo-ccid-firmware/sysmoOCTSIM/gcc/../atmel_start.h:15: first defined here
/usr/lib/gcc/arm-none-eabi/11.3.1/../../../arm-none-eabi/bin/ld: main.o:/space/home/laforge/projects/git/osmo-ccid-firmware/sysmoOCTSIM/gcc/../atmel_start.h:15: multiple definition of `dma_m2m_complete_flag'; atmel_start.o:/space/home/laforge/projects/git/osmo-ccid-firmware/sysmoOCTSIM/gcc/../atmel_start.h:15: first defined here
/usr/lib/gcc/arm-none-eabi/11.3.1/../../../arm-none-eabi/bin/ld: stdio_start.o:/space/home/laforge/projects/git/osmo-ccid-firmware/sysmoOCTSIM/gcc/../atmel_start.h:15: multiple definition of `dma_m2m_complete_flag'; atmel_start.o:/space/home/laforge/projects/git/osmo-ccid-firmware/sysmoOCTSIM/gcc/../atmel_start.h:15: first defined here
/usr/lib/gcc/arm-none-eabi/11.3.1/../../../arm-none-eabi/bin/ld: usb_start.o:/space/home/laforge/projects/git/osmo-ccid-firmware/sysmoOCTSIM/gcc/../atmel_start.h:15: multiple definition of `dma_m2m_complete_flag'; atmel_start.o:/space/home/laforge/projects/git/osmo-ccid-firmware/sysmoOCTSIM/gcc/../atmel_start.h:15: first defined here

Change-Id: I9a72dc0101de84ce39530c1503b32620b4777b4a
2022-11-18 21:00:25 +01:00
..
CMSIS update CMSIS to 5.1.2 2019-04-17 12:06:11 +02:00
config remove unused dmac 2021-09-27 18:35:00 +02: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 makefile: disable libosmocore logging functions 2021-11-27 14:25:46 +00:00
hal Avoid endless loop while printing debug uart ringbuffer 2019-11-12 17:33:44 +01:00
hpl sychronize atmel start config with the headers 2021-09-27 18:34: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 ccid usb handler: fix init flag 2021-11-27 14:25:43 +00: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 remove unused dmac 2021-09-27 18:35:00 +02:00
atmel_start.h fix compilation with gcc-11 2022-11-18 21:00:25 +01:00
atmel_start_config.atstart internal ul32k instead of external 32k osc 2021-09-27 18:35:00 +02:00
atmel_start_pins.h enable the final slot 2019-11-28 13:42:16 +01:00
ccid_common split ccid into common and host-only code 2019-10-09 13:18:21 +02:00
check_libccid_config.py Add 'check_ccid_config.py' to test for USB VID/PID in libccid_Info.plist 2019-11-12 17:33:44 +01:00
command.c enable the final slot 2019-11-28 13:42:16 +01:00
command.h command.c: Print prompt when starting up 2019-04-16 21:11:40 +02:00
cuart_driver_asf4_usart_async.c cuart: move generic paramete reset upon powerdown to where it belongs 2021-07-01 00:48:55 +02:00
dfu_descriptors.h support DFU detach to switch from fw to bootloader 2020-02-10 10:26:44 +00:00
driver_init.c enable the final slot 2019-11-28 13:42:16 +01:00
driver_init.h enable the final slot 2019-11-28 13:42:16 +01: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 enable the final slot 2019-11-28 13:42:16 +01: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 debug usb-cdc uart: disable it. 2021-11-27 14:30:00 +00:00
ncn8025.c sim slots: omit interrupt disabling for status polling 2021-11-27 14:25:18 +00:00
ncn8025.h cuart icc clock freq and divider setting support 2019-11-28 13:42:16 +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 enable the final slot 2019-11-28 13:42:16 +01:00
stdio_start.h Switch SERCOM7 (Debug UART) to sync mode + add STDIO 2019-02-27 13:17:17 +00:00
talloc.c talloc asserts 2019-11-28 13:42:16 +01:00
talloc.h Import libtalloc-2.1.14 into the tree 2019-05-11 20:21:41 +02:00
usb_descriptors.c debug usb-cdc uart: disable it. 2021-11-27 14:30:00 +00:00
usb_descriptors.h debug usb-cdc uart: disable it. 2021-11-27 14:30:00 +00:00
usb_dfu.h usb dfu header cleanup 2020-02-10 10:26:55 +00:00
usb_start.c debug usb-cdc uart: disable it. 2021-11-27 14:30:00 +00:00
usb_start.h usb dfu header cleanup 2020-02-10 10:26:55 +00: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