Hello, I just updated my rfnoc workflow to UHD 4.0 this week. I've gone through the process of creating an RFNoC block, building the corresponding FPGA image, putting it on an E320 (had to upgrade MPM), and seeing the block is present when executing uhd_usrp_probe. The problem is that the block shows up as "* 0/Block#0", and not "* 0/Gain#0". Basically, I'm trying to go through the tuturial.
_____________________________________________________ | / | | RFNoC blocks on this device: | | | | * 0/Block#0 | | * 0/DDC#0 | | * 0/DUC#0 | | * 0/DmaFIFO#0 | | * 0/Radio#0 I've confirmed that I have a gain.yml file under my ../uhd/rfnoc/blocks folder with the correct noc_id. If I do a uhd_usrp_probe with the --init-only option, I get: ------------------------------ [WARNING] [RFNOC::BLOCK_FACTORY] Could not find block with Noc-ID 0xbdc26af0, 0xffff ------------------------------ I confirmed that this Noc-ID matches the ID in my gain.yml file. I started digging into uhd_usrp_probe code (I'm not a C++ person) and noticed that the registry_factory section of code has "FIXME TODO" under the descriptor registry section, but has code for the direct registry section: ------------------------------- block_factory_info_t factory::get_block_factory(noc_id_t noc_id, device_type_t device_id) { // First, check the descriptor registry // FIXME TODO // Second, check the direct registry block_device_pair_t key{noc_id, device_id}; if (!get_direct_block_registry().count(key)) { key = block_device_pair_t(noc_id, ANY_DEVICE); } if (!get_direct_block_registry().count(key)) { UHD_LOG_WARNING("RFNOC::BLOCK_FACTORY", "Could not find block with Noc-ID " << std::hex << "0x" << key.first << ", 0x" << key.second << std::dec); key = block_device_pair_t(DEFAULT_NOC_ID, ANY_DEVICE); } return get_direct_block_registry().at(key); } ---------------------------------- Does this mean that uhd_usrp_probe is not even looking at the yml files and only looks for directly registered blocks? I'm not sure what directly registered means and if my example "gain" block should somehow be directly registered. I was thinking that this is just something incomplete that doesn't work with UHD right now, but in the "Getting Started with RFNoC in UHD 4.0" guide (https://kb.ettus.com/Getting_Started_with_RFNoC_in_UHD_4.0), they show the Gain block showing up correctly when doing a uhd_usrp_probe. So, I don't understand why this isn't working or how it should work. Some background, I cloned/built: 1) UHD (v4.0.0.0 tag) 2) gnuradio (3.8.2.0 tag) 3) gr-ettus (maint-3.8-uhd4.0 branch) I "believe" my paths/environment are setup correctly. Thanks for any help. Jim
_______________________________________________ USRP-users mailing list USRP-users@lists.ettus.com http://lists.ettus.com/mailman/listinfo/usrp-users_lists.ettus.com