Attention is currently required from: Hoernchen, lynxis lazus.
jolly has uploaded a new patch set (#2) to the change originally created by Hoernchen. ( https://gerrit.osmocom.org/c/osmo-ccid-firmware/+/42779?usp=email )
The following approvals got outdated and were removed: Verified+1 by Jenkins Builder
The change is no longer submittable: Verified is unsatisfied now.
Change subject: 7816fsm: reset stale cuart state on FSM RESET entry ......................................................................
7816fsm: reset stale cuart state on FSM RESET entry
Reset paths reached without power-cycling (WTIME_EXP, HW_ERR, CARD_REMOVAL during a warm reset) leave the cuart with stale tx_busy, rx_threshold and wtime_etu from the prior transaction. The next ATR then hits card_uart_tx tx_busy assertion, or the ATR receive stalls because the 33-byte ATR can never reach a multi-byte rx_threshold left from a TPDU.
The new card_uart_tx_abort() clears tx_busy + rx_after_tx_compl + WT, without driving a synthetic TX_COMPLETE through the FSM.
iso7816_3_reset_onenter is the right place to do this alongside rx_threshold=1 and wtime_etu=default, this mirrors what card_uart_ctrl(POWER_*=0) already does, but for the warm-reset paths that don't touch power.
Change-Id: Iac8bd7f4f0eecccc9acce149277a4f5016fec7c1 --- M ccid_common/ccid_slot_fsm.c M ccid_common/cuart.c M ccid_common/cuart.h M ccid_common/iso7816_fsm.c 4 files changed, 40 insertions(+), 0 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-ccid-firmware refs/changes/79/42779/2