aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2021-06-01assert: Use printf_sync() to ensure printing of assert / paniclaforge/cardem2Harald Welte3-2/+16
Change-Id: Icc202e60445d9be1cdcd61176db5ed1704d583e7
2021-06-01card_emu: use edge-triggered VCC ADC logicKévin Redon1-2/+8
Before this patch, we used to st ci->vcc_active depending on the instantaneous ADC reading of VCC. Is it > .5v, we claim VCC is active, and if it's below, VCC is inactive. With this patch we move to an edge triggered approach: Only change ci->vcc_active if the previous reading was different from the current reading. FIXME: why? Change-Id: I71b703162219484e43638f1f2f692e9dd554ef55
2021-06-01jenkins.sh: build 'cardem' firmware also for simtrace boardHarald Welte1-1/+1
Now that it is supported, we should also build + publish the related binaries. Change-Id: I9231503b865adc863959d74d98e7f24f83c293e9
2021-06-01simtrace board.h: Enable HAVE_CARDEM if we build the cardem firmwareHarald Welte1-1/+5
likewise, enable HAVE_SNIFFER currently only if we build the sniffer firmware. It's been many years too long to finally get those all merged in one firmware :( Change-Id: Ib433f180746f75458a44f4988643465bd846b04b
2021-04-25st2-cardem-pcsc: Use ATR of real card by defaultHarald Welte1-32/+19
Before this patch, we would always use either a hard-coded default ATR from the source code, or we would use one that the user specified on the command line. The more sane default is to pass-through the real ATR of the card. Change-Id: I75bf618a6b0d983727de4c2f19b4b48ec3e12af8 Closes: OS#5107 Requires: libosmocore.git 22117a7164012d6d88fc202cd63df79c6068484d
2021-04-25st2-cardem-pcsc: Fix goto-in-while messHarald Welte1-5/+12
There's some code that wasnts to goto within the while loop, and there's some other code that wants to goto after the while loop. Don't jump from outside the while loop into the while loop. Change-Id: Ic2a94ad034dd259f15712687443b569f0d18ff3f
2021-04-22contrib/jenkins.sh: Switch from rita -> ftp.osmocom.orgHarald Welte1-5/+5
We should use service-aliases and not the primary host name, as that makes migration between machines hard. Change-Id: I34b18457268ae6f8ae3a053c5424210074a4d52e
2021-04-08card_emu: Fix computation of waiting timeHarald Welte2-3/+5
As we store the waiting time (WT) in 'etu', we must adjust the formula from ISO 7816-3. The 'Fi' component in the formula only exists to compute clock cycles from the etu, which we don't need here. Without this patch, the waiting time would be way too large (by a factor of 372 in the default case). Change-Id: Ia21bc7303f9b38834b5b1753983ed2a99bfc7d95 Related: OS#1704
2021-04-08card_emu: Fix USART timer, particularly in re-start situationsHarald Welte1-12/+40
The existing code started the timer once (and expired once) but didn't properly handle re-starting of the timer. Neither did it handle the 'half time expiration' case. If we want to call a function after half the WT expiring, we must of course program the hardware for half the timeout, and not the full timeout... Change-Id: Ia999d97f835c27597fcd1cf7ac78bac0ab9c98c1 Related: OS#1704
2021-04-08card_emu: Use USART timeout for waiting timeHarald Welte7-52/+140
Instead of using the timer/counter peripheral to handle the waiting time and corresponding timeout, the USART peripheral internal timeout mechanism is used. This is particularly important for the SIMtrace board since there (contrary to other boards) the I/O signal is not wired to a TIO pin of the timer/counter block, and hence Rx/Tx data cannot reset that timer/counter. As a result of this migration, cardem is now supported not only on owhw + qmod, but also on the simtrace board. The guts of this change have been lifted out of Change-Id Ibcb2c8cace9137695adf5fb3de43566f7cfb93b5 by Kevin Redon, which was unfortunately touching various different topics at the same time and hence was split up. Some improvements are the introduction of the ENABLE_TX_TIMER_ONLY mode, which avoids the USART interrupt handler getting hammered with TXRDY between release of RST and start of the ATR. Change-Id: Ibcb2c8cace9137695adf5fb3de43566f7cfb93b5 Related: OS#1704
2021-04-08card_emu: explicitly initialize PTS and TPDU statesHarald Welte1-0/+3
Those are already initialized at various transitions of the master 7816 FSM, but let's properly initialize them at start-up, too. Change-Id: I81b2a8ef3284559164700d94717e4ccf008f53df
2021-04-08card_emu: improve reset detection conditionsHarald Welte1-1/+2
* enter ISO_S_WAIT_RST when RST is asserted * enter ISO_S_WAIT_ATR only when we RST is released while in state ISO_S_WAIT_RST Change-Id: I620333aa8d45561a8028b948955a27f667b58406
2021-04-08iso7816_fidi: Add iso7816_3_ prefix to symbols; fix terminologyHarald Welte5-18/+19
Fi/Di are not the index into the table, but the contents of the table as resolved by Fi_index / Di_index. Let's clarify the terminology. Change-Id: If364e08e7c9a3a9707e6d54b9267c6a7c088e415
2021-04-08card_emu: Clarify and differentiate F/Fi/F_index/Fi_indexHarald Welte2-26/+52
The ISO7816 spec terms are well-defined, let's not abuse them. We used to consider "Fi" as the "index into the table of F values", while the spec actually considers Fi as the initial value for F. Let's make sure we use the terms quite clearly: * Fi and Di are the initial values for F and D * F*_index and D*_index are the indexes into the ISO7816-3 Tables Furthermore, let's track Fi separately from F, as e.g. the waiting time definition only considers Fi as indicated in the ATR, despite an actually different F value might have been negotiated via PTS meanwhile. Change-Id: Ieb2425e8380a81b79df7b2bd072902994e9c3ee7 Related: OS##1704
2021-04-08card_emu: Rename fi to Fi and di to DiHarald Welte1-15/+14
As we will soon introduce the distinction between Fi and F, we should use uppercase letters, as lower-case 'f' is defined in ISO7816-3 as the frequency, which is different from the upper-case 'F'. Change-Id: Iaede621551520576e9b9af878fa46fbc88e59c2a
2021-04-08make sim switch board specificKévin Redon4-0/+152
the simtrace board uses a bus switch not used on qmod and owhw to switch the SIM between physical and virtual Change-Id: Ieaf2ed4761fc3e04f33f9aac5c04a768c9a6f71e Related: OS#1704
2021-04-08card_emu: waiting_time is stored in etu, not clocks.Harald Welte1-1/+1
The comment didn't reflect the source. I checked all users and the code consistently stores the waiting time in units of 'etu'. Change-Id: I2bc4a7c19cee5fb487ad639ee48ecaea706f6172
2021-04-08firmware: disable stack protector by defaultOliver Smith1-6/+8
Disable stack protector for all boards/apps by default, not only qmod-dfu. Use 'make STACK_PROTECTOR=1' to enable. This was recommened by Eric: "I'd argue that we do not want this in general, since it adds canaries to all functions that deal with buffers, and therefore impacts the overall timing in a non determinstic way depending on inlining and optimizations, while contributing nothing in non debug builds." Related: OS#5081 Change-Id: I30ad97f231ea5b401def650bc9adc7e9f2770df0
2021-04-07firmware: qmod-dfu: disable stack protectorOliver Smith1-0/+6
Prevent build failure on debian 9, ubuntu 20.04, 20.10, where bin/qmod-dfu-flash.elf does not fit the ROM. Fixes: OS#5081 Change-Id: I9fffe4c323094679062428f41a4246b1c1b30ca2
2021-04-06Revert "add library providing ISO 7816-3 utilities"Harald Welte2-229/+0
This reverts commit 4a29f64cbe12ca9fbddd66ae10b614388fef5e9b. The code replicates to a large extent what is already present in iso7816_fidi.c and I have serious doubts about the correctness of the computation in its iso7816_3_calculate_wt() function. Change-Id: I80dab4401d13306d573a6a35ce8729d2acc141e4
2021-04-06Revert "add ISO 7816-3 library to remsim project"Harald Welte1-1/+1
This reverts commit 4a58c08d671adc928fea9dc12018c26818f24d4e. The code replicates to a large extent what is already present in iso7816_fidi.c and I have serious doubts about the correctness of the computation in its iso7816_3_calculate_wt() function. Change-Id: I3f26da4e9aa8d7b0f4b4b7992269cf365a643ec7
2021-04-05simtrace2-cardem-pcsc: Make it work againHarald Welte1-23/+159
* support Interrupt STATUS notifications * use osmocom libusb abstraction * use asynchronous URBs for interrupt + bulk Change-Id: Ib04798572295f25477719124530b6584780c5b75
2021-04-04minor add commentsKévin Redon1-8/+28
this is just to better understand the flow Change-Id: I045286836176da729cc8c863866d6f6aa3836592
2021-04-04rename PIN_PHONE_{CLK,IO} to PIN_USIM1_{CLK,IO}Kévin Redon1-3/+3
While this differs from tha naming in the schematics ({CLK,IO}_PHONE), this matches the naming scheme used for USIM2 and the naming on other boards. Change-Id: I486b14260faec897e8c8698c4b7987bf36492497
2021-04-04add ISO 7816-3 library to remsim projectKévin Redon1-1/+1
Change-Id: I99f3fecbc00d2379c3a6dc457b047c6fee41c292
2021-04-04add library providing ISO 7816-3 utilitiesKévin Redon2-0/+229
this will become part of libosmocore since it it common to smart card related projects (such as osmo-ccid-firmware) Change-Id: I3d4c65d137fc4555fcb256443feadd1c695de73d
2021-04-04cardem: currently simtrace does not support cardemKévin Redon1-1/+1
the SIMtrace board does not support the current card emulation application because this uses a timer counter to handle the timeouts, but on the SIMtrace board this is not connected to the CLK signal Change-Id: Idd09ea534179f0ede705573e1373dbd045c9828a
2021-04-04cardem: choose a more reasonable default ATREric Wild2-3/+38
PCSCd does not like invalid ATRs Change-Id: I1eebfdc06be55931c2e80e2b515ac3a559737c38
2021-04-04firmware: allow verbose buildsEric Wild1-6/+14
make V=1 can be used to echo all compilation commands, which is useful because it allows IDEs to parse the gcc output in oder to properly index the source files using the actual defines passed to the compiler. Change-Id: I25c41dff89302a73ddd2a4aaba7cb14912fac3b8
2021-04-04firmware: do not allow undefined symbolsEric Wild2-2/+7
For some reason undefined symbols were downgraded to warnings, which means building a firmware that calls missing functions (= address zero) was perfectly fine, which of course made development more exciting.... This applies to builtins, too, printf of one char gets downgraded to putchar, which we don't have, so disable builtins. Change-Id: I492f41ad4162b9d07b1881ae4aed019db2dff8b5
2021-04-04minor: use same LED pattern for cardem as other applicationsKévin Redon1-1/+2
Change-Id: I5608c3312b648c0d59f79338ef1f97b6fe08f5b9
2021-03-08contrib/prepare_upload.sh: fix cd problemsOliver Smith2-1/+3
Call the script from the proper directory, and cd into the topdir on top of the script. Fixes: /build/contrib/jenkins.sh: line 71: contrib/prepare_upload.sh: No such file or directory Related: OS#4413 Change-Id: Icbfaa5579aab887830ca90b24a2e322df8d98f4f
2021-03-05firmware: create duplicate files for upload onlyOliver Smith3-4/+15
Don't create copies of firmware files with version strings appended in the normal build. Only do this before uploading the firmware files. I have verified that "make" before this change and "make; contrib/prepare_upload.sh" after produce the same files. Close: OS#4413 Change-Id: I118a4ff397a178281c26a6b98112fa66b6f049ab
2021-03-05gitignore: add firmware/apps/*/usb_strings.txt.patchedOliver Smith1-0/+1
Change-Id: Ic99a5ae69ed755e6f74a1392678dcf71ab69e0d8
2021-03-05host: use git-version-gen/tarball-v. from topdirOliver Smith3-153/+2
Use .tarball-version from the topdir, because it only gets written there when generating the OBS package. Remove the duplicate git-version-gen script and use the one from the topdir to generate a version string if building from the git tree. Related: OS#4413 Change-Id: I4b197a218ab44632ff182ffbd72e15c2b20db341
2021-03-05firmware/Makefile: fix UNKNOWN in OBS packagesOliver Smith1-1/+1
Fix having the version set to UNKNOWN in all packages built by OBS. The osmo-ci.git scripts generating the source packages to be built by OBS generate a ".tarball-version" file with a version string like "0.7.0.70-657c", but it did not get used because the path was wrong. Related: OS#4413 Related: https://osmocom.org/projects/cellular-infrastructure/wiki/Git-version-gen Change-Id: Ic0b06011a604beec7c1c907c2c6e4ae927456e2e
2021-03-05d/source/format: new fileOliver Smith1-0/+1
Fixes: dpkg-source: warning: no source format specified in debian/source/format, see dpkg-source(1) Related: OS#4413 Change-Id: I4c474547233ebb87a1246b01fbd7ff8879921c21
2021-01-29dfu: let the device reset itselfEric2-4/+7
dfu flashing the ST12 was easy, but i was never able to get ST34 into dfu mode. Changing the firmware so it resets itself just like the octsim instead of starting a timer and waiting for a reset from the host made it work every time for me. Change-Id: Ida636ec925f40d6d56551f170150181350d03bbd
2020-10-27remove old pre-autoconf makefileHarald Welte1-28/+0
Change-Id: Icd519a69a5cb1950daa79df4d9864e8dea091289
2020-10-27Update READMEHarald Welte1-9/+8
it has been long out of date. Change-Id: I1137f33c5647f4d57a44224ee7259f3496edf1c4
2020-10-27rename simtrace2-remsim to simtrace2-cardem-pcscHarald Welte5-9/+9
This renaming is to avoid any confusion with the osmo-remsim project, living in its separate git repository. The simtrace2-cardem-pcsc doesn't feature any 'remote' part. Rather, it emulates the SIM card interface towards the device/phone/modem, and forwards it to a local PC/SC card reader. Change-Id: Ic15f0a89964a72fe3ab7a5145a073720f6207e24
2020-10-27remove usb2udpHarald Welte6-370/+43
The UDP based forwarding really only ever was a quick hack to demonstrate the capabilities. Meanwhile, we've had the proper osmo-remsim project implemented, which provides a much more reliable and comprehensive way of managing SIM card emulation devices (SIMtrace2, sysmoQMOD, ...) and collection of card readers (sysmoOCTSIM or any other PC/SC supported readers). Hence, remove the "UDP forwarding part. Change-Id: Ia4b9447b95872b6e0dda6dca644f1ed4a87355a0
2020-10-27remsim: adding cli argument to set the atrLeonard Hübner1-4/+20
Change-Id: I554b515e7954148f9ca5ba29417699da70b0945b
2020-10-18migrate from BSC_FD_* to OSMO_FD_*Harald Welte1-4/+4
Change-Id: I01c834537e18eacdd1658f88a4b4a6d4690d87a6
2020-08-16dfu: Save another 60 bytes by changing the way we print horizontal linesHarald Welte1-5/+16
Change-Id: I1660a04fb3e42200bc2fdd23aa114119620125a1
2020-08-16dfu: Shrink code by 144 bytes (by not calling PIO_InitializeInterrupts)Harald Welte1-2/+0
We are not using any PIO interrupts from DFU mode. It's only used in the main application firmware (verified by "git grep PIO_ConfigureIt") Change-Id: Id1447af519df3183061f3d3f156a8dd84789af16
2020-08-05firmware: fix builds with gcc stack smashing protection enabledHarald Welte2-1/+15
On Ubuntu 20.04 when builiding dpkg packages, even when cross-compiling firmware, gcc stack smashing protection is enabled. Let's provide what is minimally required in order to sucessfully complete builds on such platforms. Change-Id: Ic2f68f16b0730e7b5db17c30effc29a2909d1997 Closes: OS#4687
2020-05-25Introduce support for asynchronous USB transmissionHarald Welte3-15/+77
libosmo-simtrace2 traditionally had only supported blocking, synchronous I/O, while other osmocom programs such as remsim-client used asynchronous USB I/O. Using async USB I/O for IRQ + IN transfers while using blocking I/O for OUT transfers doesn't seem to work reliably, so we have to offer a way to perform the OUT transfers generated within libosmo-simtrace2 in async mode. Change-Id: Ib8939bdb7f533cd20a34a30a97f12b782b9816c2
2020-05-19contrib: integrate RPM specOliver Smith3-4/+3
Remove OpenSUSE bug report link, set version to 0.0.0, make it build with CentOS 8 etc. Related: OS#4550 Change-Id: I8595642bc07bf3044720942a0f1802448920cb50
2020-05-19contrib: import RPM specOliver Smith1-0/+103
Copy the RPM spec file from: https://build.opensuse.org/project/show/home:mnhauke:osmocom:nightly Related: OS#4550 Change-Id: I47ae01afb38fb18c462bf73501b49d6dc5d9f57f