Commit Graph

107 Commits (f49b36c930d4a6f12a87e4485c7f16f834ac5590)

Author SHA1 Message Date
George Beckstein f49b36c930 Fixed bug causing usb_control_stall_test to fail intermittently. Preparing the Nordic HW for the status stage of a control transfer would sometimes cause the HW to automatically ACK an "invalid" command during the control stall test. This would cause the test to fail (because an invalid request was not stalled). 2019-07-03 16:21:08 +03:00
George Beckstein c5f947754c Reviewing functions. Added critical sections to some functions that access state information. 2019-07-03 16:21:08 +03:00
George Beckstein 7e1e5eaa62 Removed disable from disconnect to see if it affects the success of the soft reset test. 2019-07-03 16:21:08 +03:00
George Beckstein fabe8b83ee Added EP0 stalls to setup event handler 2019-07-03 16:21:08 +03:00
George Beckstein 5f731a8d6a Added in triggers to synchronize control transfer stages with what the hardware expects. First working example! 2019-07-03 16:21:08 +03:00
George Beckstein e82e13e2b2 Non-working custom feeder. Modified nordic driver to disable automatic EP0STATUS task triggering at end of DMA transfer 2019-07-03 16:21:08 +03:00
George Beckstein f798f58700 working on making the mbed and nordic drivers compatible 2019-07-03 16:21:07 +03:00
George Beckstein 8c77a3695b Added errata fixes (171, 187) from nRF SDK 15.2 that would prevent USBD from starting up 2019-07-03 16:21:07 +03:00
George Beckstein f4b327e69e Changed driver to request hf and lf clock sources... not sure why USB Ready event isn't ever getting triggered 2019-07-03 16:21:07 +03:00
George Beckstein 0f92c2b3ae Changed power handler to enable/start & disable/stop USBD driver in background 2019-07-03 16:21:07 +03:00
George Beckstein 188b450fe4 Configured sdk for enabling USB. Preliminary implementation of USB for nRF52840 2019-07-03 16:21:07 +03:00
Kevin Bracey 2fbbd9d2ca Introduce Semaphore::acquire methods
Deprecate wait() in favour of acquire(), try_acquire(),
try_acquire_for() and try_acquire_until().

Brings Semaphore more into line with CMSIS-RTOS 2 (which uses "acquire"),
itself (as it has "release"), and other classes having "try", "try for"
and "try until".

Also steps away from vague "wait" term - the primary operation here is
to acquire the semaphore, and this will of course sleep.
2019-05-28 17:02:06 +03:00
Martin Kojtal d299b3fc8b
Merge pull request #9443 from juhaylinen/usbcdc_ecm
Add USBCDC_ECM class
2019-05-20 10:30:19 +01:00
Martin Kojtal 3ea1c56124
Merge pull request #10147 from kjbracey-arm/atomic_bitwise
Assembler atomics
2019-05-13 14:18:05 +01:00
Kevin Bracey 87396e0bf6 Assembler atomics
Reimplement atomic code in inline assembly. This can improve
optimisation, and avoids potential architectural problems with using
LDREX/STREX intrinsics.

API further extended:
* Bitwise operations (fetch_and/fetch_or/fetch_xor)
* fetch_add and fetch_sub (like incr/decr, but returning old value -
  aligning with C++11)
* compare_exchange_weak
* Explicit memory order specification
* Basic freestanding template overloads for C++

This gives our existing C implementation essentially all the functionality
needed by C++11.

