Commit Graph

940 Commits

Author SHA1 Message Date
majbthrd 6b3eb5f173 fix missing parentheses in TU_MIN and TU_MAX macros (#256) 2019-12-30 23:12:18 +07:00
Jeremy Herbert db24b2f372 Let device respond to endpoint requests on EP0 (#251)
Since endpoint 0 is used for control requests, it doesn't have a class driver attached to it. As such, the corresponding `_usbd_dev.ep2drv` entry points to driver `0xFF`, which is invalid and this makes the `TU_ASSERT(drvid < USBD_CLASS_DRIVER_COUNT);` line fail, and eventually causes an endpoint stall. So as-is the stack cannot respond to any endpoint requests on endpoint 0.

However, standard requests on endpoint 0 do not need a class driver to produce a valid response. This commit changes the order of execution so that the assert is only checked if the endpoint is not 0.
2019-12-30 10:58:06 +07:00
Peter Lawrence e7bf66b29e gracefully handle multiple SET_CONFIGURATION requests 2019-12-28 16:49:52 -06:00
Peter Lawrence ff0e7d2bed implement multiple interfaces support 2019-12-28 14:27:32 -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 605129eb66 invoke scsi complete callback before queue for csw status
there is racing issue with samd + qspi flash testing with arduino
otherwise.
2019-12-24 21:24:43 +07:00
hathach 2caa1ac078 Merge branch 'master' into develop 2019-12-24 21:13:05 +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
hathach a1e55e57a4
clean warnings 2019-12-20 17:09:42 +07:00
samveen ba8a232970 add "`" and "~" to keycode -> ASCII table 2019-12-17 12:47:05 +05:30
samveen fdce63b268 [tusb]fix typo in comment 2019-12-16 23:01:26 +05:30
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
Jerzy Kasenberg 4a1f7d0243 Fix mynewt osal queue definition
Queue table has pointers instead of data os_event structs.
This resulted in crashes when elements were put to queue and
overwritten variables that were just after mpool desiged
for queue.
2019-12-01 12:38:36 +01: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 302746d02c Merge branch 'develop' into port-samg55 2019-11-27 12:35:59 +07:00
hathach fe1eadf177 fix #229 2019-11-27 12:34:30 +07:00
hathach 8a1b6327ba extract code to invoke_class_control()
- also rename usbd_class_drivers to _usbd_driver
2019-11-27 12:12:52 +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 03deeea465 fix segger host example 2019-11-22 00:33:10 +07:00
hathach f5d737aa7e moving irq to bsp for lpc17/40 2019-11-21 23:19:38 +07:00
hathach bbec47b647 adding tud_isr/tuh_isr with lpc18/43 2019-11-21 22:20:30 +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
hathach 1aa3f085cb adding support for NXP rt1064 evk board, boad test led + sw8 work.
LTO is temporary disabled
2019-11-20 15:30:39 +07:00
hathach c2fb813658
Merge pull request #217 from xobs/valentyusb-eptri
WIP: Add Valentyusb eptri
2019-11-18 12:37:34 +07:00
hathach 56abce44f3
Merge pull request #208 from hathach/fix-issue-207
Fix issue 207
2019-11-14 10:10:42 +07:00
Sean Cross cc73990530 tusb: rename `foosn` to `valentyusb`
Use the name `valentyusb` as the vendor for the `valentyusb`
project, rather than the manufacturer name of the Fomu device.

This is because the `valentyusb` core can be used across multiple
vendors, much like how other cores can be used across chip vendors.

Signed-off-by: Sean Cross <sean@xobs.io>
2019-11-13 09:08:47 -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 4a8475b8a7 src: add eptri to tusb
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 359189ea2d tusb_verify: add riscv assert support
This simply executes an "ebreak" instruction.

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 fc86a308f6 clean up 2019-11-05 11:45:02 +07:00
hathach 5209091c28
Merge branch 'master' into fix-issue-207 2019-11-05 10:20:30 +07:00
hathach 3d748e6e2e Merge branch 'master' into port-samg55 2019-11-05 10:18:32 +07:00
hathach 1ab3a1035c Merge branch 'master' into cr1901-msp430f5529 2019-11-05 10:17:36 +07:00
hathach 3c49ff153e
Merge pull request #149 from pigrew/ZLP_Request2
Zlp request2
2019-11-05 00:05:21 +07:00
Nathan Conrad 8d0fa158d7 Change one more TU_ASSERT to TU_VERIFY in usbd. 2019-11-04 11:33:14 -05:00
hathach 2727983a2d fix #211 2019-11-04 22:52:29 +07:00
Nathan Conrad a94fe05ecb usbd: Change TU_ASSERT to TU_VERIFY as the assertion can be hit when bad data is sent from host. 2019-11-04 08:59:29 -05:00
Nathan Conrad c98acd3873 Use control transfer function to send control data (in usbtmc) 2019-11-04 08:54:18 -05:00
hathach 6baa79b330 board test works 2019-11-04 14:54:04 +07:00
hathach 44ad683bd6 fix tud_control_status() didn't update request 2019-11-04 11:21:57 +07:00
hathach 65e96e5d52 added optional dcd_control_status_complete() 2019-11-03 18:00:07 +07:00
hathach 62f8c14fae add a bit of log1 for debugging 2019-11-03 14:08:38 +07:00
hathach 7bf01e218d make control buf static 2019-11-03 11:43:07 +07:00
hathach 1b51b78eaf hack the request length for the first get device descriptor if EP0 size =8 or 16
to prevent usbd control send out ZLP
2019-11-03 00:17:17 +07:00
hathach a0cffdc843 Merge branch 'pigrew-ZLP_Request2' into cr1901-msp430f5529 2019-11-02 23:29:35 +07:00
hathach 79fbc0b23c
wait for scsi status complete before queueing for next scsi command
fix #207
2019-11-01 18:43:18 +07:00
hathach 838173efc3
remove TEST_FAIL() from TU_ASSERT, since it prevents we testing how stack response with failed assert 2019-11-01 18:27:15 +07:00
hathach d0d87d98f6
add assert to prevent div by zero 2019-11-01 18:03:43 +07:00
hathach 5b68cc91ad
adding TEST_FAIL() for TU_ASSERT() 2019-11-01 17:50:40 +07:00
hathach 164d0db825
Merge branch 'ZLP_Request2' into pigrew-ZLP_Request2 2019-11-01 10:16:59 +07:00
hathach 981e64d8a1
implement pigrew review 2019-11-01 10:07:56 +07:00
Nathan Conrad d35f86993f Merge remote-tracking branch 'origin/master' into ZLP_Request2 2019-10-31 12:23:54 -04:00
hathach f58726887a
update doc, hid set report 2019-10-31 21:28:46 +07:00
hathach cacbb80a90
zlp should work with control in, tested with Unity framework 2019-10-31 21:14:06 +07:00
hathach 6de9eb4b1a
add more tests, fix an issue with tud_descriptor_configuration_cb() return NULL 2019-10-31 13:06:57 +07:00
hathach d9ba4d90a8
move function around, more rename 2019-10-31 12:26:36 +07:00
hathach 0029b58417
rename 2019-10-31 12:18:41 +07:00
hathach e6857d8ee0
clean up 2019-10-31 11:25:41 +07:00
hathach 8a57997c0f Merge branch 'master' into pigrew-ZLP_Request2 2019-10-31 09:57:52 +07:00
hathach 4d329d46cc
Merge pull request #206 from hathach/develop
Added a couple of unit testing with Ceedling/Cmock/Unity
2019-10-31 08:29:11 +07:00
hathach a0002cc709
rename usbd_init() to tud_init() 2019-10-30 23:26:34 +07:00
hathach 16665672a4 initally adding test_usbd.c 2019-10-30 12:24:07 +07:00
hathach 880ac1e398 move dcd event helper to be dcd.h as inline function 2019-10-30 11:35:25 +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
William D. Jones 66faa96f16 tusb_option.h: Assign msp430 ID range 500+ to avoid conflict with Sony. 2019-10-29 11:33:34 -04:00
hathach a29eb87c38 Merge branch 'ZLP_Request2' of https://github.com/pigrew/tinyusb into pigrew-ZLP_Request2 2019-10-29 18:19:10 +07:00
hathach f6a65720e5 should fix #184
only response up to EP0 size with get device descriptor if not
addressed.
2019-10-29 16:25:32 +07:00
hathach de333a6f18 clean up warning, msp430 gcc 8.3 fixed the library lto issue 2019-10-29 16:21:31 +07:00
hathach 78523301bb
Merge pull request #202 from smunaut/dfu-rt
Add support for DFU Runtime class for devices
2019-10-28 22:56:14 +07:00
Sylvain Munaut ec4ecfa817 Add support for DFU Runtime class for devices
This is really just a few descriptors and then answering to the
request from the host to reboot into DFU mode.

That latter part is delegated to the app since this is platform
specific.

Signed-off-by: Sylvain Munaut <tnt@246tNt.com>
2019-10-28 16:11:08 +01:00
hathach 4e8c57171c Merge branch 'master' into cr1901-msp430f5529 2019-10-25 21:20:05 +07:00
hathach 6ab0663c1a adding more log 2019-10-24 12:00:06 +07:00
hathach 661515a807 adding debug log function 2019-10-23 21:18:46 +07:00
hathach 90b6b5d137 clean up tusb_verify 2019-10-18 16:38:02 +07:00
hathach 195d0f5a14 adding log support with uart
started with pca10056
2019-10-12 00:02:51 +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 a01b0a73c1 Remove accidentally-commited debug var. 2019-10-03 23:59:22 -04:00
William D. Jones 432e9dcd2e Merge remote-tracking branch 'pigrew/ZLP_Request2' into msp430f5529 2019-10-03 23:50:55 -04:00
hathach 13d37e4a36 lpcxpresso1549 board test running 2019-10-03 15:23:01 +07:00
hathach 7fd68efe7b couldn't get 32L4 running with crystal less mode 2019-10-03 13:37:10 +07:00
William D. Jones 5ee1070c16 Merge remote-tracking branch 'origin' into msp430f5529 2019-10-02 23:18:49 -04:00
William D. Jones b0b737b42a usbd_control.c: Decide whether a control transfer has a data stage
based on setup packet wLength.
2019-10-02 23:02:55 -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
Nathan Conrad cef388b7bd Merge branch 'master' into ZLP_Request2 2019-10-02 01:15:47 -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