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.
Tool/software:
Hi All,
We are getting error when board is rebooted, issue happens 5 out of 20 times approximately
[ 13.874773] cc33xx_driver cc33xx.0.auto: Direct firmware load for ti-connectivity/cc33xx-nvs.bin failed with error -2
[ 14.220406] IBI_WA: Read core status
[ 14.220491] IBI_WA: Core status processed
[ 14.431928] batman_adv: bat0: Adding interface: eth0
[ 14.435502] batman_adv: bat0: The MTU of interface eth0 is too small (1500) to handle the transport of batman-adv packets. Packets going over this interface will be fragmented on layer2 which could impact the performance. Setting the MTU to 1532 would solve the problem.
[ 14.461338] IBI_WA: Read core status
[ 14.504075] batman_adv: bat0: Interface activated: eth0
[ 15.059895] usb 2-1: new high-speed USB device number 2 using ehci-platform
[ 15.274517] option 2-1:1.0: GSM modem (1-port) converter detected
[ 15.275111] usb 2-1: GSM modem (1-port) converter now attached to ttyUSB0
[ 15.275887] option 2-1:1.1: GSM modem (1-port) converter detected
[ 15.276415] usb 2-1: GSM modem (1-port) converter now attached to ttyUSB1
[ 15.277261] option 2-1:1.2: GSM modem (1-port) converter detected
[ 15.294428] usb 2-1: GSM modem (1-port) converter now attached to ttyUSB2
[ 15.295360] option 2-1:1.3: GSM modem (1-port) converter detected
[ 15.304357] usb 2-1: GSM modem (1-port) converter now attached to ttyUSB3
[ 15.461255] ------------[ cut here ]------------
[ 15.461274] WARNING: CPU: 0 PID: 146 at drivers/net/wireless/ti/cc33xx/sdio.c:94 cc33xx_sdio_raw_read+0x1a4/0x1c0 [cc33xx_sdio]
[ 15.461314] Modules linked in: cc33xx mac80211 cc33xx_sdio sch_fq_codel batman_adv(O) libcrc32c bridge stp llc cfg80211 ipv6
[ 15.461367] CPU: 0 PID: 146 Comm: irq/57-cc33xx Tainted: G O 5.15.67 #1
[ 15.461379] Hardware name: STM32 (Device Tree Support)
[ 15.461393] [<c010e8ec>] (unwind_backtrace) from [<c010c158>] (show_stack+0x10/0x14)
[ 15.461419] [<c010c158>] (show_stack) from [<c0122404>] (__warn+0xec/0x148)
[ 15.461436] [<c0122404>] (__warn) from [<c0c48a14>] (warn_slowpath_fmt+0x78/0xac)
[ 15.461458] [<c0c48a14>] (warn_slowpath_fmt) from [<bf18d550>] (cc33xx_sdio_raw_read+0x1a4/0x1c0 [cc33xx_sdio])
[ 15.461486] [<bf18d550>] (cc33xx_sdio_raw_read [cc33xx_sdio]) from [<bf298b70>] (wlcore_raw_read+0x50/0xb0 [cc33xx])
[ 15.461612] [<bf298b70>] (wlcore_raw_read [cc33xx]) from [<bf28ccb4>] (process_core_status+0x98/0x4f8 [cc33xx])
[ 15.461738] [<bf28ccb4>] (process_core_status [cc33xx]) from [<bf2923a0>] (wlcore_irq+0xa0/0x2a0 [cc33xx])
[ 15.461860] [<bf2923a0>] (wlcore_irq [cc33xx]) from [<bf18d658>] (gpio_irq_thread_handler+0x20/0x2c [cc33xx_sdio])
[ 15.461933] [<bf18d658>] (gpio_irq_thread_handler [cc33xx_sdio]) from [<c016b85c>] (irq_thread_fn+0x1c/0x78)
[ 15.461957] [<c016b85c>] (irq_thread_fn) from [<c016ba68>] (irq_thread+0x118/0x254)
[ 15.461972] [<c016ba68>] (irq_thread) from [<c0146aec>] (kthread+0x14c/0x168)
[ 15.461990] [<c0146aec>] (kthread) from [<c0100130>] (ret_from_fork+0x14/0x24)
[ 15.462006] Exception stack(0xc33a1fb0 to 0xc33a1ff8)
[ 15.462016] 1fa0: 00000000 00000000 00000000 00000000
[ 15.462026] 1fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[ 15.462035] 1fe0: 00000000 00000000 00000000 00000000 00000013 00000000
[ 15.462042] ---[ end trace 30b4b1b4ed3d9193 ]---
[ 15.462054] cc33xx_sdio mmc0:0001:2: sdio read failed (-110)
[ 16.331158] stm32-dwmac 5800a000.eth1 eth0: Link is Up - 100Mbps/Full - flow control rx/tx
[ 16.338112] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[ 16.462225] ------------[ cut here ]------------
[ 16.465491] WARNING: CPU: 0 PID: 146 at drivers/net/wireless/ti/cc33xx/sdio.c:94 cc33xx_sdio_raw_read+0x1a4/0x1c0 [cc33xx_sdio]
[ 16.476965] Modules linked in: cc33xx mac80211 cc33xx_sdio sch_fq_codel batman_adv(O) libcrc32c bridge stp llc cfg80211 ipv6
[ 16.488121] CPU: 0 PID: 146 Comm: irq/57-cc33xx Tainted: G W O 5.15.67 #1
[ 16.496016] Hardware name: STM32 (Device Tree Support)
[ 16.501179] [<c010e8ec>] (unwind_backtrace) from [<c010c158>] (show_stack+0x10/0x14)
[ 16.508858] [<c010c158>] (show_stack) from [<c0122404>] (__warn+0xec/0x148)
[ 16.515837] [<c0122404>] (__warn) from [<c0c48a14>] (warn_slowpath_fmt+0x78/0xac)
[ 16.523320] [<c0c48a14>] (warn_slowpath_fmt) from [<bf18d550>] (cc33xx_sdio_raw_read+0x1a4/0x1c0 [cc33xx_sdio])
[ 16.533326] [<bf18d550>] (cc33xx_sdio_raw_read [cc33xx_sdio]) from [<bf298b70>] (wlcore_raw_read+0x50/0xb0 [cc33xx])
[ 16.543845] [<bf298b70>] (wlcore_raw_read [cc33xx]) from [<bf29236c>] (wlcore_irq+0x6c/0x2a0 [cc33xx])
[ 16.553165] [<bf29236c>] (wlcore_irq [cc33xx]) from [<bf18d658>] (gpio_irq_thread_handler+0x20/0x2c [cc33xx_sdio])
[ 16.563532] [<bf18d658>] (gpio_irq_thread_handler [cc33xx_sdio]) from [<c016b85c>] (irq_thread_fn+0x1c/0x78)
[ 16.573346] [<c016b85c>] (irq_thread_fn) from [<c016ba68>] (irq_thread+0x118/0x254)
[ 16.580928] [<c016ba68>] (irq_thread) from [<c0146aec>] (kthread+0x14c/0x168)
[ 16.588093] [<c0146aec>] (kthread) from [<c0100130>] (ret_from_fork+0x14/0x24)
[ 16.595270] Exception stack(0xc33a1fb0 to 0xc33a1ff8)
[ 16.600327] 1fa0: 00000000 00000000 00000000 00000000
[ 16.608491] 1fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[ 16.616662] 1fe0: 00000000 00000000 00000000 00000000 00000013 00000000
[ 16.623221] ---[ end trace 30b4b1b4ed3d9194 ]---
[ 16.627864] cc33xx_sdio mmc0:0001:2: sdio read failed (-110)
[ 16.633526] wlcore: ERROR IO error during core status read
[ 17.639127] ------------[ cut here ]------------
[ 17.642344] WARNING: CPU: 0 PID: 146 at drivers/net/wireless/ti/cc33xx/sdio.c:94 cc33xx_sdio_raw_read+0x1a4/0x1c0 [cc33xx_sdio]
[ 17.653833] Modules linked in: cc33xx mac80211 cc33xx_sdio sch_fq_codel batman_adv(O) libcrc32c bridge stp llc cfg80211 ipv6
[ 17.665034] CPU: 0 PID: 146 Comm: irq/57-cc33xx Tainted: G W O 5.15.67 #1
[ 17.672942] Hardware name: STM32 (Device Tree Support)
[ 17.678009] [<c010e8ec>] (unwind_backtrace) from [<c010c158>] (show_stack+0x10/0x14)
[ 17.685834] [<c010c158>] (show_stack) from [<c0122404>] (__warn+0xec/0x148)
[ 17.692763] [<c0122404>] (__warn) from [<c0c48a14>] (warn_slowpath_fmt+0x78/0xac)
[ 17.700186] [<c0c48a14>] (warn_slowpath_fmt) from [<bf18d550>] (cc33xx_sdio_raw_read+0x1a4/0x1c0 [cc33xx_sdio])
[ 17.710248] [<bf18d550>] (cc33xx_sdio_raw_read [cc33xx_sdio]) from [<bf298b70>] (wlcore_raw_read+0x50/0xb0 [cc33xx])
[ 17.720852] [<bf298b70>] (wlcore_raw_read [cc33xx]) from [<bf29236c>] (wlcore_irq+0x6c/0x2a0 [cc33xx])
[ 17.730061] [<bf29236c>] (wlcore_irq [cc33xx]) from [<bf18d658>] (gpio_irq_thread_handler+0x20/0x2c [cc33xx_sdio])
[ 17.740396] [<bf18d658>] (gpio_irq_thread_handler [cc33xx_sdio]) from [<c016b85c>] (irq_thread_fn+0x1c/0x78)
[ 17.750243] [<c016b85c>] (irq_thread_fn) from [<c016ba68>] (irq_thread+0x118/0x254)
[ 17.757838] [<c016ba68>] (irq_thread) from [<c0146aec>] (kthread+0x14c/0x168)
[ 17.764947] [<c0146aec>] (kthread) from [<c0100130>] (ret_from_fork+0x14/0x24)
[ 17.772157] Exception stack(0xc33a1fb0 to 0xc33a1ff8)
[ 17.777221] 1fa0: 00000000 00000000 00000000 00000000
[ 17.785427] 1fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[ 17.793531] 1fe0: 00000000 00000000 00000000 00000000 00000013 00000000
[ 17.800117] ---[ end trace 30b4b1b4ed3d9195 ]---
[ 17.804777] cc33xx_sdio mmc0:0001:2: sdio read failed (-110)
[ 17.810461] wlcore: ERROR IO error during core status read
[ 18.815982] ------------[ cut here ]------------
The board is custom board, and firmware based on the latest firmware and driver release. The hardware has been approved by the TI hardware team.
Warm regards,
Sharadanand Karanjkar
Hi Sabeeh,
Following is the DTS part for WIFI
&sdmmc1 {
pinctrl-names = "default", "opendrain", "sleep";
pinctrl-0 = <&sdmmc1_pins_mx>;
pinctrl-1 = <&sdmmc1_opendrain_pins_mx>;
pinctrl-2 = <&sdmmc1_sleep_pins_mx>;
st,neg-edge;
cap-power-off-card;
non-removable;
bus-width = <4>;
vmmc-supply = <&scmi_vdd_1v8>;
//mmc-pwrseq = <&wifi_pwrseq>;
max-frequency = <50000000>;
//wakeup-source;
#address-cells = <1>;
#size-cells = <0>;
status = "okay";
wlcore: wlcore@0 {
compatible = "ti,cc33xx";
reg = <2>;
interrupt-parent = <&gpiob>;
interrupts = <5 IRQ_TYPE_LEVEL_LOW>; /* WL_HOST_WAKE */
};
};
Regards,
Sharadanand
Hello,
I haven’t seen your schematic, but do you have an inverter or similar on the IRQ line? If not then interrupts type should be IRQ_TYPE_LEVEL_HIGH.
Hi Sabeeh,
Do we need to handle WIFI_RESET_N differently on power on reset?
Warm regards,
Sharadanand Karanjkar
Hi,
No you shouldn't have to handle nRESET differently, the driver will handle that for you. Could you also share "scmi_vdd_1v8"? It may be helpful to add "startup-delay-us=100000" into the vmmc supply regulator.
Hi Sabeeh,
Bellow is relevant sectiion -
scmi_vdd_1v8:voltd-vdd_wifi{
voltd-name = "vdd_wifi";
regulator-name = "vdd_wifi";
};
Regards,
Sharadanand Karanjkar
Hi Sharadanand,
Sorry for the delay. Were you able to make progress on this?
We have reference DTS patches in the CC33x SDK. Please also share your entire DTS so that i can review and compare.
Hi Sabeeh,
I have added the ""startup-delay-us=100000" in our DTS and I waiting for test results from the relevant team,
Warm regards,
Sharadanand
Hi Sabeeh,
I have got feedback from relevant team and the fix suggested by TI seems to be helping(issue is now seen less frequently) but we can still see the issue.
Regards,
Sharadanand Karanjkar
Hi Sharadanand,
Please reply with the full DTS for review. If you need it to be private, then please share directly with me over E2E messages.
Hi Sharadanand,
In "v3v3_wifi", regulator-always-on is stated. This line MUST be removed. The driver will toggle the EN line on and off during firmware download, so it must not remain stuck on. Please remove and re-test.
Hi Sabeeh,
Thank you for review and suggestion. I tried your suggestion but not seen any improvement.
Warm regards,
Sharadanand Karanjkar
Hi Sharadanand,
Could you please provide scope capture of nRST, SDIO_CMD, SDIO_CLK, and IRQ pin?
When is this issue seen and not seen, is it always at boot?
Additionally, I'm not too familiar with your linux host. Could you please check that there is no pullup on the IRQ pin in the IRQ gpio? From the log you shared in the original post, it seems that the device may be getting into the wrong SOP mode. As a test, could you also collect CC33xx firmware logs when the crash occurs? if you share those firmware logs, I can review and see if SoP mode is incorrect.