Commit Graph

729 Commits

Author SHA1 Message Date
Jan Dümpelmann 3401e0f6ff Synopsys OUT EP improvements:
- Use register based XFRSIZ to determine transfer complete
  (xfer->queued_len and xfer->short_packet were deleted)
- Pop out as many RxFIFO data entries as available within a IRQ call
- less application interruption due to XFRC calls
2020-05-08 18:10:48 +02:00
hathach 58b99e59d4 detect if SD is actually present on the flash using SD magic
even with SOFTDEVICE_PRESENT defined, SD may not be present on actual
flash.
2020-05-05 23:07:56 +07:00
Ha Thach 101f234a16
Merge pull request #387 from duempel/redesign_transmit_synopsys
Redesign of Synopsys device transmission
2020-05-04 14:41:20 +07:00
Jan Dümpelmann fd69cc3dcc clean up
renaming function and variables
changing indent size
2020-05-04 07:59:13 +02:00
hathach 0e30afa691 abstract all UDP_CSR 2020-05-02 18:24:23 +07:00
hathach 3ad0cd041b clean up 2020-05-02 16:29:22 +07:00
hathach ac3c645dc1 fix EP0 data toggle issue 2020-05-02 16:09:28 +07:00
hathach 2a479175ae remove toggle walkaround, fix control stall race condition 2020-05-02 14:51:21 +07:00
hathach a74a823b0a fix dcd samd race condition with setup packet
setup packet can complete together with previous status (in & out).
Always make sure to prepare valid buffer for holding setup packet when
queuing control status.
2020-04-30 00:29:47 +07:00
Jan Dümpelmann 59ff208c65 Changed switch into if statements 2020-04-29 12:37:29 +02:00
Jan Dümpelmann 3e6feb7f6d Redesign of Synopsys device transmission
Changes:
  - checking if tx buffer empty interrupt is masked
  - process more than one packet in isr
  - mask tx buffer empty just after all bytes were written
  - use of transmit_fifo_packet instead of transmit_packet
2020-04-29 11:32:22 +02:00
hathach 958b5510cb added comment for hw clearing TXFE 2020-04-27 13:17:47 +07:00
hathach e785b09118 TXFE is read only bit 2020-04-27 12:06:14 +07:00
hathach 00fcf829a1 sync synopsis fix for esp32s2 2020-04-26 22:41:04 +07:00
hathach 8d18d6077b turn off TX FIFO Empty for EPIN if all bytes are written
fix dcd synopsys issue with usbnet #289
2020-04-26 22:14:59 +07:00
Jerzy Kasenberg b949ae596f synopsys: Reduce interrupt time for IN ZLP
For IN endpoints output FIFO is filled in interrupt, therefor before
endpoint is enabled, DIEPTSIZ is set with correct size of packet.
Then endpoint is enabled and FIFO empty interrupt is enabled.

This works fine except for the ZLP. Enabling FIFO empty interrupt
results in interrupt handler being called all the time because
there is nothing to put in the FIFO.
Eventually it ends when IN token is received and empty
packed is transmitted out.

This change does not enable FIFO empty interrupt for ZLP reducing
CPU load.
2020-04-24 17:38:30 +02:00
Jan Dümpelmann 551724498a Added support for STM32F1 Connectivity Line MCU
STM32F105 and STM32F107 are using the Synopsys IP
2020-04-22 17:39:53 +02:00
hathach 1f442c0a9a also add wakeup event 2020-04-18 23:48:36 +07:00
hathach c3fc5f1595 session end interrupt doesn't trigger on esp32 saola board
it is possibly due to the board design without vbus sense. Revisit
later.
2020-04-18 23:42:51 +07:00
hathach fa71402e17 implement disconnection detection for stm32 synopsys
- disconnection is OTG INT session end bit
- add USE_SOF to disable 1ms interrupt on mcu which isn't used now by
the stack
- add suspend detection
2020-04-18 23:40:27 +07:00
hathach 6f9c256ad0
complete remove dcd_set_config(), fix unit test 2020-04-17 13:52:34 +07:00
hathach 05476d9ad7 Merge branch 'master' into remove-dcd-set-config 2020-04-17 13:38:22 +07:00
Ha Thach 85f0894fff
Merge pull request #347 from majbthrd/nuc505_config
nuc505: change dcd_set_config() behavior
2020-04-17 13:36:16 +07:00
Ha Thach 1f69807621
Merge pull request #354 from hathach/cxd56-disconnect-connect
Cxd56 disconnect connect
2020-04-17 13:12:47 +07:00
hathach dddf30f532
added disconnect for spresense 2020-04-17 12:53:42 +07:00
hathach 50be9d7c3a
mass rename tud/dcd_irq_handler to tud/dcd_init_handler 2020-04-17 12:27:53 +07:00
hathach 89f99426fc
add code for disconnect/connect (not tested) 2020-04-17 11:48:49 +07:00
Ha Thach 4bbbba48cb
Merge pull request #351 from hathach/valentyusb-dcd-disconnect-connect
Valentyusb dcd disconnect connect
2020-04-17 09:52:29 +07:00
Ha Thach 19e2eb66c0
Merge pull request #350 from hathach/synopsys-msp430-dcd-disconnect-connect
Synopsys msp430 dcd disconnect connect
2020-04-17 09:51:15 +07:00
Ha Thach 9aa553ccc2
Merge pull request #352 from hathach/samg-dcd-disconnect-connect
samg implement dcd connect/disconnect
2020-04-16 23:14:42 +07:00
Ha Thach 33610751d7
Merge pull request #336 from pigrew/edpt_close
> If you notice my chain of events above, the bulk transfer was started BEFORE the SET_INTERFACE call. The USB device hardware swaps the order of them being delivered. On STM32, it gives priority to the lower-numbered EP index.

