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.

[参考译文] Linux/AM3358:WiLink WL1831不工作

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/693431/linux-am3358-wilink-wl1831-not-working

器件型号:AM3358
Thread 中讨论的其他器件: WL1831

工具/软件:Linux

我正在尝试让 wlan0与 AM3358和 WL1831一起工作。

如果我键入 ifconfig -a、则不会列出 wlan0。

显示 dmesg 日志:

[1.642573] WLAN-1-en-regulator:正在禁用 

我正在使用:

Git://git.ti.com/ti-linux-kernel/ti-linux-kernel.git

v4.9.69-2821-g89d085d

设备树已连接。

随附 dmesg.txt

原理图已上传到安全网站并提供给 Brad Griffis 和 Bin Liu。

e2e.ti.com/.../devices.dts.txte2e.ti.com/.../1184.dmesg.txt

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    从日志中、似乎检测到 SDIO MMC 卡。 您可以尝试使用以下补丁-
    processors.wiki.ti.com/.../WL18xx_Platform_Integration_Guide

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

    补丁不能完全应用:

    应用补丁 v6-wlcore-add-missing-NVS-file-name-info-for wilink8.补丁
    补丁补丁文件驱动程序/net/wireless/ti/wlcore/main.c
    hunk #1在6049以 fuzz 1 (偏移9行)成功。
    修补文件 drivers/net/wireless/ti/wlcore/sdio.c
    hunk #1失败、位于230。
    1个搜索失败--在文件 drivers/net/wireless/ti/wlcore/SDIO.c
    中拒绝修补文件 drivers/net/wireless/ti/wlcore/spi.c
    搜索#1失败,为92。
    1个搜索失败--在文件 drivers/net/wireless/ti/wlcore/spi.c
    中拒绝 v6-wlcore-add-missing-NVS-file-name-info-for -wilink8.patch 不适用(使用-f 强制执行) 

    我查看了贴片。  

    您认为我需要修复我的问题的补丁的哪一部分?

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

    静态常量结构 WiLink_family_data wl18xx_data ={
    .name ="wl18xx"、
    cfg_name ="ti-connectivity/wl18xx-conf.bin"、
    +.NVS_name ="ti-connectivity/wl1271-NVS.bin"、
    };

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

    [引用 user="Hari Nagalla "]请确保将下面的'NVS_NAME'添加到结构中。

    我正在使用 TI git 存储库: Git://git.ti.com/ti-linux-kernel/ti-linux-kernel.git  

    我正在提交:89d085d1a407961d43d2492803facb6a8e678fda

    我已经在您在此提交中引用的修补程序中进行了更改:

    commit 9225d7bbdafb9fd1797161b8034b9abbe5fe6ee
    作者:Reizer、Eyal 
    日期:2017年11月29日13:56:15日+0530
    
    wlcore:为 wilink8添加缺少的 NVS 文件名信息
    
    提交 d382b9c007827987c7939e2bd828af43c7af9668上游。
    
    以下承诺:
    提交 c815fdebef44 ("wlcore:SPI:填充配置固件数据")
    提交 d776fc86b82f ("wlcore:SDIO:填充配置固件数据")
    
    仅在 wilink6和 wilink7处于活动状态时填充该 NVS 条目
    wilink8还需要。
    从较旧版本升级时、这会破坏用户空间向后兼容性
    因为备用 Mac 地址不会从该 NVS 读取
    存在于文件系统中(lib/firmware/ti-connectivity/wl1271-NVS.bin)
    导致 WLAN 接口的 MAC 地址更改。
    
    此修补程序修复此问题、并使用相同的默认值更新结构字段
    以前使用过的 NVS 文件名。
    
    此外、某些 distros 文件中包含默认的 wl1271-nvs.bin
    带有伪 Mac 地址的系统(死区...) 这将覆盖 Mac
    存储在器件内部的地址。
    警告用户此伪 Mac 地址并使用内部 MAC 地址
    
    修复程序:c815fdebef44 ("wlcore:SPI:填充配置固件数据")
    修复:d776fc86b82f ("wlcore:SDIO:填充配置固件数据")
    签字人:Eyal Reizer 
    评论:Sebastian Reichel 
    测试人:Tony Lindgren 
    签字人:Kalle Valo 
    签字人:Sekhar Nori 
    
    diff --git a/drivers/net/wireless/ti/wlcore/main.c b/drivers/net/wireless/ti/wlcore/main.c
    INDEX 5438975..792cb91 100644
    -- a/drivers/net/wireless/ti/wlcore/main.c
    ++ b/drivers/net/wireless/wlcore/wl6002
    、@@ i 1271 t/wlcore/wlrand/wlt register @@ 2、6002、t/wlt 2、600-t.c
    
    内转台;
    u32 oui_addr = 0、NIC_addr = 0;
    + struct platform_device *pdev = wL->pdev
    ;+ struct wlcore_platdev_data *pdev_data = dev_get_platdata (&pdev->dev);
    
    如果(WL->mac80211_registered)
    返回0;
    @@-6026、6 +6028、27 @@静态 int wl1271_register_HW (struct wl1271 * WL)
    NIC_addr = WL->FUSE_NIC_addr + 1;
    }
    
    + if (oui_addr = 0xdadbe && NIC_addr = 0xef0000){
    + wl1271_warning ("在 NVS 中检测到未配置的 Mac 地址、而是从保险丝导出。\n");
    + if (!strcmp (pdev_data->family->name、"wl18xx")){
    + wl1271_warning ("此默认 NVS 文件可从文件系统中删除\n");
    +} 否则{
    + wl1271_warning ("您的设备性能未优化。\n");
    + wl1271_warning ("请使用校准工具配置您的设备。\n");
    +}
    
    +++ if (WL->fifs_oui_addr =0 && WL->fifs_NIC_addr =0){
    + wl1271_warning ("保险丝 MAC 地址为零。 使用随机 Mac \n");
    + /*使用 TI oui 和随机 NIC */
    + OUI_addr = WLCORE_TI_OUI_ADDRESS;
    + NIC_addr = get_randral_int();
    +} 否则{
    + OUI_addr = WL->fuse _ oui_addr;
    + /* fuse 具有 BD_ADDR,WLAN 地址是接下来的两个*/
    + NIC_addr = WL->FUSE_NIC_addr + 1;
    +}
    +}
    +
    wl12xx_d推算 mac_addresses (WL、oui_addr、NIC_addr);
    
    RET
    
    
    
    
    
    = ieee80211_register_HW (WL->HW);diff - git a/drivers/net/wireless/ti/wlcore/SDIO.c b/drivers/net/wireless/ti/wlcore/SDIO.c index 961668b.047e268 100644 - a/drivers/net/set/wireless/wlcore/static/t+ t+ t+ dil/wi+d/ t+ static/lcore/t+d/ t+@@+ t+dilt+d/ t+d/ t+g/ t+d/ t+i + i + t+ t+ static/w/230r/ t+ i + i + i + i + i + t+ t+ t/wi+ t+ t+ t+ t+ t+ t+ t+ t+ t+@@+
    .name ="wl18xx"、
    cfg_name ="ti-connectivity/wl18xx-conf.bin"、
    + .NVS_name ="ti-connectivity/wl1271-NVS.bin"、
    
    
    
    
    
    
    
    @@;static const struct of _device_id wlcore_sdio_of_match_table[]={diff -git a/drivers/net/wireless/ti/wlcore/spi.c connectivity/net/wlid/wie/drivers/wlb/net/wlsdc/i–2、24b/set/wcor/wi+i–2、24b/set/wi+i–@@ 2、000+i–2、000+i–2、000+i–1–1–1–1–1–1–1–1–1–1–1–1–100–1–1–1–1–1–1–1–1–1–1–1–1–1–1–1–1–
    
    .name ="wl18xx"、
    cfg_name ="ti-connectivity/wl18xx-conf.bin"、
    + .NVS_NAME ="ti-connectivity/wl1271-NVS.bin"、
    
    
    
    
    
    wlcore.h
    
    @@;struct wl12xx_spi_cilt{diff -git a/drivers/net/wireless/ti/wlcore/wlcore.h wlcore.h b/drivers/net/wireless/ti/wlcore/wlcore.h index 1827644.95fbedc 100mc/ tis/wlcore/tis/wlcore/tis/wlr/ t/wlr/ tis/wlr/ t/wlr/ t/wlr/ t/wlr/ t/wr/ t/wlr/ t/wlr/ t/wr/ t/wr/ t/wlr/ t/wlr/ t/wr/@@
    t/wl
    25
    
    +/-*德州仪器预分配的 OUI */
    +#define WLCORE_TI_OUI_address 0x080028
    +
    //正向声明*/
    struct wl1271_TX_HW_DEScr;
    enum WL_Rx_Buf_align;
    

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

    我在 TI git 存储库中的该补丁中已经有代码。

    commit 9225d7bbdafb9fd1797161b8034b9abbe5fe6ee
    作者:Reizer、Eyal 
    日期:2017年11月29日13:56:15日+0530
    
    wlcore:为 wilink8添加缺少的 NVS 文件名信息
    
    提交 d382b9c007827987c7939e2bd828af43c7af9668上游。
    
    以下承诺:
    提交 c815fdebef44 ("wlcore:SPI:填充配置固件数据")
    提交 d776fc86b82f ("wlcore:SDIO:填充配置固件数据")
    
    仅在 wilink6和 wilink7处于活动状态时填充该 NVS 条目
    wilink8还需要。
    从较旧版本升级时、这会破坏用户空间向后兼容性
    因为备用 Mac 地址不会从该 NVS 读取
    存在于文件系统中(lib/firmware/ti-connectivity/wl1271-NVS.bin)
    导致 WLAN 接口的 MAC 地址更改。
    
    此修补程序修复此问题、并使用相同的默认值更新结构字段
    以前使用过的 NVS 文件名。
    
    此外、某些 distros 文件中包含默认的 wl1271-nvs.bin
    带有伪 Mac 地址的系统(死区...) 这将覆盖 Mac
    存储在器件内部的地址。
    警告用户此伪 Mac 地址并使用内部 MAC 地址
    
    修复程序:c815fdebef44 ("wlcore:SPI:填充配置固件数据")
    修复:d776fc86b82f ("wlcore:SDIO:填充配置固件数据")
    签字人:Eyal Reizer 
    评论:Sebastian Reichel 
    测试人:Tony Lindgren 
    签字人:Kalle Valo 
    签字人:Sekhar Nori 
    
    diff --git a/drivers/net/wireless/ti/wlcore/main.c b/drivers/net/wireless/ti/wlcore/main.c
    INDEX 5438975..792cb91 100644
    -- a/drivers/net/wireless/ti/wlcore/main.c
    ++ b/drivers/net/wireless/wlcore/wl6002
    、@@ i 1271 t/wlcore/wlrand/wlt register @@ 2、6002、t/wlt 2、600-t.c
    
    内转台;
    u32 oui_addr = 0、NIC_addr = 0;
    + struct platform_device *pdev = wL->pdev
    ;+ struct wlcore_platdev_data *pdev_data = dev_get_platdata (&pdev->dev);
    
    如果(WL->mac80211_registered)
    返回0;
    @@-6026、6 +6028、27 @@静态 int wl1271_register_HW (struct wl1271 * WL)
    NIC_addr = WL->FUSE_NIC_addr + 1;
    }
    
    + if (oui_addr = 0xdadbe && NIC_addr = 0xef0000){
    + wl1271_warning ("在 NVS 中检测到未配置的 Mac 地址、而是从保险丝导出。\n");
    + if (!strcmp (pdev_data->family->name、"wl18xx")){
    + wl1271_warning ("此默认 NVS 文件可从文件系统中删除\n");
    +} 否则{
    + wl1271_warning ("您的设备性能未优化。\n");
    + wl1271_warning ("请使用校准工具配置您的设备。\n");
    +}
    
    +++ if (WL->fifs_oui_addr =0 && WL->fifs_NIC_addr =0){
    + wl1271_warning ("保险丝 MAC 地址为零。 使用随机 Mac \n");
    + /*使用 TI oui 和随机 NIC */
    + OUI_addr = WLCORE_TI_OUI_ADDRESS;
    + NIC_addr = get_randral_int();
    +} 否则{
    + OUI_addr = WL->fuse _ oui_addr;
    + /* fuse 具有 BD_ADDR,WLAN 地址是接下来的两个*/
    + NIC_addr = WL->FUSE_NIC_addr + 1;
    +}
    +}
    +
    wl12xx_d推算 mac_addresses (WL、oui_addr、NIC_addr);
    
    RET
    
    
    
    
    
    = ieee80211_register_HW (WL->HW);diff - git a/drivers/net/wireless/ti/wlcore/SDIO.c b/drivers/net/wireless/ti/wlcore/SDIO.c index 961668b.047e268 100644 - a/drivers/net/set/wireless/wlcore/static/t+ t+ t+ dil/wi+d/ t+ static/lcore/t+d/ t+@@+ t+dilt+d/ t+d/ t+g/ t+d/ t+i + i + t+ t+ static/w/230r/ t+ i + i + i + i + i + t+ t+ t/wi+ t+ t+ t+ t+ t+ t+ t+ t+ t+@@+
    .name ="wl18xx"、
    cfg_name ="ti-connectivity/wl18xx-conf.bin"、
    + .NVS_name ="ti-connectivity/wl1271-NVS.bin"、
    
    
    
    
    
    
    
    @@;static const struct of _device_id wlcore_sdio_of_match_table[]={diff -git a/drivers/net/wireless/ti/wlcore/spi.c connectivity/net/wlid/wie/drivers/wlb/net/wlsdc/i–2、24b/set/wcor/wi+i–2、24b/set/wi+i–@@ 2、000+i–2、000+i–2、000+i–1–1–1–1–1–1–1–1–1–1–1–1–100–1–1–1–1–1–1–1–1–1–1–1–1–1–1–1–1–
    
    .name ="wl18xx"、
    cfg_name ="ti-connectivity/wl18xx-conf.bin"、
    + .NVS_NAME ="ti-connectivity/wl1271-NVS.bin"、
    
    
    
    
    
    wlcore.h
    
    @@;struct wl12xx_spi_cilt{diff -git a/drivers/net/wireless/ti/wlcore/wlcore.h wlcore.h b/drivers/net/wireless/ti/wlcore/wlcore.h index 1827644.95fbedc 100mc/ tis/wlcore/tis/wlcore/tis/wlr/ t/wlr/ tis/wlr/ t/wlr/ t/wlr/ t/wlr/ t/wr/ t/wlr/ t/wlr/ t/wr/ t/wr/ t/wlr/ t/wlr/ t/wr/@@
    t/wl
    25
    
    +/-*德州仪器预分配的 OUI */
    +#define WLCORE_TI_OUI_address 0x080028
    +
    //正向声明*/
    struct wl1271_TX_HW_DEScr;
    enum WL_Rx_Buf_align;
    

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    这款 TI 335x EVM 还是具有定制板? 如果是采用 COM8板的 TI EVM、我建议尝试使用处理器 SDK。

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

    [报价用户="Hari Nagalla"]此 TI 335x EVM 是采用定制板吗?

    定制板

    Brad Griffis 提供了原理图

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

    这是什么原因?

    [1.692023] WLAN-1-en-regulator:正在禁用
    

    e2e.ti.com/.../devicetree.dts.txt

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

    Bill、

    我在原始日志中看到以下错误:

    [1.578472]  OMAP_hsmmc 4781000.MMC:RX DMA 通道请求失败

    您需要相关的纵横制映射。  以下是 AM335x-EVM.dts 的摘录:

    mmc3{(&M)

           /*这些位于纵横制上,并在中进行了概述

              Xbar-event-map 元素*/

           DMA =<&EDMA_Xbar 12 0 1

                   EDMA_Xbar 13 0 2>;

           dma-names ="TX"、"Rx";

           状态="正常";

           VMMC-supply =<&wlan_en_reg>;

           总线宽度=<4>;

           pinctrl-names ="default";

           pinctrl-0 =<&mmc3_pins &wlan_pines>;

    此致、
    Brad

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

    感谢 Brad 的帮助!