CC3351: SK-AM62B-P1 使用11.02.08.02 的buildroot

Part Number: CC3351
Other Parts Discussed in Thread: SK-AM62B-P1, , SK-AM62, , CC3300

硬件环境:
    SK-AM62B-P1 + CC3351

软件环境:
PROCESSOR-SDK-LINUX-RT-AM62X — Processor SDK RT-Linux for AM62x
版本: 11.02.08.02
发布日期: 2025-12-15

AM62X
$ git clone -b  2025.02.x   https://github.com/buildroot/buildroot
$ git clone -b 11.01.05.03  https://github.com/TexasInstruments/buildroot-external-TI.git

执行

$ cd buildroot
$ make BR2_EXTERNAL=../buildroot-external-TI ti_release_am62x_sk_rt_defconfig
$ make TI_K3_BOOT_FIRMWARE_VERSION=11.01.05

编译完成后,烧写 sdcard.img 至SD卡。

 

//启动重要日志, wlan0 OK, hci0 not OK;
Welcome to Buildroot
am62xx-evm login: root
[root@am62xx-evm ~] ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq qlen 1000
    link/ether 1c:63:49:1f:dd:1e brd ff:ff:ff:ff:ff:ff
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq qlen 1000
    link/ether de:9c:7f:3d:a9:7c brd ff:ff:ff:ff:ff:ff
4: wlan0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop qlen 1000
    link/ether f8:fb:90:14:da:86 brd ff:ff:ff:ff:ff:ff

[root@am62xx-evm ~] ip link set wlan0 up
[root@am62xx-evm ~] ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq qlen 1000
    link/ether 1c:63:49:1f:dd:1e brd ff:ff:ff:ff:ff:ff
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq qlen 1000
    link/ether de:9c:7f:3d:a9:7c brd ff:ff:ff:ff:ff:ff
4: wlan0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue qlen 1000
    link/ether f8:fb:90:14:da:86 brd ff:ff:ff:ff:ff:ff

[root@am62xx-evm ~] hciconfig hci0
Can't get device info: No such device

[root@am62xx-evm ~] cd /sys/class/ieee80211/phy0/
[root@am62xx-evm /sys/class/ieee80211/phy0] ls
address_mask  device        macaddress    power         subsystem
addresses     index         name          rfkill0       uevent

[root@am62xx-evm /sys/class/ieee80211/phy0] cd /sys/kernel/debug/
[root@am62xx-evm /sys/kernel/debug] ls
[root@am62xx-evm /sys/kernel/debug]

[root@am62xx-evm ~] mount -t debugfs none /sys/kernel/debug
[root@am62xx-evm ~] cd /sys/kernel/debug
[root@am62xx-evm /sys/kernel/debug] ls
8000000.ethernet
asoc
bdi
block
bluetooth
clear_warn_once
clk
debug_enabled
devfreq
device_component
devices_deferred
dma_buf
dma_pools
dmaengine
dri
extfrag
fault_around_bytes
gpio
hid
hte
i2c
ieee80211
iio
interconnect
megaraid_sas
memblock
mmc0
mmc1
mmc2
mtd
opp
phy
pinctrl
pm_genpd
psci
ptp0
pwm
ras
regmap
regulator
remoteproc
scmi
sleep_time
spi-nor
swiotlb
ti_sci_debug@44043000.system-controller
ubi
ubifs
ufshcd
ulpi
usb
virtio-ports
[root@am62xx-evm /sys/kernel/debug] cd ieee80211/
[root@am62xx-evm /sys/kernel/debug/ieee80211] ls
phy0
[root@am62xx-evm /sys/kernel/debug/ieee80211] cd phy0/
[root@am62xx-evm /sys/kernel/debug/ieee80211/phy0] ls -l
total 0
[root@am62xx-evm /sys/kernel/debug/ieee80211/phy0]

