summaryrefslogtreecommitdiff
path: root/firmware/src/os/pcd_enumerate.c
Commit message (Collapse)AuthorAgeFilesLines
* pcd_enumerate: Avoid disabling interrupt during endpoint refillMin Xu2014-11-111-25/+28
| | | | | | | | | The old implementation has a big local_irq_save() / restore() around the endpoint re-fill routine. This disables interrupts for a long time, psossibly causing lost interrupts. The new implementation works around this by disabling the USB (UDP) interrupt only, rather than disabling all interrupts on the system.
* req_ctx: Use consistent numeric range for REQ_CTX_STATEMin Xu2014-11-111-2/+4
| | | | | ... which will allow us to check for invalid states by a simple 'greater than' check later on.
* usb: Do not send ZLP when we have filled the windowv0.4Holger Hans Peter Freyther2011-12-141-25/+29
| | | | | | | | | | | | Only send the ZLP if we send less data than was required/asked for by the host and it is a multiple of the bMaxPacketSize0 (which is hardcoded to 8 right now). This is completing the change done in fe88b83e80df8be0351ff38ee6 to fix SIMtrace attached to OSX and not regress on windows. Introduce another parameter to udp_ep0_send_data to specify the window size (wLength) or if not available the default from USB 2.0 specification.
* USB: Add support for the 3rd DFU interface (RAM)Harald Welte2011-08-151-0/+6
|
* USB driver: use the DFU-provided function to send EP0 dataHarald Welte2011-07-071-48/+1
| | | | | There is no point in replicating the functionality that already exists in the DFU section of the flash
* disable USB EP0 debuggingHarald Welte2010-11-141-1/+1
|
* * move usb descriptors into separate file (src/os/usb_descriptors_openpcd.h)laforge2008-02-231-97/+4
| | | | | | | * add USB HID skeleton git-svn-id: https://svn.openpcd.org:2342/trunk@426 6dc7ffe9-61d6-0310-9af1-9938baff3ed1
* - add new DAC driver (instead of poti) for PICClaforge2006-12-181-4/+4
| | | | | | | | | | | | | | - DFU: put all DEBUG_ defines in "#ifdef DEBUG" enclosure - alter GPIO defines for new OpenPICC v0.4 prototype - add new AT91F_DBGU_Fini() function - take care of new inverted USB pullip in OpenPICC v0.4 prototype - fix typo in 'opicc_reg_write' macro - add some more PICC related SSC code NOTE: this firmware is the first version that will _NOT_ run on a OpenPICC v0.3 anymore! (All changes by Henryk Ploetz) git-svn-id: https://svn.openpcd.org:2342/trunk@283 6dc7ffe9-61d6-0310-9af1-9938baff3ed1
* - add svn:ignore property to make 'svn st' output more realisticlaforge2006-10-151-13/+81
| | | | | | | | | | | | | | | | | | | | | - remove old copy+paste+edit port of parts of librfid - add ability to directly link librfid.a from mainline librfid - make usb string descriptors optional again (config.h) - fix TC_CDIV to reset correctly on swtrig (For OpenPICC) - temporarily re-implement ep0_send_data() in pcd_enumerate.c - make UDP_PUPv4 switching conditional to PCD - introduce DEBUG_UNBUFFERED define in dbgu.c - fix some signed/unsigned/typecast related compiler warnings - remove dead code from src/os/led.c - implement a 'mdelay' and 'usleep' stub function (FIXME!) - rename rc632_... functions into opcd_rc632_... to avoid confusion - introduce new 'main_librfid' TARGET - make main_{reqa,analog} work with librfid rather than old code - introduce mroe debugging options for FIQ handler code in Cstartup_app - lots of PICC work that doesn't need comments now git-svn-id: https://svn.openpcd.org:2342/trunk@266 6dc7ffe9-61d6-0310-9af1-9938baff3ed1
* v0.4 of the readers uses a different pin for the USB pulluplaforge2006-10-041-2/+16
| | | | git-svn-id: https://svn.openpcd.org:2342/trunk@261 6dc7ffe9-61d6-0310-9af1-9938baff3ed1
* move udp irq/refill back to flash for nowlaforge2006-10-041-3/+3
| | | | git-svn-id: https://svn.openpcd.org:2342/trunk@256 6dc7ffe9-61d6-0310-9af1-9938baff3ed1
* - we have to respond with a STALL to SET_CONFIGURATIONlaforge2006-10-031-31/+33
| | | | | | | | | - add a comment about this strange fact - some code cleanup - add missing 'break' after end of GET_DESCRIPTOR USB_DT_DEVICE git-svn-id: https://svn.openpcd.org:2342/trunk@253 6dc7ffe9-61d6-0310-9af1-9938baff3ed1
* - Add revision to USB descriptorlaforge2006-09-301-1/+1
| | | | git-svn-id: https://svn.openpcd.org:2342/trunk@237 6dc7ffe9-61d6-0310-9af1-9938baff3ed1
* add stub for later implementation of suspend/resumelaforge2006-09-301-2/+11
| | | | git-svn-id: https://svn.openpcd.org:2342/trunk@236 6dc7ffe9-61d6-0310-9af1-9938baff3ed1
* - more accurate (and USB compliant) state transitionslaforge2006-09-301-44/+157
| | | | | | | - make gcc spit a bit less warnings git-svn-id: https://svn.openpcd.org:2342/trunk@235 6dc7ffe9-61d6-0310-9af1-9938baff3ed1
* - free all pending contexts when endpoint is being resetlaforge2006-09-301-5/+7
| | | | | | | - speed up usb processing by putting respective sections in RAM git-svn-id: https://svn.openpcd.org:2342/trunk@234 6dc7ffe9-61d6-0310-9af1-9938baff3ed1
* - fix minor issues with USB string supportlaforge2006-09-251-1/+1
| | | | git-svn-id: https://svn.openpcd.org:2342/trunk@228 6dc7ffe9-61d6-0310-9af1-9938baff3ed1
* - Include tool for Converting ASCII to UTF-16LE in C-Headerlaforge2006-09-251-30/+30
| | | | | | | | - Build UTF-16LE USB String descriptors from ASCII File - Introduce USB String Descriptor to DFU and runtime firmware git-svn-id: https://svn.openpcd.org:2342/trunk@227 6dc7ffe9-61d6-0310-9af1-9938baff3ed1
* use officially assigned usb vendor and product id'slaforge2006-09-251-5/+4
| | | | git-svn-id: https://svn.openpcd.org:2342/trunk@225 6dc7ffe9-61d6-0310-9af1-9938baff3ed1
* - move large rctx definitions to req_ctx.hlaforge2006-09-221-96/+175
| | | | | | | | | | | | | | | | - add more fine-grained debugging macros in pcd_enumarate.c - resolve race conditions between main-loop ep_refill and irq-triggered ep_refill by adding one irq-[b]locking variant - consolidate endpoint reset code into reset_ep() - add code to handle correct transmission and reception of usb transfers larger than endpoint size - use new jump address (0x104000) in DFU Cstartup.S - move main_usb to pcd subdirectory - fix include/compile.h make dependencies - make usb benchmark code use new large req_ctx git-svn-id: https://svn.openpcd.org:2342/trunk@219 6dc7ffe9-61d6-0310-9af1-9938baff3ed1
* - Add OpenPICC register definition (and USB command handling)laforge2006-09-201-27/+66
| | | | | | | | | | | | | | | | | | | - Add automatic generation of include/compile.h with svn revision and compiletime - Add openpcd_compile_version structure to obtain version via USB - Move LED commands into new CMD_CLS_GENERIC family - Update TODO - Add support for large (2048 byte) request contexts in addition to 64byte - Shrink req_ctx size by collapsing rx and tx buffer into one - move definition of DFU_API_LOCATION to header file - Implement large req_ctx aware USB transmit / refill routines - Implement TX refilling for IRQ Endpoint - Print version information at startup time - move some generic req_ctx processing into usb_handler.c - Some further work on DFU (still not finished) - Only use '-Os' for DFU, use '-O2' for application code git-svn-id: https://svn.openpcd.org:2342/trunk@208 6dc7ffe9-61d6-0310-9af1-9938baff3ed1
* fix location of dfu_apilaforge2006-09-201-1/+1
| | | | git-svn-id: https://svn.openpcd.org:2342/trunk@199 6dc7ffe9-61d6-0310-9af1-9938baff3ed1
* add GPL disclaimer to all C files that I wrotelaforge2006-09-131-1/+14
| | | | git-svn-id: https://svn.openpcd.org:2342/trunk@195 6dc7ffe9-61d6-0310-9af1-9938baff3ed1
* Completely separate DFU from application program, we now have a real bootloader.laforge2006-09-131-2/+3
| | | | | | | | | | | | | | DFU occupies 0x00100000 - 0x00100fff in flash, application starts at 0x00101000. DFU also occupies the first couple of bytes in SRAM, application starts at 0x00200024. In order to produce a samba-flashable image, first build dfu.bin by typing 'make -f Makefule.dfu', succeeded by 'make TARGET=... DEBUG=... BOARD=...' and then concatenating the two files together, e.g. cat dfu.bin main_reqa.bin > flash.bin. Actual flashing via DFU is still not operational, but will be implemented next git-svn-id: https://svn.openpcd.org:2342/trunk@194 6dc7ffe9-61d6-0310-9af1-9938baff3ed1
* move to new directorylaforge2006-09-121-0/+605
git-svn-id: https://svn.openpcd.org:2342/trunk@191 6dc7ffe9-61d6-0310-9af1-9938baff3ed1
personal git repositories of Harald Welte. Your mileage may vary