This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CC3351:Linux 内核5.10的驱动程序

Guru**** 2350610 points
Other Parts Discussed in Thread: CC3351
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/1462905/cc3351-driver-for-linux-kernel-5-10

器件型号:CC3351

工具与软件:

我的客户正在尝试将 CC3351驱动程序移植到 Linux 内核4.9和5.1中。 当前的 SDK 仅支持6.10版 Linux 内核。

客户还尝试使用 CC33xx SDK v1.0.0.0、但在探测期间 cc33xx.ko 失败、探测过程未完成。

您能否共享用于 Linux 内核4.9和5.1的 CC3351驱动程序?

下面我附加 v1.0.0.0的驱动程序日志:

/lib/modules/wifi # insmod cc33xx.ko
/lib/modules/wifi # dmesg -c
/lib/modules/wifi #
/lib/modules/wifi #
/lib/modules/wifi #
/lib/modules/wifi # insmod cc33xx_sdio.ko
cc33xx_sdio mmc0:0001:2: Using SDIO in-band IRQ
/lib/modules/wifi # dmesg -c

wlcore: ERROR boot IRQ timeout
wlcore: ERROR FW download failed

cc33xx_sdio mmc0:0001:2: Using SDIO in-band IRQ
wlcore: cc33xx_probe :: Start
wlcore: Wireless Driver Version 1.7.0.22
wlcore: WLAN CC33xx platform device probe done
wlcore: Chip wakeup
wlcore: Set BLKsize to 128
IBI_WA: Read core status
wlcore: wlcore_irq invoked
wlcore: wlcore_irq: Core-status locked
wlcore: Reading core status
wlcore: HINT_STATUS: 0x0, TSF: 0x1b05fd72, rx status: 0xeff0000
wlcore: wlcore_irq: Releasing core-status
IBI_WA: Core status processed
wlcore: ERROR boot IRQ timeout
wlcore: ERROR FW download failed
wlcore: wlcore_nvs_cb Complete

DTS 配置如下:

sdmmc {
compatible = "sstar,sdmmc";

slotnum = <2>;

slot-ip-orders = <0>,<1>,<2>;
slot-pad-orders = <1>,<1>,<2>;
slot-max-clks = <24000000>,<24000000>,<24000000>;
slot-revcdz = <0>,<0>,<0>;
slot-intcdzs = <0>,<1>,<1>;
slot-support-sd30 = <0>,<0>,<0>;
slot-fakecdzs = <1>,<0>,<0>;
slot-cdzs-pad = <PAD_UNKNOWN>,<PAD_PM_SD_CDZ>,<PAD_PM_SD_CDZ>;
slot-pwr-pad = <PAD_UNKNOWN>,<PAD_FUART_RTS>,<PAD_FUART_RTS>;
slot-en-pwr-high-valid = <0>,<0>,<0>; //gpio output (1/0), power on.
slot-pwr-off-delay = <30>,<30>,<30>;
slot-pwr-on-delay = <30>,<1>,<1>;
slot-removable = <0>,<1>,<1>;
slot-sdio-use = <1>,<0>,<0>;
slot-sdio-use-1bit = <0>,<0>,<0>;
slot-sdio-dis-intr = <0>,<0>,<0>;
slot-en-clk-phase = <0>,<0>,<0>; //0/1
slot-tx-clk-phase = <0>,<0>,<0>; //0-3
slot-rx-clk-phase = <0>,<0>,<0>; //0-3
slot-clk-driving = <1>,<0>,<0>;
slot-cmd-driving = <1>,<0>,<0>;
slot-data-driving = <1>,<0>,<0>;

interrupts-extended = <&ms_main_intc GIC_SPI INT_IRQ_SD IRQ_TYPE_LEVEL_HIGH>,//was INT_IRQ_SDIO
<&ms_main_intc GIC_SPI INT_IRQ_FCIE_TOP IRQ_TYPE_LEVEL_HIGH>,
<&ms_main_intc GIC_SPI INT_FIQ_SD_CDZ_0 IRQ_TYPE_LEVEL_HIGH>,
//<&ms_gpi_intc 42>,
<&ms_main_intc GIC_SPI INT_FIQ_SD_CDZ_1 IRQ_TYPE_LEVEL_HIGH>,
<&ms_main_intc GIC_SPI INT_FIQ_SD_CDZ_0 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "mie0_irq", "mie1_irq", "cdz_slot0_irq", "cdz_slot1_irq", "cdz_slot2_irq";
clocks = <&CLK_sd>,<&CLK_fcie>,
<&CLK_sd>,<&CLK_fcie>,
<&CLK_sd>,<&CLK_fcie>;
status = "ok";
wlcore: wlcore@0 {
compatible = "ti,cc33xx";
reg = <0>;
status = "ok";
};
};

此致、

沭阳县

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    大家好、沭阳

    我看到 DTS 有问题。 第42行 reg 应等于<2>。 如所示:

    reg =<2>;

    如果可行、请告诉我。

    就内核反向端口而言、内核端口将托管在 GitHub 上。  https://github.com/TexasInstruments-Sandbox/cc33xx-linux-mpu-ports/ 

    使用此示例的步骤大致如下:
    1.首先应用1.0.0.6 CC33xx SDK 中的内核补丁。

    2.找到您需要的内核,下载相应的补丁,并应用它来匹配您的内核版本。  

    3.从 CC33xx SDK 构建并安装内核、内核模块以及固件。  

    我们将很快公开发布包含这些步骤的文档。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Hi Sabeeh Khan1,

    我尝试将 dts 的配置更改为 reg<2>。其工作方式为、

    谢谢!