1
0
mirror of git://projects.qi-hardware.com/ben-wpan.git synced 2024-11-27 03:55:19 +02:00
Commit Graph

144 Commits

Author SHA1 Message Date
Werner Almesberger
c265151d2b atusb/fw: introduced function flash_end_write to properly finish flashing
- dfu.h (flash_end_write), flash.c (flash_end_write): write any incomplete
  buffer
- flash.c (flash_write, flash_end_write): call boot_rww_enable only at the
  very end, it won't erase our buffer in mid-page
- usb/dfu.c (my_setup): call flash_end_write at the end of a download
2011-03-11 17:56:41 -03:00
Werner Almesberger
2978afe92b atusb/fw/flash.c: simplified logic of flash_write and corrected several small bugs
- flash.c (flash_write): we don't use eeprom_busy_wait, removed it
- flash.c (flash_write): write the page only at one place
- flash.c (flash_write): corrected the address of the page write
- flash.c (flash_write): value being added to word wasn't shifted
2011-03-11 17:56:41 -03:00
Werner Almesberger
553c981551 atusb/fw/flash.c: implemented flash_can_write and flash_read (were stubs) 2011-03-11 17:56:41 -03:00
Werner Almesberger
f87bdce41f atusb/fw/Makefile: added auxiliary Flash programming target (for development)
- Makefile (prog-app): flash the application, without the boot loader
- Makefile (prog-read): retrieve the Flash content
2011-03-11 16:24:49 -03:00
Werner Almesberger
e29046d19b atusb/fw/Makefile (prog): corrected boot loader size in hfuse 2011-03-11 16:23:42 -03:00
Werner Almesberger
edfb8a94eb atusb/fw/Makefile: clean up handing of boot loader base address
- Makefile (BOOT_ADDR, boot.elf): use variable instead of hiding the
  address in a command
- Makefile (CFLAGS): pass BOOT_ADDR as a macro
- Makefile: removed commented-out application flashing code
2011-03-11 16:21:39 -03:00
Werner Almesberger
b5fd6e3132 atusb/fw/Makefile: lock fuse refuses 0xef; set it to 0x2f to pass verification 2011-03-09 03:11:15 -03:00
Werner Almesberger
b8fc1a7f54 atusb/fw/flash.c: added basic writing support (untested) 2011-03-09 02:02:05 -03:00
Werner Almesberger
1dcc83391e atusb/fw/Makefile: put -mmcu into CFLAGS so that DEPEND uses it, too
- Makefile ($(NAME).elf, boot.elf, %.o): don't pass -mmcu explicitly
- Makefile (CFLAGS): include -mmcu, so that it's also picked up by
  $(DEPEND)
2011-03-09 01:45:35 -03:00
Werner Almesberger
6ac82fc6c9 atusb/fw/README: avr-libc 1.17.1 has been released 2011-03-09 01:36:18 -03:00
Werner Almesberger
341b348ac0 atusb/fw/Makefile (clean): also remove the boot loader 2011-03-09 00:57:01 -03:00
Werner Almesberger
e8bed1f3c1 atusb/fw/: flash a boot loader instead of the application (in progress)
- boot.c: basic boot loader that runs DFU for 2 s, then starts the payload
- board.h (DFU_USB_VENDOR, DFU_USB_PRODUCT): added USB IDs for DFU
- flash.c: stubs for board-specific Flash functions
- Makefile: build boot.hex for the boot loader
- Makefile (prog): load the boot loader at its rightful place
- Makefile (prog): also set hfuse and the lock fuse
2011-03-09 00:41:32 -03:00
Werner Almesberger
f91738c306 atusb/fw/usb/: adapted DFU engine to current stack and abstracted Flash ops
- dfu.c: updated includes
- dfu.c (device_descriptor): renamed USB IDs from USB_VENDOR/PRODUCT to
  DFU_USB_VENDOR/PRODUCT to allow differentiation
