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.

[参考译文] WL1837MODCOM8I:Jacinto6/Android O:BT WiLink 集成(WL1837MODCOM8I)

Guru**** 2553450 points
Other Parts Discussed in Thread: TVP5158, TFP410, TPD12S015

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

https://e2e.ti.com/support/wireless-connectivity/other-wireless-group/other-wireless/f/other-wireless-technologies-forum/752481/wl1837modcom8i-jacinto6-android-o-bt-wilink-integration-wl1837modcom8i

器件型号:WL1837MODCOM8I
Thread 中讨论的其他器件:WL1837TVP5158TFP410TPD12S015

Jacinto6/Android O:BT 集成

我目前正在尝试将 BT WiLink 集成到我们的 jacinto6评估板中。

所有集成步骤均已完成。

但未加载 BT 固件,Kim 模块出现了一些错误:

jacinto6evm:/# dmesg | grep -i stk                                            
[2.126765]   (stk):sysfs 条目已创建
[2.564436]   (stk):st_Kim_start
[2.689607]   (stk):ldisc_install = 1.
[3.701222]   (stk):ldisc 安装超时
[3.709344]   (stk):ldisc_install = 0
[4.697704]   (stk):等待卸载 ldisc 时超时
[4.812125]   (stk):ldisc_install = 1.
[5.801532]   (stk):ldisc 安装超时



感谢您的支持、

步骤:

[Jacinto6/Android 8.1] BTWILINK 集成

1.在 DTS 文件上配置 Kim:

/{

   /*蓝牙- TI WL1837 */
   Kim{
      兼容="Kim";
      /*
      * FIXME:以下是完整的垃圾自
      *供应商驱动程序不遵循 GPIO
      *绑定。 传递一个神奇的 Linux GPIO 编号
      *直到我们修复供应商驱动程序。
      *
      /* BT_EN:GPIO_5-4_BT_EN */
      nSHUTDOWN_GPIO =<164>;
      DEV_name ="/dev/hci_tty;
      flow_Cntrl =<1>;
      波特率=<3000000>;
   };

   双链接{
      兼容="btwilink";
   };


};

/dra7-evm-common.dtsi

uart3{(&U)
   pinctrl-names ="default";
   pinctrl-0 =<&SPI2_PINS_DEFAULT>;
   状态="正常";
};

