[USRP-users] Issue with DmaFIFO uhd::lookup_error'

classic Classic list List threaded Threaded
8 messages Options
Reply | Threaded
Open this post in threaded view
|

[USRP-users] Issue with DmaFIFO uhd::lookup_error'

Martin Braun via USRP-users
Hi all

I am using this commit c41b8330f7d700feeae4819e7f7241fe3fd2bc7b on the rfnoc-devel branch.

This should be the top of the commits.

If I build the standard FPGA set with this commit all is fine.  However, if I modify file rfnoc_ce_auto_inst_e310.v to have only 3 CEs as shown below and rebuild the uhd_usrp_probe command fails   as shown below.

root@ettus-e3xx-sg1:~# uhd_usrp_probe --init-only
linux; GNU C++ version 4.9.2; Boost_105700; UHD_004.000.000.rfnoc-devel-641-g8773fb2c

-- Loading FPGA image: /usr/share/uhd/images/usrp_e310_fpga.bit... done
-- Initializing core control (global registers)...
-- Performing register loopback test... pass
-- Initializing AD9361 using hard SPI core...OK
-- [RFNOC] ------- Block Setup -----------
-- [E300] Setting up dest map for host ep 0 to be stream 0
-- Setting up NoC-Shell Control for port #0 (SID: 00:00>02:10)...O
-- Port 16: Found NoC-Block with ID 12AD100000000000.
-- Reading XML file: /usr/share/uhd/rfnoc/blocks/radio_e3xx.xml
-- [E300] Setting up dest map for host ep 1 to be stream 1
-- Setting up NoC-Shell Control for port #1 (SID: 00:01>02:11)...OK
-- [RFNoC Factory] block_ctrl_base::make()
-- Reading XML file: /usr/share/uhd/rfnoc/blocks/radio_e3xx.xml
-- [RFNoC Factory] Using controller key 'E3XXRadio' and block name 'Radio'
-- block_ctrl_base()
-- Reading XML file: /usr/share/uhd/rfnoc/blocks/radio_e3xx.xml
-- Found valid blockdef
-- NOC ID: 0x12AD100000000000  Block ID: 0/Radio_0
-- [0/Radio_0] block_ctrl_base::clear()
-- [0/Radio_0] node_ctrl_base::clear()
-- [0/Radio_0] block_ctrl_base::_clear()
-- [0/Radio_0] block_ctrl_base::_clear()
-- [0/Radio_0] Adding port definition at xbar/Radio_0/ports/in/0: type = 'sc16' pkt_size = '0' vlen = '0'
-- [0/Radio_0] Adding port definition at xbar/Radio_0/ports/in/1: type = 'sc16' pkt_size = '0' vlen = '0'
-- [0/Radio_0] Adding port definition at xbar/Radio_0/ports/out/0: type = 'sc16' pkt_size = '0' vlen = '0'
-- [0/Radio_0] Adding port definition at xbar/Radio_0/ports/out/1: type = 'sc16' pkt_size = '0' vlen = '0'
-- [RFNoC Radio] Performing register loopback test... pass
-- [RFNoC Radio] Performing register loopback test... pass
-- [0/Radio_0] radio_ctrl_impl::_update_spp(): Requested spp: 364
-- [0/Radio_0] radio_ctrl_impl::_update_spp(): Setting spp to: 364
-- [0/Radio_0] e3xx_radio_ctrl_impl::ctor()
-- Setting time source to internal
-- [0/Radio_0] e3xx_radio_ctrl_impl::_update_gpio_state()
-- [0/Radio_0]   Creating internal GPIOs...
-- [0/Radio_0]   Setting tick rate...
-- [RFNOC] ------- Block Setup -----------
-- [E300] Setting up dest map for host ep 2 to be stream 2
-- Setting up NoC-Shell Control for port #0 (SID: 00:02>02:20)...OK
-- Port 32: Found NoC-Block with ID F1F0000000000000.
-- Reading XML file: /usr/share/uhd/rfnoc/blocks/fifo.xml
-- [RFNoC Factory] block_ctrl_base::make()
-- Reading XML file: /usr/share/uhd/rfnoc/blocks/fifo.xml
-- [RFNoC Factory] Using controller key 'Block' and block name 'FIFO'
-- block_ctrl_base()
-- Reading XML file: /usr/share/uhd/rfnoc/blocks/fifo.xml
-- Found valid blockdef
-- NOC ID: 0xF1F0000000000000  Block ID: 0/FIFO_0
-- [0/FIFO_0] block_ctrl_base::clear()
-- [0/FIFO_0] node_ctrl_base::clear()
-- [0/FIFO_0] block_ctrl_base::_clear()
-- [0/FIFO_0] Adding port definition at xbar/FIFO_0/ports/in/0: type = '' pkt_size = '0' vlen = '0'
-- [0/FIFO_0] Adding port definition at xbar/FIFO_0/ports/out/0: type = '' pkt_size = '0' vlen = '0'
-- [RFNOC] ------- Block Setup -----------
-- [E300] Setting up dest map for host ep 3 to be stream 3
-- Setting up NoC-Shell Control for port #0 (SID: 00:03>02:30)...OK
-- Port 48: Found NoC-Block with ID F1F0D00000000000.
-- Reading XML file: /usr/share/uhd/rfnoc/blocks/dma_fifo.xml
-- [E300] Setting up dest map for host ep 4 to be stream 4
-- Setting up NoC-Shell Control for port #1 (SID: 00:04>02:31)...OK
-- [RFNoC Factory] block_ctrl_base::make()
-- Reading XML file: /usr/share/uhd/rfnoc/blocks/dma_fifo.xml
-- [RFNoC Factory] Using controller key 'DmaFIFO' and block name 'DmaFIFO'
-- block_ctrl_base()
-- Reading XML file: /usr/share/uhd/rfnoc/blocks/dma_fifo.xml
-- Found valid blockdef
-- NOC ID: 0xF1F0D00000000000  Block ID: 0/DmaFIFO_0
-- [0/DmaFIFO_0] block_ctrl_base::clear()
-- [0/DmaFIFO_0] node_ctrl_base::clear()
-- [0/DmaFIFO_0] block_ctrl_base::_clear()
-- [0/DmaFIFO_0] block_ctrl_base::_clear()
terminate called after throwing an instance of 'uhd::lookup_error'
  what():  LookupError: Path not found in tree: /mboards/0/tx_dsps/0
