[USRP-users] X310 rfnoc-devel Issues

Martin Braun martin.braun at ettus.com
Thu Mar 31 17:52:47 EDT 2016


Not sure if this was the answer you expected, but PCIe currently only
supports a very limited number of blocks, depending on the number of
data ports. In the default configuration, it won't support any extra
blocks on top of the radio.

I would recommend the Ethernet interface, if that's an option for you.

Cheers,
Martin

On 03/30/2016 04:57 AM, Dave NotTelling via USRP-users wrote:
> Oops, ignore that last bit.  Brain stopped functioning =\  
> 
> On Wed, Mar 30, 2016 at 7:53 AM, Dave NotTelling <dmp250net at gmail.com
> <mailto:dmp250net at gmail.com>> wrote:
> 
>     I am trying to use the rfnoc-devel branch with my X310 with the
>     UBX-160 daughterboard, but I am getting the following error whenever
>     I try to use the radio:
> 
> 
>     [output]
> 
> 
>     user at host: uhd_rx_cfile -r 100e6 -f 2.4e9 /dev/null
>     linux; GNU C++ version 4.8.4; Boost_105400;
>     UHD_003.010.rfnoc-316-gb7546712
> 
>     -- X300 initialization sequence...
>     -- Connecting to niusrpriorpc at localhost:5444...
>     -- Using LVBITX bitfile
>     /usr/local/share/uhd/images/usrp_x310_fpga_HGS.lvbitx...
>     -- Setup basic communication...
>     -- Loading values from EEPROM...
>     -- Setup RF frontend clocking...
>     -- Radio 1x clock:200
>     -- Initialize Radio0 control...
>     -- [X300] Assigning PCIe DMA channel 0 to SID 00:00>02:30
>     -- Radio 0 Ctrl SID: 00:00>02:30
>     -- Performing register loopback test... pass
>     -- [RFNOC] ------- Radio Setup -----------
>     -- [RFNoC Factory] block_ctrl_base::make() 
>     -- [RFNoC Factory] Using controller key 'Radio' and block name 'Radio'
>     -- block_ctrl_base()
>     -- base_path = "/usr/local/share/uhd/rfnoc"
>     -- base_path = "/usr/local/share/uhd/rfnoc"
>     -- Reading XML file: /usr/local/share/uhd/rfnoc/blocks/block.xml
>     -- NOC ID: 0xFFFFFFFF017B035F  Block ID: 0/Radio_0
>     -- [0/Radio_0] Adding port definition at xbar/Radio_0/ports/in/0:
>     type = '' pkt_size = '0' vlen = '0'
>     -- [0/Radio_0] Adding port definition at xbar/Radio_0/ports/out/0:
>     type = '' pkt_size = '0' vlen = '0'
>     -- radio_ctrl::radio_ctrl() _rx_spp==364
>     -- setting xbar/Radio_0/ports/out/0
>     -- [0/Radio_0] radio_ctrl::_update_spp(): Requested spp: 364
>     -- [0/Radio_0] radio_ctrl::_update_spp(): Setting spp to: 364
>     -- [0/Radio_0] radio_ctrl::_update_rx_args()
>     --   Setting VITA core
>     --   Setting DSP core 
>     --   Updating muxes 
>     -- [0/Radio_0] radio_ctrl::update_muxes() 
>     -- [0/Radio_0] radio_ctrl::_update_tx_args()
>     --   Setting VITA core
>     --   Setting DSP core 
>     --   Updating muxes 
>     -- [0/Radio_0] radio_ctrl::update_muxes() 
>     -- [0/Radio_0] radio_ctrl::update_muxes() 
>     --   dboards/A/tx_frontends/0/connection == QI
>     -- [0/Radio_0] radio_ctrl::update_muxes() 
>     --   dboards/A/rx_frontends/0/connection == IQ
>     -- Initialize Radio1 control...
>     -- [X300] Assigning PCIe DMA channel 1 to SID 00:01>02:40
>     -- Radio 1 Ctrl SID: 00:01>02:40
>     -- Performing register loopback test... pass
>     -- [RFNOC] ------- Radio Setup -----------
>     -- [RFNoC Factory] block_ctrl_base::make() 
>     -- [RFNoC Factory] Using controller key 'Radio' and block name 'Radio'
>     -- block_ctrl_base()
>     -- base_path = "/usr/local/share/uhd/rfnoc"
>     -- base_path = "/usr/local/share/uhd/rfnoc"
>     -- Reading XML file: /usr/local/share/uhd/rfnoc/blocks/block.xml
>     -- NOC ID: 0x00000000FFFFFFFF  Block ID: 0/Radio_1
>     -- [0/Radio_1] Adding port definition at xbar/Radio_1/ports/in/0:
>     type = '' pkt_size = '0' vlen = '0'
>     -- [0/Radio_1] Adding port definition at xbar/Radio_1/ports/out/0:
>     type = '' pkt_size = '0' vlen = '0'
>     -- radio_ctrl::radio_ctrl() _rx_spp==364
>     -- setting xbar/Radio_1/ports/out/0
>     -- [0/Radio_1] radio_ctrl::_update_spp(): Requested spp: 364
>     -- [0/Radio_1] radio_ctrl::_update_spp(): Setting spp to: 364
>     -- [0/Radio_1] radio_ctrl::_update_rx_args()
>     --   Setting VITA core
>     --   Setting DSP core 
>     --   Updating muxes 
>     -- [0/Radio_1] radio_ctrl::update_muxes() 
>     -- [0/Radio_1] radio_ctrl::_update_tx_args()
>     --   Setting VITA core
>     --   Setting DSP core 
>     --   Updating muxes 
>     -- [0/Radio_1] radio_ctrl::update_muxes() 
>     -- [0/Radio_1] radio_ctrl::update_muxes() 
>     --   dboards/B/tx_frontends/0/connection == IQ
>     -- [0/Radio_1] radio_ctrl::update_muxes() 
>     --   dboards/B/rx_frontends/0/connection == IQ
>     -- [RFNOC] ------- Block Setup -----------
>     -- [X300] Assigning PCIe DMA channel 2 to SID 00:02>02:50
>     -- Setting up NoC-Shell Control for port #0 (SID: 00:02>02:50)...OK
>     -- Port 80: Found NoC-Block with ID ADD0000000000000.
>     -- base_path = "/usr/local/share/uhd/rfnoc"
>     -- Reading XML file: /usr/local/share/uhd/rfnoc/blocks/addsub.xml
>     -- [X300] Assigning PCIe DMA channel 3 to SID 00:03>02:51
>     -- Setting up NoC-Shell Control for port #1 (SID: 00:03>02:51)...OK
>     -- [RFNoC Factory] block_ctrl_base::make() 
>     -- base_path = "/usr/local/share/uhd/rfnoc"
>     -- Reading XML file: /usr/local/share/uhd/rfnoc/blocks/addsub.xml
>     -- [RFNoC Factory] Using controller key 'Block' and block name 'AddSub'
>     -- block_ctrl_base()
>     -- base_path = "/usr/local/share/uhd/rfnoc"
>     -- Reading XML file: /usr/local/share/uhd/rfnoc/blocks/addsub.xml
>     -- Found valid blockdef
>     -- NOC ID: 0xADD0000000000000  Block ID: 0/AddSub_0
>     -- [0/AddSub_0] Adding port definition at xbar/AddSub_0/ports/in/0:
>     type = 'sc16' pkt_size = '0' vlen = '0'
>     -- [0/AddSub_0] Adding port definition at xbar/AddSub_0/ports/in/1:
>     type = 'sc16' pkt_size = '0' vlen = '0'
>     -- [0/AddSub_0] Adding port definition at xbar/AddSub_0/ports/out/0:
>     type = 'sc16' pkt_size = '0' vlen = '0'
>     -- [0/AddSub_0] Adding port definition at xbar/AddSub_0/ports/out/1:
>     type = 'sc16' pkt_size = '0' vlen = '0'
>     -- [RFNOC] ------- Block Setup -----------
>     -- [X300] Assigning PCIe DMA channel 4 to SID 00:04>02:60
>     -- Setting up NoC-Shell Control for port #0 (SID: 00:04>02:60)...OK
>     -- Port 96: Found NoC-Block with ID F112000000000000.
>     -- base_path = "/usr/local/share/uhd/rfnoc"
>     -- Reading XML file: /usr/local/share/uhd/rfnoc/blocks/fir.xml
>     -- [RFNoC Factory] block_ctrl_base::make() 
>     -- base_path = "/usr/local/share/uhd/rfnoc"
>     -- Reading XML file: /usr/local/share/uhd/rfnoc/blocks/fir.xml
>     -- [RFNoC Factory] Using controller key 'FIR' and block name 'FIR'
>     -- block_ctrl_base()
>     -- base_path = "/usr/local/share/uhd/rfnoc"
>     -- Reading XML file: /usr/local/share/uhd/rfnoc/blocks/fir.xml
>     -- Found valid blockdef
>     -- NOC ID: 0xF112000000000000  Block ID: 0/FIR_0
>     -- [0/FIR_0] Adding port definition at xbar/FIR_0/ports/in/0: type =
>     'sc16' pkt_size = '0' vlen = '0'
>     -- [0/FIR_0] Adding port definition at xbar/FIR_0/ports/out/0: type
>     = 'sc16' pkt_size = '0' vlen = '0'
>     --   [0/FIR_0] sr_write(255, 00000000, 0)
>     -- fir_block::fir_block() n_taps ==41
>     -- [0/FIR_0] fir_block::set_taps()
>     --   [0/FIR_0] sr_write(129, 00004E20, 0)
>     --   [0/FIR_0] sr_write(129, 00000000, 0)
>     --   [0/FIR_0] sr_write(129, 00000000, 0)
>     --   [0/FIR_0] sr_write(129, 00000000, 0)
>     --   [0/FIR_0] sr_write(129, 00000000, 0)
>     --   [0/FIR_0] sr_write(129, 00000000, 0)
>     --   [0/FIR_0] sr_write(129, 00000000, 0)
>     --   [0/FIR_0] sr_write(129, 00000000, 0)
>     --   [0/FIR_0] sr_write(129, 00000000, 0)
>     --   [0/FIR_0] sr_write(129, 00000000, 0)
>     --   [0/FIR_0] sr_write(129, 00000000, 0)
>     --   [0/FIR_0] sr_write(129, 00000000, 0)
>     --   [0/FIR_0] sr_write(129, 00000000, 0)
>     --   [0/FIR_0] sr_write(129, 00000000, 0)
>     --   [0/FIR_0] sr_write(129, 00000000, 0)
>     --   [0/FIR_0] sr_write(129, 00000000, 0)
>     --   [0/FIR_0] sr_write(129, 00000000, 0)
>     --   [0/FIR_0] sr_write(129, 00000000, 0)
>     --   [0/FIR_0] sr_write(129, 00000000, 0)
>     --   [0/FIR_0] sr_write(129, 00000000, 0)
>     --   [0/FIR_0] sr_write(129, 00000000, 0)
>     --   [0/FIR_0] sr_write(129, 00000000, 0)
>     --   [0/FIR_0] sr_write(129, 00000000, 0)
>     --   [0/FIR_0] sr_write(129, 00000000, 0)
>     --   [0/FIR_0] sr_write(129, 00000000, 0)
>     --   [0/FIR_0] sr_write(129, 00000000, 0)
>     --   [0/FIR_0] sr_write(129, 00000000, 0)
>     --   [0/FIR_0] sr_write(129, 00000000, 0)
>     --   [0/FIR_0] sr_write(129, 00000000, 0)
>     --   [0/FIR_0] sr_write(129, 00000000, 0)
>     --   [0/FIR_0] sr_write(129, 00000000, 0)
>     --   [0/FIR_0] sr_write(129, 00000000, 0)
>     --   [0/FIR_0] sr_write(129, 00000000, 0)
>     --   [0/FIR_0] sr_write(129, 00000000, 0)
>     --   [0/FIR_0] sr_write(129, 00000000, 0)
>     --   [0/FIR_0] sr_write(129, 00000000, 0)
>     --   [0/FIR_0] sr_write(129, 00000000, 0)
>     --   [0/FIR_0] sr_write(129, 00000000, 0)
>     --   [0/FIR_0] sr_write(129, 00000000, 0)
>     --   [0/FIR_0] sr_write(129, 00000000, 0)
>     --   [0/FIR_0] sr_write(130, 00000000, 0)
>     --   [0/FIR_0] sr_write(131, 00000000, 0)
>     -- [RFNOC] ------- Block Setup -----------
>     -- [X300] Assigning PCIe DMA channel 5 to SID 00:05>02:70
>     -- Setting up NoC-Shell Control for port #0 (SID: 00:05>02:70)...OK
>     -- Port 112: Found NoC-Block with ID FF70000000000000.
>     -- base_path = "/usr/local/share/uhd/rfnoc"
>     -- Reading XML file: /usr/local/share/uhd/rfnoc/blocks/fft.xml
>     -- [RFNoC Factory] block_ctrl_base::make() 
>     -- base_path = "/usr/local/share/uhd/rfnoc"
>     -- Reading XML file: /usr/local/share/uhd/rfnoc/blocks/fft.xml
>     -- [RFNoC Factory] Using controller key 'Block' and block name 'FFT'
>     -- block_ctrl_base()
>     -- base_path = "/usr/local/share/uhd/rfnoc"
>     -- Reading XML file: /usr/local/share/uhd/rfnoc/blocks/fft.xml
>     -- Found valid blockdef
>     -- NOC ID: 0xFF70000000000000  Block ID: 0/FFT_0
>     -- [0/FFT_0] Adding port definition at xbar/FFT_0/ports/in/0: type =
>     'sc16' pkt_size = '%vlen' vlen = '$spp'
>     -- [0/FFT_0] Adding port definition at xbar/FFT_0/ports/out/0: type
>     = '$otype' pkt_size = '%vlen' vlen = '$spp'
>     -- [NocScript] Executing and asserting code: GE($spp, 16) AND
>     LE($spp, 4096) AND IS_PWR_OF_2($spp)
>     -- [NocScript] Executing and asserting code:
>     SR_WRITE("FFT_SIZE_LOG2", LOG2($spp)) AND
>     SR_WRITE("AXIS_CONFIG_BUS", ADD(873472, LOG2($spp)))
>     -- [NocScript] Executing SR_WRITE() 
>     --   [0/FFT_0] sr_write(FFT_SIZE_LOG2, 00000008) ==>   [0/FFT_0]
>     sr_write(132, 00000008, 0)
>     -- [NocScript] Executing SR_WRITE() 
>     --   [0/FFT_0] sr_write(AXIS_CONFIG_BUS, 000D5408) ==>   [0/FFT_0]
>     sr_write(129, 000D5408, 0)
>     -- [NocScript] Executing and asserting code:
>     SR_WRITE("AXIS_CONFIG_BUS", ADD($ctrl_word, LOG2($spp)))
>     -- [NocScript] Executing SR_WRITE() 
>     --   [0/FFT_0] sr_write(AXIS_CONFIG_BUS, 000D5408) ==>   [0/FFT_0]
>     sr_write(129, 000D5408, 0)
>     -- [NocScript] Executing and asserting code: EQUAL($otype, "sc16")
>     -- [NocScript] Executing and asserting code: 
>     --           IF(NOT(EQUAL($reset, 0)), SR_WRITE("FFT_RESET", 1) AND
>     SR_WRITE("FFT_RESET", 0))
>     --       
>     -- [NocScript] Executing SR_WRITE() 
>     --   [0/FFT_0] sr_write(FFT_RESET, 00000001) ==>   [0/FFT_0]
>     sr_write(131, 00000001, 0)
>     -- [NocScript] Executing SR_WRITE() 
>     --   [0/FFT_0] sr_write(FFT_RESET, 00000000) ==>   [0/FFT_0]
>     sr_write(131, 00000000, 0)
>     -- [NocScript] Executing and asserting code: EQUAL($magnitude_out,
>     "COMPLEX") OR EQUAL($magnitude_out, "MAGNITUDE") OR
>     EQUAL($magnitude_out, "MAGNITUDE_SQUARED")
>     -- [NocScript] Executing and asserting code: 
>     --           IF(EQUAL($magnitude_out, "COMPLEX"),          
>     SR_WRITE("MAGNITUDE_OUT", 0)) OR
>     --           IF(EQUAL($magnitude_out, "MAGNITUDE"),        
>     SR_WRITE("MAGNITUDE_OUT", 1)) OR
>     --           IF(EQUAL($magnitude_out, "MAGNITUDE_SQUARED"),
>     SR_WRITE("MAGNITUDE_OUT", 2))
>     --       
>     -- [NocScript] Executing SR_WRITE() 
>     --   [0/FFT_0] sr_write(MAGNITUDE_OUT, 00000000) ==>   [0/FFT_0]
>     sr_write(133, 00000000, 0)
>     -- [RFNOC] ------- Block Setup -----------
>     -- [X300] Assigning PCIe DMA channel 6 to SID 00:06>02:80
>     Traceback (most recent call last):
>       File "/usr/local/bin/uhd_rx_cfile", line 260, in <module>
>         tb = rx_cfile_block(options, filename)
>       File "/usr/local/bin/uhd_rx_cfile", line 77, in __init__
>         channels=self.channels,
>       File
>     "/usr/local/lib/python2.7/dist-packages/gnuradio/uhd/__init__.py",
>     line 122, in constructor_interceptor
>         return old_constructor(*args)
>       File
>     "/usr/local/lib/python2.7/dist-packages/gnuradio/uhd/uhd_swig.py",
>     line 2249, in make
>         return _uhd_swig.usrp_source_make(*args)
>     RuntimeError: RuntimeError: Trying to allocate more DMA channels
>     than are available
> 
>     [/output]
> 
>     It should be noted that I am using the PCIe interface.  Plugging in
>     1 Gbit Ethernet results in a successful capture.  I have to assume
>     this is an issue with the PCIe interface.  The most recent commit to
>     the ofdm-devel branch shows a comment that the PCIe interface was
>     re-enabled.
> 
>     I wanted the ofdm branch because of the OFDM blocks that are available.
> 
>     Thank you!
> 
>     -Dave
> 
> 
> 
> 
> _______________________________________________
> USRP-users mailing list
> USRP-users at lists.ettus.com
> http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com
> 





More information about the USRP-users mailing list