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.

CC3300: SDK 1.0.0.3 kernel patch issue

Part Number: CC3300

Tool/software:

Hello Experts,

I was porting our build to use the new SDK 1.0.0.3 release and noted an issue.

Setup:
CPU - AM6231 custom board
WLAN - CC3300
AM62X PSDK - 09.02.01.10
CC33XX SDK - 1.0.0.3

After including the updated source/patches/binaries to our Yocto build, I noted that the updated kernel module was rejecting the new cc33xx-conf.bin file.

root@host:~# dmesg |grep wlcore |grep -v -e "Processing message" -e "Reading control info"
[   13.583149] wlcore: cc33xx_probe :: Start
[   13.592413] wlcore: Wireless Driver Version 1.7.0.27
[   13.592449] wlcore: WLAN CC33xx platform device probe done
[   13.628595] wlcore: Could not get nvs file ti-connectivity/cc33xx-nvs.bin
[   13.631366] wlcore: ERROR ti-connectivity/cc33xx-conf.bin configuration binary size is wrong, expected 981 got 1353
[   13.668202] wlcore: WARNING falling back to default config
[   13.684158] wlcore: Chip wakeup
[   13.967361] wlcore: Set BLKsize to 128
[   13.967505] wlcore: BOOT IRQs: 0x8
[   13.967786] wlcore: Response len 704, allocated buffer len 712
[   13.967791] wlcore: CMD# 35, len=712
[   13.967798] wlcore: CC33XX device info: PG version: 2, Metal version: 0, Boot ROM version: 1 M3 ROM version: 1, MAC address: 0x3468b588b0d7, Device part number: 0
[   13.967807] wlcore: Downloading ti-connectivity/cc33xx_2nd_loader.bin to device
[   14.071712] wlcore: Suspending IRQ while device reboots
[   14.177913] wlcore: Resuming IRQ
[   14.213018] wlcore: BOOT IRQs: 0x10
[   14.215259] wlcore: ti-connectivity/cc33xx_2nd_loader.bin loaded successfully
[   14.215311] wlcore: Downloading ti-connectivity/cc33xx_fw.bin to device
[   15.041808] wlcore: Suspending IRQ while device reboots
[   15.148099] wlcore: Resuming IRQ
[   15.450720] wlcore: BOOT IRQs: 0x20
[   15.450750] wlcore: ti-connectivity/cc33xx_fw.bin loaded successfully
[   15.450820] wlcore: WARNING flow control disable - BLE will not work
[   15.464104] wlcore: Downloading INI Params and Configurations to FW, INI Bin File Payload Length: 981
[   15.464342] wlcore: ERROR FW is stuck, triggering recovery
[   17.492243] wlcore: Command T.O
[   17.492270] wlcore: CMD# 37, len=1000
[   17.492281] wlcore: WARNING download INI params to FW command sending failed: -5
[   17.527923] wlcore: ERROR FW download failed
[   17.563753] wlcore: wlcore_nvs_cb Complete

Example above shows that the kernel module is expecting a smaller conf file. I did note that there are more configs in this SDK version. After poking around I found that the conf.h file created by cc33xx_kernel.patch is the wrong version.

$ cd path/to/cc33xx/sdk/1.0.0.3
$ grep -r CC33XX_CONF_VERSION .
./cc33conf_src/conf.h:#define CC33XX_CONF_VERSION       0x01070070
./cc33conf_src/cc33conf.h:#define DEFAULT_VERSION_SYMBOL        "CC33XX_CONF_VERSION"
./patches/cc33xx_kernel.patch:+#define CC33XX_CONF_VERSION      0x01070050
./patches/cc33xx_kernel.patch:+ header.version  = cpu_to_le32(CC33XX_CONF_VERSION);
$ hexdump -s 4 -n 4 -C cc33xx_rootfs/lib/firmware/ti-connectivity/cc33xx-conf.bin 
00000004  70 00 07 01                                       |p...|
00000008

Example above shows a hint that the patch is creating the wrong conf.h file and confirms the CC33XX_CONF_VERSION used in the cc33xx-conf.bin file distributed in the SDK.

Things become even more clear when you diff the  conf.h created by the patch and the conf.h distributed in cc33conf_src (ignoring type differences on variables).

To fix, I dropped the cc33conf_src/conf.h file into my kernel source tree and rebuilt. Everything worked fine.