Aborted

The changes to the
rfnoc_ce_auto_inst_e310.v  file are as follows

  localparam NUM_CE = 2;  // Must be no more than 14 (2 ports taken by radio core & PS-PL DMA).

  wire [NUM_CE*64-1:0] ce_flat_o_tdata, ce_flat_i_tdata;
  wire [63:0]          ce_o_tdata[0:NUM_CE-1], ce_i_tdata[0:NUM_CE-1];
  wire [NUM_CE-1:0]    ce_o_tlast, ce_o_tvalid, ce_o_tready, ce_i_tlast, ce_i_tvalid, ce_i_tready;
  wire [63:0]          ce_debug[0:NUM_CE-1];

  // Flattern CE tdata arrays
  genvar k;
  generate
    for (k = 0; k < NUM_CE; k = k + 1) begin
      assign ce_o_tdata[k] = ce_flat_o_tdata[k*64+63:k*64];
      assign ce_flat_i_tdata[k*64+63:k*64] = ce_i_tdata[k];
    end
  endgenerate

  wire ce_clk = radio_clk;
  wire ce_rst = radio_rst;

  noc_block_axi_fifo_loopback inst_noc_block_axi_fifo_loopback (
    .bus_clk(bus_clk), .bus_rst(bus_rst),
    .ce_clk(ce_clk), .ce_rst(ce_rst),
    .i_tdata(ce_o_tdata[0]), .i_tlast(ce_o_tlast[0]), .i_tvalid(ce_o_tvalid[0]), .i_tready(ce_o_tready[0]),
    .o_tdata(ce_i_tdata[0]), .o_tlast(ce_i_tlast[0]), .o_tvalid(ce_i_tvalid[0]), .o_tready(ce_i_tready[0]),
    .debug(ce_debug[0]));

 
  noc_block_axi_dma_fifo inst_noc_block_axi_dma_fifo (
    .bus_clk(bus_clk), .bus_rst(bus_rst),
    .ce_clk(ce_clk), .ce_rst(ce_rst),
    .i_tdata(ce_o_tdata[1]), .i_tlast(ce_o_tlast[1]), .i_tvalid(ce_o_tvalid[1]), .i_tready(ce_o_tready[1]),
    .o_tdata(ce_i_tdata[1]), .o_tlast(ce_i_tlast[1]), .o_tvalid(ce_i_tvalid[1]), .o_tready(ce_i_tready[1]),
    .debug(ce_debug[1]));



 I would be grateful for any feedback on this issue.

Regards


Walter



_______________________________________________
USRP-users mailing list
[hidden email]
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com
Reply | Threaded
Open this post in threaded view
|

Re: [USRP-users] Issue with DmaFIFO uhd::lookup_error'

Martin Braun via USRP-users
Hi Walter,

The DMA FIFO RFNoC block is not a normal rfnoc block. It is meant to interface with DRAM via a Xilinx MIG instance. You can look at x300_core.v to see how it should be used. On the E310, we have a mig instance in the e300/ip you can use.



Jonathon

On Tue, Sep 27, 2016 at 11:38 PM, Walter Maguire via USRP-users <[hidden email]> wrote:
Hi all

I am using this commit c41b8330f7d700feeae4819e7f7241fe3fd2bc7b on the rfnoc-devel branch.

This should be the top of the commits.

If I build the standard FPGA set with this commit all is fine.  However, if I modify file rfnoc_ce_auto_inst_e310.v to have only 3 CEs as shown below and rebuild the uhd_usrp_probe command fails   as shown below.

root@ettus-e3xx-sg1:~# uhd_usrp_probe --init-only
linux; GNU C++ version 4.9.2; Boost_105700; UHD_004.000.000.rfnoc-devel-641-g8773fb2c