//CC33xx固件
[root@am62xx-evm ~] ls /lib/firmware/ti-connectivity/
TIInit_6.2.31.bts      wl127x-fw-4-mr.bin     wl128x-fw-5-mr.bin
TIInit_6.6.15.bts      wl127x-fw-4-plt.bin    wl128x-fw-5-plt.bin
TIInit_7.2.31.bts      wl127x-fw-4-sr.bin     wl128x-fw-5-sr.bin
cc33xx-conf.bin        wl127x-fw-5-mr.bin     wl128x-fw-ap.bin
cc33xx_2nd_loader.bin  wl127x-fw-5-plt.bin    wl128x-fw-plt-3.bin
cc33xx_fw.bin          wl127x-fw-5-sr.bin     wl128x-fw.bin
wl1251-fw.bin          wl127x-fw-plt-3.bin    wl128x-nvs.bin
wl1251-nvs.bin         wl127x-nvs.bin         wl18xx-fw-2.bin
wl1271-fw-2.bin        wl128x-fw-3.bin        wl18xx-fw-3.bin
wl1271-fw-ap.bin       wl128x-fw-4-mr.bin     wl18xx-fw-4.bin
wl1271-fw.bin          wl128x-fw-4-plt.bin    wl18xx-fw.bin
wl127x-fw-3.bin        wl128x-fw-4-sr.bin
[root@am62xx-evm ~] 


//启动日志过滤 "cc33"
[root@am62xx-evm ~] dmesg | grep -i "cc33\|firmware\|phy0\|mmc2"
[    0.000000] psci: PSCIv1.1 detected in firmware.
[    1.265729] ti-sci 44043000.system-controller: ABI: 4.0 (firmware rev 0x000b '11.1.2--v11.01.02 (Fancy Rat)')
[    2.100037] mmc2: CQHCI version 5.10
[    2.145966] mmc2: SDHCI controller on fa20000.mmc [fa20000.mmc] using ADMA 64-bit
[    2.164208] mmc2: new high speed SDIO card at address 0001
[    4.209814] powervr fd00000.gpu: Direct firmware load for powervr/rogue_33.15.11.3_v1.fw failed with error -2
[    4.209849] powervr fd00000.gpu: [drm] *ERROR* failed to load firmware powervr/rogue_33.15.11.3_v1.fw (err=-2)
[    4.657192] cc33xx_driver cc33xx.5.auto: Direct firmware load for ti-connectivity/cc33xx-nvs.bin failed with error -2
[root@am62xx-evm ~]

 

一、为什么 “固件加载失败” 会导致 /sys/kernel/debug/ieee80211/phy0 目录为空?
  Linux 驱动的设计逻辑是:
    1. 驱动先识别硬件(所以 /sys/class/ieee80211/phy0 符号链接存在);
    2. 驱动尝试加载固件 → 固件加载成功后,才会初始化芯片的功能模块(如 WiFi/BLE);
    3. 只有功能模块初始化完成,驱动才会在 debugfs 下创建 cc33xx 子目录和 ble_enable 等调试文件;
    4. 若固件加载失败,驱动会终止初始化流程,debugfs 下的调试目录自然不会创建 → phy0 目录为空。