- dfu.c: changed all __bit to "int"
- dfu.c: removed all __xdata and __reentrant
- dfu.c: changed "ep0" to "eps[0]"
- dfu.c (payload, flash_erase_page, flash_write_byte, block_write,
  block_receive, block_transmit, my_setup): abstracted Flash interface
  and removed target-specific operations
- dfu.h: added prototypes for target-specific Flash operations
- dfu,c (my_setup, my_descr): removed SDCC-specific hacks
- dfu.c (my_reset): commented out - did we actually use this ?
2011-03-08 19:10:58 -03:00
Werner Almesberger
fb2204ad84 usb/: added DFU implementation from f386base/fw/boot/ (unported) 2011-03-08 19:05:26 -03:00
Werner Almesberger
0676bef2c1 usb/fw/atusb.c (main): removed 100 ms LED flash 2011-03-08 19:03:25 -03:00
Werner Almesberger
79b5daf5a4 atusb/fw/: moved USB IDs from descr.c to board.h
- descr.c (USB_VENDOR, USB_PRODUCT): moved to board.h
- descr.c: include board.h
2011-03-08 19:01:54 -03:00
Werner Almesberger
0293911fed atusb/fw/usb/: corrected type of user-provided descriptor
- usb.h, usb.c (user_get_descriptor): "reply" is simply "const uint8_t *",
  not "const uint8_t * const *"
2011-03-08 18:56:52 -03:00
Werner Almesberger
4759ea6f0c atusb/fw/atusb.c (main): enabled blinking the LED for the prototypes 2011-03-04 21:51:18 -03:00
Werner Almesberger
2f85fa9d14 atusb/fw/Makefile: abstract host so that one can use HOST=ben instead of jlime 2011-03-04 21:50:01 -03:00
Werner Almesberger
313fb7c190 atusb/fw/Makefile (CFLAGS): simplify -I../fw/include to -Iinclude 2011-02-22 00:24:53 -03:00
Werner Almesberger
78cfc8ffeb moved atusb/fw3/ to atusb/fw/ 2011-02-22 00:24:07 -03:00
Werner Almesberger
2642b9e1c3 atusb-sil/: moved C8051F326-related material out of atusb/
- Makefile, atusb.pro, atusb.sch, atrf.sch, usb.sch, atusb.cmp, atusb.brd:
  resurrected from git history (commit
  14b00823b0)
- fw/: moved all C8051F326-specific files over from atusb/fw/
- fw/include/: copied MCU-independent files over from atusb/fw/include/
2011-02-22 00:17:13 -03:00
Werner Almesberger
125055b0fe Updates CAM processes of various sub-projects
- atben/cam/mkmk: introduced variables for board corner
- atben/cam/mkmk: updated for new raw board
- atusb-pgm/cam/Makefile: updated for new board
- atusb/cam/Makefile: introduced abstraction with $(NAME)
- atusb/cam/Makefile: use cameo/templates/mkmk-simple instead of local mkmk
- atusb/cam/mkmk: removed
- atusb/cam/Makefile: updated for new board
2011-02-21 23:31:04 -03:00
Werner Almesberger
c3ac7d9cb8 atusb/fw3/README: build instructions for firmware and prerequisites 2011-02-18 09:53:48 -03:00
Werner Almesberger
81818ca61a atusb.brd: moved some component refernces to improve visual appearance 2011-02-14 23:32:10 -03:00
Werner Almesberger
3bdc2da53c atusb/fw2/usb/: clean up comments left over from C8051F326
- usb.c, atu2.c: removed reference to C8051F326 reference stack
- usb.c, atu2.c: updated list of known issues
2011-02-14 12:54:29 -03:00
Werner Almesberger
10fb0146c3 fw3/: remove probably useless RF debug output code from board.c
- board.h, board.c: removed rf_init, rf_send, and "wr"
2011-02-14 12:49:44 -03:00
Werner Almesberger
f9f0d16f6e atusb/fw3/: added copyright headers and title comments 2011-02-14 12:48:42 -03:00
Werner Almesberger
96f0f2cfc9 atusb/fw2: removed FreakUSB-based firmware 2011-02-14 12:06:04 -03:00
Werner Almesberger
983d330294 atusb/fw3: split USB driver into chip-specifc and general part
- usb/usb.c: moved chip-specific functions to usb/atu2.c
- Makefile (USB_OBJS): added usb/atu2.c
- usb/usb.h, usb/usb.c, ep0.c: made argument to my_setup and user_setup
  "const"