-- Loading FPGA image: /usr/share/uhd/images/usrp_e310_fpga.bit... done
-- Initializing core control (global registers)...
-- Performing register loopback test... pass
-- Initializing AD9361 using hard SPI core...OK
-- [RFNOC] ------- Block Setup -----------
-- [E300] Setting up dest map for host ep 0 to be stream 0
-- Setting up NoC-Shell Control for port #0 (SID: 00:00>02:10)...O
-- Port 16: Found NoC-Block with ID 12AD100000000000.
-- Reading XML file: /usr/share/uhd/rfnoc/blocks/radio_e3xx.xml
-- [E300] Setting up dest map for host ep 1 to be stream 1
-- Setting up NoC-Shell Control for port #1 (SID: 00:01>02:11)...OK
-- [RFNoC Factory] block_ctrl_base::make()
-- Reading XML file: /usr/share/uhd/rfnoc/blocks/radio_e3xx.xml
-- [RFNoC Factory] Using controller key 'E3XXRadio' and block name 'Radio'
-- block_ctrl_base()
-- Reading XML file: /usr/share/uhd/rfnoc/blocks/radio_e3xx.xml
-- Found valid blockdef
-- NOC ID: 0x12AD100000000000  Block ID: 0/Radio_0
-- [0/Radio_0] block_ctrl_base::clear()
-- [0/Radio_0] node_ctrl_base::clear()
-- [0/Radio_0] block_ctrl_base::_clear()
-- [0/Radio_0] block_ctrl_base::_clear()
-- [0/Radio_0] Adding port definition at xbar/Radio_0/ports/in/0: type = 'sc16' pkt_size = '0' vlen = '0'
-- [0/Radio_0] Adding port definition at xbar/Radio_0/ports/in/1: type = 'sc16' pkt_size = '0' vlen = '0'
-- [0/Radio_0] Adding port definition at xbar/Radio_0/ports/out/0: type = 'sc16' pkt_size = '0' vlen = '0'
-- [0/Radio_0] Adding port definition at xbar/Radio_0/ports/out/1: type = 'sc16' pkt_size = '0' vlen = '0'
-- [RFNoC Radio] Performing register loopback test... pass
-- [RFNoC Radio] Performing register loopback test... pass
-- [0/Radio_0] radio_ctrl_impl::_update_spp(): Requested spp: 364
-- [0/Radio_0] radio_ctrl_impl::_update_spp(): Setting spp to: 364
-- [0/Radio_0] e3xx_radio_ctrl_impl::ctor()
-- Setting time source to internal
-- [0/Radio_0] e3xx_radio_ctrl_impl::_update_gpio_state()
-- [0/Radio_0]   Creating internal GPIOs...
-- [0/Radio_0]   Setting tick rate...
-- [RFNOC] ------- Block Setup -----------
-- [E300] Setting up dest map for host ep 2 to be stream 2
-- Setting up NoC-Shell Control for port #0 (SID: 00:02>02:20)...OK
-- Port 32: Found NoC-Block with ID F1F0000000000000.
-- Reading XML file: /usr/share/uhd/rfnoc/blocks/fifo.xml
-- [RFNoC Factory] block_ctrl_base::make()
-- Reading XML file: /usr/share/uhd/rfnoc/blocks/fifo.xml
-- [RFNoC Factory] Using controller key 'Block' and block name 'FIFO'
-- block_ctrl_base()
-- Reading XML file: /usr/share/uhd/rfnoc/blocks/fifo.xml
-- Found valid blockdef
-- NOC ID: 0xF1F0000000000000  Block ID: 0/FIFO_0
-- [0/FIFO_0] block_ctrl_base::clear()
-- [0/FIFO_0] node_ctrl_base::clear()
-- [0/FIFO_0] block_ctrl_base::_clear()
-- [0/FIFO_0] Adding port definition at xbar/FIFO_0/ports/in/0: type = '' pkt_size = '0' vlen = '0'
-- [0/FIFO_0] Adding port definition at xbar/FIFO_0/ports/out/0: type = '' pkt_size = '0' vlen = '0'
-- [RFNOC] ------- Block Setup -----------
-- [E300] Setting up dest map for host ep 3 to be stream 3
-- Setting up NoC-Shell Control for port #0 (SID: 00:03>02:30)...OK
-- Port 48: Found NoC-Block with ID F1F0D00000000000.
-- Reading XML file: /usr/share/uhd/rfnoc/blocks/dma_fifo.xml
-- [E300] Setting up dest map for host ep 4 to be stream 4
-- Setting up NoC-Shell Control for port #1 (SID: 00:04>02:31)...OK
-- [RFNoC Factory] block_ctrl_base::make()
-- Reading XML file: /usr/share/uhd/rfnoc/blocks/dma_fifo.xml
-- [RFNoC Factory] Using controller key 'DmaFIFO' and block name 'DmaFIFO'
-- block_ctrl_base()
-- Reading XML file: /usr/share/uhd/rfnoc/blocks/dma_fifo.xml
-- Found valid blockdef
-- NOC ID: 0xF1F0D00000000000  Block ID: 0/DmaFIFO_0
-- [0/DmaFIFO_0] block_ctrl_base::clear()
-- [0/DmaFIFO_0] node_ctrl_base::clear()
-- [0/DmaFIFO_0] block_ctrl_base::_clear()
-- [0/DmaFIFO_0] block_ctrl_base::_clear()
terminate called after throwing an instance of 'uhd::lookup_error'
  what():  LookupError: Path not found in tree: /mboards/0/tx_dsps/0
Aborted

The changes to the
rfnoc_ce_auto_inst_e310.v  file are as follows

  localparam NUM_CE = 2;  // Must be no more than 14 (2 ports taken by radio core & PS-PL DMA).

  wire [NUM_CE*64-1:0] ce_flat_o_tdata, ce_flat_i_tdata;
  wire [63:0]          ce_o_tdata[0:NUM_CE-1], ce_i_tdata[0:NUM_CE-1];
  wire [NUM_CE-1:0]    ce_o_tlast, ce_o_tvalid, ce_o_tready, ce_i_tlast, ce_i_tvalid, ce_i_tready;
  wire [63:0]          ce_debug[0:NUM_CE-1];

  // Flattern CE tdata arrays
  genvar k;
  generate
    for (k = 0; k < NUM_CE; k = k + 1) begin
      assign ce_o_tdata[k] = ce_flat_o_tdata[k*64+63:k*64];
      assign ce_flat_i_tdata[k*64+63:k*64] = ce_i_tdata[k];
    end
  endgenerate

  wire ce_clk = radio_clk;
  wire ce_rst = radio_rst;

  noc_block_axi_fifo_loopback inst_noc_block_axi_fifo_loopback (
    .bus_clk(bus_clk), .bus_rst(bus_rst),
    .ce_clk(ce_clk), .ce_rst(ce_rst),
    .i_tdata(ce_o_tdata[0]), .i_tlast(ce_o_tlast[0]), .i_tvalid(ce_o_tvalid[0]), .i_tready(ce_o_tready[0]),
    .o_tdata(ce_i_tdata[0]), .o_tlast(ce_i_tlast[0]), .o_tvalid(ce_i_tvalid[0]), .o_tready(ce_i_tready[0]),
    .debug(ce_debug[0]));

 
  noc_block_axi_dma_fifo inst_noc_block_axi_dma_fifo (
    .bus_clk(bus_clk), .bus_rst(bus_rst),
    .ce_clk(ce_clk), .ce_rst(ce_rst),
    .i_tdata(ce_o_tdata[1]), .i_tlast(ce_o_tlast[1]), .i_tvalid(ce_o_tvalid[1]), .i_tready(ce_o_tready[1]),
    .o_tdata(ce_i_tdata[1]), .o_tlast(ce_i_tlast[1]), .o_tvalid(ce_i_tvalid[1]), .o_tready(ce_i_tready[1]),
    .debug(ce_debug[1]));



 I would be grateful for any feedback on this issue.

Regards


Walter



_______________________________________________
USRP-users mailing list
[hidden email]
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com



_______________________________________________
USRP-users mailing list
[hidden email]
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com
Reply | Threaded
Open this post in threaded view
|

