From 2a66eb62d89c5d18c176878ce036f0109706a9e2 Mon Sep 17 00:00:00 2001 From: Lars Amsel Date: Mon, 8 Jul 2019 15:36:52 +0200 Subject: rfnoc: Introduce device-specific blocks - Add device ID constants (e.g., E310 == 0xE310, X300 == 0xA300). These are stored in the device FPGA, and can be used for decisions later - Blocks can be specific to a device. For example, x300_radio_control can only work on an X300 series device. - Because blocks can be device-specific, all radio blocks can now share a common Noc-ID (0x12AD1000). - The registry and factory functions are modified to acommodate for this. - The motherboard access is now also factored into the same registry macro. --- host/lib/include/uhdlib/rfnoc/factory.hpp | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) (limited to 'host/lib/include/uhdlib') diff --git a/host/lib/include/uhdlib/rfnoc/factory.hpp b/host/lib/include/uhdlib/rfnoc/factory.hpp index be42a57e5..2bd1feb09 100644 --- a/host/lib/include/uhdlib/rfnoc/factory.hpp +++ b/host/lib/include/uhdlib/rfnoc/factory.hpp @@ -7,14 +7,16 @@ #ifndef INCLUDED_LIBUHD_RFNOC_FACTORY_HPP #define INCLUDED_LIBUHD_RFNOC_FACTORY_HPP -#include +#include #include +#include namespace uhd { namespace rfnoc { struct block_factory_info_t { std::string block_name; + bool mb_access; std::string timebase_clk; std::string ctrlport_clk; registry::factory_t factory_fn; @@ -30,11 +32,8 @@ public: * \returns a block_factory_info_t object * \throws uhd::lookup_error if no block is found */ - static block_factory_info_t get_block_factory(noc_block_base::noc_id_t noc_id); - - /*! Check if this block has requested access to the motherboard controller - */ - static bool has_requested_mb_access(noc_block_base::noc_id_t noc_id); + static block_factory_info_t get_block_factory( + noc_id_t noc_id, device_type_t device_id); }; }} /* namespace uhd::rfnoc */ -- cgit v1.2.3