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加载蓝牙固件失败的问题?