树莓派5上SDIO WiFi卡枚举失败,树莓派4正常工作求助
树莓派5 SDIO WiFi卡枚举失败的设备树问题求助
目标
我需要通过树莓派内置的microSD卡槽(TF卡槽)连接一块外部1.8V SDIO WiFi卡。选择该卡槽是因为40针GPIO header仅支持3.3V逻辑电平。
可正常工作的配置:树莓派4
在树莓派4上的配置可完美运行,SDIO WiFi卡可正确枚举。
设备树Overlay
使用自定义Overlay文件 emmc_wifi_rpi4.dts,内容如下:
/dts-v1/; /plugin/; / { compatible = "brcm,bcm2711"; fragment@0 { target = <&emmc2>; __overlay__ { status = "disabled"; }; }; fragment@1 { target = <&soc>; __overlay__ { mmc@7e340000 { compatible = "brcm,bcm2835-sdhci"; reg = <0x7e340000 0x100>; interrupts = <0x00 0x7e 0x04>; clocks = <&clocks 0x33>; pinctrl-names = "default"; pinctrl-0 = <&emmc_gpio48>; bus-width = <4>; status = "okay"; #address-cells = <1>; #size-cells = <0>; dma-names = "rx-tx"; dmas = <&dma 11>; brcm,overclock-50 = <0>; sd-uhs-sdr104; }; }; }; };
失败的配置:树莓派5
将树莓派4的配置复制到树莓派5后运行失败,SDIO WiFi卡未被检测到,枚举失败。
设备树Overlay
创建了新的Overlay文件 emmc2-wifi_rpi5.dts,内容如下:
/dts-v1/; /plugin/; / { compatible = "brcm,bcm2712"; fragment@0 { target = <&sdio1>; __overlay__ { status = "disabled"; }; }; fragment@1 { target = <&soc>; __overlay__ { mmc@fff000 { compatible = "brcm,bcm2712-sdhci"; reg-names = "host\0cfg"; reg = <0xfff000 0x260 0xfff400 0x200>; interrupts = <0x00 0x111 0x04>; clocks = <0x08>; pinctrl-names = "default"; pinctrl-0 = <0x09 0x0a>; vqmmc-supply = <0x0b>; bus-width = <0x04>; status = "okay"; #address-cells = <1>; #size-cells = <0>; sd-uhs-sdr104; cd-gpios = <0x0d 0x05 0x01>; supports-cqe = <0x01>; }; }; }; };
逻辑分析仪排查结果
通过逻辑分析仪调试发现关键差异:
- 在树莓派4上,主机发送
CMD5(IO_SEND_OP_COND)后,SDIO WiFi卡会返回有效响应。 - 在树莓派5上,主机发送
CMD5后,SDIO WiFi卡完全没有响应。
树莓派5上SDIO WiFi卡对CMD5无响应是枚举失败的核心原因,这可能指向电气接口问题(如电源/电压)。
问题与疑问
能否帮我理解树莓派5上枚举失败的原因?
我怀疑树莓派4(BCM2711)和树莓派5(BCM2712/RP1)之间存在显著架构差异,尤其是设备树处理pinctrl、clocks或电源供应(vqmmc-supply)的方式,但不确定Overlay文件需要做出哪些具体修改。
如果有助于调试,我可以提供所有四个DTS文件的内容。
提前感谢!
内容的提问来源于stack exchange,提问作者user31577988
相关产品推荐
相关产品推荐

