
usb
文章平均质量分 94
wing_7
临渊羡鱼,不如退而结网。
everything is one thing,one thing is everything!
stay hungry stay foolish!
展开
-
usb 的event 和 io 信息的enqueue & deuqueue
dpdk在ip分片的实现中,采用了一种称作零拷贝的技术。而这种实现方式的底层,正是由scatter-gather DMA支撑的。dpdk的分片包采用了链式管理,同一个数据包的数据,分散存储在不连续的块中(mbuf结构)。传统的block DMA 一次只能传输物理上连续的一个块的数据, 完成传输后发起中断。而scatter-gather DMA允许一次传输多个物理上不连续的块,完成传输后只发起一次中断。这样做的好处是直观的,大大减少了中断的次数,提高了数据传输的效率。原创 2024-05-24 11:25:07 · 950 阅读 · 0 评论 -
usb enqueue dequeue
该函数会根据DMA缓冲区的使用形式做不同的处理,若DMA支持Scatter-gather,则调用dwc3_prepare_one_trb_sg函数,否则调用dwc3_prepare_one_trb_linear函数,最终都是通过dwc3_prepare_one_trb将TRB和request绑定。端点是否忙碌通过DWC3_EP_BUSY标志判断。usb_ep_queue向非端点0提交USB请求的过程如下图所示,最终通过__dwc3_gadget_ep_queue函数提交。原创 2024-05-22 16:28:03 · 1138 阅读 · 0 评论 -
USB HOST DWC3 初始化
如果dr_mode为device,则初始化gadget。如果dr_mode为host,需要初始化xHCI驱动。在dwc3_host_init函数的最后调用platform_device_add(xhci)添加platform device(xhci-hcd),用于匹配xHCI driver(xHCI driver为platform driver),参照第3节。原创 2024-06-04 19:20:47 · 1815 阅读 · 0 评论 -
dwc3 DR_MODE 处理初始化 OTG gadget
>usb_add_function //配置 usb_function config 将function 添加到config->function上,->usb_get_function //调用usb_function_register注册的alloc_func接口,获取usb_function。将usb_composite_driver 的gadge_driver->pending 添加到gadget_driver_pending_list。set vbus 为false。原创 2024-05-29 14:32:28 · 1351 阅读 · 0 评论