Re: [USRP-users] Issue with DmaFIFO uhd::lookup_error'

Martin Braun via USRP-users

Hi Jonathan,

I would be grateful if you would elaborate more on how this might be done.  I can understand how a MIG would work on the X300.  What confuses me regarding the E310 is that the Zynq PS has access to the DDR3.  Therefore is the access to the DDR shared with the PS system or does the E310 have an additional separate DDR3 memory? 

Regarding the ip in the E300/ip directory I don seem able to open it with Vivado.  I have tried to add the contents of the build-ip directory as a repository without success.  Other than Xilinx's documentation are there any other Ettus documents which cover this.

Regards,


Walter



On 1/10/2016 5:40 AM, Jonathon Pendlum wrote:
Hi Walter,

The DMA FIFO RFNoC block is not a normal rfnoc block. It is meant to interface with DRAM via a Xilinx MIG instance. You can look at x300_core.v to see how it should be used. On the E310, we have a mig instance in the e300/ip you can use.



Jonathon

On Tue, Sep 27, 2016 at 11:38 PM, Walter Maguire via USRP-users <[hidden email]> wrote:
Hi all

I am using this commit c41b8330f7d700feeae4819e7f7241fe3fd2bc7b on the rfnoc-devel branch.

This should be the top of the commits.

If I build the standard FPGA set with this commit all is fine.  However, if I modify file rfnoc_ce_auto_inst_e310.v to have only 3 CEs as shown below and rebuild the uhd_usrp_probe command fails   as shown below.

root@ettus-e3xx-sg1:~# uhd_usrp_probe --init-only
linux; GNU C++ version 4.9.2; Boost_105700; UHD_004.000.000.rfnoc-devel-641-g8773fb2c

-- Loading FPGA image: /usr/share/uhd/images/usrp_e310_fpga.bit... done
-- Initializing core control (global registers)...
-- Performing register loopback test... pass
-- Initializing AD9361 using hard SPI core...OK
-- [RFNOC] ------- Block Setup -----------
-- [E300] Setting up dest map for host ep 0 to be stream 0
-- Setting up NoC-Shell Control for port #0 (SID: 00:00>02:10)...O
-- Port 16: Found NoC-Block with ID 12AD100000000000.
-- Reading XML file: /usr/share/uhd/rfnoc/blocks/radio_e3xx.xml
-- [E300] Setting up dest map for host ep 1 to be stream 1
-- Setting up NoC-Shell Control for port #1 (SID: 00:01>02:11)...OK
-- [RFNoC Factory] block_ctrl_base::make()
-- Reading XML file: /usr/share/uhd/rfnoc/blocks/radio_e3xx.xml
-- [RFNoC Factory] Using controller key 'E3XXRadio' and block name 'Radio'
-- block_ctrl_base()
-- Reading XML file: /usr/share/uhd/rfnoc/blocks/radio_e3xx.xml
-- Found valid blockdef
-- NOC ID: 0x12AD100000000000  Block ID: 0/Radio_0
-- [0/Radio_0] block_ctrl_base::clear()
-- [0/Radio_0] node_ctrl_base::clear()
-- [0/Radio_0] block_ctrl_base::_clear()
-- [0/Radio_0] block_ctrl_base::_clear()
-- [0/Radio_0] Adding port definition at xbar/Radio_0/ports/in/0: type = 'sc16' pkt_size = '0' vlen = '0'
-- [0/Radio_0] Adding port definition at xbar/Radio_0/ports/in/1: type = 'sc16' pkt_size = '0' vlen = '0'
-- [0/Radio_0] Adding port definition at xbar/Radio_0/ports/out/0: type = 'sc16' pkt_size = '0' vlen = '0'
-- [0/Radio_0] Adding port definition at xbar/Radio_0/ports/out/1: type = 'sc16' pkt_size = '0' vlen = '0'
-- [RFNoC Radio] Performing register loopback test... pass
-- [RFNoC Radio] Performing register loopback test... pass
-- [0/Radio_0] radio_ctrl_impl::_update_spp(): Requested spp: 364
-- [0/Radio_0] radio_ctrl_impl::_update_spp(): Setting spp to: 364
-- [0/Radio_0] e3xx_radio_ctrl_impl::ctor()
-- Setting time source to internal
-- [0/Radio_0] e3xx_radio_ctrl_impl::_update_gpio_state()
-- [0/Radio_0]   Creating internal GPIOs...
-- [0/Radio_0]   Setting tick rate...
-- [RFNOC] ------- Block Setup -----------
-- [E300] Setting up dest map for host ep 2 to be stream 2
-- Setting up NoC-Shell Control for port #0 (SID: 00:02>02:20)...OK
-- Port 32: Found NoC-Block with ID F1F0000000000000.
-- Reading XML file: /usr/share/uhd/rfnoc/blocks/fifo.xml
-- [RFNoC Factory] block_ctrl_base::make()
-- Reading XML file: /usr/share/uhd/rfnoc/blocks/fifo.xml
-- [RFNoC Factory] Using controller key 'Block' and block name 'FIFO'
-- block_ctrl_base()
-- Reading XML file: /usr/share/uhd/rfnoc/blocks/fifo.xml
-- Found valid blockdef
-- NOC ID: 0xF1F0000000000000  Block ID: 0/FIFO_0
-- [0/FIFO_0] block_ctrl_base::clear()
-- [0/FIFO_0] node_ctrl_base::clear()
-- [0/FIFO_0] block_ctrl_base::_clear()
-- [0/FIFO_0] Adding port definition at xbar/FIFO_0/ports/in/0: type = '' pkt_size = '0' vlen = '0'
-- [0/FIFO_0] Adding port definition at xbar/FIFO_0/ports/out/0: type = '' pkt_size = '0' vlen = '0'
-- [RFNOC] ------- Block Setup -----------
-- [E300] Setting up dest map for host ep 3 to be stream 3
-- Setting up NoC-Shell Control for port #0 (SID: 00:03>02:30)...OK
-- Port 48: Found NoC-Block with ID F1F0D00000000000.
-- Reading XML file: /usr/share/uhd/rfnoc/blocks/dma_fifo.xml
-- [E300] Setting up dest map for host ep 4 to be stream 4
-- Setting up NoC-Shell Control for port #1 (SID: 00:04>02:31)...OK
-- [RFNoC Factory] block_ctrl_base::make()
-- Reading XML file: /usr/share/uhd/rfnoc/blocks/dma_fifo.xml
-- [RFNoC Factory] Using controller key 'DmaFIFO' and block name 'DmaFIFO'
-- block_ctrl_base()
-- Reading XML file: /usr/share/uhd/rfnoc/blocks/dma_fifo.xml
-- Found valid blockdef
-- NOC ID: 0xF1F0D00000000000  Block ID: 0/DmaFIFO_0
-- [0/DmaFIFO_0] block_ctrl_base::clear()
-- [0/DmaFIFO_0] node_ctrl_base::clear()
-- [0/DmaFIFO_0] block_ctrl_base::_clear()
-- [0/DmaFIFO_0] block_ctrl_base::_clear()
terminate called after throwing an instance of 'uhd::lookup_error'
  what():  LookupError: Path not found in tree: /mboards/0/tx_dsps/0
