Skip to content

B210 connect to FreeBSD #882

@ChomperT

Description

@ChomperT

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions