diff --git a/firmware/Makefile b/firmware/Makefile index b9f267bd..e3bb418d 100644 --- a/firmware/Makefile +++ b/firmware/Makefile @@ -95,7 +95,7 @@ C_OSMOCORE = $(notdir $(wildcard libosmocore/source/*.c)) C_LIBCHIP = $(notdir $(wildcard $(AT91LIB)/libchip_sam3s/source/*.c) $(wildcard $(AT91LIB)/libchip_sam3s/cmsis/*.c)) C_LIBUSB = USBDescriptors.c USBRequests.c USBD.c USBDCallbacks.c USBDDriver.c USBDDriverCallbacks.c -C_LIBUSB_RT = dfu.c dfu_desc.c dfu_runtime.c +C_LIBUSB_RT = dfu.c dfu_runtime.c C_LIBUSB_DFU = dfu.c dfu_desc.c dfu_driver.c C_LIBCOMMON = string.c stdio.c fputs.c req_ctx.c ringbuffer.c diff --git a/firmware/apps/cardem/usb_strings.txt b/firmware/apps/cardem/usb_strings.txt index a9c3a8e8..0e797ac2 100644 --- a/firmware/apps/cardem/usb_strings.txt +++ b/firmware/apps/cardem/usb_strings.txt @@ -4,5 +4,7 @@ SIMtrace Sniffer SIMtrace CCID SIMtrace Phone SIMtrace MITM -CardEmulator USIM1 -CardEmulator USIM2 +CardEmulator Modem 1 +CardEmulator Modem 2 +CardEmulator Modem 3 +CardEmulator Modem 4 diff --git a/firmware/libboard/qmod/source/board_qmod.c b/firmware/libboard/qmod/source/board_qmod.c index 028d582e..2191a62e 100644 --- a/firmware/libboard/qmod/source/board_qmod.c +++ b/firmware/libboard/qmod/source/board_qmod.c @@ -19,6 +19,9 @@ static const Pin pin_peer_erase = {PIO_PA11, PIOA, ID_PIOA, PIO_OUTPUT_0, PIO_DE static const Pin pin_conn_usim1 = {PIO_PA20, PIOA, ID_PIOA, PIO_OUTPUT_1, PIO_DEFAULT}; static const Pin pin_conn_usim2 = {PIO_PA28, PIOA, ID_PIOA, PIO_OUTPUT_1, PIO_DEFAULT}; +/* array of generated USB Strings */ +extern unsigned char *usb_strings[]; + static void qmod_use_physical_sim(unsigned int nr, int physical) { const Pin *pin; @@ -230,6 +233,11 @@ void board_main_top(void) TRACE_INFO("Detected Quad-Modem ST12\n\r"); } else { TRACE_INFO("Detected Quad-Modem ST34\n\r"); + /* make sure we use the second set of USB Strings + * calling the interfaces "Modem 3" and "Modem 4" rather + * than 1+2 */ + usb_strings[7] = usb_strings[9]; + usb_strings[8] = usb_strings[10]; } /* Obtain the circuit board version (currently just prints voltage */