aboutsummaryrefslogtreecommitdiffstats
path: root/host/lib/rfnoc/block_ctrl_base.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'host/lib/rfnoc/block_ctrl_base.cpp')
-rw-r--r--host/lib/rfnoc/block_ctrl_base.cpp60
1 files changed, 29 insertions, 31 deletions
diff --git a/host/lib/rfnoc/block_ctrl_base.cpp b/host/lib/rfnoc/block_ctrl_base.cpp
index a6eecc20b..e9d6c0030 100644
--- a/host/lib/rfnoc/block_ctrl_base.cpp
+++ b/host/lib/rfnoc/block_ctrl_base.cpp
@@ -20,16 +20,15 @@
#include "ctrl_iface.hpp"
#include "nocscript/block_iface.hpp"
-#include <uhd/utils/msg.hpp>
+
#include <uhd/utils/log.hpp>
#include <uhd/convert.hpp>
#include <uhd/rfnoc/block_ctrl_base.hpp>
#include <uhd/rfnoc/constants.hpp>
#include <boost/format.hpp>
-#include <boost/foreach.hpp>
#include <boost/bind.hpp>
-#define UHD_BLOCK_LOG() UHD_LOGV(never)
+#define UHD_BLOCK_LOG() UHD_LOGGER_TRACE("RFNOC")
using namespace uhd;
using namespace uhd::rfnoc;
@@ -48,17 +47,16 @@ inline uint32_t _sr_to_addr64(uint32_t reg) { return reg * 8; }; // for peek64
block_ctrl_base::block_ctrl_base(
const make_args_t &make_args
) : _tree(make_args.tree),
- _transport_is_big_endian(make_args.is_big_endian),
_ctrl_ifaces(make_args.ctrl_ifaces),
_base_address(make_args.base_address & 0xFFF0)
{
- UHD_BLOCK_LOG() << "block_ctrl_base()" << std::endl;
+ UHD_BLOCK_LOG() << "block_ctrl_base()" ;
/*** Identify this block (NoC-ID, block-ID, and block definition) *******/
// Read NoC-ID (name is passed in through make_args):
uint64_t noc_id = sr_read64(SR_READBACK_REG_ID);
_block_def = blockdef::make_from_noc_id(noc_id);
- if (_block_def) UHD_BLOCK_LOG() << "Found valid blockdef" << std::endl;
+ if (_block_def) UHD_BLOCK_LOG() << "Found valid blockdef" ;
if (not _block_def)
_block_def = blockdef::make_from_noc_id(DEFAULT_NOC_ID);
UHD_ASSERT_THROW(_block_def);
@@ -70,7 +68,7 @@ block_ctrl_base::block_ctrl_base(
}
UHD_BLOCK_LOG()
<< "NOC ID: " << str(boost::format("0x%016X ") % noc_id)
- << "Block ID: " << _block_id << std::endl;
+ << "Block ID: " << _block_id ;
/*** Initialize property tree *******************************************/
_root_path = "xbar/" + _block_id.get_local();
@@ -81,7 +79,7 @@ block_ctrl_base::block_ctrl_base(
/*** Configure ports ****************************************************/
size_t n_valid_input_buffers = 0;
- BOOST_FOREACH(const size_t ctrl_port, get_ctrl_ports()) {
+ for(const size_t ctrl_port: get_ctrl_ports()) {
// Set source addresses:
sr_write(SR_BLOCK_SID, get_address(ctrl_port), ctrl_port);
// Set sink buffer sizes:
@@ -95,7 +93,7 @@ block_ctrl_base::block_ctrl_base(
/*** Register names *****************************************************/
blockdef::registers_t sregs = _block_def->get_settings_registers();
- BOOST_FOREACH(const std::string &reg_name, sregs.keys()) {
+ for(const std::string &reg_name: sregs.keys()) {
if (DEFAULT_NAMED_SR.has_key(reg_name)) {
throw uhd::runtime_error(str(
boost::format("Register name %s is already defined!")
@@ -106,7 +104,7 @@ block_ctrl_base::block_ctrl_base(
.set(sregs.get(reg_name));
}
blockdef::registers_t rbacks = _block_def->get_readback_registers();
- BOOST_FOREACH(const std::string &reg_name, rbacks.keys()) {
+ for(const std::string &reg_name: rbacks.keys()) {
_tree->create<size_t>(_root_path / "registers"/ "rb" / reg_name)
.set(rbacks.get(reg_name));
}
@@ -116,10 +114,10 @@ block_ctrl_base::block_ctrl_base(
_init_port_defs("out", _block_def->get_output_ports());
// FIXME this warning always fails until the input buffer code above is fixed
if (_tree->list(_root_path / "ports/in").size() != n_valid_input_buffers) {
- UHD_MSG(warning) <<
+ UHD_LOGGER_WARNING("RFNOC") <<
boost::format("[%s] defines %d input buffer sizes, but %d input ports")
% get_block_id().get() % n_valid_input_buffers % _tree->list(_root_path / "ports/in").size()
- << std::endl;
+ ;
}
/*** Init default block args ********************************************/
@@ -138,14 +136,14 @@ void block_ctrl_base::_init_port_defs(
const size_t first_port_index
) {
size_t port_index = first_port_index;
- BOOST_FOREACH(const blockdef::port_t &port_def, ports) {
+ for(const blockdef::port_t &port_def: ports) {
fs_path port_path = _root_path / "ports" / direction / port_index;
if (not _tree->exists(port_path)) {
_tree->create<blockdef::port_t>(port_path);
}
UHD_RFNOC_BLOCK_TRACE() << "Adding port definition at " << port_path
<< boost::format(": type = '%s' pkt_size = '%s' vlen = '%s'") % port_def["type"] % port_def["pkt_size"] % port_def["vlen"]
- << std::endl;
+ ;
_tree->access<blockdef::port_t>(port_path).set(port_def);
port_index++;
}
@@ -155,12 +153,12 @@ void block_ctrl_base::_init_block_args()
{
blockdef::args_t args = _block_def->get_args();
fs_path arg_path = _root_path / "args";
- BOOST_FOREACH(const size_t port, get_ctrl_ports()) {
+ for(const size_t port: get_ctrl_ports()) {
_tree->create<std::string>(arg_path / port);
}
// First, create all nodes.
- BOOST_FOREACH(const blockdef::arg_t &arg, args) {
+ for(const blockdef::arg_t &arg: args) {
fs_path arg_type_path = arg_path / arg["port"] / arg["name"] / "type";
_tree->create<std::string>(arg_type_path).set(arg["type"]);
fs_path arg_val_path = arg_path / arg["port"] / arg["name"] / "value";
@@ -174,7 +172,7 @@ void block_ctrl_base::_init_block_args()
// TODO: Add coercer
#define _SUBSCRIBE_CHECK_AND_RUN(type, arg_tag, error_message) \
_tree->access<type>(arg_val_path).add_coerced_subscriber(boost::bind((&nocscript::block_iface::run_and_check), _nocscript_iface, arg[#arg_tag], error_message))
- BOOST_FOREACH(const blockdef::arg_t &arg, args) {
+ for(const blockdef::arg_t &arg: args) {
fs_path arg_val_path = arg_path / arg["port"] / arg["name"] / "value";
if (not arg["check"].empty()) {
if (arg["type"] == "string") { _SUBSCRIBE_CHECK_AND_RUN(string, check, arg["check_message"]); }
@@ -193,7 +191,7 @@ void block_ctrl_base::_init_block_args()
}
// Finally: Set the values. This will call subscribers, if we have any.
- BOOST_FOREACH(const blockdef::arg_t &arg, args) {
+ for(const blockdef::arg_t &arg: args) {
fs_path arg_val_path = arg_path / arg["port"] / arg["name"] / "value";
if (not arg["value"].empty()) {
if (arg["type"] == "int_vector") { throw uhd::runtime_error("not yet implemented: int_vector"); }
@@ -218,7 +216,7 @@ std::vector<size_t> block_ctrl_base::get_ctrl_ports() const
std::vector<size_t> ctrl_ports;
ctrl_ports.reserve(_ctrl_ifaces.size());
std::pair<size_t, wb_iface::sptr> it;
- BOOST_FOREACH(it, _ctrl_ifaces) {
+ for(auto it: _ctrl_ifaces) {
ctrl_ports.push_back(it.first);
}
return ctrl_ports;
@@ -227,7 +225,7 @@ std::vector<size_t> block_ctrl_base::get_ctrl_ports() const
void block_ctrl_base::sr_write(const uint32_t reg, const uint32_t data, const size_t port)
{
//UHD_BLOCK_LOG() << " ";
- //UHD_RFNOC_BLOCK_TRACE() << boost::format("sr_write(%d, %08X, %d)") % reg % data % port << std::endl;
+ //UHD_RFNOC_BLOCK_TRACE() << boost::format("sr_write(%d, %08X, %d)") % reg % data % port ;
if (not _ctrl_ifaces.count(port)) {
throw uhd::key_error(str(boost::format("[%s] sr_write(): No such port: %d") % get_block_id().get() % port));
}
@@ -254,7 +252,7 @@ void block_ctrl_base::sr_write(const std::string &reg, const uint32_t data, cons
reg_addr = uint32_t(_tree->access<size_t>(_root_path / "registers" / "sr" / reg).get());
}
UHD_BLOCK_LOG() << " ";
- UHD_RFNOC_BLOCK_TRACE() << boost::format("sr_write(%s, %08X) ==> ") % reg % data << std::endl;
+ UHD_RFNOC_BLOCK_TRACE() << boost::format("sr_write(%s, %08X) ==> ") % reg % data ;
return sr_write(reg_addr, data, port);
}
@@ -341,7 +339,7 @@ void block_ctrl_base::set_command_time(
const size_t port
) {
if (port == ANY_PORT) {
- BOOST_FOREACH(const size_t specific_port, get_ctrl_ports()) {
+ for(const size_t specific_port: get_ctrl_ports()) {
set_command_time(time_spec, specific_port);
}
return;
@@ -379,7 +377,7 @@ void block_ctrl_base::set_command_tick_rate(
const size_t port
) {
if (port == ANY_PORT) {
- BOOST_FOREACH(const size_t specific_port, get_ctrl_ports()) {
+ for(const size_t specific_port: get_ctrl_ports()) {
set_command_tick_rate(tick_rate, specific_port);
}
return;
@@ -412,11 +410,11 @@ void block_ctrl_base::clear_command_time(const size_t port)
void block_ctrl_base::clear()
{
- UHD_RFNOC_BLOCK_TRACE() << "block_ctrl_base::clear() " << std::endl;
+ UHD_RFNOC_BLOCK_TRACE() << "block_ctrl_base::clear() " ;
// Call parent...
node_ctrl_base::clear();
// ...then child
- BOOST_FOREACH(const size_t port_index, get_ctrl_ports()) {
+ for(const size_t port_index: get_ctrl_ports()) {
_clear(port_index);
}
}
@@ -431,7 +429,7 @@ uint32_t block_ctrl_base::get_address(size_t block_port) {
**********************************************************************/
void block_ctrl_base::set_args(const uhd::device_addr_t &args, const size_t port)
{
- BOOST_FOREACH(const std::string &key, args.keys()) {
+ for(const std::string &key: args.keys()) {
if (_tree->exists(get_arg_path(key, port))) {
set_arg(key, args.get(key), port);
}
@@ -474,7 +472,7 @@ void block_ctrl_base::set_arg(const std::string &key, const std::string &val, co
device_addr_t block_ctrl_base::get_args(const size_t port) const
{
device_addr_t args;
- BOOST_FOREACH(const std::string &key, _tree->list(_root_path / "args" / port)) {
+ for(const std::string &key: _tree->list(_root_path / "args" / port)) {
args[key] = get_arg(key);
}
return args;
@@ -535,7 +533,7 @@ stream_sig_t block_ctrl_base::_resolve_port_def(const blockdef::port_t &port_def
} else {
stream_sig.item_type = port_def["type"];
}
- //UHD_RFNOC_BLOCK_TRACE() << " item type: " << stream_sig.item_type << std::endl;
+ //UHD_RFNOC_BLOCK_TRACE() << " item type: " << stream_sig.item_type ;
// Vector length
if (port_def.is_variable("vlen")) {
@@ -546,7 +544,7 @@ stream_sig_t block_ctrl_base::_resolve_port_def(const blockdef::port_t &port_def
} else {
stream_sig.vlen = boost::lexical_cast<size_t>(port_def["vlen"]);
}
- //UHD_RFNOC_BLOCK_TRACE() << " vector length: " << stream_sig.vlen << std::endl;
+ //UHD_RFNOC_BLOCK_TRACE() << " vector length: " << stream_sig.vlen ;
// Packet size
if (port_def.is_variable("pkt_size")) {
@@ -568,7 +566,7 @@ stream_sig_t block_ctrl_base::_resolve_port_def(const blockdef::port_t &port_def
} else {
stream_sig.packet_size = boost::lexical_cast<size_t>(port_def["pkt_size"]);
}
- //UHD_RFNOC_BLOCK_TRACE() << " packet size: " << stream_sig.vlen << std::endl;
+ //UHD_RFNOC_BLOCK_TRACE() << " packet size: " << stream_sig.vlen ;
return stream_sig;
}
@@ -579,7 +577,7 @@ stream_sig_t block_ctrl_base::_resolve_port_def(const blockdef::port_t &port_def
**********************************************************************/
void block_ctrl_base::_clear(const size_t port)
{
- UHD_RFNOC_BLOCK_TRACE() << "block_ctrl_base::_clear() " << std::endl;
+ UHD_RFNOC_BLOCK_TRACE() << "block_ctrl_base::_clear() " ;
sr_write(SR_CLEAR_TX_FC, 0x00C1EA12, port); // 'CLEAR', but we can write anything, really
sr_write(SR_CLEAR_RX_FC, 0x00C1EA12, port); // 'CLEAR', but we can write anything, really
}