Hi, I am trying to run OAI with X310 device connected through PCIe interface. Although device probe and benchmark utility report no problems OAI fails with the following error when initializing X310:
terminate called after throwing an instance of 'uhd::runtime_error' what(): RuntimeError: Could not create nirio_zero_copy transport. A parameter to a function was not valid. This could be a NULL pointer, a bad value, etc. (Error code -52005) Calling stack: Program received signal SIGABRT, Aborted. 0x00007ffff6213c37 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56 56 ../nptl/sysdeps/unix/sysv/linux/raise.c: No such file or directory. (gdb) where #0 0x00007ffff6213c37 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56 #1 0x00007ffff6217028 in __GI_abort () at abort.c:89 #2 0x00007fffd68c9535 in __gnu_cxx::__verbose_terminate_handler() () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6 #3 0x00007fffd68c76d6 in ?? () from /usr/lib/x86_64-linux-gnu/ libstdc++.so.6 #4 0x00007fffd68c7703 in std::terminate() () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6 #5 0x00007fffd68c7922 in __cxa_throw () from /usr/lib/x86_64-linux-gnu/ libstdc++.so.6 #6 0x00007fffd7279bbb in uhd::niusrprio::nirio_status_to_exception (status=@0x7fffd7feb970: -52005, message="Could not create nirio_zero_copy transport.") at /home/mikhaili/uhd/host/lib/transport/nirio/status.cpp:48 #7 0x00007fffd72dbf9e in nirio_zero_copy_impl::nirio_zero_copy_impl (this=this@entry=0x7fffd1329230, fpga_session=<error reading variable: access outside bounds of object referenced via synthetic pointer>, instance=instance@entry=6, xport_params=..., __in_chrg=<optimized out>, __vtt_parm=<optimized out>) at /home/mikhaili/uhd/host/lib/ transport/nirio_zero_copy.cpp:235 #8 0x00007fffd72d7693 in uhd::transport::nirio_zero_copy::make (fpga_session=..., instance=instance@entry=6, default_buff_args=..., hints=...) at /home/mikhaili/uhd/host/lib/transport/nirio_zero_copy.cpp:463 #9 0x00007fffd713fba5 in x300_impl::make_transport (this=<optimized out>, address=..., xport_type=uhd::usrp::device3_impl::TX_DATA, args=...) at /home/mikhaili/uhd/host/lib/usrp/x300/x300_impl.cpp:1163 #10 0x00007fffd70031c6 in uhd::usrp::device3_impl::get_tx_stream (this=0x7fffd0042da0, args_=...) at /home/mikhaili/uhd/host/lib/ usrp/device3/device3_io_impl.cpp:775 #11 0x00007fffd6d0bdc8 in legacy_compat_impl::get_tx_stream (this=0x7fffd0290ea0, args_=...) at /home/mikhaili/uhd/host/lib/ rfnoc/legacy_compat.cpp:295 #12 0x00007fffd6dcba47 in multi_usrp_impl::get_tx_stream (this=0x7fffd0043780, args=...) at /home/mikhaili/uhd/host/lib/ usrp/multi_usrp.cpp:1309 #13 0x00007fffdc106598 in device_init (device=0x7ffff4e6b0c0, openair0_cfg=0x1746400 <openair0_cfg>) at /home/mikhaili/oai_ue/targets/ ARCH/USRP/USERSPACE/LIB/usrp_lib.cpp:879 #14 0x0000000000498178 in load_lib (device=device@entry=0x7ffff4e6b0c0, openair0_cfg=0x1746400 <openair0_cfg>, cfg=cfg@entry=0x0, flag=flag@entry=0 '\000') at /home/mikhaili/oai_ue/targets/ARCH/COMMON/common_lib.c:109 #15 0x00000000004982d2 in openair0_device_load (device=device@entry=0x7ffff4e6b0c0, openair0_cfg=<optimized out>) at /home/mikhaili/oai_ue/targets/ ARCH/COMMON/common_lib.c:143 #16 0x000000000048e4ec in UE_thread (arg=0x7ffff4e2c010) at /home/mikhaili/oai_ue/targets/RT/USER/lte-ue.c:657 #17 0x00007ffff79c0184 in start_thread (arg=0x7fffd7fff700) at pthread_create.c:312 #18 0x00007ffff62daffd in clone () at ../sysdeps/unix/sysv/linux/ x86_64/clone.S:111 It looks like NiRio_Status_InvalidParameter error happens during creating TX FIFOs. I see the following TX channels are created before the error: $1 = {channel = 6, name = "TX FIFO 0", direction = uhd::niusrprio::OUTPUT_FIFO, base_addr = 65024, depth = 1029, scalar_type = uhd::niusrprio::RIO_SCALAR_TYPE_UQ, bitWidth = 64, integerWordLength = 64, version = 2} $2 = {channel = 9, name = "TX FIFO 3", direction = uhd::niusrprio::OUTPUT_FIFO, base_addr = 64832, depth = 1029, scalar_type = uhd::niusrprio::RIO_SCALAR_TYPE_UQ, bitWidth = 64, integerWordLength = 64, version = 2} $3 = {channel = 10, name = "TX FIFO 4", direction = uhd::niusrprio::OUTPUT_FIFO, base_addr = 64768, depth = 1029, scalar_type = uhd::niusrprio::RIO_SCALAR_TYPE_UQ, bitWidth = 64, integerWordLength = 64, version = 2} $5 = {channel = 11, name = "TX FIFO 5", direction = uhd::niusrprio::OUTPUT_FIFO, base_addr = 64704, depth = 1029, scalar_type = uhd::niusrprio::RIO_SCALAR_TYPE_UQ, bitWidth = 64, integerWordLength = 64, version = 2} Is anything wrong there? What could recommendations be to debug further? The device works fine through 10G direct Ethernet. thanks, Dmitry
_______________________________________________ USRP-users mailing list USRP-users@lists.ettus.com http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com