Commit Graph

146 Commits

Author SHA1 Message Date
hathach dbf276ad6f added all assert check to osal_queue_send and osal_semaphore_post 2014-04-24 23:57:21 +07:00
hathach 6804fee0fa correct dcd_pipe_is_busy to use list_qtd_idx[] instead of qtd_overlay
flush usbd_queue_hdl when bus_reset
add assert check for osal_queue_send
increase ENUM_QUEUE_DEPTH for usbh
change osal_freeRTOS.h implementation to
- correctly waiting forever for semaphore wait, queue & mutex
- not use ISR safe version since it is not as generic as we want
2014-04-24 23:40:28 +07:00
hathach 4091ddc4fc move osal_queue_send of osal_none to osal_none.c 2014-04-18 14:45:21 +07:00
hathach 44b36d74f2 clean up STATIC_VAR 2014-04-17 18:02:51 +07:00
hathach ce85e4d98f #define SVCall_Handler SVC_Handler in lpcxpresso startup for lpc175x_6x & lpc11uxx for better compatiable with other lib & toolchain.
added lpc176x xpresso with cmsis rtx
2014-03-19 18:12:51 +07:00
hathach 61657f6751 change OSAL_TASK_FUNCTION to adapt with cmsis rtx 2014-03-19 16:50:49 +07:00
hathach 34756f3862 app descriptor rename 2014-03-18 16:58:24 +07:00
hathach 5f309413dc clean more warnings 2014-03-14 14:33:50 +07:00
hathach 5e2ed2534e clean up warning in lpcxpresso
remove -Wpacked  -Wpadded in gcc
2014-03-14 11:59:39 +07:00
hathach b586fe632a change desc_str_table to array of pointer of uint8_t* to be compatible with IAR (lack of support for VLA initialization)
IAR device os none works with ea4357
2014-03-10 14:20:38 +07:00
hathach ad72db5aea change IAR TUSB_CFG_ATTR_USBRAM to _Pragma("location=\".ahb_sram1\"") instead of @ .ahb_sram1 so that we can place it before the variable for a cleaner code
change pipe xfer API buffer from void* to uint8_t*
change FIFO_DEF to have a separated buffer to be compatible with IAR\
refractor IAR data alignment pragma
2014-03-10 13:13:13 +07:00
hathach 5f8f046eaa refractor remove tusbh_msc_is_failed
increase usbh enum task from 150 to 200 due to stack overflow when mounting msc device
added task for msc host freeRTOS with stack = 300 (still cannot execute copy command)
2014-02-28 18:42:33 +07:00
hathach da6b2fbef8 EHCI: immediately reset port when device connected. This proves to help prevent duplication connection event (also with OHCI)
increase delay after reset to 100 ms (NXP's EHCI does not work with 50ms)

--> fix all duplication connection with OHCI & EHCI
2014-02-28 17:08:47 +07:00
hathach 4b6c6929cb fix the duplicated plug connection status change with lpc17xx by using immediate reset on isr. However Khanh's G5 mouse is not enumerated !!
remove TUSB_CFG_CONFIGURATION_MAX from config file
fix some warning
2014-02-20 16:06:31 +07:00
hathach d020c2f609 remove immediately reset when device plug.
check to make sure device is still plug after initial delay (200ms) before reset
remove blocking waiting when reset in ehci.c
2013-12-19 13:55:22 +07:00
hathach cfcef0558a fix plug & unplug issue by reseting port immediately instead of waiting for usbh enumeration task to do so 2013-12-19 12:43:22 +07:00
hathach b828aabbe4 implement hcd_pipe_close, able to plug & unplug device from ohci lpc17xx 2013-12-18 16:23:09 +07:00
hathach 75ffc0bfec implement ohci
- hcd_port_reset
- hcd_port_connect_status
- hcd_port_speed_get
- hcd_pipe_control_open
- hcd_pipe_control_xfer
- done_queue_isr for control xfer

able to go through enumeration with MSC device
2013-12-16 12:35:05 +07:00
hathach 05c439e45a refractor usbd, first step to make get configuration as sub task 2013-11-15 13:26:12 +07:00
hathach fc68439b74 add usbd_task to handle event task eg setup received 2013-11-15 12:30:22 +07:00
hathach 3a54ad4c0d implement msc device class
usbd auto stall control for not supported return from class control request
usbd implement xfer isr callback mechanism
DCD
- implement dcd multiple qtd support
- dcd dcd_pipe_stall
- implement dcd_pipe_queue_xfer
- xfer_complete_isr
- flush control endpoint if received new setup while previous transfer is not complete
change msc_cmd_block_wrapper_t flags field to dir
force full speed for easy testing

NOTEs: somehow unable to get endpoint IN interrupt with ioc
2013-11-01 12:11:26 +07:00
hathach 318a058d3c static assert to check OSAL_QUEUE_DEF's queue_depth parameter < 256
enable HOST_HCD_XFER_INTERRUPT by default (previously only enabled with HID), as it is widely used
implement tusbh_cdc_is_busy
add compilation switch in usbh enumeration for hub
rewrite CDC serial application to address usb-serial race condition
2013-10-27 19:34:36 +07:00
hathach de7e21dc66 refractor hub api
fix all test build errors
2013-10-16 11:05:33 +07:00
hathach 5c8389b9ae update freertos project
temp hack to fix problem with no TD on status endpoint of hub in case of error
2013-10-02 11:01:28 +07:00
hathach 640b0ec546 - move disconnection handle to enum task --> move tusbh_xxx_unmount is invoked in non-isr context 2013-10-01 13:53:54 +07:00
hathach 7f4a3fc829 ignore multiple level of hub 2013-10-01 13:23:31 +07:00
hathach 71b2859fe5 handle unplug the hub itself 2013-10-01 13:09:52 +07:00
hathach 4da3b03430 refractor hub 2013-10-01 12:12:35 +07:00
hathach 14ebd6c4d9 refractor hub 2013-10-01 11:29:25 +07:00
hathach 93821c55ce hack ehci advance async to handle disconnect via hub 2013-09-30 18:40:20 +07:00
hathach 5eebec61f1 refractor hub 2013-09-30 17:14:44 +07:00
hathach 821f85cb20 refractor hub 2013-09-30 15:34:22 +07:00
hathach 3cc169f2fd able to mount one device on the hub 2013-09-30 15:16:23 +07:00
hathach bbfa85aa08 allow a limited model to deal with stalled pipe/transaction
added stall clear & able to mount the stupid toshiba thumb drive

add HCD pipe API
- bool hcd_pipe_is_busy(pipe_handle_t pipe_hdl);
- bool hcd_pipe_is_stalled(pipe_handle_t pipe_hdl);
- uint8_t hcd_pipe_get_endpoint_addr(pipe_handle_t pipe_hdl);
- tusb_error_t hcd_pipe_clear_stall(pipe_handle_t pipe_hdl);

remove tusbh_device_mount_failed_cb (not neccessary for user)
2013-09-24 18:23:34 +07:00
hathach 5708863859 house keeping, clean up warnings 2013-09-21 14:38:40 +07:00
hathach d15ba08fdc house keeping 2013-09-21 13:17:43 +07:00
hathach 295612b48f remove ATTR_WEAK for all necessary driver callback
fix ceedling tests
2013-09-21 00:42:39 +07:00
hathach f8f398a681 start to add msc host, fix dangerous problem with unstable device when plugged --> 200 ms delay. 50ms delay after each port reset 2013-09-20 23:53:48 +07:00
hathach 52ae0afeb6 refine hid host driver 2013-09-20 16:20:28 +07:00
hathach 86681fe442 starting to add support for IAR workbench 2013-09-19 16:11:11 +07:00
hathach 0d279facbb fix cmsis rtx tick configuration
everything should work
TODO: remove static for variable error in control xfer subtask
2013-09-13 23:32:07 +07:00
hathach ce865721a5 add test & code to send rndis msg query for permanent address (MAC address) 2013-07-19 01:52:56 +07:00
hathach 3b12917fb0 extract send message & wait & get complete message to send_message_get_response_subtask 2013-07-14 08:33:39 +07:00
hathach 374aea7a11 change usbh_control_xfer_subtask to use flat API instead of passing tusb_control_request_t struct 2013-07-05 13:23:42 +07:00
hathach c08c655fd1 implementing initializing for RNDIS 2013-07-05 11:46:12 +07:00
hathach aed07d83db host enum task use static control_request variable instead of literal of requests
increase enum task stack size from 128 to 150 as it comes dangerously close to overflow
2013-07-04 16:01:20 +07:00
hathach 0d37c4a319 refractor control request used in enumeration task to reduce task data
--> enum task now can work with 128 depth
2013-07-04 14:00:41 +07:00
hathach 391e132d6b no big deal, only rename tusb_std_request_t to tusb_control_request_t 2013-07-04 12:25:39 +07:00
hathach 1667ef5041 replace tusbh_cdc_isr by tusbh_cdc_xfer_isr with extra parameter as
- pipe id
- xferred_bytes

host_class_driver_t add xferred_bytes parameter
void (* const isr) (pipe_handle_t, tusb_event_t); -->   void (* const isr) (pipe_handle_t, tusb_event_t, uint32_t);

update hid_host & its tests
2013-07-03 11:36:08 +07:00
hathach 539c7cdbe1 update usbh_xfer_isr to take actual byte transferred and correct tests 2013-07-02 17:37:55 +07:00