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.

AM3352: SDK compatibility for kernel 6.1.97

Part Number: AM3352

Tool/software:

Hi Team,

We are using a custom Linux board with the AM3352 host processor. Previously, we used TISDK 07.03.00.005 with kernel 5.4, and all drivers and peripherals were working as expected. Now, we are updating to the latest SDK version 09.03.05.02.

In the latest SDK, we used the processor-sdk-09.01.00-config.txt configuration file, which includes kernel version 6.1.119. We are currently porting the Wi-Fi/BLE drivers released by Infineon (v6.1.97) for kernel 6.1.119, but we are facing some challenges.

To address this, we are planning to use kernel version 6.1.97, which has confirmed support for the Infineon Wi-Fi/BLE drivers.

Given this, which configuration file should I use, or what is the recommended procedure to build kernel 6.1.97 for TISDK 09.xx?

I have already built the SDK using the following config files:

  • processor-sdk-09.01.00-config.txt (kernel 6.1.119)

  • processor-sdk-09.00.00-config.txt (kernel 6.1.33)

  • processor-sdk-09.01.00-legacy-config.txt (kernel 6.1.46)

  • processor-sdk-09.03.05.02-legacy-config.txt (kernel 6.1.119)

Which configuration file should I use for AM335x with kernel 6.1.97?