- usb/ubs.h (handle_setup): call from chip driver to generic stack
- usb/ubs.h (set_addr): call from generic stack to chip driver
2011-02-14 12:01:11 -03:00
Werner Almesberger
908e04c309 atusb/fw3: added proper versioning
- Makefile (atusb.elf): generate a new version iff generating a new
  executable
- Makefile (atusb.bin): print the build number and the file size
- Makefile (clean): remove the various constituend files of the version
- Makefile (version.c): generate version.c
- version.h: definitions for the generated version.c
- ep0.c (build_number, build_date): removed dummy version information
  and include version.h instead
2011-02-14 11:26:17 -03:00
Werner Almesberger
23f84bc8b0 atusb/fw3/: tighten compiler warnings
- Makefile (CFLAGS): tighten -Wno-unused to -Wno-unused-parameter
- usb/usb.c (handle_ep): removed unused variable "res"
2011-02-14 10:22:51 -03:00
Werner Almesberger
57b908d261 atusb/fw3: renamed usb2/ to usb/ in move away from FreakUSB
- usb2/: renamed to usb/
- Makefile (FreakUSB): removed $(FreakUSB) and commented-out items for
  FreakUSB
- Makefile: changed vpath from usb2/ to usb/
- Makefile (CFLAGS): changed include from -Iusb2 to -Iusb
- Makefile (CFLAGS): don't define NUM_EPS (it's already in usb/usb.c)
2011-02-14 10:14:06 -03:00
Werner Almesberger
fa99266fc9 atusb.brd: update and silk screen cleanup
- atusb.brd: updated for schematics changes
- atusb.brd: rearranged component references and values for
  printing/display
- atusb.brd: bumped version to 20110214
2011-02-14 02:11:41 -03:00
Werner Almesberger
138a1beeff atusb: slightly adjusted some component values for easier sourcing
- usb.sch (R1): changed from 68 Ohm to 180 Ohm, to decrease BOM size
- atrf.sch (C17): changed from 1 pF to 2.2 pF (value is more common,
  and it can only help to reduce harmonics)
- atusb.sch, usb.sch, atrf.sch: bumped version to 20110214
- atusb.cmp: updated
2011-02-14 01:55:46 -03:00
Werner Almesberger
da6677b3d9 atusb/fw3/: adaptation of the f32xbase USB stack 2011-02-13 23:46:36 -03:00
Werner Almesberger
f4d299d22b atusb/fw3/an/: USB debugging scripts 2011-02-13 23:00:35 -03:00
Werner Almesberger
c1dc00ee44 fw2/Makefile: dependencies, verbosity control, cleanup
- Makefile (SHELL): require bash for PIPESTATUS used for dependencies
- Makefile: added copyright header
- Makefile: added section titles
- Makefile: added verbosity control
- Makefile: added automatic dependency generation
- Makefile (clean): also remove .d files
2011-02-11 09:42:21 -03:00
Werner Almesberger
075c379d21 fw2/Makefile: cleaned up FreakUSB object file location
The Makefile didn't see the FreakUSB object files at the expected place,
so it always rebuild them.

- Makefile (USB_OBJS): removed paths from object file names
- Makefile: added vpaths for the FreakUSB source file locations
- Makefile (atusb.elf, clean): we no longer need $(notdir ...) for the
  object files
