Commit Graph

524 Commits

Author SHA1 Message Date
hathach d9ce879df8 able to enumerate mouse + keyboard (missing timing at set configured though) 2013-10-29 17:16:41 +07:00
hathach cb0a02f8c9 change device driver init to open (when configured)
fix HID_REQUEST_CONTROL_SET_REPORT handle
2013-10-29 16:29:48 +07:00
hathach 5ab195a73d temporarily implementation of dcd_pipe_is_busy 2013-10-29 15:09:16 +07:00
hathach db986b3107 able to fully enumerated with keyboard 2013-10-29 14:19:56 +07:00
hathach 357813f171 implementing sw device stack 2013-10-29 11:27:25 +07:00
hathach d925026089 make device keyboard buildable & runnable with ea4357 2013-10-27 21:33:06 +07:00
hathach 064d0cf5a9 document cdc 2013-10-27 19:59:06 +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 0d9e1163df fix osal_none timeout, instant return with OSAL_TIMEOUT_NOTIMEOUT 2013-10-27 16:48:09 +07:00
hathach eb39d88360 rndis document 2013-10-27 15:42:31 +07:00
hathach f941f88549 rndis document 2013-10-27 15:15:28 +07:00
hathach 76e993c45c rndis document 2013-10-26 20:25:14 +07:00
hathach df8d56f485 more document 2013-10-26 20:14:12 +07:00
hathach dae4fdc04f cdc document 2013-10-26 20:12:39 +07:00
hathach acd69a7692 document msc 2013-10-26 19:14:06 +07:00
hathach 621cdc7013 doxygen document for msc 2013-10-26 14:12:45 +07:00
hathach d1d2bbdf5d update doxygen 2013-10-26 12:42:27 +07:00
hathach 0d00742cf0 more doxygen work
rename tusb_mouse_report_t (keyboard) to hid_mouse_report_t (keyboard)
2013-10-25 17:28:31 +07:00
hathach 7bf5cbc3fc move descriptor to common folder 2013-10-25 13:46:38 +07:00
hathach 5f23653c69 more doxygen work 2013-10-25 13:45:57 +07:00
hathach 6c629a18fc partially document CDC & RNDIS 2013-10-24 17:26:06 +07:00
hathach b1142ff065 document hub 2013-10-24 17:00:04 +07:00
hathach 5f584384eb document msc host 2013-10-24 16:47:18 +07:00
hathach d8d00ca768 refractor HID document 2013-10-24 15:48:57 +07:00
hathach b71ffe3d5a change TUSB_CFG_CONTROLLER0/1_MODE to TUSB_CFG_CONTROLLER_0/1_MODE for clearance
adding configuration docs for tinyusb_config.h
document HID mouse & keyboard API
2013-10-24 15:32:54 +07:00
hathach 15c80a9580 clean up 2013-10-16 12:35:55 +07:00
hathach de7e21dc66 refractor hub api
fix all test build errors
2013-10-16 11:05:33 +07:00
hathach 6f9172c15f clean up warnings here and there 2013-10-02 14:20:05 +07:00
hathach 1263dbb122 enhacne msc demo, update IAR project file 2013-10-02 13:32:39 +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 0f05d27ac9 refractor hub 2013-09-30 16:59:41 +07:00
hathach 9ecaec67b3 refractor hub 2013-09-30 16:40:02 +07:00
hathach 5fb22e3f34 refractor hub 2013-09-30 16:13:08 +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 cb600ed988 clean up hid host (temp let test failed) 2013-09-28 01:01:44 +07:00
hathach bfa96ae9da fix an "extra" semaphore wait in msc host 2013-09-27 23:23:45 +07:00
hathach eb1a101667 house keeping 2013-09-27 22:38:23 +07:00
hathach 9d60db0f9f add scsi write10 & test unit ready
done copy command
implement get_fattime using __DATE__ and number of calls
2013-09-26 14:37:40 +07:00
hathach f827750120 add cat command to cli 2013-09-26 01:14:27 +07:00
hathach 09724c5d11 refractor msch 2013-09-26 00:17:45 +07:00
hathach 1fee50b9fe add tusbh_msc_status
reanme PRINTF_TARGET_DEBUG_CONSOLE to PRINTF_TARGET_SEMIHOST
add read10 implementation
able to read fat root sector
2013-09-25 16:20:38 +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 63b776f7cf add some tests support for msc host
refractor msch buffer for getting inital scsi like inquiry, read capacity
adding support for resovling stall on control pipe
2013-09-24 15:21:16 +07:00
hathach c4fef827b1 refractor, add wheel for mouse demo 2013-09-23 01:12:59 +07:00
hathach 85f3ad9d3b refractor hcd API to allow queue xfer without actually transferring data 2013-09-23 00:24:51 +07:00
hathach a8a10e8650 added read capacity 10 with hacking code 2013-09-22 23:54:44 +07:00
hathach cc91a73cdc fix pingstate for highspeed bulk out transfer
temp implementation of msc host --> can issue inquiry command
2013-09-22 18:44:55 +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 61c591b9ac clean up warnings 2013-09-18 23:34:03 +07:00
hathach e32e901cd1 increase usb transaction time-out as host_cmsis_rtx easily timeouted 2013-09-14 00:00:05 +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 67453b89f0 fix task def with cmsis rtx 2013-09-13 23:01:43 +07:00
hathach ad0ef2e266 all project can run ok 2013-09-13 22:30:11 +07:00
hathach c71f5c6f1b integrate & able to run cmsis-rtx with current code base 2013-09-13 16:53:17 +07:00
hathach 09dd83c05b add set msg & get set cmplt for OID_GEN_CURRENT_PACKET_FILTER (default = 0 reject all) to
○ NDIS_PACKET_TYPE_DIRECTED
○ NDIS_PACKET_TYPE_MULTICAST
○ NDIS_PACKET_TYPE_BROADCAST
2013-09-11 15:03:37 +07:00
hathach 14a8e26697 able to get blinky + greeting 2013-09-10 10:43:24 +07:00
hathach d3e83bc802 print out mac address 2013-07-19 12:08:04 +07:00
hathach a522263a9d add implementation for
- tusbh_cdc_rndis_is_mounted
- tusbh_cdc_rndis_get_mac_addr
2013-07-19 02:30:22 +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 03873135a9 add some required NDIS OID define 2013-07-13 00:11:17 +07:00
hathach 0e14752c81 pass the initialize_cmplt 2013-07-06 19:06:30 +07:00
hathach 25304d142f refractor qhd_xfer_error_isr (omit xfer_type para)
add accumulated total xferred byte for an endpoint until transfer with IOC set
- control xfer will have length of data phase in usbh_xfer_isr callback
2013-07-06 14:52:02 +07:00
hathach 68da489c2e refractor ehci.c adding qhd_get_xfer_type 2013-07-06 13:41:48 +07:00
hathach e4ae45359d fix bug with RNDIS class open using non-static variable p_cdc
fix bug with SUBTASK_EXIT with single if (add do while wrapper)
add payloay message
able to send initialize & wait on notification pipe & get initialize cmpt
2013-07-05 20:21:24 +07:00
hathach 355fd7e648 adding subclass RNDIS-CDC driver API
- implement init
- close
- xfer_isr
- open

