aboutsummaryrefslogtreecommitdiffstats
path: root/host/lib/rfnoc/CMakeLists.txt
Commit message (Collapse)AuthorAgeFilesLines
* rfnoc: Create mock factoryMartin Braun2020-01-291-0/+1
| | | | | | This is an API that allows creating mock block controllers, to write unit tests for block controllers. See rfnoc_blocks_test for an example how to use them.
* rfnoc: Port FFT controllerLars Amsel2019-11-261-0/+1
| | | | | | rfnoc used noc-script for FFT controller implementation. Because erfnoc does not support noc-script yet, the implementation is done as a rfnoc controller.
* rfnoc: Add DMA FIFO block controllerMartin Braun2019-11-261-0/+1
|
* Remove proto-RFNoC filesMartin Braun2019-11-261-30/+0
| | | | | | | This commit removes all files and parts of files that are used by proto-RFNoC only. uhd: Fix include CMakeLists.txt, add missing files
* rfnoc: Move data xport sep configuration to static methodsCiro Nishiguchi2019-11-261-0/+2
| | | | | | | Move the configuration logic for stream endpoints to static methods of the chdr data transports. This separates those interactions from the main transport code, simplifying both. It also makes it easier to use the transports with mock link objects.
* rfnoc: tx_streamer: add support for async messagesCiro Nishiguchi2019-11-261-0/+1
| | | | | | Add an async message queue that aggregates errors from multiple sources. Errors can come from the strs packets originating from the stream endpoint or from the radio block through control packets to the host.
* rfnoc: Add DUC block controllerMartin Braun2019-11-261-0/+1
|
* rfnoc: add rx and tx transports, and amend rfnoc_graphCiro Nishiguchi2019-11-261-0/+2
| | | | | | | | | | | | | | | | | | | | | | | transports: Transports build on I/O service and implements flow control and sequence number checking. The rx streamer subclass extends the streamer implementation to connect it to the rfnoc graph. It receives configuration values from property propagation and configures the streamer accordingly. It also implements the issue_stream_cmd rx_streamer API method. Add implementation of rx streamer creation and method to connect it to an rfnoc block. rfnoc_graph: Cache more connection info, clarify contract Summary of changes: - rfnoc_graph stores more information about static connections at the beginning. Some search algorithms are replaced by simpler lookups. - The contract for connect() was clarified. It is required to call connect, even for static connections.
* rfnoc: register_iface_holder: Add ability to invalidate and updateMartin Braun2019-11-261-0/+1
| | | | | This lets child classes of register_iface_holder change the register interface, or even invalidate it.
* rfnoc: Add chdr_ctrl_xportAlex Williams2019-11-261-0/+1
| | | | | | | | | | | | | | chdr_ctrl_xport is a dumb-pipe transport for RFNoC control transactions and management frames. Also remove the I/O service's check on num_recv_frames and num_send_frames. The transports may request additional virtual channels, so the send_io_if and recv_io_if may not reserve additional frames, as they are shared with a previously-allocated instance. Note: this uses a mutex to force sequentual access to the chdr_ctrl_xport. This is supposed to go away when the multi threaded xport is done.
* rfnoc: Add device_id allocatorMartin Braun2019-11-261-0/+1
| | | | | | This is a single atomic allocator in the global uhd::rfnoc namespace, so that devices can allocate themselves device IDs without having to confer with the rest of the RFNoC infrastructure.
* rfnoc: Add null block controllerMartin Braun2019-11-261-0/+1
|
* rfnoc: Add mb_controller APIMartin Braun2019-11-261-0/+1
| | | | | | | | | The mb_controller is an interface to hardware-specific functions of the motherboard. The API works in two ways: - The user can request access to it, and thus interact directly with the motherboard - RFNoC blocks can request access to it, if they need to interact with the motherboard themselves.
* rfnoc: Add radio block controllerMartin Braun2019-11-261-0/+1
|
* rfnoc: Added link/graph specific stream managersAshish Chaudhari2019-11-261-0/+3
| | | | | - Fleshed out mb_iface - Managers currently only export ctrl APIs. Data APIs TBD
* rfnoc: Moved chdr types/packet class out of chdr dirAshish Chaudhari2019-11-261-1/+2
| | | | | | - Moved chdr_packet and chdr_types from rfnoc/chdr to rfnoc and updated all references - Moved non-CHDR definitions to rfnoc_common.hpp
* rfnoc: Add default block controllerMartin Braun2019-11-261-0/+1
| | | | | The default block controller should get instantiated when no other suitable block controller can be found.
* rfnoc: Add DDC block controllerMartin Braun2019-11-261-0/+1
|
* rfnoc: Add rfnoc_graph classMartin Braun2019-11-261-0/+1
| | | | This replaces device3() for RFNoC applications.
* rfnoc: Add block registry/factory and make_argsMartin Braun2019-11-261-0/+2
| | | | | | - noc_block_base now has a ctor defined - The registry stores factory functions to the individual Noc-Block implementations
* rfnoc: adding client_zeroBrent Stapleton2019-11-261-0/+1
| | | | | | | | | | - Adding client_zero class, which gathers information about our device form the global registers on port 0 of the RFNoC backend registers. - adding unit tests to exercise client_zero - mock_reg_iface class: adding fake register_iface so we can run unit tests in software only Co-authored-by: Martin Braun <martin.braun@ettus.com>
* rfnoc: Added impl for reg_iface and ctrl_endpointAshish Chaudhari2019-11-261-0/+2
| | | | | | | | - Added new register_iface class that translates high-level peek/poke calls into CHDR control payloads - Added new chdr_ctrl_endpoint class that emulates a control stream endpoint in SW. It can create and handle multiple register interfaces
* rfnoc: Add action APIMartin Braun2019-11-261-0/+1
| | | | | | | | - Added action_info class - Allow to send actions from node to node - Allow to post actions into nodes - Allow to set default forwarding policies - Added unit tests
* rfnoc: Added initial impl for mgmt_portalAshish Chaudhari2019-11-261-1/+1
| | | | | | | - The management portal is the interface for the framework to allow discovering the data topology, setup routes between stream endpoints and configure streamers - Use a zero_copy_if and the mgmt_paylod to send/recv packets
* rfnoc: Refactored CHDR packet interfacesAshish Chaudhari2019-11-261-0/+2
| | | | | | | - Moved packet interface code from public to private include - Split packet interface into two files: payload paring and packet iface - Added support for all CHDR packet types - Added more test cases to unit test
* rfnoc: Add property propagation, Boost.Graph storageMartin Braun2019-11-261-0/+1
| | | | | | | | | | | | - Adds a detail::graph_t class, which handles the propagation - Adds methods to node_t to aid with propagation - Adds unit tests - Adds dynamic property forwarding: Nodes are now able to forward properties they don't know about by providing a forwarding policy. A good example is the FIFO block which simply forwards most properties verbatim. - node: Temporarily disabling consistency check at init
* rfnoc: Add detail::block_container_t classMartin Braun2019-11-261-0/+1
| | | | | This is a storage for the noc_block_base derivatives. It supports finding blocks.
* rfnoc: Add noc_block_base classMartin Braun2019-11-261-0/+1
| | | | This is a parent class for all block controllers.
* rfnoc: Add properties, nodes, and accessorsMartin Braun2019-11-261-0/+1
| | | | | | | | | | | | | | Adds the following classes: - uhd::rfnoc::node_t, the base class for RFNoC nodes - uhd::rfnoc::node_accessor_t, a class to access private properties - uhd::rfnoc::res_source_info, a struct that identifies where properties come from - uhd::rfnoc::property_t, and property_base_t (its parent) - uhd::rfnoc::prop_accessor_t, a class to access properties Add always dirty property (dirtifier). Also adds unit tests for properties.
* uhd: mpm: update all license header w/ "-or-later"Brent Stapleton2019-03-081-1/+1
| | | | Updating all SPDX license identifiers to include "-or-later"
* uhd: rfnoc: add async message handlerTrung Tran2018-09-141-0/+1
|
* RFNoC: Add Replay API and exampleWade Fife2018-08-291-0/+1
|
* RFNoC: Add FIR, Null, and Window block controllersMartin Braun2018-06-221-0/+4
|
* uhd: Move internal headers to uhdlib/Martin Braun2018-03-141-2/+0
| | | | | | | | | | | | | | | | To avoid the proliferation of additional include directories and multiple ways of including project-local headers, we now default to moving all headers that are used across UHD into the uhdlib/ subdirectory. Some #include statements were also reordered as they were modified for closer compliance with the coding guidelines. Internal cpp source files should now include files like this: #include <uhdlib/rfnoc/ctrl_iface.hpp> Reviewed-by: Ashish Chaudhari <ashish.chaudhari@ettus.com>
* uhd: Update license headersMartin Braun2018-02-191-0/+1
| | | | | | | All copyright is now attributed to "Ettus Research, a National Instruments company". SPDX headers were also updated to latest version 3.0.
* Move all license headers to SPDX format.Martin Braun2017-12-221-12/+1
|
* lib: rfnoc: cmake: Fix typo in CMakeLists.txtMoritz Fischer2017-07-271-2/+2
| | | | | | | | The file was missing a .cpp suffix for the dma_fifo_block_ctrl_impl file, somehow CMake was being smart and inferring the filetype. Be explicit. Signed-off-by: Moritz Fischer <moritz.fischer@ettus.com>
* Merging RFNoC support for X310Martin Braun2016-08-091-0/+53