Commit graph

424 commits

Author SHA1 Message Date
Romain Tartiere
84918fd075 Fix invalid memory access when a new driver is probing for hardware and the number of requested devices was already reached.
The probing functions assume that at least one device should be found and
passed to the caller, and only after finding such a device they will check that
they should eventually stop looking for more devices.  While we could make each
probing function capable of handling the special-case of finding 0 devices, it
is much more consistent to perform the check from the calling function.
2011-06-30 13:35:40 +00:00
Romuald Conty
fd19773c21 drivers/pn53x_usb: Make valgrind more happy :) 2011-06-28 14:05:40 +00:00
Romuald Conty
eec2794d2d drivers/pn532_uart,arygon: Make valgrind happy with UART-based drivers 2011-06-28 13:16:44 +00:00
Romuald Conty
e6051ceca4 chip/pn53x: clean up SAMConfiguration usage. 2011-06-27 17:12:25 +00:00
Romuald Conty
eb70f3842e Error handling improvement:
- Attempt to sort errors depending their source
 - Rename DE* errors to differenciate Device-Error and Driver-Error
 - Add ENOTIMPL error to raise a error when a feature is not (yet) implemented in libnfc
2011-06-27 16:31:10 +00:00
Romuald Conty
9c314d5652 Shrink InJumpForDEP frame size according to user manual. 2011-06-27 12:33:55 +00:00
Romuald Conty
904f41e0f7 drivers/pn53x*: use shared pn53x_ack_frame[] and pn53x_nack_frame[] instead of local declaration. 2011-06-27 10:33:55 +00:00
Romuald Conty
699e9008d1 Move ISO14443-3 UID cascading in a dedicated function. 2011-06-27 10:19:00 +00:00
Romuald Conty
0b42cbfb8f examples/nfc-emulate-forum-tag4: this example now fails with ENOTSUPP when used with a non-PN532 chip. 2011-06-27 09:14:19 +00:00
Romuald Conty
c40319c7b4 Windows: implement automatic uart port detection and input flush (Thanks to Edwin Evans) 2011-06-16 11:50:39 +00:00
Romain Tartiere
a8394caed5 Fix comparison between signed and unsigned. 2011-06-13 21:46:01 +00:00
Romuald Conty
29856a67a0 Rename USB_TIMEOUT to USB_INFINITE_TIMEOUT and use it each time bulk read need to be infinite. (Thanks to Guty) 2011-06-10 10:04:31 +00:00
Romuald Conty
850b3c2375 Improve USB support:
- All USB errors are now reported in text format;
 - USB drivers now relies on libusb-win32 with version >= 1.2.4.x (1.2.4.6 recommended) (Many thanks to Glenn)
2011-06-09 14:00:45 +00:00
Philippe Teuwen
7c88fc27b5 RC-S360, work-in-progress 2011-06-09 08:59:06 +00:00
Philippe Teuwen
082edbf598 More attempt to support Sony RC-S360 reader
Adapt InDeselect & InRelease to RC-S360
nfc-list now supports discovery of several typeA tags properly

Current status of RC-S360 support is:
    - nfc-list          => ok except for B' & 3B
    - nfc-anticol       => fails to send raw frames before select
    - nfc-mfultralight  => ok
    - nfc-mfclassic     => ok
    - pn53x-tamashell   => ok
    - pn53x-diagnose    => ok
    - nfc-dep-initiator => ok
    - nfc-dep-target    => fails in InitAsTarget
    - nfc-emulate-*     => fails in InitAsTarget

Commands momentarily disabled for RC-S360:
    - select_passive_target for B'& 3B
2011-06-08 00:09:57 +00:00
Philippe Teuwen
80a5ad1fd6 More attempt to support Sony S360 reader
Initialisation of RC-S360 in mode 0
Better generic nfc-list, does not rely only on DeSelect to avoid duplicates
Restore SetParameters for RC-S360
Handle Diagnose communication test properly

Tested:
    - nfc-list          => ok except for B' & 3B
    - nfc-anticol       => fails to send raw frames before select
    - nfc-mfultralight  => ok
    - nfc-mfclassic     => ok
    - pn53x-tamashell   => ok
    - pn53x-diagnose    => ok
    - nfc-dep-initiator => ok
    - nfc-dep-target    => fails in InitAsTarget
    - nfc-emulate-*     => fails in InitAsTarget

Commands momentarily disabled for RC-S330:
    - InDeselect
    - InRelease
    - select_passive_target for B'& 3B
2011-06-07 20:36:20 +00:00
Philippe Teuwen
91c46050c0 First attempt to support Sony S330 reader
Tested:
- nfc-list
- nfc-anticol
- nfc-mfultralight
- nfc-mfclassic

