Commit Graph

550 Commits

Author SHA1 Message Date
Harald Welte 5f31bdced0 add linker scripts for AT91SAM7S64 (64kByte flash / 16kByte RAM) variant 2010-11-12 20:26:06 +01:00
laforge 64a0ace8bf fix STAT_ERR/STAT_IRQ bit definition error in RC632 STATUS register definition
git-svn-id: https://svn.openpcd.org:2342/trunk@478 6dc7ffe9-61d6-0310-9af1-9938baff3ed1
2008-05-24 13:12:34 +00:00
henryk 3e2456c734 Make the diffmiller decoder a __ramfunc. Should severely increase decoder speed (needs testing), but takes up 4k of RAM
git-svn-id: https://svn.openpcd.org:2342/trunk@477 6dc7ffe9-61d6-0310-9af1-9938baff3ed1
2008-05-22 04:52:19 +00:00
henryk 2d8b2c3088 Switch SSC DMA Tx buffer allocation to dynamic, frees about 16k of RAM (the four static buffers took about 18k, the new dynamic allocations take about 2k)
git-svn-id: https://svn.openpcd.org:2342/trunk@476 6dc7ffe9-61d6-0310-9af1-9938baff3ed1
2008-05-22 04:46:52 +00:00
henryk 6b18612b08 Add code to change uid/nonce on the fly
git-svn-id: https://svn.openpcd.org:2342/trunk@475 6dc7ffe9-61d6-0310-9af1-9938baff3ed1
2008-04-28 16:24:30 +00:00
henryk 640d692258 Check received length of the frame that is supposed to contain the PCD challenge
Add code to get/set uid/nonce


git-svn-id: https://svn.openpcd.org:2342/trunk@474 6dc7ffe9-61d6-0310-9af1-9938baff3ed1
2008-04-28 16:24:08 +00:00
henryk 64dfc1c67c Remove obsolete command
git-svn-id: https://svn.openpcd.org:2342/trunk@473 6dc7ffe9-61d6-0310-9af1-9938baff3ed1
2008-03-21 04:36:57 +00:00
henryk 3597606419 Change inf for OpenPICC
git-svn-id: https://svn.openpcd.org:2342/trunk@472 6dc7ffe9-61d6-0310-9af1-9938baff3ed1
2008-03-18 21:38:58 +00:00
henryk 8134c3aa75 Add new hardware revision, make it the default
git-svn-id: https://svn.openpcd.org:2342/trunk@471 6dc7ffe9-61d6-0310-9af1-9938baff3ed1
2008-03-18 18:40:55 +00:00
henryk 68e2814776 Print error code in case of error
git-svn-id: https://svn.openpcd.org:2342/trunk@470 6dc7ffe9-61d6-0310-9af1-9938baff3ed1
2008-03-18 18:40:35 +00:00
henryk 714136e334 set_nonce function
git-svn-id: https://svn.openpcd.org:2342/trunk@469 6dc7ffe9-61d6-0310-9af1-9938baff3ed1
2008-03-18 17:49:58 +00:00
henryk bdadf6c151 this would be the more correct parity value
git-svn-id: https://svn.openpcd.org:2342/trunk@468 6dc7ffe9-61d6-0310-9af1-9938baff3ed1
2008-03-18 16:10:37 +00:00
henryk d2319edef0 Scale back the debug output
Print UID, nonce and response


git-svn-id: https://svn.openpcd.org:2342/trunk@467 6dc7ffe9-61d6-0310-9af1-9938baff3ed1
2008-03-18 16:10:20 +00:00
henryk ed093a9933 Scale back the debug output
git-svn-id: https://svn.openpcd.org:2342/trunk@466 6dc7ffe9-61d6-0310-9af1-9938baff3ed1
2008-03-18 16:09:43 +00:00
henryk d71c1c6501 Remove performance print, it's blocking the IRQ too long which in turn will make the SSC TXSYN IRQ arrive late, which will make the SSC not switch to CONTINUOUS in time which will truncate all
frames longer than 3.5 data bytes


