14443-4 TX chaining / RC632 FIFO refill

Harald Welte laforge at gnumonks.org
Thu Jun 15 09:28:47 CEST 2006


If you're following my series of commits from yesterday, then you will
note that they're mostly related to two issues

1) humble attempts to fix TX chaining in rfid_proto_tcl.c.  I didn't
   really remember, but it seems like when I originally wrote that code,
   I only implemented RX chaining, assuming that any transmitted APDU
   would always be smaller the negotiated FSC.

   This didn't really show up with the only existing user (libmrtd),
   since reading an ePassport doesn't require the reader to send any
   large commands to the Passport.

   Those attempts to fix it have not been successful yet, since there
   are some fundamental problems with the architecture of the
   tcl_transceive() function that need to be adressed.

   I'll look into this either today or tomorrow.

2) Try to implement RC632 FIFO refill during TX.  When we send a frame
   longer than 64bytes (assuming the FSC permits this), then we need to
   fill the fifo, start TX, and then keep refilling the fifo while TX is
   runnung.  Unfortunately this doesn't seem to work with the CM5121,
   since the USB-to-userspace latency is too big to refill in time, even
   when only running at 106kBps.

   So for now, I have hard-coded a 'mru' and 'mtu' for the rc632 asic
   implementation of 64 bytes, which obviously cuts down transfer speed
   quite a bit (due to increased effects of latency and more overhead).
   However, a quick look at the proprietary Ominkey driver suggests that
   they are doing it, too.

   As a side note, I'll probably be building my own RC632 based reader
   in the next couple of weeks.  With larger FIFO's, and an USB
   interrupt endpoint for using the full power of the RC632.  I'll keep
   this list posted on any progress.

- Harald Welte <laforge at gnumonks.org>          	        http://gnumonks.org/
We all know Linux is great...it does infinite loops in 5 seconds. -- Linus
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://lists.gnumonks.org/pipermail/librfid-devel/attachments/20060615/6a9b7952/attachment.pgp

More information about the librfid-devel mailing list