An actual Atomic<T> template based upon these C functions could follow.
2019-04-26 13:12:35 +03:00
Russ Butler 3a891f9bfe Fix USB control transfers using small size
Fix support for wMaxPacketSize values other than 64 for endpoint 0.
2019-04-24 11:12:40 -05:00
Martin Kojtal 6b9d1573fb
Merge pull request #10096 from fkjagodzinski/test-usb-hid
Add USB HID tests
2019-04-17 14:06:51 +01:00
Filip Jagodzinski 565ceb0048 USBHID: Fix the initial HID report read operation
The first 4 bytes received were lost due to a wrong address.
Read the output report into HID_REPORT.data.
2019-04-09 17:03:21 +02:00
Russ Butler 2986b3af7c Fix doxygen comment in USBDevice
Update the doxygen to correctly describe the return value of
endpoint_read_result.
2019-04-08 17:30:22 -05:00
Martin Kojtal e7987a9f04
Merge pull request #10166 from cmonr/astyle-fix
Travis CI: Tweak astyle to not over-exclude files
2019-03-22 06:36:07 +01:00
Martin Kojtal f99431f7c2
Merge pull request #9444 from maciejbocianski/usb_msd_tests
Usb msd tests
2019-03-21 10:42:55 +01:00
Cruz Monrreal II a1c047aba4 Added missing astyle corrections for usb/device/targets/* 2019-03-20 12:57:36 -05:00
Juha Ylinen 4b714597bf Fix mutex issue 2019-03-13 12:20:46 +02:00
Juha Ylinen 87f2f7f93f USBCDC_ECM: Add receive functionality
Handle SET_ETHERNET_PACKET_FILTER request
2019-03-13 12:17:37 +02:00
Juha Ylinen fc00718917 USBCDC_ECM: send connection notifications to the host
Fix build issues after rebase
2019-03-13 12:17:37 +02:00
Juha Ylinen e7416db621 Fix USBCDC_ECM descriptors
Replace static arrays used for iMAC and config descriptor with class members
Minor coding style fixes
2019-03-13 12:17:37 +02:00
Juha Ylinen 4e4653b7d4 Add USBCDC_ECM class
Add initial Ethernet over USB communication support using
the ECM (Ethernet Control Model) subclass of USB CDC.
2019-03-13 12:17:37 +02:00
Russ Butler 8ffbe5c603 Lock sleep when USB is initialized
None of the USB drivers currently support entering deep sleep mode
while USB is active. To protect USB from malfunctioning lock deep
sleep in USBPhyHw::init.
2019-02-28 15:21:23 -06:00
Maciej Bocianski 7ff689be20 Add USB mass storage test 2019-02-27 17:18:41 +01:00
Maciej Bocianski 0cd9d24d08 USBMSD: Add media removal event check function 2019-02-27 17:18:39 +01:00
Russ Butler 6527cf2bad Update files to include SPDX-License-Identifier
Update the header of all files to use a newer license template which
includes SPDX-License-Identifier.
2019-02-22 10:53:24 -06:00
Russ Butler 9f116d9f33 Applied more astyle fixes 2019-02-22 10:53:24 -06:00
Russ Butler 005df3559c Applied suggested astyle fixes 2019-02-22 10:53:23 -06:00
Russ Butler 8d731561cf Remove inclusion of mbed.h from USB
Remove mbed.h from USB files and fix the build errors this causes.
This is required to pass CI.
2019-02-22 10:53:23 -06:00
bcostm a98eb739b1 STM32F7 USB: add NUCLEO_F756ZG in pins definition 2019-02-22 10:53:23 -06:00
bcostm e96b8a4803 STM32F7 USB: change VBUS pin for DISCO_F746NG FS 2019-02-22 10:53:22 -06:00
bcostm 82498cf3f8 STM32L4 USB: add pins definition for STM32L496/L4R5 MCUs 2019-02-22 10:53:22 -06:00
TomoYamanaka b3dec25ceb Renesas : Implement USB Device feature
I implemented USB Device feature for Renesas mbed boards.
The code referenced the following code as a starting point and is implemented it by inheritting USBPhy same as other boards.
(mbed-os\features\unsupported\USBDevice\targets\TARGET_RENESAS)
2019-02-22 10:53:22 -06:00
bcostm becb32061d STM32F4 USB: remove useless macro 2019-02-22 10:53:22 -06:00
Russ Butler 468df713fc Ignore disabled Kinetis USB endpoint interrupts
Ignore interrupts on disabled USB endpoints. This prevents handling
interrupts when in the wrong state.

Prior to this patch when running the serial test on a K64F the assert
on line 908 of USBDevice.cpp would sometimes be triggered. This
assert indicates that an endpoint 0 IN interrupt occurred before
the device was ready.

This occurs during the test_cdc_usb_reconnect test when the host sends
a "Set Control Line State" USB request and the device acknowledges it
just before USB is disconnected.
2019-02-22 10:53:20 -06:00
Russ Butler 130927068c Remove HAL_GetTick from ST USBPhy
Remove the function HAL_GetTick from the ST USBPhy driver. This is no
longer needed as that change has been made on master.
2019-02-22 10:53:20 -06:00
Filip Jagodzinski 5a312406c4 USB: EndpointResolver: Add a generic method to get a free endpoint 2019-02-22 10:53:19 -06:00
Russ Butler 6b0e9400b0 Fix ST test failures due to endpoint reconfiguration
Also always use the max endpoint size for SetTxFifo
since re-configuring fifos when endpoints are added or removed
causes tests to fail.
2019-02-22 10:53:18 -06:00
Russ Butler 5fde071509 Implement endpoint_abort for STM32
Make use of the added function HAL_PCD_EP_Abort to implement
endpoint_abort.
2019-02-22 10:53:18 -06:00
Russ Butler c4cf19ee3b Revert "Create HAL_PCD_EP_Abort"
Revert the patch "Create HAL_PCD_EP_Abort" in preparation for an
alternate fix.
2019-02-22 10:53:18 -06:00
Russ Butler 0f70912028 Reset data toggle on Kinetis when unstalling
Data toggle must be reset to DATA0 when an endpoint is unstalled.
This patch makes that change.
2019-02-22 10:53:18 -06:00
Russ Butler dbe41c3659 Abort the current USB transfer when stalling
It is undefined behavior if stalling and unstalling clears an ongoing
transfer. Abort any ongoing transfers explicitly when stalling and
unstalling so the behavior is consistent across devices.
2019-02-22 10:53:18 -06:00
Russ Butler c76d80e36e Alternate Kinetis USB stuck sending bug fix
If an IN endpoint is stalled during a transfer then the data being
sent will repeated and flood the USB bus. This patch prevents
endpoints from being stalled in the middle of a transfer by control
requests by keeping USB suspended until the setup phase of the
control request is done.
2019-02-22 10:53:18 -06:00
Russ Butler a75b40a778 Revert "Fix Kinetis bug causing USB to get stuck"
Revert the commit "Fix Kinetis bug causing USB to get stuck sending"
since this change causes stalls to be missed sometimes.
2019-02-22 10:53:18 -06:00
Russ Butler 3657dab5db Update USBMSD to be more consistent with others
Add second constructor and reorder constructor parameters to match
other USB classes. Also remove the ready() function since there
are no calls that can only mbe made from a ready state.
2019-02-22 10:53:18 -06:00