Aborted

The changes to the
rfnoc_ce_auto_inst_e310.v  file are as follows

  localparam NUM_CE = 2;  // Must be no more than 14 (2 ports taken by radio core & PS-PL DMA).

  wire [NUM_CE*64-1:0] ce_flat_o_tdata, ce_flat_i_tdata;
  wire [63:0]          ce_o_tdata[0:NUM_CE-1], ce_i_tdata[0:NUM_CE-1];
  wire [NUM_CE-1:0]    ce_o_tlast, ce_o_tvalid, ce_o_tready, ce_i_tlast, ce_i_tvalid, ce_i_tready;
  wire [63:0]          ce_debug[0:NUM_CE-1];

  // Flattern CE tdata arrays
  genvar k;
  generate
    for (k = 0; k < NUM_CE; k = k + 1) begin
      assign ce_o_tdata[k] = ce_flat_o_tdata[k*64+63:k*64];
      assign ce_flat_i_tdata[k*64+63:k*64] = ce_i_tdata[k];
    end
  endgenerate

  wire ce_clk = radio_clk;
  wire ce_rst = radio_rst;

  noc_block_axi_fifo_loopback inst_noc_block_axi_fifo_loopback (
    .bus_clk(bus_clk), .bus_rst(bus_rst),
    .ce_clk(ce_clk), .ce_rst(ce_rst),
    .i_tdata(ce_o_tdata[0]), .i_tlast(ce_o_tlast[0]), .i_tvalid(ce_o_tvalid[0]), .i_tready(ce_o_tready[0]),
    .o_tdata(ce_i_tdata[0]), .o_tlast(ce_i_tlast[0]), .o_tvalid(ce_i_tvalid[0]), .o_tready(ce_i_tready[0]),
    .debug(ce_debug[0]));

 
  noc_block_axi_dma_fifo inst_noc_block_axi_dma_fifo (
    .bus_clk(bus_clk), .bus_rst(bus_rst),
    .ce_clk(ce_clk), .ce_rst(ce_rst),
    .i_tdata(ce_o_tdata[1]), .i_tlast(ce_o_tlast[1]), .i_tvalid(ce_o_tvalid[1]), .i_tready(ce_o_tready[1]),
    .o_tdata(ce_i_tdata[1]), .o_tlast(ce_i_tlast[1]), .o_tvalid(ce_i_tvalid[1]), .o_tready(ce_i_tready[1]),
    .debug(ce_debug[1]));



 I would be grateful for any feedback on this issue.

Regards


Walter



_______________________________________________
USRP-users mailing list
[hidden email]
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com




_______________________________________________
USRP-users mailing list
[hidden email]
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com
Reply | Threaded
Open this post in threaded view
|

Re: [USRP-users] Issue with DmaFIFO uhd::lookup_error'

Martin Braun via USRP-users
In reply to this post by Martin Braun via USRP-users

Hi Jonathan,


I see from the E310 schematics that the E310 has a two DDR3 areas, one connected to the PS (1GByte) and one connected to the FPGA PL (512 MByte).  I assume the MIG works with the later?  How is data captured in the 512MByte area viewed by a Linux running on the PS?    Would this be the correct application use ie

1. Samples in -> DMA_FIFO->MIG->DDR3(512)  // High speed capture

2. Samples Out  DDR3(512)->(PL additional ip, ie FIFO, DMA Engine etc) ->PS->DDR3(1GByte)   // Low speed analysis

Are stages 1 and 2 contained in the RFNoC Block once the MIG is added?


Regards



Walter


On 1/10/2016 5:40 AM, Jonathon Pendlum wrote:
Hi Walter,

The DMA FIFO RFNoC block is not a normal rfnoc block. It is meant to interface with DRAM via a Xilinx MIG instance. You can look at x300_core.v to see how it should be used. On the E310, we have a mig instance in the e300/ip you can use.



Jonathon

On Tue, Sep 27, 2016 at 11:38 PM, Walter Maguire via USRP-users <[hidden email]> wrote:
Hi all

I am using this commit c41b8330f7d700feeae4819e7f7241fe3fd2bc7b on the rfnoc-devel branch.

This should be the top of the commits.

If I build the standard FPGA set with this commit all is fine.  However, if I modify file rfnoc_ce_auto_inst_e310.v to have only 3 CEs as shown below and rebuild the uhd_usrp_probe command fails   as shown below.

root@ettus-e3xx-sg1:~# uhd_usrp_probe --init-only
linux; GNU C++ version 4.9.2; Boost_105700; UHD_004.000.000.rfnoc-devel-641-g8773fb2c