It shouldn't be a matter, control is 2+ stage, before sending the setup. Host should stop all communication to the endpoint that It wants to close.
2020-04-16 23:10:36 +07:00
hathach 36d4efa077
samg implement dcd connect/disconnect 2020-04-16 22:59:19 +07:00
hathach 6377699d77
implement dcd disconnect connect 2020-04-16 22:30:33 +07:00
hathach 3aaad8cd73
add int enable/disable for pullup 2020-04-16 21:30:12 +07:00
hathach 18d936b414
msp430 disconnect/connect 2020-04-16 21:04:28 +07:00
hathach 63655ac9d7
cleanup for esp32 2020-04-16 20:43:26 +07:00
hathach 4c74140b31
stm32 sysnopsys disconnect/connect 2020-04-16 20:20:20 +07:00
hathach a009775745
dcd disconnect/connect for transdimension ip 2020-04-16 16:56:16 +07:00
hathach 418b69f2db
implement dcd disconnect/connect for lpc ip3511 2020-04-16 16:05:57 +07:00
hathach 969121df4f
added dcd disconnect/connect to lpc17/40 2020-04-16 15:52:45 +07:00
Peter Lawrence b9fca0bbb4 nuc505: change dcd_set_config() behavior 2020-04-15 14:16:48 -05:00
Nathan Conrad b0270f499b stm32fsdev: dynamic allocation of PMA. 2020-04-15 11:53:30 -04:00
Nathan Conrad 16f65890eb Merge branch 'master' into edpt_close 2020-04-14 10:22:03 -04:00
Nathan Conrad bbc59f1ceb stm32fsdev: add static assert for PMA size bigger than EP0 size. 2020-04-13 20:50:17 -04:00
Nathan Conrad f8e7487355 edpt_close: Updated based on feedback. 2020-04-13 09:51:46 -04:00
hathach f4df829399 lpc17xx move set configdevice into set address
for removing dcd_set_config()
2020-04-13 17:04:18 +07:00
Nathan Conrad 0eeaccaf46 Skeleton, and initial stm32fsdev implementation (that leaks memory) 2020-04-12 21:27:27 -04:00
Ha Thach 04a06ec401
Merge branch 'master' into refactor-irqhandler 2020-04-11 15:49:34 +07:00
Ha Thach 13a3081d30
Merge pull request #333 from hathach/fix-esp32s2-setup-packet
fix incorrect setup packet
2020-04-11 15:18:41 +07:00
Ha Thach 07809d03a7
Merge pull request #332 from pigrew/stm32fsdev-dcdconnect
stm32fsdev: Implement dcd_connect.
2020-04-11 13:20:31 +07:00
hathach ae1314f1c7 fix incorrect setup packet
also increase usbd stack in example when debug is enabled
2020-04-11 12:55:45 +07:00
Ha Thach 2ff3f765db
Merge pull request #319 from hathach/add-esp32s2
port ESP32 S2
2020-04-10 23:53:03 +07:00
hathach a37a56acd3 remove CONFIG_IDF_TARGET_ESP32S2BETA per review 2020-04-10 23:38:36 +07:00
Nathan Conrad 5bd9d14fc1 stm32fsdev: set dcd_connect API definitions to strong, Modify documentation. 2020-04-10 10:26:41 -04:00
hathach 8953bc9255 added comment note for beta chip walkaround 2020-04-10 20:25:53 +07:00
hathach c545cfc0bc Correct dedicated FIFO SRAM size to 1024
add note for up to 5 active IN endpoints (including EP0 IN)
2020-04-10 15:42:50 +07:00
hathach 978eec73b3 remove 100us delay at the end of dcd_init() 2020-04-10 15:39:59 +07:00
hathach 30945ab9f3 revert name to dcd_int_handler due to function prototype warning 2020-04-10 15:27:23 +07:00
hathach c0695b4b55 clear USB_RXFLVI_M before read_rx_fifo()
more format clean up
2020-04-10 15:13:12 +07:00
hathach 933e3cdfc7 change indent from 4 -> 2 spaces 2020-04-10 15:01:12 +07:00
hathach cec747776d rename dcd_init_handler to dcd_irq_handler to consistent with other ports 2020-04-10 14:47:02 +07:00
hathach d122d7de88 remove commented code 2020-04-10 14:45:55 +07:00
hathach a40d1e800d try to fix racing condition with setup 2020-04-10 14:04:18 +07:00
Nathan Conrad 715c4dbbf8 stm32fsdev: Implement dcd_connect. 2020-04-09 17:03:12 -04:00
hathach d6578823bb rename static function for dcd_cxd56 to prevent conflict 2020-04-09 12:00:45 +07:00
hathach c1f3fbbc03 implement dcd connect/disconnect for samd and nrf 2020-04-09 11:47:02 +07:00
Ha Thach defea45d44
Merge branch 'master' into refactor-irqhandler 2020-04-09 11:22:20 +07:00
hathach 40e23672ff rename hal_dcd_isr to dcd_irq_handler for fomu 2020-04-08 16:47:20 +07:00
hathach e879ad1e6f move irq from msp430 2020-04-08 16:42:36 +07:00
hathach 8f17945b67 move irq for stm32 synopsys 2020-04-08 16:37:09 +07:00
hathach 9014ca5528 move irq for stm32 fsdev 2020-04-08 16:26:14 +07:00
hathach 880595433c use macro for easy enable/disable SOF 2020-04-08 15:41:16 +07:00
hathach 7b7a78ab2e disable SOF interrupt since it is not used for now 2020-04-08 15:33:07 +07:00
Peter Lawrence ccb65fcf6a nuvoton: add dcd_disconnect() dcd_connect() 2020-04-07 10:51:55 -05:00
hathach 06e87b47a2 revert name to dcd_init_handler()
since the function signature is different
2020-04-06 21:28:02 +07:00
hathach 22a9b05834 rename dcd_int_handler to dcd_irq_handler for consistency with other port 2020-04-06 19:49:25 +07:00
hathach 06377a341b add tud_irq_handler() for all lpc ip3511 (13, 15, 11) 2020-04-06 18:00:37 +07:00
hathach 138965d1d1 add tud_irq_handler() to all NUC board 2020-04-06 17:43:56 +07:00
hathach 4179334aca call tud_irq_handler() for all nrf5x board 2020-04-06 17:35:11 +07:00
hathach fb05451a26 mass rename dcd_isr() to dcd_irq_handler() 2020-04-06 17:24:22 +07:00
hathach 050de0ec33 fix issue and typo with In token when Fifo empty
fix transmit packet endpoint's fifo
2020-04-06 16:32:55 +07:00
hathach 2d6d298302 move irqhandler to application
tud_isr() must be called by application to forward the irqhandle to the
stack
2020-04-06 14:11:45 +07:00
hathach 1e7c3cf95e update dcd esp32s2 fifo allocation to match current dcd synopsys 2020-04-03 17:09:38 +07:00
hathach a3e50242b9 add dcd_esp32s2
skip esp32s2_saola for make build since idf use cmake
2020-04-01 17:07:28 +07:00
Ha Thach 435485b524
Merge pull request #304 from pigrew/stm32_xfer_rewrite
STM32FSDEV: Rewrite transfer ISR
2020-03-25 10:19:07 +07:00
Ha Thach 95009a9e79
Merge pull request #194 from cr1901/msp430f5529
[WIP] MSP430 Support
2020-03-24 11:57:20 +07:00
William D. Jones 6b5157fd28 dcd_msp430x5xx: Add dummy dcd_edpt0_status_complete handler. Add
comment which describes why it might be needed.
2020-03-24 00:03:12 -04:00
Nathan Conrad eaf767b0db STM32FSDEV: Rewrite transfer ISR 2020-03-22 14:26:48 -04:00
hathach 4f871063fd Merge branch 'master' into cr1901-msp430f5529 2020-03-22 17:19:57 +07:00
hathach a93548cfe9 update comment per review 2020-03-17 23:39:53 +07:00
hathach a39d170672 follow up to pr #301
rename OPT_MCU_NUC505_USB_DMA to simply USE_DMA
2020-03-17 10:40:45 +07:00
Peter Lawrence df05440d92 NUC505 : added comment on DMA choice 2020-03-16 13:20:17 -05:00
Peter Lawrence fb56c02a6f NUC505 : fix operation with net_lwip_webserver 2020-03-15 17:44:09 -05:00
hathach 71fb3985ba Merge branch 'nuc120' of https://github.com/majbthrd/tinyusb into majbthrd-nuc120 2020-03-10 11:53:11 +07:00
hathach e0cdab5bf7 fix stm32 fsdev epdesc 2020-03-08 16:28:21 +07:00
hathach c8247f0907 fix zlp for nrf52840 2020-03-08 14:20:28 +07:00
Ha Thach 5f5ee465a6
Merge pull request #291 from hathach/port-samg55
Port samg55
2020-03-07 16:38:59 +07:00
Peter Lawrence 7d8ecc63a6 add Nuvoton NUC505 2020-02-07 20:11:00 -06:00
hathach 46f22860fb correct waklaround with only status IN
correct usb descriptor msc dual example to work with samg
2020-02-07 22:13:38 +07:00
hathach 02b2c60231 samg55 work with cdc msc example 2020-02-07 17:39:20 +07:00
hathach 087e3c7f56 Merge branch 'master' into port-samg55 2020-02-07 16:50:07 +07:00
hathach 9ca6311ac4 implement walkaround for incorrect DATA Toggle for status control. 2020-02-07 16:46:18 +07:00
Peter Lawrence cd8eb2a06b added support for Nuvoton NUC120 2020-01-25 13:10:32 -06:00
hathach e2f60a5134 rt10xx: correct max endpoint count is 8 2020-01-17 17:09:23 +07:00
hathach 04d8671641 clean up, disable SOF for dcd trans since we don't use it for now 2020-01-17 12:59:00 +07:00
hathach 3208fe00b6 clean up 2020-01-17 12:06:59 +07:00
Ha Thach 1f95f439e1
Merge pull request #274 from tannewt/dcache
Clean and invalidate the DCache when we have one.
2020-01-17 09:47:38 +07:00
Scott Shawcroft cd6454a330
Add if guards for dcache flushes. 2020-01-16 17:17:49 -08:00
Scott Shawcroft ae68668df9
flush and invalidate the dcache 2020-01-15 21:59:15 -08:00
Ha Thach 12b191510a
Merge branch 'master' into nucbusreset 2020-01-16 11:22:33 +07:00
Ha Thach 537ceb0f65
Merge branch 'master' into line_endings 2020-01-16 10:55:14 +07:00
Peter Lawrence 2ed395bde3 nuc121: survive USB bus reset 2020-01-15 21:40:24 -06:00
Peter Lawrence c04bc07c29 nuc121: enhanced driver and hopefully added readability 2020-01-15 20:09:50 -06:00
Nathan Conrad 25c1bea782 Normalize line endings 2020-01-15 14:47:43 -05:00
Peter Lawrence 7f2db321bf nuc121: better fix for handling large OUT transfers 2020-01-15 10:23:23 -06:00
Peter Lawrence f2a5335417 nuc121: fix handling of OUT transfers larger than max packet size 2020-01-14 22:07:38 -06:00
Sean Cross a6b916ba85
Merge pull request #269 from antmicro/volatile_buffers_fix
dcd_eptri: Fix rx_buffer/tx_buffer volatile annotation
2020-01-15 07:02:11 +10:00
Mateusz Holenko c1781e5e7c dcd_eptri: Fix rx_buffer/tx_buffer volatile annotation
This makes `rx_buffer` and `tx_buffer` *pointers*
volatile in order to avoid caching them in a register.

