On 09/10/2025 17:01, Jeff Chen wrote:
> On Tue, Oct 07, 2025 at 05:49:59 PM +0100, Martyn Welch wrote:
>> This seems to be working well for me, at least for Wifi. I'd like to get
>> Bluetooth up as well. The bluetooth driver (btnxpuart) doesn't seem happy
>> loading the bluetooh firmware:
>>
>> [ 35.930755] Bluetooth: hci0: Request Firmware: nxp/uartspi_n61x_v1.bin.se
>> [ 37.953107] Bluetooth: hci0: FW Download Complete: 396444 bytes
>> [ 37.953167] Bluetooth: hci0: Frame reassembly failed (-84)
>> [ 39.277635] Bluetooth: hci0: Frame reassembly failed (-84)
>> [ 39.292011] Bluetooth: hci0: Frame reassembly failed (-84)
>> [ 39.310094] Bluetooth: hci0: Frame reassembly failed (-84)
>> [ 39.330273] Bluetooth: hci0: Frame reassembly failed (-84)
>> [ 39.351381] Bluetooth: hci0: Frame reassembly failed (-84)
>> [ 39.373112] Bluetooth: hci0: Frame reassembly failed (-84)
>> [ 41.353087] Bluetooth: hci0: Opcode 0x1002 failed: -110
>> [ 41.358411] Bluetooth: hci0: command 0x1002 tx timeout
>>
>> I think the "combo" firmware needs to be loaded by the WiFi driver right? I
>> assume this isn't supported yet?
>>
>> Martyn
>>
> Hi Martyn,
>
> Thanks for testing the nxpwifi driver. On our side, we haven’t seen issues
> with Bluetooth on the NXP i.MX93 EVK platform, regardless of whether the nxpwifi
> driver loads the Wi-Fi-only firmware or the combo firmware.
>
> From your logs, it looks like you're loading the Wi-Fi-only firmware
> (nxp/uartspi_n61x_v1.bin.se). If it were the combo firmware, the btnxpuart
> driver would skip loading the BT firmware entirely, since it would already
> be downloaded by the Wi-Fi driver.
>
Yes, I'm currently using the wifi only firmware. If I'm not mistaken,
that's the only firmware that the NXPWifi driver will currently use. It
appears that it should be able to load `firmware_sdiouart`, but that
doesn't appear to be set anywhere and thus it's not considered. I tried
to rename the combo firmware to have the name used for the wifi only
firmware, but that was failing for me (more about that in a moment).
> To help us reproduce and investigate further, could you please share:
> - Your test platform (SoC, board, etc.)
Custom board based on Renesas RZ-G2L, using Ezurio Sona NX611 M.2 1216
module.
Kernel is 6.17 with an added custom DT, a few patches for other hardware
and the NXPWifi patch series.
Both btnxpuart and nxpwifi are built as modules.
The firmware itself is what Ezurio provide in their Yocto layer:
$ md5sum *
6a9307d27c3bdb3bde800265056ab217 sd_w61x_v1.bin.se
8a28ec7f1b77dbde0ac7568d0426c669 sduart_nw61x_v1.bin.se
d38935f03dbe6da7a9ac3daf58e640bf uartspi_n61x_v1.bin.se
Looking a bit deeper, if I try and load the combined firmware, the
bluetooth modules attempts to load before the WiFi driver has had a
chance to complete loading the firmware which is resulting in the
firmware failing.
If I blacklist the btnxpuart module (and rename the combo firmware),
it loads:
[ 45.781023] nxpwifi_sdio mmc1:0001:1: info: FW download over, size
944916 bytes
[ 45.884760] nxpwifi_sdio mmc1:0001:1: WLAN FW is active
[ 45.913045] nxpwifi_sdio mmc1:0001:1: VDLL image: len=109800
[ 45.913209] nxpwifi_sdio mmc1:0001:1: Firmware api version 15.1
[ 46.023576] nxpwifi_sdio mmc1:0001:1: info: NXPWIFI VERSION: nxpwifi
1.12 (18.99.3.p15.0)
[ 46.023610] nxpwifi_sdio mmc1:0001:1: driver_version = nxpwifi 1.12
(18.99.3.p15.0)
If I then try to manually load the bluetooth module I get a failure:
[ 104.627753] Bluetooth: Core ver 2.22
[ 104.628041] NET: Registered PF_BLUETOOTH protocol family
[ 104.628053] Bluetooth: HCI device and connection manager initialized
[ 104.632606] Bluetooth: HCI socket layer initialized
[ 104.632646] Bluetooth: L2CAP socket layer initialized
[ 104.632704] Bluetooth: SCO socket layer initialized
[ 104.651019] btnxpuart serial0-0: supply vcc not found, using dummy
regulator
[ 105.245804] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[ 105.245841] Bluetooth: BNEP filters: protocol multicast
[ 105.245866] Bluetooth: BNEP socket layer initialized
[ 105.672560] Bluetooth: hci0: FW already running.
[ 105.775233] Bluetooth: hci0: Frame reassembly failed (-84)
[ 105.781369] Bluetooth: hci0: Frame reassembly failed (-84)
[ 105.787899] Bluetooth: hci0: Frame reassembly failed (-84)
[ 105.794313] Bluetooth: hci0: Frame reassembly failed (-84)
[ 105.800861] Bluetooth: hci0: Frame reassembly failed (-84)
[ 105.806457] Bluetooth: hci0: Frame reassembly failed (-84)
[ 105.811925] ------------[ cut here ]------------
[ 105.811929] Unbalanced enable for IRQ 38
[ 105.811953] WARNING: CPU: 0 PID: 40 at kernel/irq/manage.c:753
__enable_irq+0x54/0x90
[ 105.811979] Modules linked in: bnep btnxpuart bluetooth ecdh_generic
ecc snd_seq_dummy snd_hrtimer snd_seq snd_seq_device nxpwifi_sdio
nxpwifi joydev cfg80211 aes_ce_blk aes_ce_cipher polyval_ce ghash_ce
snd_soc_tlv320aic3x_i2c snd_soc_simple_card snd_soc_rz_ssi
snd_soc_tlv320aic3x snd_soc_simple_card_utils snd_soc_bt_sco gf128mul
snd_soc_core snd_compress snd_pcm_dmaengine rzg2l_cru snd_pcm goodix_ts
v4l2_fwnode v4l2_async rzg2l_thermal snd_timer optee snd ffa_core tee
leds_gpio soundcore cpufreq_dt rfkill qrtr evdev ip6t_REJECT
nf_reject_ipv6 ipt_REJECT nf_reject_ipv4 xt_tcpudp xt_conntrack
nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 nft_compat nf_tables x_tables
efi_pstore configfs nfnetlink autofs4 ext4 crc16 mbcache jbd2 cls_cgroup
rzg2l_du_drm drm_display_helper panel_simple cec rc_core panfrost
gpu_sched micrel vsp1 phy_package drm_client_lib ravb drm_shmem_helper
rzg2l_mipi_dsi drm_dma_helper mdio_bitbang videobuf2_vmalloc
drm_kms_helper of_mdio videobuf2_dma_contig videobuf2_memops fixed_phy
videobuf2_v4l2
[ 105.812215] fwnode_mdio drm videodev libphy
renesas_sdhi_internal_dmac renesas_sdhi_core reset_rzg2l_usbphy_ctrl
mdio_bus rzg2l_wdt videobuf2_common tmio_mmc_core mc rcar_fcp i2c_riic
pwm_rz_mtu3 fixed gpio_keys_polled pwm_bl
[ 105.812270] CPU: 0 UID: 0 PID: 40 Comm: kworker/u4:2 Not tainted
6.17.0+ #10 VOLUNTARY
[ 105.812281] Hardware name: Custom Board (DT)
[ 105.812288] Workqueue: events_unbound flush_to_ldisc
[ 105.812305] pstate: 604000c5 (nZCv daIF +PAN -UAO -TCO -DIT -SSBS
BTYPE=--)
[ 105.812313] pc : __enable_irq+0x54/0x90
[ 105.812321] lr : __enable_irq+0x54/0x90
[ 105.812329] sp : ffff800080003db0
[ 105.812332] x29: ffff800080003db0 x28: ffff00007fbcf140 x27:
ffff00000ae212c0
[ 105.812343] x26: ffff00007fbcf140 x25: ffff00007fbcf140 x24:
0000000000000006
[ 105.812352] x23: 00000000000000c0 x22: 0000000000000000 x21:
00000000000000c0
[ 105.812362] x20: 0000000000000026 x19: ffff000010ed3200 x18:
00000000ffffffff
[ 105.812371] x17: ffff7ffffe0a5000 x16: ffff800080000000 x15:
ffff800081fefa4c
[ 105.812380] x14: 0000000000000000 x13: 3833205152492072 x12:
ffff800081c84a90
[ 105.812390] x11: ffff800081c2cae8 x10: ffff800081c84ae8 x9 :
ffff800080170a2c
[ 105.812399] x8 : 0000000000000001 x7 : 0000000000017fe8 x6 :
c0000000ffffefff
[ 105.812408] x5 : ffff00007fbcb508 x4 : 0000000000000000 x3 :
ffff7ffffe0a5000
[ 105.812418] x2 : 0000000000000000 x1 : 0000000000000000 x0 :
ffff00000ae212c0
[ 105.812428] Call trace:
[ 105.812433] __enable_irq+0x54/0x90 (P)
[ 105.812444] enable_irq+0x74/0xe8
[ 105.812453] sci_dma_rx_reenable_irq+0x70/0xe0
[ 105.812465] sci_dma_rx_timer_fn+0x234/0x3b0
[ 105.812474] __hrtimer_run_queues+0x130/0x2e0
[ 105.812487] hrtimer_interrupt+0x10c/0x2e0
[ 105.812498] arch_timer_handler_virt+0x34/0x60
[ 105.812514] handle_percpu_devid_irq+0x88/0x1b0
[ 105.812525] handle_irq_desc+0x3c/0x68
[ 105.812534] generic_handle_domain_irq+0x24/0x40
[ 105.812542] gic_handle_irq+0x54/0x140
[ 105.812551] call_on_irq_stack+0x30/0x48
[ 105.812560] do_interrupt_handler+0x88/0xa0
[ 105.812569] el1_interrupt+0x34/0x58
[ 105.812583] el1h_64_irq_handler+0x18/0x28
[ 105.812590] el1h_64_irq+0x6c/0x70
[ 105.812598] console_flush_all+0x2dc/0x3b8 (P)
[ 105.812611] console_unlock+0x8c/0x160
[ 105.812621] vprintk_emit+0x304/0x388
[ 105.812631] vprintk_default+0x40/0x58
[ 105.812641] vprintk+0x30/0x48
[ 105.812651] _printk+0x68/0xa0
[ 105.812660] bt_err+0x6c/0x9a8 [bluetooth]
[ 105.812881] btnxpuart_receive_buf+0x170/0x318 [btnxpuart]
[ 105.812901] ttyport_receive_buf+0x6c/0xe0
[ 105.812916] flush_to_ldisc+0xbc/0x1b0
[ 105.812927] process_one_work+0x178/0x3c8
[ 105.812941] worker_thread+0x208/0x400
[ 105.812951] kthread+0x120/0x220
[ 105.812961] ret_from_fork+0x10/0x20
[ 105.812972] ---[ end trace 0000000000000000 ]---
[ 105.815082] Bluetooth: hci0: Frame reassembly failed (-84)
[ 107.816594] Bluetooth: hci0: Opcode 0x1002 failed: -110
> - Your test steps
At the moment, booting and checking to see if the hardware has probed.
If it has, ensure I can connect to my wifi network and ensure that I can
pass a little bit of traffic.
> - The exact firmware version you're using
As above.
> Also, have you tried running Bluetooth in a BT-only scenario (without loading
> the Wi-Fi driver)? Does that work correctly?
>
I hadn't. Just gave that a go and I seem to be getting the same failure
(though :
$ sudo dmesg | grep hci0
[ 40.859055] Bluetooth: hci0: ChipID: 7601, Version: 0
[ 40.889487] Bluetooth: hci0: Request Firmware: nxp/uartspi_n61x_v1.bin.se
[ 42.850682] Bluetooth: hci0: FW Download Complete: 396444 bytes
[ 42.850736] Bluetooth: hci0: Frame reassembly failed (-84)
[ 44.222243] Bluetooth: hci0: Frame reassembly failed (-84)
[ 44.230226] Bluetooth: hci0: Frame reassembly failed (-84)
[ 44.237480] Bluetooth: hci0: Frame reassembly failed (-84)
[ 44.247567] Bluetooth: hci0: Frame reassembly failed (-84)
[ 44.254188] Bluetooth: hci0: Frame reassembly failed (-84)
[ 44.263459] Bluetooth: hci0: Frame reassembly failed (-84)
[ 44.269814] Bluetooth: hci0: Frame reassembly failed (-84)
[ 46.280494] Bluetooth: hci0: Opcode 0x1002 failed: -110
[ 46.285835] Bluetooth: hci0: command 0x1002 tx timeout
Are there any BT patches that I'm missing?
Martyn
> Thanks,
> Jeff