-
Notifications
You must be signed in to change notification settings - Fork 752
B210 connect to FreeBSD #882
Description
Issue Description
When I connect my b210 to a FreeBSD system, both UHD 4.8.0 and 4.9.0 experience a timeout. This occurs after the image loading is complete, just as the communication phase is about to begin.
Currently, the device works properly in Windows, Linux, and bhyve environments.
The details are as follows:
[root@N /usr/ports/lang]# uhd_usrp_probe
[INFO] [UHD] FreeBSD 15; Clang version 19.1.7 (https://github.com/llvm/llvm-project.git llvmorg-19.1.7-0-gcd708029e0b2); Boost_108800; UHD_4.9.0.0-0-unknown
[INFO] [B200] Detected Device: B210
[INFO] [B200] Loading FPGA image: /usr/local/share/uhd/images/usrp_b210_fpga.bin...
[INFO] [B200] Operating over USB 3.
[WARNING] [UHD] Exception caught in safe-call.
in ~b200_radio_ctrl_core_impl
at /media/ram/work/usr/ports/comms/uhd/work/uhd-4.9.0.1/host/lib/usrp/b200/b200_radio_ctrl_core.cpp:68
this->peek32(0); _async_task.reset(); -> EnvironmentError: IOError: Radio ctrl (0) packet parse error - AssertionError: packet_info.packet_count == (seq_to_ack & 0xfff)
in wait_for_ack
at /media/ram/work/usr/ports/comms/uhd/work/uhd-4.9.0.1/host/lib/usrp/b200/b200_radio_ctrl_core.cpp:260
Error: AssertionError: accum_timeout < _timeout
in wait_for_ack
at /media/ram/work/usr/ports/comms/uhd/work/uhd-4.9.0.1/host/lib/usrp/b200/b200_radio_ctrl_core.cpp:227
I used the usbdump tool to capture the traffic, and the timeout starts occurring from a specific packet. The content is as follows:
23:05:41.598214 usbus2.3 DONE-CTRL-EP=00000080,SPD=SUPER,NFR=2,SLEN=4,IVAL=0,ERR=0
23:05:41.598323 usbus2.3 SUBM-BULK-EP=00000088,SPD=SUPER,NFR=1,SLEN=0,IVAL=0
23:05:41.609539 usbus2.3 DONE-BULK-EP=00000088,SPD=SUPER,NFR=0,SLEN=0,IVAL=0,ERR=TIMEOUT
23:05:41.609575 usbus2.3 SUBM-BULK-EP=00000088,SPD=SUPER,NFR=1,SLEN=0,IVAL=0
23:05:41.609744 usbus2.3 SUBM-BULK-EP=00000004,SPD=SUPER,NFR=1,SLEN=16,IVAL=0
23:05:41.609978 usbus2.3 DONE-BULK-EP=00000004,SPD=SUPER,NFR=1,SLEN=0,IVAL=0,ERR=0
23:05:41.609979 usbus2.3 SUBM-BULK-EP=00000088,SPD=SUPER,NFR=1,SLEN=0,IVAL=0
23:05:41.609979 usbus2.3 DONE-BULK-EP=00000088,SPD=SUPER,NFR=1,SLEN=24,IVAL=0,ERR=0
23:05:41.610009 usbus2.3 SUBM-BULK-EP=00000004,SPD=SUPER,NFR=1,SLEN=16,IVAL=0
23:05:41.610083 usbus2.3 DONE-BULK-EP=00000004,SPD=SUPER,NFR=1,SLEN=0,IVAL=0,ERR=0
23:05:41.610085 usbus2.3 DONE-BULK-EP=00000088,SPD=SUPER,NFR=1,SLEN=24,IVAL=0,ERR=0
23:05:41.610085 usbus2.3 DONE-BULK-EP=00000004,SPD=SUPER,NFR=1,SLEN=0,IVAL=0,ERR=0
23:05:41.610085 usbus2.3 DONE-BULK-EP=00000088,SPD=SUPER,NFR=1,SLEN=24,IVAL=0,ERR=0
23:05:41.610100 usbus2.3 SUBM-BULK-EP=00000088,SPD=SUPER,NFR=1,SLEN=0,IVAL=0
23:05:43.616487 usbus2.3 SUBM-BULK-EP=00000004,SPD=SUPER,NFR=1,SLEN=16,IVAL=0
23:05:43.616518 usbus2.3 DONE-BULK-EP=00000004,SPD=SUPER,NFR=1,SLEN=0,IVAL=0,ERR=0
23:05:43.616520 usbus2.3 DONE-BULK-EP=00000004,SPD=SUPER,NFR=1,SLEN=0,IVAL=0,ERR=0
23:05:43.616627 usbus2.3 DONE-BULK-EP=00000088,SPD=SUPER,NFR=1,SLEN=24,IVAL=0,ERR=0
23:05:43.616628 usbus2.3 DONE-BULK-EP=00000088,SPD=SUPER,NFR=1,SLEN=24,IVAL=0,ERR=0
23:05:43.616660 usbus2.3 SUBM-BULK-EP=00000088,SPD=SUPER,NFR=1,SLEN=0,IVAL=0
23:05:43.622031 usbus2.3 DONE-BULK-EP=00000088,SPD=SUPER,NFR=0,SLEN=0,IVAL=0,ERR=CANCELLED
23:05:43.622032 usbus2.3 DONE-BULK-EP=00000088,SPD=SUPER,NFR=0,SLEN=0,IVAL=0,ERR=CANCELLED
Additional Information
I also commit this bug to freebsd: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=290791