The original notation meant "a pointer to a volatile value"
(equivalent of `volatile uint8_t *`). This resulted in
`while(rx_buffer[ep_num] != NULL) ;` loop to get stuck
forever, even though the IRQ handler set the `rx_buffer[ep_num] = NULL`.
2020-01-14 13:57:17 +01:00
Ha Thach 130250a2be
Merge branch 'master' into nuc121 2020-01-07 16:26:58 +07:00
Peter Lawrence 5c5f876461 dcd_nuc121: allow user ZLP transfers to get a callback 2020-01-04 13:36:26 -06:00
Peter Lawrence f4371e79b1 add Nuvoton NUC121/NUC125/NUC126 2020-01-04 10:31:55 -06:00
hathach 89f3ad59da
fix #247 2019-12-27 09:42:57 +07:00
hathach 0da45c2e78
clean up 2019-12-26 22:31:29 +07:00
hathach b5684c5c10
merge dcd_samd51 & dcd_samd21 into dcd_samd 2019-12-26 21:46:59 +07:00
hathach 49b316143a
improve samd, fix missing setup packet occasionally 2019-12-26 17:11:24 +07:00
hathach 5690e7b304
fix samd51 setup packet handling
issue occur due to race condition
https://github.com/adafruit/Adafruit_TinyUSB_Arduino/issues/37
2019-12-25 23:47:47 +07:00
hathach bbada1d3e6 adding lookup table for debugging
add msc scsi command list
2019-12-23 18:54:06 +07:00
hathach 94e70f9b01 Merge branch 'master' into port-samg55 2019-12-21 23:53:48 +07:00
hathach 421221baa5
making more progress, but failed with WRITE10
incorrect queue 448 bytes instead of 512
2019-12-21 23:51:57 +07:00
hathach 050fa2fd39
able to response to scsi inquiry, but failed to response to test unit ready 2019-12-21 19:33:41 +07:00
Ha Thach 7a05b177a4
Merge pull request #236 from jeremyherbert/master
Update dcd_stm32_fsdev.c with note about F042Fx remapping
2019-12-12 10:17:40 +07:00
Jeremy Herbert 9d96b6d66e
Update dcd_stm32_fsdev.c
Add a note about pin remapping for the STM32F042Fx
2019-12-12 09:40:06 +10:00
hathach 96a9eca6a0 move VBUS sense out of dcd_synosys to bsp 2019-12-11 14:03:36 +07:00
hathach 752aea7d72 enhance samg 2019-12-09 23:58:13 +07:00
hathach fa96078882 clear data toggle in clear stall, also set config bit 2019-12-09 23:21:06 +07:00
hathach 75a2157715 fix samd using TUSB_REQ_SET_ADDRESS in dcd_edpt0_status_complete 2019-12-09 23:20:21 +07:00
hathach 0316e0ecd4 update descriptor, enhance ep in transfer 2019-12-09 22:48:35 +07:00
hathach 759fa76280 implementing dcd_edpt_open 2019-12-09 21:36:15 +07:00
hathach 988edce745 fix build 2019-12-09 18:49:38 +07:00
hathach 208a77678c clean up, switch and update submodule samd to circuitpython branch 2019-12-09 18:37:54 +07:00
Sean Cross 26dcc19b18 valentyusb: eptri: don't double-advance read buffer
Due to an error, we were double-advancing the FIFO buffer.  The end
result was that the second half of most reads were getting ignored.

