cardem: use USART timeout for waiting time

the reset/ATR handling has been heavily updated/fixed.
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 the
clock signal is not connected to the timer counter.
thus this change adds card emulation support for SIMtrace boards.

Fi and Di have been properly rename to F and D since the "i"
stands only for an "indicated" value, not the actual value.
this does not change the USB protocol (the variable have just been
renamed).
additional variables store more information about the card
capabilities

NOTE: it has only be tested for the SIMtrace board

Change-Id: Ibcb2c8cace9137695adf5fb3de43566f7cfb93b5
This commit is contained in:
Kévin Redon
2019-06-13 16:34:51 +02:00
committed by Eric Wild
parent cd62c46e6d
commit 5eaf5f8e3a
14 changed files with 365 additions and 66 deletions

View File

@@ -71,9 +71,9 @@ static int process_do_status(struct osmo_st2_cardem_inst *ci, uint8_t *buf, int
struct cardemu_usb_msg_status *status;
status = (struct cardemu_usb_msg_status *) buf;
printf("=> STATUS: flags=0x%x, fi=%u, di=%u, wi=%u wtime=%u\n",
status->flags, status->fi, status->di, status->wi,
status->waiting_time);
printf("=> STATUS: flags=0x%x, F=%u, D=%u, WI=%u WT=%u\n",
status->flags, status->f, status->d, status->wi,
status->wt);
return 0;
}