git-svn-id: https://svn.openpcd.org:2342/trunk@465 6dc7ffe9-61d6-0310-9af1-9938baff3ed1
2008-03-18 14:26:49 +00:00
henryk 4911b0749c Actually use the received data for the decision whether to send anticol frames
git-svn-id: https://svn.openpcd.org:2342/trunk@464 6dc7ffe9-61d6-0310-9af1-9938baff3ed1
2008-03-18 14:08:28 +00:00
henryk af156e1051 Only set up clocks once in the layer 2a code
git-svn-id: https://svn.openpcd.org:2342/trunk@463 6dc7ffe9-61d6-0310-9af1-9938baff3ed1
2008-03-18 10:34:09 +00:00
henryk 00488946bb Add dynamic UID, nonce encoding on the fly
git-svn-id: https://svn.openpcd.org:2342/trunk@462 6dc7ffe9-61d6-0310-9af1-9938baff3ed1
2008-03-17 19:43:56 +00:00
henryk a18b831b83 Use diffmiller performance measurement tools
git-svn-id: https://svn.openpcd.org:2342/trunk@461 6dc7ffe9-61d6-0310-9af1-9938baff3ed1
2008-03-17 19:42:46 +00:00
henryk 48e2172698 Add performance measurement tools
git-svn-id: https://svn.openpcd.org:2342/trunk@460 6dc7ffe9-61d6-0310-9af1-9938baff3ed1
2008-03-17 19:42:19 +00:00
henryk a2f88381cc Change used interrupts
git-svn-id: https://svn.openpcd.org:2342/trunk@459 6dc7ffe9-61d6-0310-9af1-9938baff3ed1
2008-03-17 19:41:38 +00:00
henryk 5ed9125edc Revert since the 'faster' version was not correct (and a fixed version was even slower)
git-svn-id: https://svn.openpcd.org:2342/trunk@458 6dc7ffe9-61d6-0310-9af1-9938baff3ed1
2008-03-15 08:14:11 +00:00
henryk 625ffcb32a Fix the clock gating for the new layer 2 code
Only perform the switch to continous when necessary since it has serious side effects in the current hardware (we really need TF ored into the clock gating)


git-svn-id: https://svn.openpcd.org:2342/trunk@457 6dc7ffe9-61d6-0310-9af1-9938baff3ed1
2008-03-15 04:29:10 +00:00
henryk 8ad8a1ea88 Another 36 carrier cycles (is not fully correct though)
git-svn-id: https://svn.openpcd.org:2342/trunk@456 6dc7ffe9-61d6-0310-9af1-9938baff3ed1
2008-03-14 21:04:22 +00:00
henryk 245b3c8a65 Enhances timing by 14 carrier cycles
git-svn-id: https://svn.openpcd.org:2342/trunk@455 6dc7ffe9-61d6-0310-9af1-9938baff3ed1
2008-03-14 21:03:43 +00:00
henryk f7a420f238 Faked anticollision working now. During stress test (OpenPCD reqa firmware in anticol mode performing one cycle every 70ms) there were 52 late frames in 15992.
git-svn-id: https://svn.openpcd.org:2342/trunk@454 6dc7ffe9-61d6-0310-9af1-9938baff3ed1
2008-03-14 18:29:28 +00:00
henryk b7a11d3b34 Better Output
git-svn-id: https://svn.openpcd.org:2342/trunk@453 6dc7ffe9-61d6-0310-9af1-9938baff3ed1
2008-03-14 09:29:43 +00:00
henryk e2e37bea66 Add T/C based receiver code with integrated miller decoder
Integrate T/C receiver into iso14443 layer 2a
Add state field to iso14443_frame, rename ssc buffer state constants
Sniffer seems to work with the new code


git-svn-id: https://svn.openpcd.org:2342/trunk@452 6dc7ffe9-61d6-0310-9af1-9938baff3ed1
2008-03-14 04:55:15 +00:00
henryk 9615190a75 Add forgotten sanity check
git-svn-id: https://svn.openpcd.org:2342/trunk@451 6dc7ffe9-61d6-0310-9af1-9938baff3ed1
2008-03-13 04:17:46 +00:00
henryk c319d646a7 Remove SSC DMA Rx buffers that are not going to be used for now and take up precious RAM
git-svn-id: https://svn.openpcd.org:2342/trunk@450 6dc7ffe9-61d6-0310-9af1-9938baff3ed1
2008-03-12 17:32:45 +00:00
henryk 274518e5d9 Further optimizations, is now down to 1450 MCK/2 cycles for a 7 bit frame, that should be real-time capable
git-svn-id: https://svn.openpcd.org:2342/trunk@449 6dc7ffe9-61d6-0310-9af1-9938baff3ed1
2008-03-10 10:49:36 +00:00
henryk 7f0e281614 Further optimisation on the differential miller decoder, is now down to 1750 MCK/2 cycles for the short frame
git-svn-id: https://svn.openpcd.org:2342/trunk@448 6dc7ffe9-61d6-0310-9af1-9938baff3ed1
2008-03-10 09:52:17 +00:00
henryk 9cde1dd082 Add performance measurement code
Measure miller decoder performance


git-svn-id: https://svn.openpcd.org:2342/trunk@447 6dc7ffe9-61d6-0310-9af1-9938baff3ed1
2008-03-10 00:53:54 +00:00
henryk bea54255a3 Add size printouts before and after compilation
git-svn-id: https://svn.openpcd.org:2342/trunk@446 6dc7ffe9-61d6-0310-9af1-9938baff3ed1
2008-03-09 06:58:44 +00:00
henryk 2bf5a3ae4e Fix sending
Add Tx abort and SSC reset functionalities
There is a bug workaround for a peculiarity in the SSC Tx: When it is set to START CONTINOUS while a transmission is in progress (started by START TF RISING EDGE, which is necessary for the correct 
timing) it will lose one (or two?) bits of sample data. The resetting of the start condition itself is necessary because the SSC will only transmit up to 64 bytes (32 bit times 16) per start 
condition
Add performance counters for sent and received frames


