NXP MCU 技术论坛
直播中

王树林

8年用户 1718经验值
私信 关注
[问答]

有没有针对不同平台适配88W8987芯片驱动的文档?

大家好,
  我目前正在 Nvidia Jetson TX2 - NX 平台上工作,它使用 Nvidia Ubuntu 18.0 Linux 操作系统和内核 4.9。
  我们为此 SOM 制作了定制载板,我们希望在其上实现 WIFI+BLE 连接,为此我们使用了基于 NXP 88W8987 的 Azurewave AW-CM358 模块。
   我们在 SOM 中进行了以下设备树更改,
{ //sdmmc3
状态=“好的”;
mmc-ocr-mask = <0x3>;
uhs-mask = <0x60>;
禁用-wp;
sd-uhs-sdr104;
sd-uhs-sdr50;
sd-uhs-sdr25;
sd-uhs-sdr12;
mmc-ddr-1_8v;
mmc-hs200-1_8v;
vmmc-supply = <&spmic_sd3>;
不可拆卸;
强制不可移动重新扫描;
最大时钟限制 = <200000000>;
nvidia,is-sdio;
英伟达,无-mmc;
nvidia,vmmc-永远在线;
cap-mmc-高速;
cap-sd-高速;
只有-1-8-v;
nvidia,禁用-rtpm;

cm358: cm358_wlan {
compatible = "marvell,sd8987";
注册=<1>;
fw_path = "/lib/firmware/nxp/sduart8987_combo.bin";
sdhci-host = <&sdmmc3>;
pwr-retry-cnt = <3>;
总线宽度=<4>;
状态=“好的”;
}; }; };