-- Loading FPGA image: /usr/share/uhd/images/usrp_e310_fpga.bit... done
-- Initializing core control (global registers)...
-- Performing register loopback test... pass
-- Initializing AD9361 using hard SPI core...OK
-- [RFNOC] ------- Block Setup -----------
-- [E300] Setting up dest map for host ep 0 to be stream 0
-- Setting up NoC-Shell Control for port #0 (SID: 00:00>02:10)...O
-- Port 16: Found NoC-Block with ID 12AD100000000000.
-- Reading XML file: /usr/share/uhd/rfnoc/blocks/radio_e3xx.xml
-- [E300] Setting up dest map for host ep 1 to be stream 1
-- Setting up NoC-Shell Control for port #1 (SID: 00:01>02:11)...OK
-- [RFNoC Factory] block_ctrl_base::make()
-- Reading XML file: /usr/share/uhd/rfnoc/blocks/radio_e3xx.xml
-- [RFNoC Factory] Using controller key 'E3XXRadio' and block name 'Radio'
-- block_ctrl_base()
-- Reading XML file: /usr/share/uhd/rfnoc/blocks/radio_e3xx.xml
-- Found valid blockdef
-- NOC ID: 0x12AD100000000000  Block ID: 0/Radio_0
-- [0/Radio_0] block_ctrl_base::clear()
-- [0/Radio_0] node_ctrl_base::clear()
-- [0/Radio_0] block_ctrl_base::_clear()
-- [0/Radio_0] block_ctrl_base::_clear()
-- [0/Radio_0] Adding port definition at xbar/Radio_0/ports/in/0: type = 'sc16' pkt_size = '0' vlen = '0'
-- [0/Radio_0] Adding port definition at xbar/Radio_0/ports/in/1: type = 'sc16' pkt_size = '0' vlen = '0'
-- [0/Radio_0] Adding port definition at xbar/Radio_0/ports/out/0: type = 'sc16' pkt_size = '0' vlen = '0'
-- [0/Radio_0] Adding port definition at xbar/Radio_0/ports/out/1: type = 'sc16' pkt_size = '0' vlen = '0'
-- [RFNoC Radio] Performing register loopback test... pass
-- [RFNoC Radio] Performing register loopback test... pass
-- [0/Radio_0] radio_ctrl_impl::_update_spp(): Requested spp: 364
-- [0/Radio_0] radio_ctrl_impl::_update_spp(): Setting spp to: 364
-- [0/Radio_0] e3xx_radio_ctrl_impl::ctor()
-- Setting time source to internal
-- [0/Radio_0] e3xx_radio_ctrl_impl::_update_gpio_state()
-- [0/Radio_0]   Creating internal GPIOs...
-- [0/Radio_0]   Setting tick rate...
-- [RFNOC] ------- Block Setup -----------
-- [E300] Setting up dest map for host ep 2 to be stream 2
-- Setting up NoC-Shell Control for port #0 (SID: 00:02>02:20)...OK
-- Port 32: Found NoC-Block with ID F1F0000000000000.
-- Reading XML file: /usr/share/uhd/rfnoc/blocks/fifo.xml
-- [RFNoC Factory] block_ctrl_base::make()
-- Reading XML file: /usr/share/uhd/rfnoc/blocks/fifo.xml
-- [RFNoC Factory] Using controller key 'Block' and block name 'FIFO'
-- block_ctrl_base()
-- Reading XML file: /usr/share/uhd/rfnoc/blocks/fifo.xml
-- Found valid blockdef
-- NOC ID: 0xF1F0000000000000  Block ID: 0/FIFO_0
-- [0/FIFO_0] block_ctrl_base::clear()
-- [0/FIFO_0] node_ctrl_base::clear()
-- [0/FIFO_0] block_ctrl_base::_clear()
-- [0/FIFO_0] Adding port definition at xbar/FIFO_0/ports/in/0: type = '' pkt_size = '0' vlen = '0'
-- [0/FIFO_0] Adding port definition at xbar/FIFO_0/ports/out/0: type = '' pkt_size = '0' vlen = '0'
-- [RFNOC] ------- Block Setup -----------
-- [E300] Setting up dest map for host ep 3 to be stream 3
-- Setting up NoC-Shell Control for port #0 (SID: 00:03>02:30)...OK
-- Port 48: Found NoC-Block with ID F1F0D00000000000.
-- Reading XML file: /usr/share/uhd/rfnoc/blocks/dma_fifo.xml
-- [E300] Setting up dest map for host ep 4 to be stream 4
-- Setting up NoC-Shell Control for port #1 (SID: 00:04>02:31)...OK
-- [RFNoC Factory] block_ctrl_base::make()
-- Reading XML file: /usr/share/uhd/rfnoc/blocks/dma_fifo.xml
-- [RFNoC Factory] Using controller key 'DmaFIFO' and block name 'DmaFIFO'
-- block_ctrl_base()
-- Reading XML file: /usr/share/uhd/rfnoc/blocks/dma_fifo.xml
-- Found valid blockdef
-- NOC ID: 0xF1F0D00000000000  Block ID: 0/DmaFIFO_0
-- [0/DmaFIFO_0] block_ctrl_base::clear()
-- [0/DmaFIFO_0] node_ctrl_base::clear()
-- [0/DmaFIFO_0] block_ctrl_base::_clear()
-- [0/DmaFIFO_0] block_ctrl_base::_clear()
terminate called after throwing an instance of 'uhd::lookup_error'
  what():  LookupError: Path not found in tree: /mboards/0/tx_dsps/0
Aborted