This wasn't found during earlier testing because only 64-byte buffers
were tested.

This corrects this error by avoiding double-advancing the buffer.

Signed-off-by: Sean Cross <sean@xobs.io>
2019-11-29 18:14:23 +08:00
hathach e9725dcdbe use dcd_edpt0_status_complete() to prepare for setup packet for samd21/samd51 2019-11-28 13:48:55 +07:00
hathach d7558e8a0f use dcd_edpt0_status_complete() to set address without blocking for samd21/samd51/stm32_fsdev 2019-11-28 13:39:29 +07:00
hathach ac701c398b clean up 2019-11-28 12:18:56 +07:00
hathach 552cc3ef33 implement dcd_edpt_stall 2019-11-28 11:56:35 +07:00
hathach 5dc04887e2 get passed set address 2019-11-28 11:48:08 +07:00
hathach 6bc245cb36 add dcd_edpt0_status_complete() which is useful for several mcu port 2019-11-28 11:46:36 +07:00
hathach 40b454cf28 get passed first get device descriptor 2019-11-27 23:20:48 +07:00
hathach 6225d5bcfd able to handle setup packet 2019-11-27 16:01:25 +07:00
hathach bc21714c7e detect bus reset 2019-11-27 14:49:19 +07:00
hathach 745f0b4521 clean up 2019-11-27 11:02:24 +07:00
hathach c691dc4cb2 update 2019-11-25 10:42:32 +07:00
hathach 58e8265964 usb hw init OK 2019-11-24 23:46:28 +07:00
hathach 24b2cea139 Merge branch 'master' into port-samg55 2019-11-24 21:22:42 +07:00
hathach d991466a8e fix rt1010 rt1020 only has 1 usb controller, rt1050 rt1060 has 2 2019-11-23 00:48:56 +07:00
hathach 38b14725f7 rename OPT_MCU_IMXRT10XX to OPT_MCU_MIMXRT10XX 2019-11-22 17:40:12 +07:00
hathach 281e8cd9ec rename OPT_MCU_RT10XX to OPT_MCU_IMXRT10XX 2019-11-22 15:42:46 +07:00
Ha Thach ca741dfc2a
Merge pull request #220 from hathach/develop
Port NXP iMX RT10XX
2019-11-22 15:16:41 +07:00
hathach 6123b600fc rename dcd_lpc18_43 to dcd_transdimension 2019-11-22 14:47:07 +07:00
hathach a0b2561a2d move nxp dcd ehci controller reset and modde into dcd
rt1064 work with cdc msc example
2019-11-22 14:20:10 +07:00
hathach fca4653b95 able to compile dcd 18/43 with rt1064 2019-11-22 12:34:41 +07:00
hathach 2ead26a12d more clean up 2019-11-22 12:26:40 +07:00
hathach ccb09db3b7 more clean up 2019-11-22 12:16:47 +07:00
hathach 7e16a9a1db more constant rename clean up 2019-11-22 12:14:55 +07:00
hathach 8aacd1eacd refactor dcd_lpc18_43, making it capatible with rt10xx 2019-11-22 12:11:13 +07:00
hathach 623b16af2e clean up dcd lpc18_43
drop supporting both device mode on both ports.
2019-11-22 00:58:18 +07:00
hathach 1f52273d99 move dcd_lpc18_43.h into .c file 2019-11-22 00:38:22 +07:00
hathach f5d737aa7e moving irq to bsp for lpc17/40 2019-11-21 23:19:38 +07:00
hathach 043697ab95 rename lpc 17/18 irq to dcd_isr/hcd_isr 2019-11-21 16:08:08 +07:00
Sean Cross a9282eab51 eptri: clear proper endpoint when opening IN port
When opening a USB port, we ensure the buffer is NULL and has
a length of 0.

Due to a mistake in specifying the endpoint type, we never actually
cleared the value when opening an IN endpoint.  This patch fixes
the comparison when opening an IN endpoint.

This fixes issue #218.

Signed-off-by: Sean Cross <sean@xobs.io>
2019-11-20 17:45:21 +08:00
Sean Cross 8c5f02960b valentyusb: rename from `foosn`
While Fomu is produced by Foosn, the actual name of the hardware
block is `valentyusb`.  Rename the module to match that.

Signed-off-by: Sean Cross <sean@xobs.io>
2019-11-13 09:08:47 -08:00
Sean Cross e05e9801e4 fomu: gate debug/logging features
This gates the majority of the debug and logging features behind
testable macros.

Signed-off-by: Sean Cross <sean@xobs.io>
2019-11-13 09:08:47 -08:00
Sean Cross 3292920933 fomu: first stable working commit
This appears to be stable, and works well.

Signed-off-by: Sean Cross <sean@xobs.io>
2019-11-13 09:08:47 -08:00
Sean Cross 1882a87212 fomu: remove reference to SETUP_CTRL.ACK
THis bit isn't used anymore, so remove it.

Signed-off-by: Sean Cross <sean@xobs.io>
2019-11-13 09:08:47 -08:00
Sean Cross 729c8d073c fomu: dcd_fomu: add next_ev support
Now that we have the `USB_NEXT_EV` register, take advantage of
it to work around issue #207.

Signed-off-by: Sean Cross <sean@xobs.io>
2019-11-13 09:09:38 -08:00
Sean Cross 913032ae1d dcd_fomu: nearly there
Signed-off-by: Sean Cross <sean@xobs.io>
2019-11-13 09:08:01 -08:00
Sean Cross 835a72c595 fomu: semi-working dcd file
Signed-off-by: Sean Cross <sean@xobs.io>
2019-11-13 09:08:01 -08:00
Sean Cross 843136d0e4 fomu: commit latest version
Signed-off-by: Sean Cross <sean@xobs.io>
2019-11-13 09:08:01 -08:00
Sean Cross 22fd7bf85e fomu: first fully-working release
This is able to transfer lots of data back and forth across MSC.