git-svn-id: https://svn.openpcd.org:2342/trunk@445 6dc7ffe9-61d6-0310-9af1-9938baff3ed1
2008-03-09 00:40:55 +00:00
henryk b5be7c184f convert pio irq isr to a switching isr
git-svn-id: https://svn.openpcd.org:2342/trunk@444 6dc7ffe9-61d6-0310-9af1-9938baff3ed1
2008-03-05 05:52:53 +00:00
henryk 6304718e37 Port over the differential miller decoder from the sniffonly host tool
Move clock switch to its own header file
Specify default (and for non-clock switching capable hardware: single) clock source in hardware definitions


git-svn-id: https://svn.openpcd.org:2342/trunk@443 6dc7ffe9-61d6-0310-9af1-9938baff3ed1
2008-03-05 05:03:36 +00:00
henryk 3ee3c4a649 Copy over the relevant changes from the sniffonly branch pending integration
git-svn-id: https://svn.openpcd.org:2342/trunk@442 6dc7ffe9-61d6-0310-9af1-9938baff3ed1
2008-03-05 01:59:58 +00:00
henryk bac6c469cc Forgotten commit
git-svn-id: https://svn.openpcd.org:2342/trunk@441 6dc7ffe9-61d6-0310-9af1-9938baff3ed1
2008-03-05 00:31:52 +00:00
henryk 78a0c8a542 anticol working more often now
git-svn-id: https://svn.openpcd.org:2342/trunk@440 6dc7ffe9-61d6-0310-9af1-9938baff3ed1
2008-03-04 23:52:46 +00:00
henryk 8ee27fd95f Pretender does now do anticol. At least in some cases.
git-svn-id: https://svn.openpcd.org:2342/trunk@439 6dc7ffe9-61d6-0310-9af1-9938baff3ed1
2008-03-03 21:57:23 +00:00
henryk 440a95fcf1 Sending seems to be reliable now.
Once in a while (about 1 in 20) there's an error condition that's not being recovered from, need to investigate


git-svn-id: https://svn.openpcd.org:2342/trunk@438 6dc7ffe9-61d6-0310-9af1-9938baff3ed1
2008-03-03 20:56:30 +00:00
henryk d3bab6e943 Implement transmission
Implement a 'pretender' for PoC: Since Rx is not working properly we'll just pretend to have received something based on the approximate length.
Clarify length calculations in machester encoder and remove obsolete test code


git-svn-id: https://svn.openpcd.org:2342/trunk@437 6dc7ffe9-61d6-0310-9af1-9938baff3ed1
2008-03-03 09:18:19 +00:00
henryk 2f730c9091 Forgotten include file
git-svn-id: https://svn.openpcd.org:2342/trunk@436 6dc7ffe9-61d6-0310-9af1-9938baff3ed1
2008-03-02 02:32:08 +00:00
henryk 5b3bd67fb9 Add pwm led code from sniffonly branch
git-svn-id: https://svn.openpcd.org:2342/trunk@435 6dc7ffe9-61d6-0310-9af1-9938baff3ed1
2008-03-01 20:24:22 +00:00
henryk ad5b96d584 New cleaned-up (and then messed up again) SSC code
Better layering separation


git-svn-id: https://svn.openpcd.org:2342/trunk@434 6dc7ffe9-61d6-0310-9af1-9938baff3ed1
2008-02-29 08:53:20 +00:00
henryk 4b03b310ff Add information about new hardware patchlevel
git-svn-id: https://svn.openpcd.org:2342/trunk@433 6dc7ffe9-61d6-0310-9af1-9938baff3ed1
2008-02-29 08:13:12 +00:00
laforge 4dc2cb5b49 * move usb descriptors into separate file (src/os/usb_descriptors_openpcd.h)
* add USB HID skeleton


git-svn-id: https://svn.openpcd.org:2342/trunk@426 6dc7ffe9-61d6-0310-9af1-9938baff3ed1
2008-02-23 13:19:06 +00:00
henryk 3639a49edf Modifications to USB code to allow blocks of more than 1 byte to be more efficiently sent.
Should affect existing byte base code only marginally.
(Note: Not compliant with FreeRTOS' braindead coding style)


git-svn-id: https://svn.openpcd.org:2342/trunk@416 6dc7ffe9-61d6-0310-9af1-9938baff3ed1
2008-02-20 10:58:58 +00:00
laforge dde2f8e09c allow GETSTATE and GETSTATUS requests in MANIFEST state (compatibility with dfu-util)
git-svn-id: https://svn.openpcd.org:2342/trunk@413 6dc7ffe9-61d6-0310-9af1-9938baff3ed1
2008-02-17 16:14:00 +00:00