I also ran into issues using cc33xxconf during troubleshooting, but I'll create another thread for that.

  • Hi,

    If you applied the patch, how come the conf.h file was not getting updated?

    From the original message, seems like the driver version was 1.7.0.27 which is older where you should have 1.7.0.114 according to the patch.

    Regards,

    Shlomi

  • Well for a sanity check, I did clean installation of 1.0.0.3 to /tmp and double check versions from the wlcore.h header file. The cc33xx_kernel.patch also has 1.7.0.27 defined in wlcore.h file.

    I'm going to dig a little deeper and do a follow-up.


    I'd love for this to be a patch application problem, but it doesn't appear to be one.

  • We were previously running CC33XX-LINUX-AM62, which was last versioned at 1.0.0.1, and Corrinne let us know to migrate over to CC33XX-LINUX-MPU, which was recently updated to 1.0.0.3.

    Below is a test that can be replicated fairly easily:

    I did a fresh install 1.0.0.1 (-AM62) and 1.0.0.3 (-MPU) to /tmp/ti-sdk-test/ and used diff for comparing

    Download page MD5s:
    CC33xx-Linux-AM62x - c201038f6fedc36bd8d85edb50ab86a7
    CC33xx-Linux-MPU - 846961c07b06b0b911388e7f8b8bbcf6

    Setup:

    bash-5.1$ cd /tmp/ti-sdk-test/
    bash-5.1$ wget https://dr-download.ti.com/software-development/driver-or-library/MD-ROCBq4vAGl/1.0.0.1/am62x-cc33xx-linux-package-1.0.0.1-linux-x64-installer.run
    --2024-06-03 11:11:36--  https://dr-download.ti.com/software-development/driver-or-library/MD-ROCBq4vAGl/1.0.0.1/am62x-cc33xx-linux-package-1.0.0.1-linux-x64-installer.run
    Resolving dr-download.ti.com (dr-download.ti.com)... 184.85.72.240, 2600:1406:bc00:3a3::358e, 2600:1406:bc00:3a4::358e
    Connecting to dr-download.ti.com (dr-download.ti.com)|184.85.72.240|:443... connected.
    HTTP request sent, awaiting response... 200 OK
    Length: 23137338 (22M) [application/octet-stream]
    Saving to: ‘am62x-cc33xx-linux-package-1.0.0.1-linux-x64-installer.run’
    
    am62x-cc33xx-linux-package-1.0.0.1-linux-x64-installer. 100%[===============================================================================================================================>]  22.07M  16.8MB/s    in 1.3s    
    
    2024-06-03 11:11:38 (16.8 MB/s) - ‘am62x-cc33xx-linux-package-1.0.0.1-linux-x64-installer.run’ saved [23137338/23137338]
    
    bash-5.1$ wget https://dr-download.ti.com/software-development/driver-or-library/MD-UoRUAALCjn/1.0.0.3/cc33xx-linux-package-1.0.0.3-linux-x64-installer.run
    --2024-06-03 11:11:50--  https://dr-download.ti.com/software-development/driver-or-library/MD-UoRUAALCjn/1.0.0.3/cc33xx-linux-package-1.0.0.3-linux-x64-installer.run
    Resolving dr-download.ti.com (dr-download.ti.com)... 184.85.72.240, 2600:1406:bc00:3a4::358e, 2600:1406:bc00:3a3::358e
    Connecting to dr-download.ti.com (dr-download.ti.com)|184.85.72.240|:443... connected.
    HTTP request sent, awaiting response... 200 OK
    Length: 22848211 (22M) [application/octet-stream]
    Saving to: ‘cc33xx-linux-package-1.0.0.3-linux-x64-installer.run’
    
    cc33xx-linux-package-1.0.0.3-linux-x64-installer.run    100%[===============================================================================================================================>]  21.79M  11.5MB/s    in 1.9s    
    
    2024-06-03 11:11:52 (11.5 MB/s) - ‘cc33xx-linux-package-1.0.0.3-linux-x64-installer.run’ saved [22848211/22848211]
    
    bash-5.1$ md5sum *.run
    c201038f6fedc36bd8d85edb50ab86a7  am62x-cc33xx-linux-package-1.0.0.1-linux-x64-installer.run
    846961c07b06b0b911388e7f8b8bbcf6  cc33xx-linux-package-1.0.0.3-linux-x64-installer.run
    bash-5.1$ ls
    am62x-cc33xx-linux-package-1.0.0.1-linux-x64-installer.run  cc33xx-linux-package-1.0.0.3-linux-x64-installer.run
    
    ##md5s match
    
    #install
    
    bash-5.1$ ./am62x-cc33xx-linux-package-1.0.0.1-linux-x64-installer.run --prefix /tmp/ti-sdk-test/cc33xx-1.0.0.1
    ----------------------------------------------------------------------------
    Welcome to the CC33XX Linux SDK  Setup Wizard.
    
    ----------------------------------------------------------------------------
    Please specify the directory where CC33XX Linux SDK  will be installed.
    
    Installation Directory [/tmp/ti-sdk-test/cc33xx-1.0.0.1]: 
    
    ----------------------------------------------------------------------------
    Setup is now ready to begin installing CC33XX Linux SDK  on your computer.
    
    Do you want to continue? [Y/n]: 
    
    ----------------------------------------------------------------------------
    Please wait while Setup installs CC33XX Linux SDK  on your computer.
    
     Installing
     0% ______________ 50% ______________ 100%
     #########################################
    
    ----------------------------------------------------------------------------
    Setup has finished installing CC33XX Linux SDK  on your computer.
    
    bash-5.1$ ./cc33xx-linux-package-1.0.0.3-linux-x64-installer.run --prefix /tmp/ti-sdk-test/cc33xx-1.0.0.3
    ----------------------------------------------------------------------------
    Welcome to the CC33XX Linux SDK  Setup Wizard.
    
    ----------------------------------------------------------------------------
    Please specify the directory where CC33XX Linux SDK  will be installed.
    
    Installation Directory [/tmp/ti-sdk-test/cc33xx-1.0.0.3]: 
    
    ----------------------------------------------------------------------------
    Setup is now ready to begin installing CC33XX Linux SDK  on your computer.
    
    Do you want to continue? [Y/n]: 
    
    ----------------------------------------------------------------------------
    Please wait while Setup installs CC33XX Linux SDK  on your computer.
    
     Installing
     0% ______________ 50% ______________ 100%
     #########################################
    
    ----------------------------------------------------------------------------
    Setup has finished installing CC33XX Linux SDK  on your computer.

    Test:

    # compare patches
    bash-5.1$ diff -sqr cc33xx-1.0.0.1/patches/ cc33xx-1.0.0.3/patches/
    Files cc33xx-1.0.0.1/patches/cc33xx_am335x-bbb_dts.patch and cc33xx-1.0.0.3/patches/cc33xx_am335x-bbb_dts.patch differ
    Files cc33xx-1.0.0.1/patches/cc33xx_am625-sk_dts.patch and cc33xx-1.0.0.3/patches/cc33xx_am625-sk_dts.patch differ
    Only in cc33xx-1.0.0.3/patches/: cc33xx_am62a7-sk_dts.patch
    Only in cc33xx-1.0.0.3/patches/: cc33xx_am62p5-sk_dts.patch
    Only in cc33xx-1.0.0.3/patches/: cc33xx_config.patch
    Files cc33xx-1.0.0.1/patches/cc33xx_imx8mp_dts.patch and cc33xx-1.0.0.3/patches/cc33xx_imx8mp_dts.patch differ
    Files cc33xx-1.0.0.1/patches/cc33xx_kernel.patch and cc33xx-1.0.0.3/patches/cc33xx_kernel.patch are identical
    Only in cc33xx-1.0.0.3/patches/: cc33xx_ti_arm64_config.patch
    Only in cc33xx-1.0.0.1/patches/: cc33xx_ti_config.patch
    
    # compare rootfs dir
    bash-5.1$ diff -sqr cc33xx-1.0.0.1/cc33xx_rootfs/ cc33xx-1.0.0.3/cc33xx_rootfs/
    Files cc33xx-1.0.0.1/cc33xx_rootfs/lib/firmware/ti-connectivity/cc33xx_2nd_loader.bin and cc33xx-1.0.0.3/cc33xx_rootfs/lib/firmware/ti-connectivity/cc33xx_2nd_loader.bin are identical
    Files cc33xx-1.0.0.1/cc33xx_rootfs/lib/firmware/ti-connectivity/cc33xx-conf.bin and cc33xx-1.0.0.3/cc33xx_rootfs/lib/firmware/ti-connectivity/cc33xx-conf.bin differ
    Files cc33xx-1.0.0.1/cc33xx_rootfs/lib/firmware/ti-connectivity/cc33xx_fw.bin and cc33xx-1.0.0.3/cc33xx_rootfs/lib/firmware/ti-connectivity/cc33xx_fw.bin differ
    Only in cc33xx-1.0.0.3/cc33xx_rootfs/usr/share/cc33xx: antenna_selection.sh
    Files cc33xx-1.0.0.1/cc33xx_rootfs/usr/share/cc33xx/ap_start.sh and cc33xx-1.0.0.3/cc33xx_rootfs/usr/share/cc33xx/ap_start.sh differ
    Files cc33xx-1.0.0.1/cc33xx_rootfs/usr/share/cc33xx/ap_stop.sh and cc33xx-1.0.0.3/cc33xx_rootfs/usr/share/cc33xx/ap_stop.sh differ
    Files cc33xx-1.0.0.1/cc33xx_rootfs/usr/share/cc33xx/ble_enable.sh and cc33xx-1.0.0.3/cc33xx_rootfs/usr/share/cc33xx/ble_enable.sh are identical
    Only in cc33xx-1.0.0.3/cc33xx_rootfs/usr/share/cc33xx: cc33xx_twt.sh
    Files cc33xx-1.0.0.1/cc33xx_rootfs/usr/share/cc33xx/hostapd.conf and cc33xx-1.0.0.3/cc33xx_rootfs/usr/share/cc33xx/hostapd.conf are identical
    Files cc33xx-1.0.0.1/cc33xx_rootfs/usr/share/cc33xx/load_cc33xx.sh and cc33xx-1.0.0.3/cc33xx_rootfs/usr/share/cc33xx/load_cc33xx.sh are identical
    Files cc33xx-1.0.0.1/cc33xx_rootfs/usr/share/cc33xx/sdio_rebind.sh and cc33xx-1.0.0.3/cc33xx_rootfs/usr/share/cc33xx/sdio_rebind.sh differ
    Files cc33xx-1.0.0.1/cc33xx_rootfs/usr/share/cc33xx/set_power_mode.sh and cc33xx-1.0.0.3/cc33xx_rootfs/usr/share/cc33xx/set_power_mode.sh are identical
    Files cc33xx-1.0.0.1/cc33xx_rootfs/usr/share/cc33xx/sta_add.sh and cc33xx-1.0.0.3/cc33xx_rootfs/usr/share/cc33xx/sta_add.sh are identical
    Files cc33xx-1.0.0.1/cc33xx_rootfs/usr/share/cc33xx/sta_connect-ex-dhcp.sh and cc33xx-1.0.0.3/cc33xx_rootfs/usr/share/cc33xx/sta_connect-ex-dhcp.sh are identical
    Files cc33xx-1.0.0.1/cc33xx_rootfs/usr/share/cc33xx/sta_connect-ex.sh and cc33xx-1.0.0.3/cc33xx_rootfs/usr/share/cc33xx/sta_connect-ex.sh are identical
    Files cc33xx-1.0.0.1/cc33xx_rootfs/usr/share/cc33xx/sta_connect.sh and cc33xx-1.0.0.3/cc33xx_rootfs/usr/share/cc33xx/sta_connect.sh are identical
    Files cc33xx-1.0.0.1/cc33xx_rootfs/usr/share/cc33xx/sta_remove.sh and cc33xx-1.0.0.3/cc33xx_rootfs/usr/share/cc33xx/sta_remove.sh are identical
    Files cc33xx-1.0.0.1/cc33xx_rootfs/usr/share/cc33xx/sta_start.sh and cc33xx-1.0.0.3/cc33xx_rootfs/usr/share/cc33xx/sta_start.sh are identical
    Files cc33xx-1.0.0.1/cc33xx_rootfs/usr/share/cc33xx/sta_stop.sh and cc33xx-1.0.0.3/cc33xx_rootfs/usr/share/cc33xx/sta_stop.sh are identical
    Files cc33xx-1.0.0.1/cc33xx_rootfs/usr/share/cc33xx/udhcpd.conf and cc33xx-1.0.0.3/cc33xx_rootfs/usr/share/cc33xx/udhcpd.conf are identical
    Files cc33xx-1.0.0.1/cc33xx_rootfs/usr/share/cc33xx/unload_cc33xx.sh and cc33xx-1.0.0.3/cc33xx_rootfs/usr/share/cc33xx/unload_cc33xx.sh are identical
    Files cc33xx-1.0.0.1/cc33xx_rootfs/usr/share/cc33xx/wifible_provisioning_demo/bt_agent.exp and cc33xx-1.0.0.3/cc33xx_rootfs/usr/share/cc33xx/wifible_provisioning_demo/bt_agent.exp are identical
    Files cc33xx-1.0.0.1/cc33xx_rootfs/usr/share/cc33xx/wifible_provisioning_demo/__cc33xx_ble_adv_gatt_server.sh and cc33xx-1.0.0.3/cc33xx_rootfs/usr/share/cc33xx/wifible_provisioning_demo/__cc33xx_ble_adv_gatt_server.sh differ
    Files cc33xx-1.0.0.1/cc33xx_rootfs/usr/share/cc33xx/wifible_provisioning_demo/kill_bluez.sh and cc33xx-1.0.0.3/cc33xx_rootfs/usr/share/cc33xx/wifible_provisioning_demo/kill_bluez.sh are identical
    Files cc33xx-1.0.0.1/cc33xx_rootfs/usr/share/cc33xx/wifible_provisioning_demo/provisioning_start_ble.sh and cc33xx-1.0.0.3/cc33xx_rootfs/usr/share/cc33xx/wifible_provisioning_demo/provisioning_start_ble.sh are identical
    Files cc33xx-1.0.0.1/cc33xx_rootfs/usr/share/cc33xx/wifible_provisioning_demo/provisioning_start_wlan.sh and cc33xx-1.0.0.3/cc33xx_rootfs/usr/share/cc33xx/wifible_provisioning_demo/provisioning_start_wlan.sh differ
    Files cc33xx-1.0.0.1/cc33xx_rootfs/usr/share/cc33xx/wpa_supplicant2.conf and cc33xx-1.0.0.3/cc33xx_rootfs/usr/share/cc33xx/wpa_supplicant2.conf are identical
    Files cc33xx-1.0.0.1/cc33xx_rootfs/usr/share/cc33xx/wpa_supplicant.conf and cc33xx-1.0.0.3/cc33xx_rootfs/usr/share/cc33xx/wpa_supplicant.conf are identical
    

    The cc33xx_kernel.patch files are identical.

  • let me reassign to Corinne and I can follow up with her.

    Shlomi

  • Hi,

    Could you clarify the issue you are looking for assistance with? If I understood correctly you noticed that the wrong version of the conf file was being generated but you were able to fix this? Are you looking for an official fix, clarification on why this is happening, or is there a different unresolved issue you were looking for assistance with?

    Best,
    Corinne

  • It started as pointing out a fix in 1.0.0.3 to allow cc33xx-conf.bin to load. However, after Shlomi pointed out that the driver version was incorrect,  I did a quick check and it appears that the patch file did not change from 1.0.0.1 to 1.0.0.3.

    Files cc33xx-1.0.0.1/patches/cc33xx_kernel.patch and cc33xx-1.0.0.3/patches/cc33xx_kernel.patch are identical
    

    The code examples were to show the following:

    1. Download and fresh install of each SDK
    2. Comparison of files in each SDK. Specifically, these directories: patches, cc33xx_rootfs

    Sorry, I keep editing to fix my grammar.

  • I don't think this resolves the case, if 1.0.0.3 doesn't actually have the kernel driver update that matches the firmware binaries that were shipped with it.

    Can you provide the patch for kmod version 1.7.0.114 or is there a plan to do a new point release to fix?

  • We are having same issue on a custom am62x board.  It was working correctly on 1.0.0.1. 

    With 1.0.0.3


    [   10.990643] cc33xx_driver cc33xx.2.auto: Direct firmware load for ti-connectivity/cc33xx-nvs.bin failed with error -2
    [   11.023324] wlcore: ERROR ti-connectivity/cc33xx-conf.bin configuration binary size is wrong, expected 981 got 1353
    [   11.055614] wlcore: WARNING falling back to default config

    My cc33xx_kernel.patch are the same as between the 2 versions

  • Ok it looks like there is a release issue. There are plans to release a fix for this today. Please note that this isn't a prebuilt image issue, only the installer. If needed in the meantime the prebuilt image can be used until the installer is fixed.

    Best,
    Corinne

  • Thanks for the update!   Prebuilt image won't work for us because we have a custom board and we are using buildroot, but I will keep an eye out for the update.

  • thanks for the info, I'll be watching for the update