adding waiting for notification after send rndis_initalize_msg
2013-07-05 16:22:42 +07:00
hathach e4ff63c604 fix a minor bug 2013-07-05 13:41:34 +07:00
hathach 7345a4515d fix bug with rndis overshadow the normal cdc callback 2013-07-05 13:37:57 +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 97cbb39f6f port osal_mutex to freeRTOS, able to mount mouse & cdc device
tinyusb host stack overflow though
2013-07-04 13:24:54 +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 d3aed01874 add some printf when a class is mounted
add initial tests for rndis
2013-07-04 10:47:31 +07:00
hathach c5afb9d50f change class (hid/cdc) _mounted_isr to _mounted_cb 2013-07-04 09:45:20 +07:00
hathach 51e9a1817b change some license text 2013-07-03 13:14:14 +07:00
hathach 4a8686e868 adding _mounted_isr & _umounted_isr callback for host keyboard & mouse
remove TUSB_EVENT_INTERFACE_OPEN & TUSB_EVENT_INTERFACE_CLOSE
2013-07-03 12:46:12 +07:00
hathach b0f45b3651 temporarily check cdc mounted by pipe_in & pipe_out
add tests for tusbh_cdc_xfer_isr
2013-07-03 12:06:07 +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 b3f98bc15a rename cdc descriptor type
add tusbh_cdc_mounted_isr & tusbh_cdc_unmounted_isr
2013-07-03 10:53:16 +07:00
hathach 539c7cdbe1 update usbh_xfer_isr to take actual byte transferred and correct tests 2013-07-02 17:37:55 +07:00
hathach e1ad7b62cf add way to calculate the actual byte transferred with ehci
add come callback for cdch
add code for cdc serial demo
2013-07-02 17:20:25 +07:00
hathach 6ce90e2bd8 add tusbh_cdc_send, t usbh_cdc_receive
add cdc_serial_app for virtual com demo
2013-07-02 16:41:13 +07:00
hathach 7e5c6ded2d add tusbh_cdc_serial_is_mounted API
test for cdch close driver
2013-07-02 15:32:41 +07:00
hathach b04b145965 add cdc_rndis enum & struct 2013-07-02 14:45:42 +07:00
hathach 12526b34a1 extract qhd_xfer_error_isr
add support for period list in xfer_error_isr
pass period TUSB_EVENT_XFER_ERROR & TUSB_EVENT_XFER_STALLED tests
2013-07-02 12:22:46 +07:00
hathach 9fea5291bf refractor extract list_next
add support for TUSB_EVENT_XFER_STALL
add test for error/stall in periodic list
2013-07-02 12:01:51 +07:00
hathach 958d390a85 refractor code 2013-07-01 20:28:16 +07:00
hathach 3f9f3f08d2 add cdc host driver close cdch_close
refractor
- add helper function in ehci qhd_next & qtd_next
- extract function qhd_create_pipe_handle
rename tusb_transfer_type_t to tusb_xfer_type_t
add some handling for stall
2013-07-01 18:53:25 +07:00
hathach d8bd749c75 change control xfer check in usbh_xfer_isr
rename
- async_list_process_isr to async_list_xfer_complete_isr
- period_list_process_isr to period_list_xfer_complete_isr

