summaryrefslogtreecommitdiff
path: root/firmware/src/dfu/dfu.c
Commit message (Collapse)AuthorAgeFilesLines
* DFU: Support re-flashing of DFU via DFUHarald Welte2011-07-301-16/+132
| | | | | | | | | As we re-locate the entire sam7dfu program into RAM, we don't need to execute from flash and can thus re-program the DFU partition via the DFU protocol itself (alternate setting '1'). We also implement downloading executable code into RAM using alternate setting '2'. The latter part is not properly executed yet.
* sam7dfu: update copyright yearsHarald Welte2011-07-291-1/+1
|
* sam7dfu: make sure we can use USB reset to get from DFU -> APPHarald Welte2011-07-291-2/+14
| | | | | | | When we went through a Download -> Manifest cycle, we can switch back to dfuIDLE. However, we need to memorize that manifest had already happened and thus should treat a host-initiated bus reset as trigger to switch back into application mode.
* dfu: fix EP0 IN trasnfers that are even multiple of 8Harald Welte2011-07-071-4/+14
| | | | | | We have to send a ZLP at the end of such transfers, otherwise the host will time out at the end of the transfer. This resulted in multi-second delays for recognizing the SIMtrace hardware by the USB host.
* allow GETSTATE and GETSTATUS requests in MANIFEST state (compatibility with ↵laforge2008-02-171-3/+19
| | | | | | dfu-util) git-svn-id: https://svn.openpcd.org:2342/trunk@413 6dc7ffe9-61d6-0310-9af1-9938baff3ed1
* Add watchdog reset to dfuhenryk2007-11-071-1/+8
| | | | git-svn-id: https://svn.openpcd.org:2342/trunk@314 6dc7ffe9-61d6-0310-9af1-9938baff3ed1
* moved flash code to seperate filemeri2007-04-101-2/+2
| | | | git-svn-id: https://svn.openpcd.org:2342/trunk@294 6dc7ffe9-61d6-0310-9af1-9938baff3ed1
* - add new DAC driver (instead of poti) for PICClaforge2006-12-181-0/+6
| | | | | | | | | | | | | | - 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-0/+12
| | | | | | | | | | | | | | | | | | | | | - 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-0/+2
| | | | git-svn-id: https://svn.openpcd.org:2342/trunk@261 6dc7ffe9-61d6-0310-9af1-9938baff3ed1
* acknowledge SET_INTERFACE requestlaforge2006-09-301-1/+3
| | | | git-svn-id: https://svn.openpcd.org:2342/trunk@238 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-19/+32
| | | | | | | | - 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
* - Implement runtime DFU switching and reset-after-update. This meanslaforge2006-09-231-17/+17
| | | | | | | we can now reflash without any buttons or replugging of the device git-svn-id: https://svn.openpcd.org:2342/trunk@222 6dc7ffe9-61d6-0310-9af1-9938baff3ed1
* make sure DFU loader always prints some informational / copyright message ↵laforge2006-09-221-7/+11
| | | | | | upon startup git-svn-id: https://svn.openpcd.org:2342/trunk@220 6dc7ffe9-61d6-0310-9af1-9938baff3ed1
* - we increase the DFU size from 4k to 16k size. This is mainly due to thelaforge2006-09-221-15/+55
| | | | | | | | | | | | | | | | | | | SAM7S128 and SAM7S256 being restricted to 16k lock region size. If we want to lock the bootloader, it has to be 16k aligned. This wastes a lot of memory, since a non-debug DFU implementation fits currently into less than 4k. But anyway, we have lots of flexibility for the future given that amount of space. - The DFU size change introduces also a change in dfu_api location to 0x103fd0 - Allow GETSTATE and GETSTATUS from runtime mode (optional in DFU spec) - Make dfu_status a .data.shared variable, since it is used from GETSTATUS which we already support in runtime mode - do some led switching while flashing via DFU - disable all non-usb/dbgu interrupts when switching to DFU mode - fix interrupt-storm problem when dbgu is used in DFU loader - add missing linker script for SAM7S128 git-svn-id: https://svn.openpcd.org:2342/trunk@218 6dc7ffe9-61d6-0310-9af1-9938baff3ed1
* DFU works (fix various bugs such as forgetting to shift the page number, ↵laforge2006-09-211-69/+122
| | | | | | checking for invalid page numbers, off-by-one error in flash page calculation, etc.) git-svn-id: https://svn.openpcd.org:2342/trunk@215 6dc7ffe9-61d6-0310-9af1-9938baff3ed1
* - add support for flashing to DFUlaforge2006-09-201-38/+28
| | | | git-svn-id: https://svn.openpcd.org:2342/trunk@210 6dc7ffe9-61d6-0310-9af1-9938baff3ed1
* - Add OpenPICC register definition (and USB command handling)laforge2006-09-201-10/+28
| | | | | | | | | | | | | | | | | | | - 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
* - implement some more missing DFU bitslaforge2006-09-201-11/+107
| | | | | | | | - add debugging support to DFU - introduce a auto-generated compile.h to add reviison number/... to firmware git-svn-id: https://svn.openpcd.org:2342/trunk@201 6dc7ffe9-61d6-0310-9af1-9938baff3ed1
* add GPL disclaimer to all C files that I wrotelaforge2006-09-131-0/+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-0/+681
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
personal git repositories of Harald Welte. Your mileage may vary