2011-02-11 09:10:53 -03:00
Werner Almesberger
85612e5150 fw2/Makefile: use the ATmega32U2 configuration (experimental) of avrdude
- Makefile (prog): use $(CHIP) instead of $(CHIP_AVRDUDE)
- Makefile (CHIP_AVRDUDE): removed
2011-02-11 08:53:11 -03:00
Werner Almesberger
f8fbb02bb0 atusb/fw2: further abstract board functions
- atusb.c (main), board.h (board_init), board.c (board_init): moved
  clock and I/O initialization to board file
- board.h (led), board.c (led), atusb.c (main): abstracted LED setting
  in function "led" instead of open-coding it
- spi.c (spi_init): set nSS to 1 before enabling the output, so that we
  don't generate what looks like an empty SPI transaction
2011-02-10 20:49:23 -03:00
Werner Almesberger
509542af73 atusb.brd: draw in bottom edge by 5 mil to prevent touching the connector 2011-02-10 14:40:56 -03:00
Werner Almesberger
69684413ad atusb.brd: small layout improvements, mainly for solderability
- atusb.brd: moved C14 and adjacent via 10 mil away from the transceive,
  for improved solderability
- atusb.brd: moved nRST_RF via and trace by 5 mil, for better access to
  the trace
- atusb.brd: reduced crystal front ground zone such that it does not
  creep under XTAL2 corner (where it might meet exposed metal)
2011-02-10 14:10:15 -03:00
Werner Almesberger
e8b68041a5 atusb/fw2: autonomously restore the clock output settings after an RF reset
- atusb.c (main), board.c (set_clkm): moved CLKM initialization to
  board.c
- board.c (reset_rf): initialize the CLKM after each transceiver reset
2011-02-10 10:05:38 -03:00
Werner Almesberger
3e9f9613cb atusb/fw2: added proper support for interrupt polling
- board.h (read_irq), board.c: return status of the RF IRQ
- board.h (PIN, PIN_1, PIN_2): macros to read port pins
- ep0.c (my_setup): make ATUSB_POLL_INT return the real interrupt
2011-02-10 07:42:34 -03:00
Werner Almesberger
dcfa689936 atusb/fw2/: assigned hardware revision code point; some cleanup
- fw/include/atusb/ep0.h (HW_TYPE_110131): defined hardware type 2 for
  ATmega32U2-based boards
- fw/ep0.c: define HW_TYPE as HW_TYPE_110131, not directly as 2
- fw2/atusb.c: include atusb/ep0.h instead of declaring ep0_init locally
2011-02-10 07:24:37 -03:00
Werner Almesberger
4f0af39d4d atusb/fw2/: move board-specific items to board-specific file
- io.h: renamed to board.h
- Makefile (OBJS): added board.o
- atusb.c (reset_rf): moved to board.c
- board.h (reset_rf): give reset_rf a proper declaration
- atusb.c, ep.c, spi.c: include board.h instead of io.h
2011-02-10 07:19:55 -03:00
Werner Almesberger
6969e7d689 atusb/fw2/ep0.c: make commands needed for sending work
- ep0.c (do_usb_recv, usb_recv): implemented creepy buffer reception
- ep0.c (my_setup): added dummy for ATUSB_POLL_INT (always return 0)
- ep0.c (my_setup): send a zero-length packet at the end of
  ATUSB_RF_RESET and ATUSB_REG_WRITE to indicate status stage
2011-02-10 07:01:28 -03:00
Werner Almesberger
dadc683d71 atusb/cam/mkmk: updated board parameters for latest run
This sort of data really ought to live somewhere locally ...
2011-02-10 06:50:22 -03:00
Werner Almesberger
ec21e4ba47 atusb/fw2: support device -> host side of the ATUSB EP0 protocol
- ep0.c: the ATUSB EP0 protocol engine
- Makefile (OBJS): added ep0.o
- atusb.c (main): initialize the EP0 protocol
- spi.h: whitespace cleanup

usb/patches/support-vendor-requests.patch:

- usb/ctrl.c (ctrl_handler): also pass vendor-specific requests to the
  class handler
- class/CDC/cdc.c (cdc_req_handler): reject vendor requests
2011-02-08 23:53:25 -03:00