extract function void qhd_xfer_complete_isr(ehci_qhd_t * p_qhd, tusb_transfer_type_t xfer_type)
2013-07-01 16:14:46 +07:00
hathach 3f0d740776 rename usbh_isr to usbh_xfer_isr 2013-07-01 15:30:29 +07:00
hathach 35adca5ba3 house keeping 2013-07-01 11:37:53 +07:00
hathach e1883fcd26 add acm_capability saving to host data & its test 2013-07-01 11:29:23 +07:00
hathach e94ce81b04 fix compilation error 2013-07-01 10:43:55 +07:00
hathach a4f7dc1105 add & pass a first few test for cdc host
implement cdch_open_subtask
2013-07-01 10:35:37 +07:00
hathach a943cce991 test refractor 2013-06-29 21:00:33 +07:00
hathach 9e607f6dee add SUBTASK_EXIT in osal.h for TDD project 2013-06-29 16:20:24 +07:00
hathach 7e6e5cc356 [CDC]
- add configure option
- add include path
- add driver function table
2013-06-29 16:06:45 +07:00
hathach d4f31e149a adding descriptor, structure, enum support for cdc 2013-06-29 15:56:32 +07:00
hathach a07ff5a3ce use SUBTASK_EXIT to restart & exit task without "assert" 2013-06-27 16:32:54 +07:00
hathach 3bca56665c add mutex support for osal
add test for mutex in test_osal_none.c
implement usbh_control_xfer using mutex to get access to queue xfer on control pipe
(while semaphore is used to sync with hcd DMA)
failed to issue control xfer: set idle & get report descriptor in hidh_open_subtask (more to work on)
2013-06-27 16:19:22 +07:00
hathach c81c4bb817 add set idle request for hidh_open_subtask
add interface number to hidh_interface_info_t
refractor hidh_open_subtask to be a true subtask
cannot run with set idle code ON because of semaphore misuse
2013-06-27 03:20:14 +07:00
hathach ea2e63a332 remove app_os_prio.h in os_none configure
remove instance_num in hidh API
temporarily pause device stack developement
should fix travis-ci build error
2013-06-26 18:00:05 +07:00
hathach 2cc5df9b00 add custom bulk out test 2013-06-23 01:10:59 +07:00
hathach fe53297b17 fix bug with custom class that terminate xfer after the first QTD 2013-06-22 22:26:00 +07:00
hathach 54c065b1d5 fix license 2013-06-22 12:54:47 +07:00
hathach 07f36e8a61 fix a stupid bug 2013-06-21 14:52:18 +07:00
hathach 5c564df8c1 add api for hcd: hcd_pipe_is_idle
add api for usbh: tusbh_device_get_mounted_class_flag
implement api for custom class
- is mounted
- read
2013-06-21 14:20:08 +07:00
hathach 3924764dff [host lpc43xx] adding support for host custom class
refractor usbh class driver indexing
opt out periodic list code in EHCI (need to refractor/group later)
[device lpc176x] rename dcd_endpoint_configure to dcd_pipe_open
add usbd_pipe_open to manage pipe
2013-06-21 13:11:45 +07:00
hathach 743e5a7a93 house keeping 2013-06-16 15:39:09 +07:00
hathach 4d6121d44a refractor set endpoint max packet size 2013-06-16 15:32:08 +07:00
hathach 357e8d32ec clean up some & add code for managing control request targeting interface 2013-06-16 14:41:48 +07:00
hathach 77e0834f34 use dcd_pipe_control_read in endpoint_control_isr 2013-06-14 19:10:11 +07:00
hathach f219a9c77d add dcd_pipe_control_read 2013-06-14 19:06:33 +07:00
hathach 40b65b265c implement hidd_control_request including std & class specific to interface number.
refractor usbd_setup_received
2013-06-14 18:22:40 +07:00
hathach 4103cc374f add coreid to hidd_init
temporarily implement hidd_init using dcd from lpc17xx
add more test for dcd lp176x
implement dcd_endpoint_configure
2013-06-12 21:06:43 +07:00
hathach ee57a6f13f clean up 2013-06-12 14:06:41 +07:00
hathach 17a27f7398 [lpc176x][device] pass set configure control request 2013-06-11 17:53:33 +07:00
hathach 5ae9c72f84 [lpc176x][device] get pass get string descriptors 2013-06-11 17:35:53 +07:00
hathach cae19b8f56 fix bug with setup packet received (wrong increasement of pointer) 2013-06-11 17:12:44 +07:00
hathach 049a22f2cc refractor dcd_pipe_control_write_zero_length to use dcd_pipe_control_write 2013-06-11 16:30:06 +07:00
hathach d55f9ecef1 get pass set address 2013-06-11 16:13:50 +07:00
hathach 72b5b61597 able to xfer device descriptor on control endpoint of lpc176x 2013-06-11 16:01:30 +07:00
hathach 503d279af5 ADDING LPC176X device
implementing dcd_lpc175x_6x.c
add usbd_dcd.h
add usbd_isr with TUSB_EVENT_SETUP_RECEIVED & TUSB_EVENT_BUS_RESET event
parameterize TUSB_CFG_DEVICE_CONTROL_PACKET_SIZE (replace USB_MAX_PACKET0)