The changes to the
rfnoc_ce_auto_inst_e310.v  file are as follows

  localparam NUM_CE = 2;  // Must be no more than 14 (2 ports taken by radio core & PS-PL DMA).

  wire [NUM_CE*64-1:0] ce_flat_o_tdata, ce_flat_i_tdata;
  wire [63:0]          ce_o_tdata[0:NUM_CE-1], ce_i_tdata[0:NUM_CE-1];
  wire [NUM_CE-1:0]    ce_o_tlast, ce_o_tvalid, ce_o_tready, ce_i_tlast, ce_i_tvalid, ce_i_tready;
  wire [63:0]          ce_debug[0:NUM_CE-1];

  // Flattern CE tdata arrays
  genvar k;
  generate
    for (k = 0; k < NUM_CE; k = k + 1) begin
      assign ce_o_tdata[k] = ce_flat_o_tdata[k*64+63:k*64];
      assign ce_flat_i_tdata[k*64+63:k*64] = ce_i_tdata[k];
    end
  endgenerate

  wire ce_clk = radio_clk;
  wire ce_rst = radio_rst;

  noc_block_axi_fifo_loopback inst_noc_block_axi_fifo_loopback (
    .bus_clk(bus_clk), .bus_rst(bus_rst),
    .ce_clk(ce_clk), .ce_rst(ce_rst),
    .i_tdata(ce_o_tdata[0]), .i_tlast(ce_o_tlast[0]), .i_tvalid(ce_o_tvalid[0]), .i_tready(ce_o_tready[0]),
    .o_tdata(ce_i_tdata[0]), .o_tlast(ce_i_tlast[0]), .o_tvalid(ce_i_tvalid[0]), .o_tready(ce_i_tready[0]),
    .debug(ce_debug[0]));

 
  noc_block_axi_dma_fifo inst_noc_block_axi_dma_fifo (
    .bus_clk(bus_clk), .bus_rst(bus_rst),
    .ce_clk(ce_clk), .ce_rst(ce_rst),
    .i_tdata(ce_o_tdata[1]), .i_tlast(ce_o_tlast[1]), .i_tvalid(ce_o_tvalid[1]), .i_tready(ce_o_tready[1]),
    .o_tdata(ce_i_tdata[1]), .o_tlast(ce_i_tlast[1]), .o_tvalid(ce_i_tvalid[1]), .o_tready(ce_i_tready[1]),
    .debug(ce_debug[1]));



 I would be grateful for any feedback on this issue.

Regards


Walter



_______________________________________________
USRP-users mailing list
[hidden email]
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com




_______________________________________________
USRP-users mailing list
[hidden email]
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com
Reply | Threaded
Open this post in threaded view
|

[USRP-users] B210 Initialization issue

Martin Braun via USRP-users
In reply to this post by Martin Braun via USRP-users
I'm having problems during the initialization phase of the B210.

My issue is identical to what was previously reported in:

http://lists.ettus.com/pipermail/usrp-users_lists.ettus.com/2015-October/016196.html

I cannot load the firmware and running "uhd_find_devices" reports:

linux; GNU C++ version 6.1.1 20160802; Boost_106100; UHD_003.009.005-0-unknown

-- Loading firmware image: /usr/local/share/uhd/images/usrp_b200_fw.hex...
UHD Error:
    Device discovery error: EnvironmentError: IOError: Could not load firmware: 
    EnvironmentError: IOError: ihex_reader::read(): record hander returned failure code
No UHD Devices Found

The firmware is in the right path and there are no permissions problems.


This is the output of dmesg after fresh reboot:

[    4.539243] usb 4-1: new SuperSpeed USB device number 2 using xhci_hcd
[    4.556928] usb 4-1: unable to get BOS descriptor
[    4.558428] usb 4-1: config 1 has an invalid descriptor of length 1, skipping remainder of the config
[    4.558498] usb 4-1: config 1 has 1 interface, different from the descriptor's value: 5
[    4.558568] usb 4-1: config 1 interface 0 altsetting 1 has 0 endpoint descriptors, different from the interface descriptor's value: 9
[    4.558638] usb 4-1: config 1 interface 0 has no altsetting 0
[    4.562428] usb 4-1: New USB device found, idVendor=2500, idProduct=0020
[    4.562491] usb 4-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[    4.562554] usb 4-1: Product: USRP B200
[    4.562614] usb 4-1: Manufacturer: Ettus Research LLC
[    4.562675] usb 4-1: SerialNumber: 3̐3us R
Should I RMA the board as was advised in that previously mentioned thread?
Thanks.

Joan Olmos


_______________________________________________
USRP-users mailing list
[hidden email]
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com
Reply | Threaded
Open this post in threaded view
|

Re: [USRP-users] B210 Initialization issue

Martin Braun via USRP-users
On 10/04/2016 07:22 AM, Joan Olmos via USRP-users wrote:
I'm having problems during the initialization phase of the B210.

My issue is identical to what was previously reported in:

http://lists.ettus.com/pipermail/usrp-users_lists.ettus.com/2015-October/016196.html

I cannot load the firmware and running "uhd_find_devices" reports:

linux; GNU C++ version 6.1.1 20160802; Boost_106100; UHD_003.009.005-0-unknown

-- Loading firmware image: /usr/local/share/uhd/images/usrp_b200_fw.hex...
UHD Error:
    Device discovery error: EnvironmentError: IOError: Could not load firmware: 
    EnvironmentError: IOError: ihex_reader::read(): record hander returned failure code
No UHD Devices Found

The firmware is in the right path and there are no permissions problems.


This is the output of dmesg after fresh reboot:

[    4.539243] usb 4-1: new SuperSpeed USB device number 2 using xhci_hcd
[    4.556928] usb 4-1: unable to get BOS descriptor
[    4.558428] usb 4-1: config 1 has an invalid descriptor of length 1, skipping remainder of the config
[    4.558498] usb 4-1: config 1 has 1 interface, different from the descriptor's value: 5
[    4.558568] usb 4-1: config 1 interface 0 altsetting 1 has 0 endpoint descriptors, different from the interface descriptor's value: 9
[    4.558638] usb 4-1: config 1 interface 0 has no altsetting 0
[    4.562428] usb 4-1: New USB device found, idVendor=2500, idProduct=0020
[    4.562491] usb 4-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[    4.562554] usb 4-1: Product: USRP B200
[    4.562614] usb 4-1: Manufacturer: Ettus Research LLC
[    4.562675] usb 4-1: SerialNumber: 3̐3us R
Should I RMA the board as was advised in that previously mentioned thread?
Thanks.

Joan Olmos


The serial number is wonky, and there seems to be other USB-related errors related to the card.     I'd RMA it.
Send a note to [hidden email]




_______________________________________________
USRP-users mailing list
[hidden email]
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com
Reply | Threaded
Open this post in threaded view
|

Re: [USRP-users] B210 Initialization issue

Martin Braun via USRP-users

Check the USB3 cable first though – don’t use extension cables either.

 

Simon Brown, GK4ELI
http://sdr-radio.com

 