Best Regards,
Pratik P.

  • In the latest SDK, we used the processor-sdk-09.01.00-config.txt

    I have already built the SDK using the following config files:

    • processor-sdk-09.01.00-config.txt (kernel 6.1.119)

    • processor-sdk-09.00.00-config.txt (kernel 6.1.33)

    • processor-sdk-09.01.00-legacy-config.txt (kernel 6.1.46)

    • processor-sdk-09.03.05.02-legacy-config.txt (kernel 6.1.119

    The only Kernel we officially support in the context of this SDK is what is associated with the Yocto configuration of that SDK which is processor-sdk-09.03.05.02-legacy-config.txt, see https://software-dl.ti.com/processor-sdk-linux/esd/AM335X/09_03_05_02/exports/docs/linux/Release_Specific_Yocto_layer_Configuration.html#yocto-layer-configuration. This is the configuration we release tested and qualified. Any other configuration may result in issues we cannot readily support.

    In the latest SDK, we used the processor-sdk-09.01.00-config.txt configuration file, which includes kernel version 6.1.119. We are currently porting the Wi-Fi/BLE drivers released by Infineon (v6.1.97) for kernel 6.1.119, but we are facing some challenges.

    Those versions seem close enough, what issues are you facing? It seems like it should be possible to work through those.

    Regards, Andreas

  • Hi Andreas,

    We have cross-compiled the Wi-Fi drivers for kernel 6.1.119, and whenever I try to load the drivers, I continuously get the following errors:

    root@EVC89898989:/opt/data/pp# insmod compat.ko
    [ 1098.707902] Loading modules backported from Linux version v6.1.97-2024_1115-0-g1ecf8041f46a
    [ 1098.717407] Backport generated by backports.git v6.1.97-1-0-g2431d56e
    root@EVC89898989:/opt/data/pp# insmod cfg80211.ko
    root@EVC89898989:/opt/data/pp# insmod brcmutil.ko
    root@EVC89898989:/opt/data/pp# insmod brcmfmac.ko
    [ 1123.311150] brcmfmac: brcmf_fw_alloc_request: using cypress/cyfmac43455-sdio for chip BCM4345/6
    [ 1123.332124] brcmfmac mmc2:0001:1: Direct firmware load for cypress/cyfmac43455-sdio.ti,am335x-bone-black.bin failed with error -2
    [ 1123.363894] usbcore: registered new interface driver brcmfmac
    root@EVC89898989:/opt/data/pp# [ 1123.418577] brcmfmac: brcmf_fw_request_firmware: no board-specific nvram available (ret=-2), device will use cypress/cyfmac43455-sdio.txt
    [ 1123.484473] brcmfmac: brcmf_fw_request_firmware: no board-specific nvram available (ret=-2), device will use cypress/cyfmac43455-sdio.clm_blob
    [ 1123.816903] brcmfmac: brcmf_c_preinit_dcmds: Firmware: BCM4345/6 wl0: Apr 15 2021 03:03:20 version 7.45.234 (4ca95bb CY) FWID 01-996384e2
    [ 1124.891497] brcmfmac: inf_btsdio_init: bt over uart
    [ 1125.076789] brcmfmac: brcmf_sdio_kso_control: ERR: KSO=1 sequence took 116219037ns > expected 10000000ns try_cnt=1
    [ 1125.076789] err_cnt=1 rd_val=0x3 err=0
    [ 1125.590812] brcmfmac: brcmf_sdio_kso_control: ERR: KSO=1 sequence took 107830044ns > expected 10000000ns try_cnt=1
    [ 1125.590812] err_cnt=1 rd_val=0x3 err=0
    [ 1125.656092] mmc2: Cannot use external DMA, switch to the DMA/PIO which standard SDHCI provides.
    [ 1125.664907] ------------[ cut here ]------------
    [ 1125.669549] WARNING: CPU: 0 PID: 10830 at drivers/mmc/host/sdhci.c:1200 sdhci_prepare_data+0x628/0x650
    [ 1125.678948] Modules linked in: brcmfmac(O) brcmutil(O) cfg80211(O) compat(O) qcaspi pn5xx_i2c snd_soc_simple_card snd_soc_simple_card_utils omap_aes_driver omap_sham crypto_engine omap_crypto pm33xx ti_emif_sram tilcdc drm_dma_helper bluetooth omap_hwspinlock snd_soc_davinci_mcasp snd_soc_ti_udma snd_soc_ti_edma snd_soc_ti_sdma ecdh_generic ecc libaes snd_soc_core snd_pcm_dmaengine ac97_bus snd_pcm snd_timer snd soundcore musb_dsps rtc_omap musb_hdrc phy_am335x cppi41 omap_wdt wkup_m3_ipc phy_am335x_control tda998x wkup_m3_rproc cta_spi cryptodev(O)
    [ 1125.728090] CPU: 0 PID: 10830 Comm: kworker/u3:1 Tainted: G           O       6.1.119-ti-gaa2e8c81ff89 #1
    [ 1125.737713] Hardware name: Generic AM33XX (Flattened Device Tree)
    [ 1125.743841] Workqueue: brcmf_wq/mmc2:0001:1 brcmf_sdio_dataworker [brcmfmac]
    [ 1125.751325]  unwind_backtrace from show_stack+0x10/0x14
    [ 1125.756607]  show_stack from dump_stack_lvl+0x24/0x2c
    [ 1125.761717]  dump_stack_lvl from __warn+0x7c/0x130
    [ 1125.766574]  __warn from warn_slowpath_fmt+0x194/0x1a0
    [ 1125.771767]  warn_slowpath_fmt from sdhci_prepare_data+0x628/0x650
    [ 1125.778010]  sdhci_prepare_data from sdhci_send_command+0x1e8/0x810
    [ 1125.784331]  sdhci_send_command from sdhci_send_command_retry+0x28/0x130
    [ 1125.791089]  sdhci_send_command_retry from sdhci_request+0x6c/0xc8
    [ 1125.797322]  sdhci_request from mmc_start_request+0x84/0xac
    [ 1125.802956]  mmc_start_request from mmc_wait_for_req+0x64/0xd0
    [ 1125.808842]  mmc_wait_for_req from mmc_submit_one+0xa8/0x1ac [brcmfmac]
    [ 1125.815760]  mmc_submit_one [brcmfmac] from brcmf_sdiod_sglist_rw+0x1e8/0x534 [brcmfmac]
    [ 1125.824306]  brcmf_sdiod_sglist_rw [brcmfmac] from brcmf_sdiod_recv_chain+0x68/0x114 [brcmfmac]
    [ 1125.833455]  brcmf_sdiod_recv_chain [brcmfmac] from brcmf_sdio_dpc+0x7b8/0x2730 [brcmfmac]
    [ 1125.842168]  brcmf_sdio_dpc [brcmfmac] from brcmf_sdio_dataworker+0xdc/0x108 [brcmfmac]
    [ 1125.850618]  brcmf_sdio_dataworker [brcmfmac] from process_one_work+0x1c0/0x4c0
    [ 1125.858179]  process_one_work from worker_thread+0x78/0x5b0
    [ 1125.863789]  worker_thread from kthread+0xdc/0x10c
    [ 1125.868627]  kthread from ret_from_fork+0x14/0x28
    [ 1125.873371] Exception stack(0xf055dfb0 to 0xf055dff8)
    [ 1125.878453] dfa0:                                     00000000 00000000 00000000 00000000
    [ 1125.886676] dfc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
    [ 1125.894897] dfe0: 00000000 00000000 00000000 00000000 00000013 00000000
    [ 1125.901544] ---[ end trace 0000000000000000 ]---
    
    root@EVC89898989:/opt/data/pp#
    root@EVC89898989:/opt/data/pp#
    root@EVC89898989:/opt/data/pp#
    root@EVC89898989:/opt/data/pp#
    root@EVC89898989:/opt/data/pp# ifconfig wlan0 up
    [ 1135.810876] mmc2: Timeout waiting for hardware interrupt.
    [ 1135.816402] mmc2: sdhci: ============ SDHCI REGISTER DUMP ===========
    [ 1135.822890] mmc2: sdhci: Sys addr:  0x00000000 | Version:  0x00003101
    [ 1135.829381] mmc2: sdhci: Blk size:  0x00000200 | Blk cnt:  0x00000001
    [ 1135.835868] mmc2: sdhci: Argument:  0x29000001 | Trn mode: 0x00000013
    [ 1135.842357] mmc2: sdhci: Present:   0x01f70a06 | Host ctl: 0x00000002
    [ 1135.848845] mmc2: sdhci: Power:     0x0000000f | Blk gap:  0x00000000
    [ 1135.855332] mmc2: sdhci: Wake-up:   0x00000000 | Clock:    0x00000087
    [ 1135.861818] mmc2: sdhci: Timeout:   0x0000000d | Int stat: 0x00000000
    [ 1135.868303] mmc2: sdhci: Int enab:  0x027f010b | Sig enab: 0x027f010b
    [ 1135.874790] mmc2: sdhci: ACmd stat: 0x00000000 | Slot int: 0x00000000
    [ 1135.881276] mmc2: sdhci: Caps:      0x07e10080 | Caps_1:   0x00000000
    [ 1135.887763] mmc2: sdhci: Cmd:       0x0000353a | Max curr: 0x00000000
    [ 1135.894251] mmc2: sdhci: Resp[0]:   0x00001000 | Resp[1]:  0x00000000
    [ 1135.900736] mmc2: sdhci: Resp[2]:   0x00000000 | Resp[3]:  0x00000000
    [ 1135.907221] mmc2: sdhci: Host ctl2: 0x00000000
    [ 1135.911698] mmc2: sdhci: ============================================
    [ 1135.993845] brcmfmac: mmc_submit_one: CMD53 sg block read failed -110
    [ 1136.000744] brcmfmac: brcmf_sdio_rxglom: glom read of 512 bytes failed: -5
    [ 1136.007705] brcmfmac: brcmf_sdio_rxfail: abort command, terminate frame
    [ 1146.050312] mmc2: Timeout waiting for hardware interrupt.
    [ 1146.055837] mmc2: sdhci: ============ SDHCI REGISTER DUMP ===========
    [ 1146.062326] mmc2: sdhci: Sys addr:  0x00000000 | Version:  0x00003101
    [ 1146.068818] mmc2: sdhci: Blk size:  0x00000040 | Blk cnt:  0x00000001
    [ 1146.075307] mmc2: sdhci: Argument:  0x21000040 | Trn mode: 0x00000013
    [ 1146.081794] mmc2: sdhci: Present:   0x01f70a06 | Host ctl: 0x00000002
    [ 1146.088281] mmc2: sdhci: Power:     0x0000000f | Blk gap:  0x00000000
    [ 1146.094768] mmc2: sdhci: Wake-up:   0x00000000 | Clock:    0x00000087
    [ 1146.101256] mmc2: sdhci: Timeout:   0x0000000d | Int stat: 0x00000000
    [ 1146.107743] mmc2: sdhci: Int enab:  0x027f010b | Sig enab: 0x027f010b
    [ 1146.114230] mmc2: sdhci: ACmd stat: 0x00000000 | Slot int: 0x00000000
    [ 1146.120715] mmc2: sdhci: Caps:      0x07e10080 | Caps_1:   0x00000000
    [ 1146.127201] mmc2: sdhci: Cmd:       0x0000353a | Max curr: 0x00000000
    [ 1146.133687] mmc2: sdhci: Resp[0]:   0x00001000 | Resp[1]:  0x00000000
    [ 1146.140175] mmc2: sdhci: Resp[2]:   0x00000000 | Resp[3]:  0x00000000
    [ 1146.146661] mmc2: sdhci: Host ctl2: 0x00000000
    [ 1146.151139] mmc2: sdhci: ============================================
    [ 1146.220607] brcmfmac: brcmf_sdio_readframes: RXHEADER FAILED: -110
    [ 1146.228989] brcmfmac: brcmf_sdio_rxfail: abort command, terminate frame, send NAK


    Regards,
    Pratik P.

  • I'm on PTO this week but I will be picking up E2E support again next week. Thanks.

  • Hi Andreas,

    Any Update?

    Regards,
    Pratik P.

  • Hi Andreas,

    Gentle reminder.

    Regards,
    Pratik P.

  • Hi Pratik,

    this is a 3rd party driver, so we are a bit limited in terms of what we can support here. I see errors in your log regarding firmware loading as well as DMA, that may or may not be critical to the operation of your module. You should check with the vendor whether those error message have any importance, and also provide them with your log for review.

    I did a very quick search online, and I found this E2E post here that you may want to try out: https://e2e.ti.com/support/processors-group/processors/f/processors-forum/541016/am335x-error-message-in-sdio-driver/1972129#1972129

    The other thing, for test purposes, I'd also try the very latest upstream kernel. AM335x is generally well supported, so you should be able to just build the kernel/modules (including your WiFi driver)/dtbs and drop them into your system for testing to see if this makes any difference.

    Regards, Andreas