--> able to get interrupt and receive setup packet, but SET ADDRESS (expected get device descriptor).
uncomment write zero length will cause issue, no more interrupt ?
2013-06-08 02:50:10 +07:00
hathach e3bb5e9f2f change buffer_start_addr from uint8_t* to uint32_t due to travis linux 64bit 2013-06-05 11:56:55 +07:00
hathach f69fefefa9 added dcd_dma_descriptor_t typdef
reorganize test project, multiple test projects each is specifically for an MCU
2013-06-05 11:23:41 +07:00
hathach 3394b4beaa re-create ngx4330.h
remove some rom driver dependency on upper layer
introduce CAP_DEVICE_ROMDRIVER to overwrite TUSB_CFG_DEVICE_USE_ROM_DRIVER within the lib
add support for lpc175x_6x
- able to build and blink led on lpcxpresso1769 with device (without any class enabled)
2013-06-04 13:36:18 +07:00
hathach cdc830782f rename tusb_device_is_configured
remove dcd_lpc18xx_lpc43xx.h and dcd_lpc11uxx_lpc13xx move define to hal
2013-06-04 10:43:58 +07:00
hathach a3ed66344d fix compiler bug with ceedling tests 2013-06-03 16:40:02 +07:00
hathach 9f9adca03b add TUSB_CFG_PROUDCT_ID check
move USB_MAX_EP_NUM to device dependency
- lpc43 --> 6
- lpc11/13 --> 5
2013-06-03 15:56:14 +07:00
hathach 52f18f3784 refractor device mouse main.c & tusbd_hid_mouse_send_report 2013-06-03 14:37:41 +07:00
hathach b527e6ec4a refractor tusb_descriptors
usbd device_class_driver
added & tested HID mouse for device (work together with hid keyboard)
rename DEVICE_ROM_REG_BASE, DEVICE_ROM_DRIVER_ADDR
2013-06-03 14:31:17 +07:00
hathach 7d78fc1baf rename romdriver handle
forming API for USBD-CLASS driver (abstract away from rom driver)
separate buffer of hid class from buffer of core driver
2013-06-01 21:54:08 +07:00
hathach 9e49056721 refractor change tusbd_hid_keyboard_send_report API 2013-05-31 21:24:40 +07:00
hathach 03d85acfc7 refractor string descriptors, allow one-stop configure descriptor for
- manufacturer, product etc ... (only english now)
2013-05-31 18:21:31 +07:00
hathach ed64401e61 rename descriptor variables 2013-05-31 14:42:38 +07:00