On Feb 12, 2012, at 11:04 AM, Harald Welte wrote:
It seems to me
that simtrace looses a byte between 2 URB transfers
from the device. To trace the problem down, I wrote a little
test-program, running the same APDU against the smart card.
Interesting. This hasn't been seen so far. Can you please let us know
more about your setup, particularly the baud rate you're running at? My
immediate assumption would be that the PPS is selecting a high-speed
rate and we run into an overflow somewhere, possibly in reading the UART FIFO.
If you can force your reader to use a lower rate (e.g. by using a very
old card, or explicit commands on the host/reader side) it would be
worth trying it at different speeds and checking if there is any change
in behavior.
Thank you for the fast reply.
Your assumption (speed issue) most probably right. It happened to me with a new “Gemalto
.NET v2.0” card which has baud rates up to 223kbps.
Would the simtrace device give me the transfer rate? How would you suggest to measure it?
To contrast it, I run the same setup (different APDUs) with a "old" Cyberflex
32k card. => I got a 100% match. No bytes lost. It's not a general issue.
Btw. a neat idea to run the card with a different speed when tracing ....
Interesting to see from the traces (new Gemalto .NET v2.0 card), that there is not PPS
negotiation. I would probably have to make a warm reset to trigger that. Indeed that would
be a nice experiment also I currently have no clue how to do it ... in theory that would
be something, which could be included into the firmware ... what do you think? (The
simtrace firmware would always negotiate a speed it could handle ....)
Regards,
Ben