Commands momentarily disabled:
- SetParameters
- InDeselect
- InRelease
2011-06-05 22:25:05 +00:00
Philippe Teuwen
96538d052b Extend max length for firmware description & fix typo 2011-05-25 19:53:45 +00:00
Romuald Conty
17c63aebb5 pn53x_usb: continue to search a available device on usb errors (r1092 reverted then issue fixed). 2011-05-25 12:08:42 +00:00
Romuald Conty
917717c4ca drivers: UART based drivers could now use uart_flush_input() to discard junk bytes on input. 2011-05-25 10:31:19 +00:00
Romuald Conty
22e25a8b1e chips/pn53x: drivers now uses pn53x_data_new() and pn53x_data_free() to handle strcut pn53x_data allocation, initialization and freeing. 2011-05-25 10:25:17 +00:00
Romuald Conty
c45d4e685a pn53x_usb: continue to search a available device on usb errors (ie. Device Busy) 2011-05-25 10:15:18 +00:00
Romuald Conty
78ce62e7b6 Fix ISO/IEC 14443-4 hardware emulation.
NDO_AUTO_ISO14443_4 is now set to _true_ by default with nfc_target_init();
nfc_emulate_target() now fails (return _false_) when emulator->state_machine->io() failed;
Initialize nfc_device_t variables to _false_ in order to send correctly (see notes in nfc-device.c);
nfc_emulate_forum_tag4 prints error when nfc_emulate_target() failed.
2011-05-24 17:10:13 +00:00
Romuald Conty
975cd275d1 minor fixes 2011-05-20 16:09:00 +00:00
Romain Tartiere
4828211e97 Fix crash when usb_bulk_read() fails. 2011-05-18 22:25:09 +00:00
Romuald Conty
da6add3534 drivers/pn53x_usb: make PN53x usb connection more stable:
- move well-know USB problem hack into pn53x_usb_bulk_write()
 - put NACK hack to handle PN533 direct reply case
2011-05-17 10:41:26 +00:00
Philippe Teuwen
ff7696fffb nfc.c: reformulate comments of prev commit in chip-agnostic way. BTW there is more to do... 2011-05-12 20:51:44 +00:00
Philippe Teuwen
e5601e562f _timed(): now allows indirect control of intern prescaler via max expected cycles count 2011-05-12 20:33:00 +00:00
Philippe Teuwen
b98afced69 Move prescaler to CHIP_DATA struct & remove some compilation warnings 2011-05-11 23:22:52 +00:00
Philippe Teuwen
ab54a37678 list_targets support for ASK CTS512B (no anticol support yet) 2011-05-11 23:00:54 +00:00
Philippe Teuwen
53f1acfdcb _timed() fcts: allow 32b cycles counter & prescaler!=0 2011-05-11 20:56:09 +00:00
Philippe Teuwen
ca3c5007f6 pn53x _timed fcts now use burst read/write on fifo register 2011-05-10 23:44:36 +00:00
Philippe Teuwen
21dfe81d0b Some optimisations in initialisation of registers 2011-05-10 23:44:27 +00:00
Romuald Conty
2a9f876363 Import BUFFER_* macros from libfreefare and use them in writeback cache 2011-05-10 19:13:08 +00:00
Romuald Conty
2e630f7e0f windows port: fix uart_receive() under Win32 platform 2011-05-10 17:02:33 +00:00
Romuald Conty
d37b917352 chips/pn53x: remove double defines for pn53x registers. 2011-05-10 15:13:19 +00:00
Romuald Conty
e4dfa75045 chips/pn53x: *_timed() functions should prefer pn53x_WriteRegister() to bypass any kind of logical handling (mask, writeback, etc) 2011-05-10 13:53:48 +00:00
Romuald Conty
7bb4f4597d windows port: implement abort mecanism in pn532_uart driver (Based on provided patch: many thanks to Edwin Evans) 2011-05-10 13:26:57 +00:00
Philippe Teuwen
0e3357b589 pn53x _timed fcts: safebelts towards new writeback mechanism 2011-05-09 21:08:03 +00:00
Romuald Conty
ef3303839a chips/pn53x: fix memset size on writeback cache, typo and fix a mask problem on data store 2011-05-09 20:42:11 +00:00
Romuald Conty
b3cade2db2 Fix writeback cache size and some typo. 2011-05-09 19:55:22 +00:00
Romuald Conty
009d851771 Implement WriteBack cache (Fixes Issue 155) 2011-05-09 19:34:00 +00:00
Romuald Conty
95914345e1 chips/pn53x: add pn53x_data_new() function to alloc and init pn53x_data structure. 2011-05-09 18:47:48 +00:00
Romuald Conty
ebb352f1f3 Clean up and add some debug msg on ReadRegister/WriteRegister 2011-05-09 15:14:50 +00:00
Romuald Conty
25e2dbec95 chips/pn53x: set ui8LastCommand in chip layer instead of driver layer. 2011-05-09 14:22:12 +00:00
Romuald Conty
902bbfb04c Fix a segfault when abort_p is NULL. 2011-05-09 11:19:01 +00:00
Romuald Conty
921d28d976 Attempt to provide an abort mecanism for windows users... 2011-05-09 11:14:43 +00:00
Romuald Conty
468027ba2b chips/pn53x: PN532 now goes in LowVBat mode when setting idle mode from target mode. 2011-05-09 10:44:44 +00:00
Romuald Conty
be0f0b0828 New function nfc_idle() to set the NFC device in idle mode.
nfc_disconnect() now switch NFC device into idle before disconnecting;
pn53x_data now have a operating_mode enum to know the current running mode (initiator, target or idle);
new pn53x_PowerDown wrapper for PowerDown (PN532) command;

Note: ARYGON idle mode now to be implemented and ACR122 does not support this mode.
2011-05-09 10:09:40 +00:00
Romuald Conty
3a9327d1be document nfc_abort_command() 2011-05-06 23:25:41 +00:00