| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
rather than printing directly from the interrupt handler, just increment
the number and print it from the main loop function instead.
|
|
|
|
|
|
|
|
|
|
|
| |
Retrive previous PC from the stack before entering specific interrupt
handler routines. Allow user to trace where interrupt occured: e.g.
WatchDog and Spurious interrupt
Prior to this change, spurious interrupt would occur so much (observed
via gdb/remote debug) so it appears that the board stalled. Once a
custom spurious interrupt installed, the code continues after the
interrupt instead of re-entering the interrupt.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The codnition for flushing a req_ctx on UART idle is fixed to flush only
if
1) There has been no new data since last check, and
2) There are no req_ctx currently pending to be transmitted to USB, and
3) We did NOT just got a reset and waiting for ATR
I saw an ATR split in two different req_ctx prior, presumably flush
decided to send req_ctx after ATR but got a new character just before
sent). If we did get a RESET, let original logic decide to send the
req_ctx -- presumably when ATR data is fully received.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When any of the following events occur:
* VCC_PHONE off
* nRST
* RST
we tranmsit the current req_ctx, if there is data pending.
This ensures that for any successive data, the ATR flag in the next
req_ctx containing the data, not in the previous req_ctx. It also
ensures that the ATR is aligned at 0 offset in the new req_ctx, which is
an assumption the host software makes but the previous code didn't
ensure.
Furthermore, we introduce a periodic flushing of any pending but
incomplete req_ctx.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Prior to this patch, the ATR was not send in a separate USB message for
cards that are T=0 only.
|
| |
|
|
|
|
|
|
| |
the statistics count various events like overruns, parity errors,
missing rctx and can dump those stats via USB as well as on the serial
console.
|
|
|
|
|
|
|
|
|
| |
there is now a high-level command by which we can swithc the VCC
supply of the SIM cards.
For some reason, the _PASS variant (passing through the voltage from the
phone) doesn't seem to work reliably. It might be that we are draining
reverse current throught the LDO once we supply SIM power that way.
|
| |
|
| |
|
|
|
|
|
|
| |
Add missing entry in Fi_table. It's apparently used as '64' in some
reader and 'unsupported' in some other. For simtrace I guess we should
consider it 64.
|
|
|
|
|
|
|
|
| |
The FPF2005 has no reverse voltage blocker, this is why the 3.3V from
the LDO flows back into VCC_PHONE. It even damages the chip (so says the
datasheet) I corrected the double power source problem by disabling the
LDO (see patch), but still 1.8V does not work and 3.0-3.3V is used. I
have to look for other reasons.
|
|
|
|
|
| |
There were some mistakes while copying the tables from ISO 7816-3,
and also a quite old version of 7816-3 was used.
|
|
|
|
|
| |
In case there are no historical bytes, we immediately transition from
the last TD byte into the WAIT_TCK or WAIT_APDU state.
|
| |
|
|
|
|
|
| |
This prevents an IRQ-flood after a parity or overrun error, which
in turn would cause a watchdog reset.
|
|
|
|
|
|
|
| |
As a SIM card tracer, we want to remain completely passive and thus not
signal back parity errors with the ISO 7816 NACK.
The UART INACK flag does exactly that...
|
|
|
|
|
| |
This will allow us to load code directly into RAM without going through
flash.
|
|
|
|
| |
This also adds a new 'main_factory' target for simtrace
|
| |
|
|
|
|
|
|
| |
This is just a temp rework in the 1st generation prototype, as the bus
switch has too high resistance for passing throuhg Vcc from the phone
to the SIM.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|