Signed-off-by: Sean Cross <sean@xobs.io>
2019-11-13 09:08:01 -08:00
Sean Cross 0559fd13fb fomu: fix some issues with dcd_fomu
Signed-off-by: Sean Cross <sean@xobs.io>
2019-11-13 09:08:01 -08:00
Sean Cross 32bb68409e portable: fomu: get msc to enumerate
Signed-off-by: Sean Cross <sean@xobs.io>
2019-11-13 09:03:12 -08:00
Sean Cross 36ede44885 fomu: wip support
Signed-off-by: Sean Cross <sean@xobs.io>
2019-11-13 09:03:12 -08:00
hathach 4008f0d1e6 update dcd nrf5x to be indepent from nrf_usbd.h
fix build error with nrfx 2.0
2019-11-11 00:01:12 +07:00
hathach 6baa79b330 board test works 2019-11-04 14:54:04 +07:00
William D. Jones 5d585c03bd dcd_msp430x5xx: Improve comments regarding SETUP packet handling. 2019-10-29 14:08:39 -04:00
William D. Jones 3f0f7cfd07 dcd_msp430x5xx: Clarify hardware STALL behavior and current vs ideal
behavior of driver in comments.
2019-10-29 12:52:56 -04:00
hathach 4e8c57171c Merge branch 'master' into cr1901-msp430f5529 2019-10-25 21:20:05 +07:00
William D. Jones d0146be00b dcd_msp430x5xx: Fix typo in copy-paste in transmit_packet. 2019-10-10 04:19:48 -04:00
William D. Jones c8e899fef0 dcd_msp430x5xx: Improve SETUP packet and EP0 NAK interactions, per
42.3.1.3 in Reference Manual; fix is incomplete but works.
2019-10-10 04:02:35 -04:00
hathach c42edc080c Merge branch 'master' into develop 2019-10-09 11:03:55 +07:00
Kamil Tomaszewski 0cea82568c Disable/enable only USB interrupt 2019-10-08 09:58:56 +02:00
Kamil Tomaszewski 9923604221 Send SUSPEND and RESUME signals 2019-10-07 14:04:48 +02:00
Kamil Tomaszewski b3872febe2 Disable/enable interrupt 2019-10-07 14:03:02 +02:00
Kamil Tomaszewski 0747c4b61b Add Spresense board 2019-10-04 13:19:34 +02:00
hathach 281cd858b0
adding lpc1549, but couldnt recieve setup packet, though setup received interrupt is triggered 2019-10-04 15:56:45 +07:00
William D. Jones 5ee1070c16 Merge remote-tracking branch 'origin' into msp430f5529 2019-10-02 23:18:49 -04:00
William D. Jones 05914de109 dcd_msp430x5xx: Fix typos in dcd_edpt_clear_stall. 2019-10-02 22:36:45 -04:00
William D. Jones 3edb5548e9 dcd_msp430x5xx: Ensure DBUF bit is cleared on endpoint open, as it
could get spuriously set in debugging sessions. cdc_msc functional.
2019-10-02 01:19:12 -04:00
hathach 820a3705f5
Merge branch 'master' into develop 2019-10-02 12:13:47 +07:00
hathach 0673be7724 ported stm32f1, tested with f103 blue pill 2019-10-02 12:01:34 +07:00
Nathan Conrad 1e193212d7 Add testcase for EP0 stall recovery to USBTMC test script. 2019-10-02 00:31:47 -04:00
Nathan Conrad e5f38e3e86 Remove references to EP kind. 2019-10-02 00:11:16 -04:00
Nathan Conrad 838cfe02c1 Merge remote-tracking branch 'origin/master' into ST_FSDEV_EP0 2019-10-02 00:09:07 -04:00
William D. Jones 19ee519926 dcd_msp430x5xx: Correct byte count masks in transmit/receive routines. 2019-10-02 00:01:58 -04:00
William D. Jones 54478aaa2a dcd_msp430x5xx: Add STALL support for nonzero endpoints. 2019-10-01 23:28:41 -04:00
William D. Jones fad44c03c8 dcd_msp430x5xx: Fix TOGGLE bit behavior, clear stall when endpoint
opened due to reset potentially not resetting everything.
2019-10-01 23:03:39 -04:00
hathach d27291f288 Merge branch 'master' into develop 2019-09-30 14:45:34 +07:00
William D. Jones b623e3023e dcd_msp430x5xx: Implement receive_packet for all endpoints, correct
some mistakes in transmit_packet.
2019-09-29 03:58:30 -04:00
William D. Jones 549ad1d9b6 dcd_msp430x5xx: Fix missing mask when posting IN xfer events. 2019-09-29 03:02:59 -04:00
William D. Jones 838b431fac dcd_msp430x5xx: Implement transmit_packet for nonzero endpoints. Untested. 2019-09-29 02:43:05 -04:00
William D. Jones 2247f132ca Implement dcd_edpt_xfer for nonzero endpoints. 2019-09-29 02:22:09 -04:00
William D. Jones ea0e799df6 dcd_msp430x5xx: Fix clear stall logic. 2019-09-29 02:17:59 -04:00
William D. Jones 529efcc0d2 dcd_msp430x5xx: Implement dcd_edpt_open. 2019-09-29 00:21:40 -04:00
William D. Jones 5d9f833915 dcd_msp430x5xx: Implement STALL logic for EP 0. 2019-09-28 02:09:03 -04:00
William D. Jones 63c94ff684 dcd_msp430x5xx: Improve EP0 IN handling (reuse short_packet field). 2019-09-28 01:51:05 -04:00
William D. Jones 030560792d dcd_msp430x5xx: Implement dcd_set_address. 2019-09-27 21:59:45 -04:00
William D. Jones 3ac43076da dcd_msp430x5xx: Implement EP0 IN xfers, clean up. 2019-09-27 21:22:19 -04:00
Nathan Conrad c4483d244b Fix typo of CFG_TUD_ENDOINT0_SIZE. 2019-09-27 21:22:19 -04:00
Nathan Conrad 4ccdc5522d Fix typo of CFG_TUD_ENDOINT0_SIZE. 2019-09-27 12:41:46 -04:00
hathach 6183dbd0ce add -Wextra for more warnings to example
non-stack warning (probably mcu driver) should be suppressed in the
board.mk
2019-09-27 00:15:43 +07:00
Nathan Conrad f19082f02d Reset TX and RX endpoints to NAK when receiving setup packet. 2019-09-25 20:55:15 -04:00
Nathan Conrad 048e0448c0 ST FSDEV:Remove setting the EP kind, as I think it was causing issues during enumeration (sometimes). Also move a membar. 2019-09-25 20:54:59 -04:00
William D. Jones 01b4115b0b dcd_msp430x5xx: Fix Setup packet delay by actually enabling
corresponding interrupt.
2019-09-24 04:06:34 -04:00
William D. Jones 550e8215f3 dcd_msp430x5xx: Setup packets are now received successfully (with delay). 2019-09-24 03:43:51 -04:00
William D. Jones d2e4af5a7b msp430f5529: Change EP0 size to 8, implement interrupt logic up to bus
reset detection.
2019-09-24 02:41:11 -04:00
William D. Jones 950614a841 msp430f5529: Implement dcd_int_enable/disable. 2019-09-23 22:58:49 -04:00
William D. Jones a6a79df9fb msp430f5529: Enable clocks/PLL for msp_exp430f5529lp and enable USB
module in dcd_msp430x5xx; device does not enumerate.
2019-09-23 18:53:31 -04:00
William D. Jones 907bc3df9b msp430f5529: Ensure cdc_msc demo compiles. 2019-09-23 17:48:18 -04:00
hathach 7ba8e81852
Merge pull request #177 from cr1901/fifo-fix
dcd_synopsys: Fix off-by-one error in FIFO allocation.
2019-09-22 11:38:54 +07:00
William D. Jones 108f756e22 dcd_synopsys: Fix off-by-one error in FIFO allocation. 2019-09-21 23:01:06 -04:00
Nathan Conrad ce9f133d25 FSDEV: go to NAK when unstalling; on reset, set EP0 to NAK, prioritize reset interrupt, fix small typos. 2019-09-21 12:00:04 -04:00
hathach 94c9cf0eff doc update 2019-09-20 16:14:35 +07:00
hathach 7b2f8cc73a added stm32 L0 support
close #125
2019-09-20 13:49:33 +07:00
Nathan Conrad 525b4cdb72 Use ESOF for wakeup timing. 2019-09-19 09:51:40 -04:00
Nathan Conrad 642afeea8b s/static const/define/ 2019-09-19 09:30:16 -04:00
Nathan Conrad 85623584f9 Remove debug assertions. 2019-09-19 09:24:52 -04:00
Nathan Conrad 5fcc1468eb Merge branch 'master' into fsdev_smallPacket 2019-09-19 09:16:48 -04:00
Nathan Conrad 89ffe78f84 ST FSDEV: No need to always reset the interrupt priority, also add some synchronization primitives after disabling interrupts. 2019-09-16 22:56:17 -04:00
Nathan Conrad a33a854793 Include board header file... :X 2019-09-16 20:56:57 -04:00
Nathan Conrad d341337c6a Implement remote wakeup + perhaps better sleep? 2019-09-16 20:25:50 -04:00
Nathan Conrad 6b9783cead s/unsigned int/uint32_t/ 2019-09-16 09:20:15 -04:00
hathach 0c70948d0d
Merge pull request #163 from hathach/develop
fix #143
2019-09-16 16:37:27 +07:00
hathach a37d2d64be fix #143 2019-09-16 13:32:47 +07:00
Nathan Conrad 05c13342a3 Implement EP with size <64. 2019-09-15 23:51:42 -04:00
Nathan Conrad 18303e742e Covert macros to inline functions. 2019-09-15 23:46:03 -04:00
Nathan Conrad ae873a709e Wrote TX instead of RX. 2019-09-15 23:33:36 -04:00
William D. Jones 6280e4e7cb msp430f5529: Add empty msp_exp430f5529lp BSP and DCD. 2019-09-14 18:02:17 -04:00
Nathan Conrad 4ea212a432 This demonstrates that I don't pre-build things before committing them... oops. 2019-09-13 23:52:43 -04:00
Nathan Conrad c831311a12 Off-by-one error in Synopsys assertions. (and move some braces to their own lines. 2019-09-13 23:38:58 -04:00
hathach 986beda9eb adding stm32l4 support, board test run with stm32l476disco, usb doens't work yet 2019-09-13 11:22:44 +07:00
hathach ff7261600c ported stm32f2, added board stm32f207zg nucleo
close #127
2019-09-12 10:41:03 +07:00
Nathan Conrad d3507b0787 Merge remote-tracking branch 'origin/master' into stfsdev_cleanups 2019-09-11 20:36:48 -04:00
Nathan Conrad 3326b9d008 Use types with explicit bit widths. 2019-09-11 20:33:47 -04:00
hathach 7f166d860d stm32f7 work with dcd synopsis
close #124
2019-09-11 22:48:07 +07:00
Nathan Conrad 7b93177890 Use TU_VERIFY_STATIC, use more uint instead of uint8_t/uint16_t. Create reg16_clear_bits function to reduce typec conversion warnings. 2019-09-11 09:45:48 -04:00
Nathan Conrad 784dc52b62 Update header comments. 2019-09-11 09:44:25 -04:00
Nathan Conrad 4cf2b30759 Fix bug where the EPREGs were not being initialized as expected. 2019-09-11 09:43:57 -04:00
hathach 678ba586df
Merge pull request #122 from cr1901/synopsys
Synopsys Refactor
2019-09-11 10:37:49 +07:00
Nathan Conrad 4f6bedeac9 Rename the STM32 MCU options. 2019-09-10 12:57:43 -04:00
Nathan Conrad 23d39f2b15 Remove OPT_MCU_STM for L and G series. 2019-09-10 12:13:36 -04:00
Nathan Conrad 65e72de7ce Move interrupt handler into device driver, and rename the OPT_MCU_STM32 constants. 2019-09-10 09:35:52 -04:00
Nathan Conrad 49c58be4ce Fix silly typo in the F3xx support. 2019-09-10 01:31:14 -04:00
Nathan Conrad bc2a65b20b A few bug fixes, remove the unstested device notices, note supported boards in READMEs, and implement PMA
access stride (used on MCU's with 512 byte USB buffers).
2019-09-10 01:03:24 -04:00
Nathan Conrad f7b0aeec52 Start clock on F0 and F0, and handle USB interrupts. 2019-09-09 19:20:26 -04:00
Nathan Conrad d1976a30b3 Update F3 BSP and create F070RB BSP. Both are untested (but compile). 2019-09-09 16:14:38 -04:00
Nathan Conrad 5ec59c2a30 Add STM32 FSDEV driver. 2019-09-09 14:55:39 -04:00
Nathan Conrad b4c8a09f20 Remove STM32 F3 port. 2019-09-09 13:29:26 -04:00
William D. Jones 1385d7c494 stm32: Refactor so F4 and H7 use a single Synopsys IP source file. 2019-09-09 10:48:14 -04:00
William D. Jones 82cd4b5350 dcd_stm32f4: Merge relevant changes from dcd_stm32h7. 2019-09-09 10:27:46 -04:00
William D. Jones 3efc81b285 dcd_stm32h7: Merge relevant changes from dcd_stm32f4. USB2 -> USB works as alias. 2019-09-09 10:14:20 -04:00
hathach e123cad7bb enhance dcd stm32f4 to support max 4 or 6 endpoints on 407 or 412 2019-09-08 23:10:51 +07:00
hathach 4663f9084d ported board stm32f412g discovery
- added soft connect for enable pull up register dcd stm32f4
2019-09-08 21:57:02 +07:00
hathach 56f1ccd68a fix #97 2019-09-05 21:59:19 +07:00
hathach 143a138028
Merge pull request #116 from hathach/develop
Board update
2019-09-05 16:18:34 +07:00
hathach a90e2aa2ce 55s69 device work with usb0 2019-09-05 16:12:13 +07:00
hathach 7350e9c25c
Merge pull request #114 from cr1901/stm32h7
STM32H7 Support
2019-09-05 15:29:13 +07:00
William D. Jones 8f8ca77a91 stm32h7: Mark USB FIFOs as volatile, otherwise optimizations will remove
reads/writes to the FIFOs.
2019-09-04 01:06:07 -04:00
William D. Jones 910fd867c7 stm32h7: Fix indentation error where OUT XFER interrupt wasn't handled
in the correct scope.
2019-09-03 01:37:44 -04:00
William D. Jones 1a3dc9cba1 stm32h7: USB_OTG_FS -> USB2_OTG_FS. 2019-09-03 01:28:41 -04:00
William D. Jones f703a74daa stm32h7: Implement STALL logic for endpoints. 2019-09-03 01:28:41 -04:00
William D. Jones 28b131ea94 stm32h7: Implement dcd_edpt_open. cdc_msc_hid demo functional. 2019-09-03 00:37:50 -04:00
William D. Jones d4302dacc5 stm32h7: Fix accidental overwrite of STUPCNT field in DOEPTSIZ register. 2019-09-03 00:25:21 -04:00
William D. Jones 9210167603 stm32h7: Implement dcd_set_address. 2019-09-02 21:00:30 -04:00
William D. Jones 0d0b802ee0 stm32h7: Implement IN and OUT receive for EP0; device descriptor returned. 2019-09-02 19:32:11 -04:00
William D. Jones f602534536 stm32h7: Implement setup packet events. 2019-09-02 13:34:33 -04:00
hathach 074681da8b dma of lpc54114 can also execute up to 64 bytes each transfer
There is still issue with cdc_msc_hid example
2019-09-01 17:05:34 +07:00
hathach aeea6754af rename lpc_usbd to lpc_ip3511 2019-09-01 16:44:40 +07:00
hathach 3067809957 adding lpc54xxx to dcd, able to go through enumeration 2019-09-01 16:15:23 +07:00
hathach 957201fc58 fix undef __ARM_ARCH_6M__ 2019-09-01 11:59:50 +07:00
hathach 2d041aaa1d clean up 2019-09-01 08:11:22 +07:00
hathach 30f707cad2 rename lpc11_13_15 to simply lpc_usbd since it is almost used by in recent year for nxp mcu 2019-09-01 00:51:58 +07:00
hathach bac75a81fd support LPC51u68 #100 2019-08-31 22:44:08 +07:00
William D. Jones 8b165e1024 stm32h7: Ensure FS (and the only) PHY is selected for OTG_HS2. 2019-08-30 22:07:35 -04:00
William D. Jones 7153561984 stm32h7: Enable USB peripheral (device does not enumerate yet). 2019-08-30 21:57:06 -04:00
William D. Jones 0fb9ab9a09 stm32h7: Add empty template cdc_msc_hid example for STM32H743 Nucleo board that compiles. 2019-08-24 12:40:18 -04:00
hathach 47cd08d526 clean up 2019-08-05 22:31:41 +07:00
hathach d1df041519 nrf5x remove the depenedent on nrfx_power.h 2019-08-05 22:09:37 +07:00
hathach d211035a0a merge dcd/hal_nrf5x.c into dcd/dcd_nrf5x.c 2019-08-05 21:54:20 +07:00
hathach ed6fa460e9 stm32 minor change 2019-07-19 10:59:35 +07:00
hathach f16ebd512b indent clean up 2019-07-04 18:45:10 +07:00