From: USRP-users [mailto:[hidden email]] On Behalf Of Marcus D. Leech via USRP-users
Sent: 04 October 2016 13:18
To: [hidden email]
Subject: Re: [USRP-users] B210 Initialization issue

 

On 10/04/2016 07:22 AM, Joan Olmos via USRP-users wrote:

I'm having problems during the initialization phase of the B210.

My issue is identical to what was previously reported in:

http://lists.ettus.com/pipermail/usrp-users_lists.ettus.com/2015-October/016196.html

I cannot load the firmware and running "uhd_find_devices" reports:

linux; GNU C++ version 6.1.1 20160802; Boost_106100; UHD_003.009.005-0-unknown
 
-- Loading firmware image: /usr/local/share/uhd/images/usrp_b200_fw.hex...
UHD Error:
    Device discovery error: EnvironmentError: IOError: Could not load firmware: 
    EnvironmentError: IOError: ihex_reader::read(): record hander returned failure code
No UHD Devices Found


The firmware is in the right path and there are no permissions problems.


This is the output of dmesg after fresh reboot:

 
[    4.539243] usb 4-1: new SuperSpeed USB device number 2 using xhci_hcd
[    4.556928] usb 4-1: unable to get BOS descriptor
[    4.558428] usb 4-1: config 1 has an invalid descriptor of length 1, skipping remainder of the config
[    4.558498] usb 4-1: config 1 has 1 interface, different from the descriptor's value: 5
[    4.558568] usb 4-1: config 1 interface 0 altsetting 1 has 0 endpoint descriptors, different from the interface descriptor's value: 9
[    4.558638] usb 4-1: config 1 interface 0 has no altsetting 0
[    4.562428] usb 4-1: New USB device found, idVendor=2500, idProduct=0020
[    4.562491] usb 4-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[    4.562554] usb 4-1: Product: USRP B200
[    4.562614] usb 4-1: Manufacturer: Ettus Research LLC
[    4.562675] usb 4-1: SerialNumber: 3̐3us R

Should I RMA the board as was advised in that previously mentioned thread?
Thanks.

Joan Olmos

 

The serial number is wonky, and there seems to be other USB-related errors related to the card.     I'd RMA it.
Send a note to [hidden email]



_______________________________________________
USRP-users mailing list
[hidden email]
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com
Reply | Threaded
Open this post in threaded view
|

Re: [USRP-users] B210 Initialization issue

Martin Braun via USRP-users

Thank you. The USB cable is the OEM that came with the B210 and also I'm powering it with the OEM power source (not only through the USB).

I'll continue trying. After power cycling the USRP the behavior is normal again:

[25715.019048] usb 1-1.3: new high-speed USB device number 5 using ehci-pci
[25715.111940] usb 1-1.3: New USB device found, idVendor=2500, idProduct=0020
[25715.111945] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[25715.111948] usb 1-1.3: Product: WestBridge
[25715.111950] usb 1-1.3: Manufacturer: Cypress
[25715.111952] usb 1-1.3: SerialNumber: 0000000004BE
[25720.451937] usb 1-1.3: USB disconnect, device number 5
[25720.751498] usb 1-1.3: new high-speed USB device number 6 using ehci-pci
[25720.845803] usb 1-1.3: New USB device found, idVendor=2500, idProduct=0020
[25720.845808] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[25720.845811] usb 1-1.3: Product: USRP B200
[25720.845813] usb 1-1.3: Manufacturer: Ettus Research LLC
[25720.845815] usb 1-1.3: SerialNumber: 30CD41C

But this shouldn't happen. If it repeats quite often then I'll think about asking for RMA.


El 04/10/16 a las 14:23, Simon Brown via USRP-users escribió:

Check the USB3 cable first though – don’t use extension cables either.

 

Simon Brown, GK4ELI
http://sdr-radio.com

 

From: USRP-users [[hidden email]] On Behalf Of Marcus D. Leech via USRP-users
Sent: 04 October 2016 13:18
To: [hidden email]
Subject: Re: [USRP-users] B210 Initialization issue

 

On 10/04/2016 07:22 AM, Joan Olmos via USRP-users wrote:

I'm having problems during the initialization phase of the B210.

My issue is identical to what was previously reported in:

http://lists.ettus.com/pipermail/usrp-users_lists.ettus.com/2015-October/016196.html

I cannot load the firmware and running "uhd_find_devices" reports:

linux; GNU C++ version 6.1.1 20160802; Boost_106100; UHD_003.009.005-0-unknown
 
-- Loading firmware image: /usr/local/share/uhd/images/usrp_b200_fw.hex...
UHD Error:
    Device discovery error: EnvironmentError: IOError: Could not load firmware: 
    EnvironmentError: IOError: ihex_reader::read(): record hander returned failure code
No UHD Devices Found


The firmware is in the right path and there are no permissions problems.


This is the output of dmesg after fresh reboot:

 
[    4.539243] usb 4-1: new SuperSpeed USB device number 2 using xhci_hcd
[    4.556928] usb 4-1: unable to get BOS descriptor
[    4.558428] usb 4-1: config 1 has an invalid descriptor of length 1, skipping remainder of the config
[    4.558498] usb 4-1: config 1 has 1 interface, different from the descriptor's value: 5
[    4.558568] usb 4-1: config 1 interface 0 altsetting 1 has 0 endpoint descriptors, different from the interface descriptor's value: 9
[    4.558638] usb 4-1: config 1 interface 0 has no altsetting 0
[    4.562428] usb 4-1: New USB device found, idVendor=2500, idProduct=0020
[    4.562491] usb 4-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[    4.562554] usb 4-1: Product: USRP B200
[    4.562614] usb 4-1: Manufacturer: Ettus Research LLC
[    4.562675] usb 4-1: SerialNumber: 3̐3us R

Should I RMA the board as was advised in that previously mentioned thread?
Thanks.

Joan Olmos

 

The serial number is wonky, and there seems to be other USB-related errors related to the card.     I'd RMA it.
Send a note to [hidden email]




_______________________________________________
USRP-users mailing list
[hidden email]
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com


_______________________________________________
USRP-users mailing list
[hidden email]
http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com