完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我有一组自定义硬件,我试图让 USB2/3 端口正确地仅充当 USB2 端口。总的来说我可以让它工作,但它并不总是工作良好并且内核有投诉。
首先,我根据硬件开发指南终止了 USB3。我将 Rx 和 Tx 对连接在一起,并通过一个 10k 电阻将它们接地。这是一个仅限主机的端口——ID 通过 10k 接地,VBus 连接到 3.3V。 在设备树中,我删除了 MEK 的端点引用,因为没有 USB-C,只有普通的 A 型。不过,设备树已经为我的主板定制得很好。USB3部分就是这样: &usb3_phy { status = "okay"; }; &usbotg3 { status = "okay"; }; &usbotg3_cdns3 { dr_mode = "host"; maximum-speed = "high-speed"; /* usb-role-switch; */ status = "okay"; }; defconfig 只从默认的 imx_v8_defconfig 添加了几个驱动程序: +CONFIG_TOUCHSCREEN_EDT_FT5X06=y +CONFIG_RTC_DRV_PCF85063=y +CONFIG_BH1750=y +CONFIG_EXFAT_FS=y +CONFIG_EXFAT_DEFAULT_IOCHARSET="utf8" +CONFIG_SND_720=SOC_TAS5 内核版本: Linux not-your-imx8x 5.10.72 #28 SMP PREEMPT Mon May 2 16:29:51 EDT 2022 aarch64 aarch64 aarch64 GNU/Linux 当 USB 拇指驱动器插入端口时,一切正常。我可以挂载和卸载文件系统,从中运行 rootfs,等等。当它没有插入时,我每隔几秒就会重复以下 dmesg: [ 736.663440] cdns3-imx 5b110000.usb: wait lpm_clk_req timeout [ 736.763464] cdns3-imx 5b110000.usb: wait phy_refclk_req timeout 然后在某个时候我会从“cdns3_runtime_suspend”得到一个内核错误: [ 93.511676] irq 151: nobody cared (try booting with the "irqpoll" option) [ 93.518480] CPU: 0 PID: 185 Comm: kworker/0:2 Not tainted 5.10.72-lts-5.10.y+gcf2d66861ffb #1 [ 93.527013] Hardware name: Freescale i.MX8QXP MEK (DT) [ 93.532169] Workqueue: pm pm_runtime_work [ 93.536187] Call trace: [ 93.538643] dump_backtrace+0x0/0x1a0 [ 93.542307] show_stack+0x18/0x70 [ 93.545627] dump_stack+0xd0/0x12c [ 93.549030] __report_bad_irq+0x4c/0xdc [ 93.552872] note_interrupt+0x2d8/0x39c [ 93.556710] handle_irq_event+0xd8/0x150 [ 93.560637] handle_fasteoi_irq+0xa4/0x1f4 [ 93.564736] __handle_domain_irq+0x7c/0xe0 [ 93.568838] gic_handle_irq+0xc0/0x140 [ 93.572588] el1_irq+0xcc/0x180 [ 93.575735] efi_header_end+0xa4/0x290 [ 93.579489] irq_exit+0xdc/0xfc [ 93.582632] __handle_domain_irq+0x80/0xe0 [ 93.586733] gic_handle_irq+0xc0/0x140 [ 93.590485] el1_irq+0xcc/0x180 [ 93.593632] cdns3_runtime_suspend+0x40/0x84 [ 93.597906] pm_generic_runtime_suspend+0x30/0x50 [ 93.602614] __rpm_callback+0x90/0x160 [ 93.606366] rpm_callback+0x24/0x84 [ 93.609860] rpm_suspend+0x104/0x55c [ 93.613440] rpm_idle+0xac/0x160 [ 93.616672] pm_runtime_work+0xa4/0xcc [ 93.620426] process_one_work+0x1cc/0x350 [ 93.624437] worker_thread+0x138/0x46c [ 93.628190] kthread+0x154/0x160 [ 93.631421] ret_from_fork+0x10/0x30 [ 93.634998] handlers: [ 93.637278] [<000000002d28a50e>] cdns3_wakeup_irq [ 93.641983] [<000000003360e13e>] cdns3_drd_irq threaded [<00000000b12a61d5>] cdns3_drd_thread_irq [ 93.650873] [<00000000bd662b79>] usb_hcd_irq [ 93.655144] Disabling IRQ #151 [ 95.045750] cdns3-imx 5b110000.usb: wait lpm_clk_req timeout [ 95.151456] cdns3-imx 5b110000.usb: wait phy_refclk_req timeout 在我得到内核错误后,端口仍然可以工作,但速度很慢,这并没有给我很大的信心。 当内核想要在没有任何连接的情况下将端口置于低功耗模式时,这显然与电源管理有关。由于某种原因,时钟更改超时。我曾短暂地尝试禁用节奏驱动程序中的 PM,但速度很快。 有任何想法吗?我应该让 USB3 线未端接吗? |
|
相关推荐
|
|
只有小组成员才能发言,加入小组>>
1907个成员聚集在这个小组
加入小组我的项目我做主,使用GN+Ninja来完成构建系统(VSCode开发RT106X)
36358 浏览 0 评论
NXP IMX8应用处理器快速入门必备:技巧、使用、设计指南
4397 浏览 0 评论
6052 浏览 1 评论
6764 浏览 0 评论
NXP i.MX6UL开发板(linux系统烧录+规格+硬件+模块移植)使用手册
4214 浏览 0 评论
619浏览 2评论
求助,S32G上Core M启动后如何让Core A在Flash指定位置加载uboot?
615浏览 2评论
ESP32-WROVER-IE + LAN8720以太网,GPIO0电压只有1.6v,无法正常进入spi flash boot模式如何解决?
606浏览 2评论
求分享适用于PN7160 Android的NFC工厂测试应用程序
694浏览 2评论
798浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-23 18:47 , Processed in 0.992814 second(s), Total 77, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号