当我将此模块连接到 SDIO 端口时,此 dtsi 发生变化后,它被检测为 mmc 设备,
用户@用户桌面:~$ sudo dmesg | grep mmc1
[ 0.501198] vddio-sdmmc1: 1800 <--> 3300 mV at 3300 mV
[ 1.458204] mmc1: SDHCI 控制器在 3440000.sdhci [3440000.sdhci] 使用 ADMA 64 位和 64 位地址
[ 1.65581 3] mmc1: 硬件调整完成...
[1.657889] mmc1:地址为 0001 的新超高速 SDR104 SDIO 卡
[31.818349] vddio-sdmmc1:禁用
我还检查了 ios 命令,得到了以下详细信息。
user@user-desktop:~$ sudo cat /sys/kernel/debug/mmc1/ios
[sudo] 用户密码:
clock: 208000000 Hz
vdd: 21 (3.3 ~ 3.4 V)
bus mode: 2 (push-pull)
chip选择:0(无关)
电源模式:2(开)
总线宽度:2(4 位)
时序规格:6(sd uhs SDR104)
信号电压:1(1.80 V)
驱动器类型:0(驱动器类型 B)
我从 Azure wave 获得了这个模块驱动程序,基本上它们适用于 NXP iMX8 平台,但通过更改工具链,我可以在 Nvidia Jetson TX2-NX 平台上编译它。
我得到了 mlan.ko 和 moal.ko 对象。
我已经使用以下命令插入操作系统,
user@user-desktop:~/bin_wlan$ ls
config load mlan.ko mlanutl moal.ko README_MLAN 卸载
user@user-desktop:~/bin_wlan$ sudo modprobe cfg80211
user@user-desktop:~/bin_wlan$ sudo insmod mlan.ko
user@user-desktop:~/bin_wlan$ sudo insmod moal.ko drv_mode=1 cfg80211_wext=0xf cal_data_cfg=none max_vir_bss=1 ps_mode=1 auto_ds=1 host_mime=1 fw_name=~/sduart8987_combo.bin user@user-desktop:
~ /bin_wlan$
但是我检查了 dmesg 日志所以我发现了以下错误,
用户@用户桌面:~$ sudo dmesg | grep -E "sdhc|mmc"
[ 0.000000] 内核命令行:console=ttyS0,115200 root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4 console=ttyS0,115200n8 console=tty0 fbcon=map:0 net.ifnames=0 isolcpus =1-2 video=tegrafb earlycon=uart8250,mmio32,0x3100000 nvdumper_reserved=0x1772e0000 gpt rootfs.slot_suffix= tegra_fbmem=0x3a0000@0x96085000 lut_mem=0x2008@0x96081000 usbcore。 old_scheme_first=1 tegraid=18.1.2.0.0 maxcpus=6 no_console_suspend 启动。 slot_suffix= boot.ratchetvalues=0.2031647.1 vpr_resize bl_prof_dataptr=0x10000@0x175840000 sdhci_tegra.en_boot_part_access=1 quiet root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4 console=ttyS0,115200n8 console=t ty0 fbcon=map:0 net.ifnames=0 isolcpus=1-2
[0.405733] iommu:将设备 3460000.sdhci 添加到组 0
[0.406139] iommu:将设备 3440000.sdhci 添加到第 1 组
[0.513204] vddio-sdmmc1:1800 <--> 3300 mV at 3300 mV
[1.453464] sdhci:安全数字主机控制器接口驱动程序
[1.453465] sdhci:版权所有(三) Pierre Ossman
[1.453467] sdhci-pltfm:SDHCI 平台和 OF 驱动程序助手
[1.454437] sdhci-tegra 3460000.sdhci:eMC 客户端注册成功
[1.456374] sdhci-tegra 3440000.sdhci:禁用运行时 pm
[1.460432 ] sdhci-tegra 3440000 .sdhci:eMC 客户端注册成功
[1.496639] mmc0:3460000.sdhci [3460000.sdhci] 上的 SDHCI 控制器使用 ADMA 64 位和 64 位地址
[1.504784] mmc1:3440000.sdhci [3440000.sdhci] 上的 SDHCI 控制器使用具有 64 位地址的 ADMA 64 位
[1.542561]mmc0:mmc_decode_ext_csd:CMDQ支持:深度:31,cmdq_support:1
[1.557418]mmc0:启用周期性缓存刷新
[1.557428]mmc0:地址0001处的新HS400增强型频闪MMC卡[1.561795]
mmcblk0:mmc0 :0001 DG4016 14.7 GiB
[ 1.565939] mmcblk0boot0: mmc0:0001 DG4016 分区 1 4.00 MiB
[ 1.570064] mmcblk0boot1: mmc0:0001 DG4016 分区 2 4.00 MiB
[ 1.574191] mmcblk0rpmb: mmc0:0001 DG4016 分区3 4.00 MiB
[ 1.610760] mmcblk0: p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15 p16 p17 p18 p19 p20 p21 p22 p23 p24 p25 p26 p27 p28 p29 p30 p31 p32 p33 [1.699926] mmc1: hw tuning done ... [ 1.701948] mmc1: new ultra high speed SDR1
04
SDIO地址为 0001 的卡
[1.713921]mmcblk mmc0:0001:要求进行测试的卡。
[ 1.759993] 找到根设备:mmcblk0p1
[ 1.761100] 找到开发节点:/dev/mmcblk0p1
[ 1.779969] EXT4-fs (mmcblk0p1):以有序数据模式挂载的文件系统。Opts: (null)
[ 1.781766] Rootfs 安装在 mmcblk0p1
[ 2.174759] EXT4-fs (mmcblk0p1) 上:重新安装。选项:(null)
[31.817823] vddio-sdmmc1:禁用
[ 132.460966] wlan_sdio mmc1:0001:1:/home/user/sduart8987_combo.bin 的直接固件加载失败,错误-2
[132.460969] wlan_sdio mmc1:0001:1:回退到用户助手
[132.465147]wlan_sdio:mmc1:0001:1的探测失败,错误为-1
说明bin文件加载有问题。
这主要表明 SOM 和模块之间的 SDIO 通信存在问题。
我试图找出与 SDIO 通信相关的驱动程序代码,但我没有得到它。
请指导我解决这个问题。
有没有针对不同平台适配88W8987芯片驱动的文档?

更多回帖

发帖
×
20
完善资料,
赚取积分