/dra7-evm.dts

   SPI2_PINS_DEFAULT:SPI2_PINS_DEFAULT{
      pinctrl-single、pins =<
         0x3C0 (PIN_INPUT_PULLUP | MUX_MODE1)/* SPI2_SCLK/uart3_RxD *
         0x3C4 (PIN_OUTPUT | MUX_MODE1)/* SPI2_D1.uart3_TxD *
         0x3C8 (PIN_INPUT_PULLUP | MUX_MODE1)/* SPI2_d0.uart3_CTSN *
         0x3CC (PIN_OUTPUT | MUX_MODE1)/* SPI2_cs0.uart3_rtsn *

      >;
   };

   SPI2_iodelay_DS_uart3_conf:SPI2_iodelay_DS_uart3_conf{
      pinctrl-single、pins =<
         0x8A0 (A_DELAY (561)| G_DELAY (0))   /* CFG_UART3_RXD_IN *
         0x8A4 (A_DELAY (0)| G_DELAY (0)      )/* CFG_UART3_RXD_OEN *
         0x8A8 (A_DELAY (0)| G_DELAY (0)      )/* CFG_UART3_RXD_OUT *
         0x8AC (A_DELAY (588)| G_DELAY (0))   /* CFG_UART3_TXD_IN */
         0x8B0 (A_DELAY (0)| G_DELAY (0)      )/* CFG_UART3_TXD_OEN *
         0x8B4 (A_DELAY (0)| G_DELAY (0)      )/* CFG_UART3_TXD_OUT *
      >;
   };
   
2.启用内核模块 :

connectivity.cfg

BT WiLink 驱动程序
CONFIG_BT=y
CONFIG_BT_LEDs=y
CONFIG_BT_RFCOMM=y
CONFIG_BT_RFCOMM_TTY=y
CONFIG_BT_HIDD=y
CONFIG_BT_HCEUART=y
CONFIG_BT_HAIUART_H4=y
#共享传输驱动程序
CONFIG_TI_ST=y
CONFIG_ST_HCI=y
#表示蓝色
CONFIG_BT_WiLink=y
CONFIG_BT_HCEUART_LL=y




3.在 device/ti/jacinto6evm/BoardConfig.mk 上启用蓝牙

 Board_het_bluetooth:= true
 Board_het_bluetooth_TI:= true
 Board_Bluetooth_BDROID_BUILDCFG_INCLUDE_DIR:= device/ti/jacinto6evm/Bluetooth

4.安装 BT 固件并构建蓝牙服务和 UIM 模块(device.mk)
#复制 BT 固件
product_copy_files +=\
      DEVICE/ti/jacinto6evm/bt-wii-firmware-util/TIInit_11.8.32.bts:$(target_copy_out_vendor)/firmware/ti-connectivity/TIInit_11.8.32.bts


product_packages += android.hardware.bluetooth@1.0-service.j6 UIM

5.定义设备模式和用户:

device/ti/jacinto6evm/ueventd.jacinto6evmboard.rc

/dev/hci_tty    0660蓝牙蓝牙


6.为蓝牙模块添加策略规则。

 mydroid/device/ti/jacinto6evm/sepolicy/file_contexts 和 sepolicy/hal_bluetooth_J6.te

7.启动时启动 UIM 服务

蓝牙所需的+#用户空间守护程序
+Service UIM /vendor/bin/uim
+   类 main
+   用户蓝牙
+   将蓝牙 net_bt_admin 系统分组
+   OneShot
+


8.结果:

jacinto6evm:/# dmesg | grep -i stk                                            
[2.1366666]   (stk):sysfs 条目已创建
[2.537816]   (stk):st_Kim_start
[2.646987]   (stk):ldisd_install = 1.
[3.634566]   (stk):ldisc 安装超时
[3.638763]   (stk):ldisc_install = 0
[4.641938]   (stk):等待卸载 ldisc 时超时
[4.754968]   (stk):ldisc_install = 1.
[5.751234]   (stk): ldisc 安装超时
[5.755434]   (stk):ldisc_install = 0
[6.751306]   (stk):等待卸载 ldisc 时超时
[6.871834]   (stk):ldisc_install = 1.
[7.861269]   (stk):ldisc 安装超时
[7.916833]   (stk):ldisc_install = 0
[8.918368]   (stk):等待卸载 ldisc 时超时
[9.048941]   (stk):ldisc_install = 1.
[10.041267(1999)  :ldisc 安装超时
[10.045562]  (stk):ldisc_install = 0
[11.041325(2000)  :等待卸载 ldisc 时超时
[11.155159]  (stk):ldisd_install = 1.
[12.151260]  (stk): ldisc 安装超时
[12.155468]  (stk):ldisc_install = 0
[13.151248]  (stk):等待卸载 ldisc 时超时
[13.262983]  (stk):ldisc_install = 1.
[14.261254]  (stk): ldisc 安装超时
[14.264161]  (stk):ldisc_install = 0
[15.273271]  (stk):等待卸载 ldisc 时超时


日志:

jacinto6evm:/# ls /sys/class/gpio                                            
导出     gpiochip160 gpiochip32 gpiochip462 gpiochip510不导出
gpiochip0  gpiochip192 gpiochip430 gpiochip478 gpiochip64  
gpiochip128 gpiochip224 gpiochip446 gpiochip494 gpiochip96  
jacinto6evm:/# ls /sys
SYS/SYSTEM/     
jacinto6evm:/# ls /sys/de                                                     
设备     /
jacinto6evm:/# ls /sys/devices/platform/kim                                  
BAUD_RATE 驱动器         FLOG_Cntrl 调制混叠电源    uevent
DEV_name DRIVER_OVERRIDE 安装   _node 子系统
jacinto6evm:/#

jacinto6evm:/# lsmod                                                          
使用的模块                 大小  
pvrsrvkm             288948  
SND_SoC_tlv320aic3x   48807 2.
GPIO_pca953x           9700  
TVP5158                7072 1.
ov490                  5014 0
ov1063x               14068 0
ldc3001_ts             4718 0
goodix                 9068 0
input_polldev          4492 1 goodix
EDT_ft5x06            11534 0
PWM_BL                 4714 0
LED_BL                 2991 0
GPIO_背 光         2844 0
LED_tlc591xx          5019 1.
Panel_dpi              4046 1.
connector_DVI          3916 0
连接器_HDMI         4197 1.
TI_fpd3_SerDes         8523 0
编码器_tfp410         3490 0
编码器_tpd12s015      3933 0
编码器_tc358768       5932 1.
dra7_EVM_ENCODER_tpd12s015    5442 1.
SD_mod                31226 0
USB_storage           48124 0
SCSI_mod             164778 2 sd_mod、usb_storage
wlcore_SDIO            6907 0
Wl18xx                85776 0
wlcore               183653 1 wl18xx
jacinto6evm:/#




此致、
Chokri

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

    AFAIK、你在这里粘贴的集成指令是基于一个较旧的 Android 发行版
    我们在内部不支持 Android、也从未集成 Android 8.1。
    AFAIK SHART-transles/Kim 已被弃用、并已从最新的 Linux 内核中删除。 他们改为使用了 serdev、但我们内部也没有经验。

    在转到8.1之前、您之前是否有任何 Android 版本在此平台上运行过?

    此致、
    Eyal
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    有更新吗? 现在可以关闭此主题吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    目前、我正在使用内核版本4.4处理8.1、而 serdev 驱动程序是从 Linux 内核4.11中引入的。

    那么、是否可以将 serdev 驱动程序移植到4.4、或者我们需要使用旧的 UIM 和 Kim 模块。

    我将共享 serdev 补丁。

    Regads、

    Chokri

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

    启用 serdev 总线之后。

    CONFIG_BT=y
    CONFIG_BT_RFCOMM=y
    CONFIG_BT_RFCOMM_TTY=y
    CONFIG_BT_HCEUART=y
    CONFIG_BT_HCEUART_LL=y
    CONFIG_SERIAL_DEV_BUS=y
    CONFIG_BT_HCEUART_SERDEV=y
    CONFIG_SERIAL_DEV_CTRL_TTYPORT=y
    CONFIG_BT_HAIUART_H4=y
    CONFIG_BT_HCEUART_BCSP = y

    我有 dmesg 日志:


    [0.623505]   蓝牙:内核版本2.21
    [0.623549]   蓝牙:HCI 设备和连接管理器已初始化
    [0.623563]   蓝牙:HCI 套接字层已初始化
    [0.623574]   蓝牙:已初始化 L2CAP 套接字层
    [0.623611]   蓝牙:已初始化 SCO 套接字层
    [2.500290]   蓝牙:HCI UART 驱动程序版本2.3
    [3.062441]   蓝牙:已初始化 RFCOMM TTY 层
    [3.067349]   蓝牙:已初始化 RFCOMM 套接字层
    [3.072544]   蓝牙:RFCOMM 版本1.11


    但在用户空间方面,蓝牙死区失败:

    无蓝牙地址

    这意味着未加载固件 ti-connectivity/TIInit_11.8.32.bts。

    附加的 serdev 修补程序。

    e2e.ti.com/.../01_5F00_integrate_5F00_serdev.txt

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如果您尝试与 Android 配合使用、此时可以选择共享传输。 这是因为 Android PAN HAL 采用共享传输设备。

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

    您好!

    使用共享传输驱动程序(UIM 和 Kim)时,总是会失败:

    1|jacinto6evm:/$ dmesg | grep stk
    [2.089143](stk):nshutdown _GPIO A4.
    [2.092735](stk):flow_Cntrl 1.
    [2.05935](stk):baud_rate 1c200
    [2.099349](stk):////////////////////////////////////////////////////////////
    [2.103564](stk)://////////////////////////////////////////////////////// (STK):////////// k i M pdev->id -1///////////////
    [2.111793](stk)://////////////////////////////////////////////////////// (STK):////////////////////////////////////////////////////////////////////////////////////////////////////////////
    [2.119075](stk)://////////////// 平台确定是否存在1个器件////////////////////////////////////////////////////// (STK)://////////////// platform_set_drvdata pdev->id -1/////////////////////////////////
    [2.133245](stk):////////////////// ST_CORE_INIT////////////////////////////// (STC):注册的 n_shared 行规程
    [2.142362](stk):////////////////// 声称芯片使能 nShutdown //////////////////////////// (STK):////////////////////// 配置 nShutdown GPIO ////////////////////////
    [2.154635](stk):GPIO 164 (stk):////////////////////// sysfs_create_group////////////////////////////////
    [2.162009](stk):创建了 sysfs 条目
    [2.558014](stk):st_Kim _start
    [2.568508](stk):使用设备树数据
    [2.663029](stk):ldisc_install = 1.
    [3.667304](stk): ldisc 安装超时错误0
    [3.672025](stk):使用设备树数据(stk):ldisd_install = 0
    [4.823885](stk):等待卸载 ldisc 时超时
    [4.923284](stk):ldisc_install = 1.
    [5.913495](stk):ldisc 安装超时错误0
    [5.918219](stk):使用设备树数据(stk):ldisd_install = 0
    [6.923489](stk):等待卸载 ldisc 时超时
    [7.044394](stk):ldisc_install = 1.
    [8.043502](stk):ldisc 安装超时错误0
    [8.043504](stk):使用设备树数据
    [8.055015](stk):ldisc_install = 0
    [9.033524](stk):等待卸载 ldisc 时超时
    [9.146613](stk):ldisch_install =1<5>[9.738727] random:非阻塞池已初始化
    [10.143520](stk):ldisc 安装超时错误0
    [10.148342](stk):使用设备树数据(stk):ldisc_install = 0
    [11.153498](stk):等待卸载 ldisc 时超时
    [11.26821](stk):ldisc_install=1 (stk): ldisc 安装超时错误0
    [12.266921](stk):使用设备树数据(stk):ldisd_install = 0
    [13.263506](stk):等待卸载 ldisc 时超时(stk):ldisc_install = 1.
    [14.383507](stk): ldisc 安装超时错误0
    [14.383509](stk):使用设备树数据
    [14.393944](stk):ldisc_install = 0
    [15.373508](stk):等待卸载 ldisc 时超时

    uart3和 Kim 似乎配置不正确,是否可以检查此 DTS 更改以使用 uart3启用 BT GPIO?

    /*蓝牙- TI WL1837 */
    Kim{
    pinctrl-names ="default";
    pinctrl-0 =<&SPI2_PINS_DEFAULT>;
    兼容="Kim";
    /* BT_EN:GPIO_5-4_BT_EN */
    nSHUTDOWN_GPIO =<164>;
    DEV_name ="/dev/hci_tty;
    flow_Cntrl =<1>;
    BAUD_RATE =<115200>;
    };

    双链接{
    兼容="btwilink";
    };

    /////////////////////////////////////

    SPI2_PINS_DEFAULT:SPI2_PINS_DEFAULT{
    pinctrl-single、pins =<
    0x3C0 (PIN_INPUT_PULLUP | MUX_MODE1)/* SPI2_SCLK/uart3_RxD *
    0x3C4 (PIN_OUTPUT | MUX_MODE1)/* SPI2_D1.uart3_TxD *
    0x3C8 (PIN_INPUT_PULLUP | MUX_MODE1)/* SPI2_d0.uart3_CTSN *
    0x3CC (PIN_OUTPUT | MUX_MODE1)/* SPI2_cs0.uart3_rtsn *

    >;
    };

    /////////////////////////////////////////////////////

    uart3{(&U)
    状态="正常";
    FSL、UART-has rtscts;
    };

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我们最近已经尝试过这种配置。 我建议从以下位置查看早期的工作配置:
    树:Git://git.omapzoom.org/kernel/omap.git
    分支:P-ti-linux-3.14.y.y-android

    谢谢
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如前所述、共享传输驱动程序的最后一个 BT 支持是内核3.14。 目前、Android 版本不支持 BT。