想了解一下如何处理CC3351加载蓝牙固件失败的问题?

  • 感谢您对TI产品的关注!
    已经收到了您的案例,调查需要些时间,感谢您的耐心等待。

  • 我认为此次固件故障的原因在于 SK-AM62 未被正确设置以支持 CC33xx。我按照我们的 SLA 指南对 SK-AM62 进行了设置,而它并未使用 AM62x 的处理器 SDK RT-Linux。请参考以下指南:

    https://dev.ti.com/tirex/explore/node?node=A__ACjr-X897enaTGByTlD6Pg__CC33XX-LINUX-MPU__lBDUdCJ__LATEST

    此外,我只是想确认一下 10 千欧的电阻已经焊接到 R6 上了,并且您已经将 M2-CC3351 插入到位了。
    如果您对这个流程有任何疑问,请随时告知我!


  • 1. R6焊接了10K电阻,M2-CC3351已经插到相应的位置。

    2. 查看TI官方的ti-linux-kernel git版本库 相关的提交信息,升级ti-linux-kernet版本至linux-11.02.11-git4.tar.gz,
    同时也更新ti-k3-boot-firmware的 ti-k3-boot-firmware-11.02.11.tar.gz

    3. 使用cc33xx_linux_package_1_0_2_10\cc33xx\cc33xx_rootfs\lib\firmware\ti-connectivity的固件
    cc33xx_2nd_loader.bin
    cc33xx_fw.bin
    cc33xx-conf.bin

    3.设备树中添加bt
    &sdhci2 {
    status = "okay";
    bootph-all;
    vmmc-supply = <&wlan_en>;
    pinctrl-names = "default";
    pinctrl-0 = <&main_mmc2_pins_default>;
    bus-width = <4>;
    non-removable;
    ti,fails-without-test-cd;
    cap-power-off-card;
    keep-power-in-suspend;
    ti,driver-strength-ohm = <50>;

    #address-cells = <1>;
    #size-cells = <0>;
    wifi: cc3300@2 {
    compatible = "ti,cc3300";
    reg = <2>;
    pinctrl-names = "default";
    pinctrl-0 = <&main_wlirq_pins_default>;
    interrupt-parent = <&main_gpio0>;
    interrupts = <72 IRQ_TYPE_EDGE_FALLING>;
    };

    bluetooth: cc33xxbt@3 {
    compatible = "ti,cc33xxbt";
    reg = <3>;
    };
    };


    执行
    $ cd buildroot
    $ make BR2_EXTERNAL=../buildroot-external-TI ti_release_am62x_sk_rt_defconfig
    $ make TI_K3_BOOT_FIRMWARE_VERSION=11.02.11

    验证hci0 wlan0 信息如下

    Welcome to Buildroot
    am62xx-evm login: root
    [root@am62xx-evm ~]
    [root@am62xx-evm ~] dmesg | grep -iE "cc33|bluetooth|phy0"
    [ 3.558526] Bluetooth: Core ver 2.22
    [ 3.558685] NET: Registered PF_BLUETOOTH protocol family
    [ 3.558689] Bluetooth: HCI device and connection manager initialized
    [ 3.558713] Bluetooth: HCI socket layer initialized
    [ 3.558723] Bluetooth: L2CAP socket layer initialized
    [ 3.558743] Bluetooth: SCO socket layer initialized
    [ 3.567163] Bluetooth: [bt sdio] BLE SDIO init module
    [ 3.782356] cc33xx_driver cc33xx.5.auto: Direct firmware load for ti-connectivity/cc33xx-nvs.bin failed with error -2
    [root@am62xx-evm ~]


    [root@am62xx-evm ~] ip link show
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq qlen 1000
    link/ether 1c:63:49:1f:dd:1e brd ff:ff:ff:ff:ff:ff
    3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq qlen 1000
    link/ether 0a:8b:61:5a:98:b5 brd ff:ff:ff:ff:ff:ff
    4: wlan0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop qlen 1000
    link/ether 00:25:5e:08:de:43 brd ff:ff:ff:ff:ff:ff
    [root@am62xx-evm ~] ip link set wlan0 up
    [root@am62xx-evm ~] ip link show
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq qlen 1000
    link/ether 1c:63:49:1f:dd:1e brd ff:ff:ff:ff:ff:ff
    3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq qlen 1000
    link/ether 0a:8b:61:5a:98:b5 brd ff:ff:ff:ff:ff:ff
    4: wlan0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue qlen 1000
    link/ether 00:25:5e:08:de:43 brd ff:ff:ff:ff:ff:ff
    [root@am62xx-evm ~]

    [root@am62xx-evm ~] hciconfig
    hci0: Type: Primary Bus: SDIO
    BD Address: 00:00:00:00:00:00 ACL MTU: 0:0 SCO MTU: 0:0
    DOWN
    RX bytes:0 acl:0 sco:0 events:0 errors:0
    TX bytes:0 acl:0 sco:0 commands:0 errors:0
    [root@am62xx-evm ~] hciconfig hci0 up
    Can't init device hci0: Input/output error (5)


    请告知一下 1.执行 hciconfig hci0 up 为什么会失败?
    2. 是否必须要有 cc33xx-nvs.bin 文件?