From 2b723b895ca7ababe28fa0003c5923eda28ed915 Mon Sep 17 00:00:00 2001 From: Dennis Lindebaum Date: Fri, 9 Jan 2026 15:54:30 +0000 Subject: [PATCH 1/7] Copied address table from firmware --- .../v7xx/kerberos_mib_v3/ipbus_freq_ctr.xml | 12 +++++++ .../v7xx/kerberos_mib_v3/opencores_i2c.xml | 9 +++++ .../v7xx/kerberos_mib_v3/pdts_echo_mon.xml | 11 ++++++ .../v7xx/kerberos_mib_v3/pdts_ep_mon.xml | 26 ++++++++++++++ .../v7xx/kerberos_mib_v3/pdts_global.xml | 22 ++++++++++++ .../v7xx/kerberos_mib_v3/pdts_master.xml | 24 +++++++++++++ .../v7xx/kerberos_mib_v3/pdts_mib_v3_io.xml | 36 +++++++++++++++++++ .../kerberos_mib_v3/pdts_phase_comparator.xml | 21 +++++++++++ .../v7xx/kerberos_mib_v3/pdts_scmd_gen.xml | 17 +++++++++ .../pdts_timestamp_comparator.xml | 18 ++++++++++ .../pdts_timing_source_mux.xml | 7 ++++ .../v7xx/kerberos_mib_v3/pdts_ts_source.xml | 21 +++++++++++ .../kerberos_mib_v3/pdts_upstream_cdr.xml | 12 +++++++ .../kerberos_mib_v3/pdts_upstream_mux.xml | 7 ++++ .../v7xx/kerberos_mib_v3/top_mib_v3.xml | 24 +++++++++++++ 15 files changed, 267 insertions(+) create mode 100644 config/etc/addrtab/v7xx/kerberos_mib_v3/ipbus_freq_ctr.xml create mode 100644 config/etc/addrtab/v7xx/kerberos_mib_v3/opencores_i2c.xml create mode 100644 config/etc/addrtab/v7xx/kerberos_mib_v3/pdts_echo_mon.xml create mode 100644 config/etc/addrtab/v7xx/kerberos_mib_v3/pdts_ep_mon.xml create mode 100644 config/etc/addrtab/v7xx/kerberos_mib_v3/pdts_global.xml create mode 100644 config/etc/addrtab/v7xx/kerberos_mib_v3/pdts_master.xml create mode 100644 config/etc/addrtab/v7xx/kerberos_mib_v3/pdts_mib_v3_io.xml create mode 100644 config/etc/addrtab/v7xx/kerberos_mib_v3/pdts_phase_comparator.xml create mode 100644 config/etc/addrtab/v7xx/kerberos_mib_v3/pdts_scmd_gen.xml create mode 100644 config/etc/addrtab/v7xx/kerberos_mib_v3/pdts_timestamp_comparator.xml create mode 100644 config/etc/addrtab/v7xx/kerberos_mib_v3/pdts_timing_source_mux.xml create mode 100644 config/etc/addrtab/v7xx/kerberos_mib_v3/pdts_ts_source.xml create mode 100644 config/etc/addrtab/v7xx/kerberos_mib_v3/pdts_upstream_cdr.xml create mode 100644 config/etc/addrtab/v7xx/kerberos_mib_v3/pdts_upstream_mux.xml create mode 100644 config/etc/addrtab/v7xx/kerberos_mib_v3/top_mib_v3.xml diff --git a/config/etc/addrtab/v7xx/kerberos_mib_v3/ipbus_freq_ctr.xml b/config/etc/addrtab/v7xx/kerberos_mib_v3/ipbus_freq_ctr.xml new file mode 100644 index 00000000..8c22d96a --- /dev/null +++ b/config/etc/addrtab/v7xx/kerberos_mib_v3/ipbus_freq_ctr.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/config/etc/addrtab/v7xx/kerberos_mib_v3/opencores_i2c.xml b/config/etc/addrtab/v7xx/kerberos_mib_v3/opencores_i2c.xml new file mode 100644 index 00000000..e313799a --- /dev/null +++ b/config/etc/addrtab/v7xx/kerberos_mib_v3/opencores_i2c.xml @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/config/etc/addrtab/v7xx/kerberos_mib_v3/pdts_echo_mon.xml b/config/etc/addrtab/v7xx/kerberos_mib_v3/pdts_echo_mon.xml new file mode 100644 index 00000000..52154375 --- /dev/null +++ b/config/etc/addrtab/v7xx/kerberos_mib_v3/pdts_echo_mon.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/config/etc/addrtab/v7xx/kerberos_mib_v3/pdts_ep_mon.xml b/config/etc/addrtab/v7xx/kerberos_mib_v3/pdts_ep_mon.xml new file mode 100644 index 00000000..d99e8d38 --- /dev/null +++ b/config/etc/addrtab/v7xx/kerberos_mib_v3/pdts_ep_mon.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/config/etc/addrtab/v7xx/kerberos_mib_v3/pdts_global.xml b/config/etc/addrtab/v7xx/kerberos_mib_v3/pdts_global.xml new file mode 100644 index 00000000..ad4293fa --- /dev/null +++ b/config/etc/addrtab/v7xx/kerberos_mib_v3/pdts_global.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/config/etc/addrtab/v7xx/kerberos_mib_v3/pdts_master.xml b/config/etc/addrtab/v7xx/kerberos_mib_v3/pdts_master.xml new file mode 100644 index 00000000..c9726dfe --- /dev/null +++ b/config/etc/addrtab/v7xx/kerberos_mib_v3/pdts_master.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/config/etc/addrtab/v7xx/kerberos_mib_v3/pdts_mib_v3_io.xml b/config/etc/addrtab/v7xx/kerberos_mib_v3/pdts_mib_v3_io.xml new file mode 100644 index 00000000..10abf904 --- /dev/null +++ b/config/etc/addrtab/v7xx/kerberos_mib_v3/pdts_mib_v3_io.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/config/etc/addrtab/v7xx/kerberos_mib_v3/pdts_phase_comparator.xml b/config/etc/addrtab/v7xx/kerberos_mib_v3/pdts_phase_comparator.xml new file mode 100644 index 00000000..9d7d4643 --- /dev/null +++ b/config/etc/addrtab/v7xx/kerberos_mib_v3/pdts_phase_comparator.xml @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/config/etc/addrtab/v7xx/kerberos_mib_v3/pdts_scmd_gen.xml b/config/etc/addrtab/v7xx/kerberos_mib_v3/pdts_scmd_gen.xml new file mode 100644 index 00000000..034da4c3 --- /dev/null +++ b/config/etc/addrtab/v7xx/kerberos_mib_v3/pdts_scmd_gen.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/config/etc/addrtab/v7xx/kerberos_mib_v3/pdts_timestamp_comparator.xml b/config/etc/addrtab/v7xx/kerberos_mib_v3/pdts_timestamp_comparator.xml new file mode 100644 index 00000000..ca76c71d --- /dev/null +++ b/config/etc/addrtab/v7xx/kerberos_mib_v3/pdts_timestamp_comparator.xml @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/config/etc/addrtab/v7xx/kerberos_mib_v3/pdts_timing_source_mux.xml b/config/etc/addrtab/v7xx/kerberos_mib_v3/pdts_timing_source_mux.xml new file mode 100644 index 00000000..d17d5bf1 --- /dev/null +++ b/config/etc/addrtab/v7xx/kerberos_mib_v3/pdts_timing_source_mux.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/config/etc/addrtab/v7xx/kerberos_mib_v3/pdts_ts_source.xml b/config/etc/addrtab/v7xx/kerberos_mib_v3/pdts_ts_source.xml new file mode 100644 index 00000000..92aeab65 --- /dev/null +++ b/config/etc/addrtab/v7xx/kerberos_mib_v3/pdts_ts_source.xml @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/config/etc/addrtab/v7xx/kerberos_mib_v3/pdts_upstream_cdr.xml b/config/etc/addrtab/v7xx/kerberos_mib_v3/pdts_upstream_cdr.xml new file mode 100644 index 00000000..24834f4a --- /dev/null +++ b/config/etc/addrtab/v7xx/kerberos_mib_v3/pdts_upstream_cdr.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/config/etc/addrtab/v7xx/kerberos_mib_v3/pdts_upstream_mux.xml b/config/etc/addrtab/v7xx/kerberos_mib_v3/pdts_upstream_mux.xml new file mode 100644 index 00000000..6679e8dc --- /dev/null +++ b/config/etc/addrtab/v7xx/kerberos_mib_v3/pdts_upstream_mux.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/config/etc/addrtab/v7xx/kerberos_mib_v3/top_mib_v3.xml b/config/etc/addrtab/v7xx/kerberos_mib_v3/top_mib_v3.xml new file mode 100644 index 00000000..338a8963 --- /dev/null +++ b/config/etc/addrtab/v7xx/kerberos_mib_v3/top_mib_v3.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + From 5657907c8d8a4fbd6f24fb983a00579b2a165826 Mon Sep 17 00:00:00 2001 From: Dennis Lindebaum Date: Fri, 9 Jan 2026 16:49:36 +0000 Subject: [PATCH 2/7] Created MIBV3IONode --- include/timing/MIBV3IONode.hpp | 43 ++++++++++++++++++++++++++++++++++ pybindsrc/io.cpp | 20 ++++++++++++++++ src/MIBV3IONode.cpp | 27 +++++++++++++++++++++ 3 files changed, 90 insertions(+) create mode 100644 include/timing/MIBV3IONode.hpp create mode 100644 src/MIBV3IONode.cpp diff --git a/include/timing/MIBV3IONode.hpp b/include/timing/MIBV3IONode.hpp new file mode 100644 index 00000000..79a56d02 --- /dev/null +++ b/include/timing/MIBV3IONode.hpp @@ -0,0 +1,43 @@ +/** + * @file MIBV3IONode.hpp + * + * MIBV3IONode is a class providing an interface + * to the MIB V3 IO firmware block. + * + * This is part of the DUNE DAQ Software Suite, copyright 2020. + * Licensing/copyright details are in the COPYING file that you should have + * received with this code. + */ + +#ifndef TIMING_INCLUDE_TIMING_MIBV3IONODE_HPP_ +#define TIMING_INCLUDE_TIMING_MIBV3IONODE_HPP_ + +// PDT Headers +#include "timing/MIBV2IONode.hpp" + +// uHal Headers +#include "uhal/DerivedNode.hpp" + +// C++ Headers +#include +#include + +namespace dunedaq { +namespace timing { + +/** + * @brief Class for the timing FMC board. + */ +class MIBV3IONode : public MIBV2IONode +{ + UHAL_DERIVEDNODE(MIBV3IONode) + +public: + explicit MIBV3IONode(const uhal::Node& node); + virtual ~MIBV3IONode(); +}; + +} // namespace timing +} // namespace dunedaq + +#endif // TIMING_INCLUDE_TIMING_MIBV3IONODE_HPP_ diff --git a/pybindsrc/io.cpp b/pybindsrc/io.cpp index 7338ee58..63e0ca9e 100644 --- a/pybindsrc/io.cpp +++ b/pybindsrc/io.cpp @@ -16,6 +16,7 @@ #include "timing/MIBIONode.hpp" #include "timing/SwitchyardNode.hpp" #include "timing/MIBV2IONode.hpp" +#include "timing/MIBV3IONode.hpp" #include "timing/GIBIONode.hpp" #include "timing/GIBV2IONode.hpp" #include "timing/GIBV3IONode.hpp" @@ -183,6 +184,25 @@ register_io(py::module& m) .def("switch_sfp_tx", &timing::MIBV2IONode::switch_sfp_tx) ; + // TODO can we add inheritance?, dlindebaum, 2026.01.09 + py::class_(m, "MIBV3IONode") + .def(py::init()) + .def( + "reset", &timing::MIBV3IONode::reset, py::arg("clock_config_file")) + .def( + "reset", &timing::MIBV3IONode::reset, py::arg("clock_source")) + .def("soft_reset", &timing::MIBV3IONode::soft_reset) + .def("read_firmware_frequency", &timing::MIBV3IONode::read_firmware_frequency) + .def("get_clock_frequencies_table", &timing::MIBV3IONode::get_clock_frequencies_table, py::arg("print_out") = false) + .def("get_status", &timing::MIBV3IONode::get_status, py::arg("print_out") = false) + .def("get_pll_status", &timing::MIBV3IONode::get_pll_status, py::arg("print_out") = false) + .def("get_pll", &timing::MIBV3IONode::get_pll) + .def("get_hardware_info", &timing::MIBV3IONode::get_hardware_info, py::arg("print_out") = false) + .def("get_sfp_status", &timing::MIBV3IONode::get_sfp_status, py::arg("sfp_id"), py::arg("print_out") = false) + .def("switch_sfp_soft_tx_control_bit", &timing::MIBV3IONode::switch_sfp_soft_tx_control_bit) + .def("switch_sfp_tx", &timing::MIBV3IONode::switch_sfp_tx) + ; + // TODO fix missing binding and add GIBv2/3 inheritance, dlindebaum, 2025.10.06 py::class_(m, "GIBIONode") .def(py::init()) diff --git a/src/MIBV3IONode.cpp b/src/MIBV3IONode.cpp new file mode 100644 index 00000000..f5c90d4b --- /dev/null +++ b/src/MIBV3IONode.cpp @@ -0,0 +1,27 @@ +/** + * @file MIBV3IONode.cpp + * + * This is part of the DUNE DAQ Software Suite, copyright 2020. + * Licensing/copyright details are in the COPYING file that you should have + * received with this code. + */ + +#include "timing/MIBV3IONode.hpp" + +namespace dunedaq { +namespace timing { + +UHAL_REGISTER_DERIVED_NODE(MIBV3IONode) + +//----------------------------------------------------------------------------- +MIBV3IONode::MIBV3IONode(const uhal::Node& node) + : IONode(node, "i2c", "i2c", { "PLL" }, { "OSC", "PLL", "EP 0", "EP 1", "EP 2" }, { "sfp0_i2c", "sfp1_i2c", "sfp2_i2c" }) +{ +} +//----------------------------------------------------------------------------- + +//----------------------------------------------------------------------------- +MIBV3IONode::~MIBV3IONode() {} +//----------------------------------------------------------------------------- +} // namespace timing +} // namespace dunedaq From 01ed137258222bed879bd30302127b05af2381ea Mon Sep 17 00:00:00 2001 From: Dennis Lindebaum Date: Mon, 12 Jan 2026 14:41:38 +0000 Subject: [PATCH 3/7] Fix constructor inheritance --- src/MIBV3IONode.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/MIBV3IONode.cpp b/src/MIBV3IONode.cpp index f5c90d4b..32c91d5f 100644 --- a/src/MIBV3IONode.cpp +++ b/src/MIBV3IONode.cpp @@ -15,7 +15,7 @@ UHAL_REGISTER_DERIVED_NODE(MIBV3IONode) //----------------------------------------------------------------------------- MIBV3IONode::MIBV3IONode(const uhal::Node& node) - : IONode(node, "i2c", "i2c", { "PLL" }, { "OSC", "PLL", "EP 0", "EP 1", "EP 2" }, { "sfp0_i2c", "sfp1_i2c", "sfp2_i2c" }) + : MIBV2IONode(node) { } //----------------------------------------------------------------------------- From 5b6b385f477c07fa10ff7820a617926de5c300b6 Mon Sep 17 00:00:00 2001 From: Dennis Lindebaum Date: Tue, 13 Jan 2026 11:35:29 +0000 Subject: [PATCH 4/7] Removed MIBV2IONode --- .../v7xx/kerberos_mib_v2/ipbus_freq_ctr.xml | 12 - .../v7xx/kerberos_mib_v2/opencores_i2c.xml | 9 - .../v7xx/kerberos_mib_v2/pdts_echo_mon.xml | 11 - .../v7xx/kerberos_mib_v2/pdts_ep_mon.xml | 26 --- .../v7xx/kerberos_mib_v2/pdts_global.xml | 22 -- .../v7xx/kerberos_mib_v2/pdts_master.xml | 24 -- .../v7xx/kerberos_mib_v2/pdts_mib_v2_io.xml | 36 --- .../kerberos_mib_v2/pdts_phase_comparator.xml | 21 -- .../v7xx/kerberos_mib_v2/pdts_scmd_gen.xml | 17 -- .../pdts_timestamp_comparator.xml | 16 -- .../pdts_timing_source_mux.xml | 7 - .../v7xx/kerberos_mib_v2/pdts_ts_source.xml | 21 -- .../kerberos_mib_v2/pdts_upstream_cdr.xml | 12 - .../kerberos_mib_v2/pdts_upstream_mux.xml | 7 - .../v7xx/kerberos_mib_v2/top_mib_v2.xml | 24 -- include/timing/MIBV2IONode.hpp | 110 ---------- include/timing/MIBV3IONode.hpp | 79 ++++++- pybindsrc/io.cpp | 20 -- src/MIBV2IONode.cpp | 207 ------------------ src/MIBV3IONode.cpp | 182 ++++++++++++++- 20 files changed, 254 insertions(+), 609 deletions(-) delete mode 100644 config/etc/addrtab/v7xx/kerberos_mib_v2/ipbus_freq_ctr.xml delete mode 100644 config/etc/addrtab/v7xx/kerberos_mib_v2/opencores_i2c.xml delete mode 100644 config/etc/addrtab/v7xx/kerberos_mib_v2/pdts_echo_mon.xml delete mode 100644 config/etc/addrtab/v7xx/kerberos_mib_v2/pdts_ep_mon.xml delete mode 100644 config/etc/addrtab/v7xx/kerberos_mib_v2/pdts_global.xml delete mode 100644 config/etc/addrtab/v7xx/kerberos_mib_v2/pdts_master.xml delete mode 100644 config/etc/addrtab/v7xx/kerberos_mib_v2/pdts_mib_v2_io.xml delete mode 100644 config/etc/addrtab/v7xx/kerberos_mib_v2/pdts_phase_comparator.xml delete mode 100644 config/etc/addrtab/v7xx/kerberos_mib_v2/pdts_scmd_gen.xml delete mode 100644 config/etc/addrtab/v7xx/kerberos_mib_v2/pdts_timestamp_comparator.xml delete mode 100644 config/etc/addrtab/v7xx/kerberos_mib_v2/pdts_timing_source_mux.xml delete mode 100644 config/etc/addrtab/v7xx/kerberos_mib_v2/pdts_ts_source.xml delete mode 100644 config/etc/addrtab/v7xx/kerberos_mib_v2/pdts_upstream_cdr.xml delete mode 100644 config/etc/addrtab/v7xx/kerberos_mib_v2/pdts_upstream_mux.xml delete mode 100644 config/etc/addrtab/v7xx/kerberos_mib_v2/top_mib_v2.xml delete mode 100644 include/timing/MIBV2IONode.hpp delete mode 100644 src/MIBV2IONode.cpp diff --git a/config/etc/addrtab/v7xx/kerberos_mib_v2/ipbus_freq_ctr.xml b/config/etc/addrtab/v7xx/kerberos_mib_v2/ipbus_freq_ctr.xml deleted file mode 100644 index 8c22d96a..00000000 --- a/config/etc/addrtab/v7xx/kerberos_mib_v2/ipbus_freq_ctr.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff --git a/config/etc/addrtab/v7xx/kerberos_mib_v2/opencores_i2c.xml b/config/etc/addrtab/v7xx/kerberos_mib_v2/opencores_i2c.xml deleted file mode 100644 index e313799a..00000000 --- a/config/etc/addrtab/v7xx/kerberos_mib_v2/opencores_i2c.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/config/etc/addrtab/v7xx/kerberos_mib_v2/pdts_echo_mon.xml b/config/etc/addrtab/v7xx/kerberos_mib_v2/pdts_echo_mon.xml deleted file mode 100644 index 52154375..00000000 --- a/config/etc/addrtab/v7xx/kerberos_mib_v2/pdts_echo_mon.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/config/etc/addrtab/v7xx/kerberos_mib_v2/pdts_ep_mon.xml b/config/etc/addrtab/v7xx/kerberos_mib_v2/pdts_ep_mon.xml deleted file mode 100644 index d99e8d38..00000000 --- a/config/etc/addrtab/v7xx/kerberos_mib_v2/pdts_ep_mon.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/config/etc/addrtab/v7xx/kerberos_mib_v2/pdts_global.xml b/config/etc/addrtab/v7xx/kerberos_mib_v2/pdts_global.xml deleted file mode 100644 index ad4293fa..00000000 --- a/config/etc/addrtab/v7xx/kerberos_mib_v2/pdts_global.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - diff --git a/config/etc/addrtab/v7xx/kerberos_mib_v2/pdts_master.xml b/config/etc/addrtab/v7xx/kerberos_mib_v2/pdts_master.xml deleted file mode 100644 index c9726dfe..00000000 --- a/config/etc/addrtab/v7xx/kerberos_mib_v2/pdts_master.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/config/etc/addrtab/v7xx/kerberos_mib_v2/pdts_mib_v2_io.xml b/config/etc/addrtab/v7xx/kerberos_mib_v2/pdts_mib_v2_io.xml deleted file mode 100644 index 85791524..00000000 --- a/config/etc/addrtab/v7xx/kerberos_mib_v2/pdts_mib_v2_io.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/config/etc/addrtab/v7xx/kerberos_mib_v2/pdts_phase_comparator.xml b/config/etc/addrtab/v7xx/kerberos_mib_v2/pdts_phase_comparator.xml deleted file mode 100644 index dfe45a9e..00000000 --- a/config/etc/addrtab/v7xx/kerberos_mib_v2/pdts_phase_comparator.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - diff --git a/config/etc/addrtab/v7xx/kerberos_mib_v2/pdts_scmd_gen.xml b/config/etc/addrtab/v7xx/kerberos_mib_v2/pdts_scmd_gen.xml deleted file mode 100644 index 034da4c3..00000000 --- a/config/etc/addrtab/v7xx/kerberos_mib_v2/pdts_scmd_gen.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/config/etc/addrtab/v7xx/kerberos_mib_v2/pdts_timestamp_comparator.xml b/config/etc/addrtab/v7xx/kerberos_mib_v2/pdts_timestamp_comparator.xml deleted file mode 100644 index fd0cadb2..00000000 --- a/config/etc/addrtab/v7xx/kerberos_mib_v2/pdts_timestamp_comparator.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/config/etc/addrtab/v7xx/kerberos_mib_v2/pdts_timing_source_mux.xml b/config/etc/addrtab/v7xx/kerberos_mib_v2/pdts_timing_source_mux.xml deleted file mode 100644 index d17d5bf1..00000000 --- a/config/etc/addrtab/v7xx/kerberos_mib_v2/pdts_timing_source_mux.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/config/etc/addrtab/v7xx/kerberos_mib_v2/pdts_ts_source.xml b/config/etc/addrtab/v7xx/kerberos_mib_v2/pdts_ts_source.xml deleted file mode 100644 index 92aeab65..00000000 --- a/config/etc/addrtab/v7xx/kerberos_mib_v2/pdts_ts_source.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - diff --git a/config/etc/addrtab/v7xx/kerberos_mib_v2/pdts_upstream_cdr.xml b/config/etc/addrtab/v7xx/kerberos_mib_v2/pdts_upstream_cdr.xml deleted file mode 100644 index 24834f4a..00000000 --- a/config/etc/addrtab/v7xx/kerberos_mib_v2/pdts_upstream_cdr.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff --git a/config/etc/addrtab/v7xx/kerberos_mib_v2/pdts_upstream_mux.xml b/config/etc/addrtab/v7xx/kerberos_mib_v2/pdts_upstream_mux.xml deleted file mode 100644 index ab3399f6..00000000 --- a/config/etc/addrtab/v7xx/kerberos_mib_v2/pdts_upstream_mux.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/config/etc/addrtab/v7xx/kerberos_mib_v2/top_mib_v2.xml b/config/etc/addrtab/v7xx/kerberos_mib_v2/top_mib_v2.xml deleted file mode 100644 index 1a2bfaab..00000000 --- a/config/etc/addrtab/v7xx/kerberos_mib_v2/top_mib_v2.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/include/timing/MIBV2IONode.hpp b/include/timing/MIBV2IONode.hpp deleted file mode 100644 index 3c305445..00000000 --- a/include/timing/MIBV2IONode.hpp +++ /dev/null @@ -1,110 +0,0 @@ -/** - * @file MIBV2IONode.hpp - * - * MIBV2IONode is a class providing an interface - * to the MIB V2 IO firmware block. - * - * This is part of the DUNE DAQ Software Suite, copyright 2020. - * Licensing/copyright details are in the COPYING file that you should have - * received with this code. - */ - -#ifndef TIMING_INCLUDE_TIMING_MIBV2IONODE_HPP_ -#define TIMING_INCLUDE_TIMING_MIBV2IONODE_HPP_ - -// PDT Headers -#include "TimingIssues.hpp" -#include "timing/IONode.hpp" - -// uHal Headers -#include "uhal/DerivedNode.hpp" - -// C++ Headers -#include -#include - -namespace dunedaq { -namespace timing { - -/** - * @brief Class for the timing FMC board. - */ -class MIBV2IONode : public IONode -{ - UHAL_DERIVEDNODE(MIBV2IONode) - -public: - explicit MIBV2IONode(const uhal::Node& node); - virtual ~MIBV2IONode(); - - /** - * @brief Get the UID address parameter name. - * - * @return { description_of_the_return_value } - */ - std::string get_uid_address_parameter_name() const override; - - /** - * @brief Get status string, optionally print. - */ - std::string get_status(bool print_out = false) const override; - - /** - * @brief Reset MIB v2 IO. - */ - void reset(const std::string& clock_config_file) const override; - - /** - * @brief Reset IO, with clock file look up. - */ - void reset(const ClockSource& clock_source) const override; - - /** - * @brief Reset PLL. - */ - void reset_pll() const override; - - /** - * @brief Switch clock input, with clock file look up and upload if necessary - */ - void switch_clock_source(const ClockSource& clock_source) const; - - /** - * @brief Print status of on-board SFP. - */ - std::string get_sfp_status(uint32_t sfp_id, bool print_out = false) const override; // NOLINT(build/unsigned) - - /** - * @brief control tx laser of on-board SFP softly (I2C command) - */ - void switch_sfp_soft_tx_control_bit(uint32_t sfp_id, bool turn_on) const override; // NOLINT(build/unsigned) - - /** - * @brief Clocks ready? - */ - bool clocks_ok() const override; - - /** - * @brief control tx laser of on-board SFP - */ - void switch_sfp_tx(uint32_t sfp_id, bool turn_on) const override; // NOLINT(build/unsigned) - - /** - * @brief Fill hardware monitoring structure. - */ - //void get_info(timinghardwareinfo::TimingMIBV2MonitorData& mon_data) const; - - /** - * @brief Give info to collector. - */ - // void get_info(opmonlib::InfoCollector& ci, int level) const override; - -private: - void validate_sfp_id(uint32_t sfp_id) const; // NOLINT(build/unsigned) - void validate_amc_slot(uint32_t amc_slot) const; // NOLINT(build/unsigned) -}; - -} // namespace timing -} // namespace dunedaq - -#endif // TIMING_INCLUDE_TIMING_MIBV2IONODE_HPP_ diff --git a/include/timing/MIBV3IONode.hpp b/include/timing/MIBV3IONode.hpp index 79a56d02..4004018d 100644 --- a/include/timing/MIBV3IONode.hpp +++ b/include/timing/MIBV3IONode.hpp @@ -2,18 +2,19 @@ * @file MIBV3IONode.hpp * * MIBV3IONode is a class providing an interface - * to the MIB V3 IO firmware block. + * to the MIB V2 IO firmware block. * * This is part of the DUNE DAQ Software Suite, copyright 2020. * Licensing/copyright details are in the COPYING file that you should have * received with this code. */ -#ifndef TIMING_INCLUDE_TIMING_MIBV3IONODE_HPP_ -#define TIMING_INCLUDE_TIMING_MIBV3IONODE_HPP_ +#ifndef TIMING_INCLUDE_TIMING_MIBV3IONode_HPP_ +#define TIMING_INCLUDE_TIMING_MIBV3IONode_HPP_ // PDT Headers -#include "timing/MIBV2IONode.hpp" +#include "TimingIssues.hpp" +#include "timing/IONode.hpp" // uHal Headers #include "uhal/DerivedNode.hpp" @@ -28,16 +29,82 @@ namespace timing { /** * @brief Class for the timing FMC board. */ -class MIBV3IONode : public MIBV2IONode +class MIBV3IONode : public IONode { UHAL_DERIVEDNODE(MIBV3IONode) public: explicit MIBV3IONode(const uhal::Node& node); virtual ~MIBV3IONode(); + + /** + * @brief Get the UID address parameter name. + * + * @return { description_of_the_return_value } + */ + std::string get_uid_address_parameter_name() const override; + + /** + * @brief Get status string, optionally print. + */ + std::string get_status(bool print_out = false) const override; + + /** + * @brief Reset MIB v2 IO. + */ + void reset(const std::string& clock_config_file) const override; + + /** + * @brief Reset IO, with clock file look up. + */ + void reset(const ClockSource& clock_source) const override; + + /** + * @brief Reset PLL. + */ + void reset_pll() const override; + + /** + * @brief Switch clock input, with clock file look up and upload if necessary + */ + void switch_clock_source(const ClockSource& clock_source) const; + + /** + * @brief Print status of on-board SFP. + */ + std::string get_sfp_status(uint32_t sfp_id, bool print_out = false) const override; // NOLINT(build/unsigned) + + /** + * @brief control tx laser of on-board SFP softly (I2C command) + */ + void switch_sfp_soft_tx_control_bit(uint32_t sfp_id, bool turn_on) const override; // NOLINT(build/unsigned) + + /** + * @brief Clocks ready? + */ + bool clocks_ok() const override; + + /** + * @brief control tx laser of on-board SFP + */ + void switch_sfp_tx(uint32_t sfp_id, bool turn_on) const override; // NOLINT(build/unsigned) + + /** + * @brief Fill hardware monitoring structure. + */ + //void get_info(timinghardwareinfo::TimingMIBV3MonitorData& mon_data) const; + + /** + * @brief Give info to collector. + */ + // void get_info(opmonlib::InfoCollector& ci, int level) const override; + +private: + void validate_sfp_id(uint32_t sfp_id) const; // NOLINT(build/unsigned) + void validate_amc_slot(uint32_t amc_slot) const; // NOLINT(build/unsigned) }; } // namespace timing } // namespace dunedaq -#endif // TIMING_INCLUDE_TIMING_MIBV3IONODE_HPP_ +#endif // TIMING_INCLUDE_TIMING_MIBV3IONode_HPP_ diff --git a/pybindsrc/io.cpp b/pybindsrc/io.cpp index 63e0ca9e..ae59a750 100644 --- a/pybindsrc/io.cpp +++ b/pybindsrc/io.cpp @@ -15,7 +15,6 @@ #include "timing/TLUIONode.hpp" #include "timing/MIBIONode.hpp" #include "timing/SwitchyardNode.hpp" -#include "timing/MIBV2IONode.hpp" #include "timing/MIBV3IONode.hpp" #include "timing/GIBIONode.hpp" #include "timing/GIBV2IONode.hpp" @@ -166,25 +165,6 @@ register_io(py::module& m) .def("configure_master_source", &timing::SwitchyardNode::configure_master_source, py::arg("master_source"), py::arg("dispatch") = true) .def("configure_endpoint_source", &timing::SwitchyardNode::configure_endpoint_source, py::arg("endpoint_source"), py::arg("dispatch") = true); - py::class_(m, "MIBV2IONode") - .def(py::init()) - .def( - "reset", &timing::MIBV2IONode::reset, py::arg("clock_config_file")) - .def( - "reset", &timing::MIBV2IONode::reset, py::arg("clock_source")) - .def("soft_reset", &timing::MIBV2IONode::soft_reset) - .def("read_firmware_frequency", &timing::MIBV2IONode::read_firmware_frequency) - .def("get_clock_frequencies_table", &timing::MIBV2IONode::get_clock_frequencies_table, py::arg("print_out") = false) - .def("get_status", &timing::MIBV2IONode::get_status, py::arg("print_out") = false) - .def("get_pll_status", &timing::MIBV2IONode::get_pll_status, py::arg("print_out") = false) - .def("get_pll", &timing::MIBV2IONode::get_pll) - .def("get_hardware_info", &timing::MIBV2IONode::get_hardware_info, py::arg("print_out") = false) - .def("get_sfp_status", &timing::MIBV2IONode::get_sfp_status, py::arg("sfp_id"), py::arg("print_out") = false) - .def("switch_sfp_soft_tx_control_bit", &timing::MIBV2IONode::switch_sfp_soft_tx_control_bit) - .def("switch_sfp_tx", &timing::MIBV2IONode::switch_sfp_tx) - ; - - // TODO can we add inheritance?, dlindebaum, 2026.01.09 py::class_(m, "MIBV3IONode") .def(py::init()) .def( diff --git a/src/MIBV2IONode.cpp b/src/MIBV2IONode.cpp deleted file mode 100644 index 068c9153..00000000 --- a/src/MIBV2IONode.cpp +++ /dev/null @@ -1,207 +0,0 @@ -/** - * @file MIBV2IONode.cpp - * - * This is part of the DUNE DAQ Software Suite, copyright 2020. - * Licensing/copyright details are in the COPYING file that you should have - * received with this code. - */ - -#include "timing/MIBV2IONode.hpp" - -#include -#include - -namespace dunedaq { -namespace timing { - -UHAL_REGISTER_DERIVED_NODE(MIBV2IONode) - -//----------------------------------------------------------------------------- -MIBV2IONode::MIBV2IONode(const uhal::Node& node) - : IONode(node, "i2c", "i2c", { "PLL" }, { "OSC", "PLL", "EP 0", "EP 1", "EP 2" }, { "sfp0_i2c", "sfp1_i2c", "sfp2_i2c" }) -{ -} -//----------------------------------------------------------------------------- - -//----------------------------------------------------------------------------- -MIBV2IONode::~MIBV2IONode() {} -//----------------------------------------------------------------------------- - -//----------------------------------------------------------------------------- -std::string -MIBV2IONode::get_uid_address_parameter_name() const -{ - return "UID_PROM"; -} -//----------------------------------------------------------------------------- - -//----------------------------------------------------------------------------- -std::string -MIBV2IONode::get_status(bool print_out) const -{ - std::stringstream status; - - auto subnodes = read_sub_nodes(getNode("csr.stat")); - status << format_reg_table(subnodes, "MIB IO state"); - - if (print_out) - TLOG() << std::endl << status.str(); - return status.str(); -} -//----------------------------------------------------------------------------- - -//----------------------------------------------------------------------------- -void -MIBV2IONode::reset(const std::string& clock_config_file) const -{ - write_soft_reset_register(); - - millisleep(1000); - - // Upload config file to PLL - configure_pll(clock_config_file); - - // Reset mmcm - getNode("csr.ctrl.rst").write(0x1); - getNode("csr.ctrl.rst").write(0x0); - - getClient().dispatch(); - - TLOG() << "Reset done"; -} -//----------------------------------------------------------------------------- - -//----------------------------------------------------------------------------- -void -MIBV2IONode::reset(const ClockSource& clock_source) const -{ - IONode::reset(clock_source); - - switch_clock_source(clock_source); -} -//----------------------------------------------------------------------------- - -//----------------------------------------------------------------------------- -void MIBV2IONode::reset_pll() const -{ -} -//----------------------------------------------------------------------------- - -//----------------------------------------------------------------------------- -void -MIBV2IONode::switch_clock_source(const ClockSource& clock_source) const -{ - if (clock_source != kFreeRun) - { - getNode("csr.ctrl.pll_in_sel").write(clock_source); - getClient().dispatch(); - } -} -//----------------------------------------------------------------------------- - -//----------------------------------------------------------------------------- -std::string -MIBV2IONode::get_sfp_status(uint32_t sfp_id, bool print_out) const { // NOLINT(build/unsigned) - std::stringstream status; - - validate_sfp_id(sfp_id); - - auto sfp = get_i2c_device(m_sfp_i2c_buses.at(sfp_id), "SFP_EEProm"); - - status << "SFP " << sfp_id << ":" << std::endl; - status << sfp->get_status(); - - if (print_out) - TLOG() << status.str(); - - return status.str(); -} -//----------------------------------------------------------------------------- - -//----------------------------------------------------------------------------- -bool -MIBV2IONode::clocks_ok() const -{ - std::stringstream status; - - auto states = read_sub_nodes(getNode("csr.stat")); - bool pll_ok = states.find("pll_ok")->second.value(); - bool mmcm_ok = states.find("mmcm_ok")->second.value(); - - TLOG_DEBUG(5) << "pll ok: " << pll_ok << ", mmcm ok: " << mmcm_ok; - - return pll_ok && mmcm_ok; -} -//----------------------------------------------------------------------------- - -//----------------------------------------------------------------------------- -void -MIBV2IONode::switch_sfp_soft_tx_control_bit(uint32_t sfp_id, bool turn_on) const { // NOLINT(build/unsigned) - validate_sfp_id(sfp_id); - - auto sfp = get_i2c_device(m_sfp_i2c_buses.at(sfp_id), "SFP_EEProm"); - sfp->switch_soft_tx_control_bit(turn_on); -} -//----------------------------------------------------------------------------- - -//----------------------------------------------------------------------------- -void -MIBV2IONode::switch_sfp_tx(uint32_t /*sfp_id*/, bool /*turn_on*/) const // NOLINT(build/unsigned) -{ - // TODO firmware support needed - //validate_sfp_id(sfp_id); - - //uint8_t current_sfp_tx_control_flags = getNode("csr.ctrl.sfp_tx_disable").read(); // NOLINT(build/unsigned) - //getClient().dispatch(); - - //uint8_t new_sfp_tx_control_flags; // NOLINT(build/unsigned) - //if (turn_on) - //{ - // new_sfp_tx_control_flags = current_sfp_tx_control_flags & ~(1UL << sfp_id); - //} - //else - //{ - // new_sfp_tx_control_flags = current_sfp_tx_control_flags | (1UL << sfp_id); - //} - - //getNode("csr.ctrl.sfp_tx_disable").write(new_sfp_tx_control_flags); - //getClient().dispatch(); -} -//----------------------------------------------------------------------------- - -//----------------------------------------------------------------------------- -//void -//MIBV2IONode::get_info(timinghardwareinfo::TimingMIBV2MonitorData& mon_data) const -//{ - // TODO -//} -//----------------------------------------------------------------------------- - -//----------------------------------------------------------------------------- -// void -// MIBV2IONode::get_info(opmonlib::InfoCollector& /*ci*/, int /*level*/) const -// { -// // TO DO -// } -//----------------------------------------------------------------------------- - -//----------------------------------------------------------------------------- -void -MIBV2IONode::validate_sfp_id(uint32_t sfp_id) const { // NOLINT(build/unsigned) - // on this board we have 3 upstream SFPs - if (sfp_id > 2) { - throw InvalidSFPId(ERS_HERE, format_reg_value(sfp_id)); - } -} -//----------------------------------------------------------------------------- - -//----------------------------------------------------------------------------- -void -MIBV2IONode::validate_amc_slot(uint32_t amc_slot) const { // NOLINT(build/unsigned) - if (amc_slot < 1 || amc_slot > 12) { - throw InvalidAMCSlot(ERS_HERE, format_reg_value(amc_slot, 10)); - } -} -//----------------------------------------------------------------------------- -} // namespace timing -} // namespace dunedaq diff --git a/src/MIBV3IONode.cpp b/src/MIBV3IONode.cpp index 32c91d5f..cec78313 100644 --- a/src/MIBV3IONode.cpp +++ b/src/MIBV3IONode.cpp @@ -8,6 +8,9 @@ #include "timing/MIBV3IONode.hpp" +#include +#include + namespace dunedaq { namespace timing { @@ -15,7 +18,7 @@ UHAL_REGISTER_DERIVED_NODE(MIBV3IONode) //----------------------------------------------------------------------------- MIBV3IONode::MIBV3IONode(const uhal::Node& node) - : MIBV2IONode(node) + : IONode(node, "i2c", "i2c", { "PLL" }, { "OSC", "PLL", "EP 0", "EP 1", "EP 2" }, { "sfp0_i2c", "sfp1_i2c", "sfp2_i2c" }) { } //----------------------------------------------------------------------------- @@ -23,5 +26,182 @@ MIBV3IONode::MIBV3IONode(const uhal::Node& node) //----------------------------------------------------------------------------- MIBV3IONode::~MIBV3IONode() {} //----------------------------------------------------------------------------- + +//----------------------------------------------------------------------------- +std::string +MIBV3IONode::get_uid_address_parameter_name() const +{ + return "UID_PROM"; +} +//----------------------------------------------------------------------------- + +//----------------------------------------------------------------------------- +std::string +MIBV3IONode::get_status(bool print_out) const +{ + std::stringstream status; + + auto subnodes = read_sub_nodes(getNode("csr.stat")); + status << format_reg_table(subnodes, "MIB IO state"); + + if (print_out) + TLOG() << std::endl << status.str(); + return status.str(); +} +//----------------------------------------------------------------------------- + +//----------------------------------------------------------------------------- +void +MIBV3IONode::reset(const std::string& clock_config_file) const +{ + write_soft_reset_register(); + + millisleep(1000); + + // Upload config file to PLL + configure_pll(clock_config_file); + + // Reset mmcm + getNode("csr.ctrl.rst").write(0x1); + getNode("csr.ctrl.rst").write(0x0); + + getClient().dispatch(); + + TLOG() << "Reset done"; +} +//----------------------------------------------------------------------------- + +//----------------------------------------------------------------------------- +void +MIBV3IONode::reset(const ClockSource& clock_source) const +{ + IONode::reset(clock_source); + + switch_clock_source(clock_source); +} +//----------------------------------------------------------------------------- + +//----------------------------------------------------------------------------- +void MIBV3IONode::reset_pll() const +{ +} +//----------------------------------------------------------------------------- + +//----------------------------------------------------------------------------- +void +MIBV3IONode::switch_clock_source(const ClockSource& clock_source) const +{ + if (clock_source != kFreeRun) + { + getNode("csr.ctrl.pll_in_sel").write(clock_source); + getClient().dispatch(); + } +} +//----------------------------------------------------------------------------- + +//----------------------------------------------------------------------------- +std::string +MIBV3IONode::get_sfp_status(uint32_t sfp_id, bool print_out) const { // NOLINT(build/unsigned) + std::stringstream status; + + validate_sfp_id(sfp_id); + + auto sfp = get_i2c_device(m_sfp_i2c_buses.at(sfp_id), "SFP_EEProm"); + + status << "SFP " << sfp_id << ":" << std::endl; + status << sfp->get_status(); + + if (print_out) + TLOG() << status.str(); + + return status.str(); +} +//----------------------------------------------------------------------------- + +//----------------------------------------------------------------------------- +bool +MIBV3IONode::clocks_ok() const +{ + std::stringstream status; + + auto states = read_sub_nodes(getNode("csr.stat")); + bool pll_ok = states.find("pll_ok")->second.value(); + bool mmcm_ok = states.find("mmcm_ok")->second.value(); + + TLOG_DEBUG(5) << "pll ok: " << pll_ok << ", mmcm ok: " << mmcm_ok; + + return pll_ok && mmcm_ok; +} +//----------------------------------------------------------------------------- + +//----------------------------------------------------------------------------- +void +MIBV3IONode::switch_sfp_soft_tx_control_bit(uint32_t sfp_id, bool turn_on) const { // NOLINT(build/unsigned) + validate_sfp_id(sfp_id); + + auto sfp = get_i2c_device(m_sfp_i2c_buses.at(sfp_id), "SFP_EEProm"); + sfp->switch_soft_tx_control_bit(turn_on); +} +//----------------------------------------------------------------------------- + +//----------------------------------------------------------------------------- +void +MIBV3IONode::switch_sfp_tx(uint32_t /*sfp_id*/, bool /*turn_on*/) const // NOLINT(build/unsigned) +{ + // TODO firmware support needed + //validate_sfp_id(sfp_id); + + //uint8_t current_sfp_tx_control_flags = getNode("csr.ctrl.sfp_tx_disable").read(); // NOLINT(build/unsigned) + //getClient().dispatch(); + + //uint8_t new_sfp_tx_control_flags; // NOLINT(build/unsigned) + //if (turn_on) + //{ + // new_sfp_tx_control_flags = current_sfp_tx_control_flags & ~(1UL << sfp_id); + //} + //else + //{ + // new_sfp_tx_control_flags = current_sfp_tx_control_flags | (1UL << sfp_id); + //} + + //getNode("csr.ctrl.sfp_tx_disable").write(new_sfp_tx_control_flags); + //getClient().dispatch(); +} +//----------------------------------------------------------------------------- + +//----------------------------------------------------------------------------- +//void +//MIBV3IONode::get_info(timinghardwareinfo::TimingMIBV3MonitorData& mon_data) const +//{ + // TODO +//} +//----------------------------------------------------------------------------- + +//----------------------------------------------------------------------------- +// void +// MIBV3IONode::get_info(opmonlib::InfoCollector& /*ci*/, int /*level*/) const +// { +// // TO DO +// } +//----------------------------------------------------------------------------- + +//----------------------------------------------------------------------------- +void +MIBV3IONode::validate_sfp_id(uint32_t sfp_id) const { // NOLINT(build/unsigned) + // on this board we have 3 upstream SFPs + if (sfp_id > 2) { + throw InvalidSFPId(ERS_HERE, format_reg_value(sfp_id)); + } +} +//----------------------------------------------------------------------------- + +//----------------------------------------------------------------------------- +void +MIBV3IONode::validate_amc_slot(uint32_t amc_slot) const { // NOLINT(build/unsigned) + if (amc_slot < 1 || amc_slot > 12) { + throw InvalidAMCSlot(ERS_HERE, format_reg_value(amc_slot, 10)); + } +} +//----------------------------------------------------------------------------- } // namespace timing } // namespace dunedaq From e89339edd6d406bf232469ed36f7475e5c25c65f Mon Sep 17 00:00:00 2001 From: Dennis Lindebaum Date: Tue, 13 Jan 2026 13:04:51 +0000 Subject: [PATCH 5/7] Updated address tables --- .../etc/addrtab/v7xx/kerberos_mib_v3/pdts_phase_comparator.xml | 2 +- .../addrtab/v7xx/kerberos_mib_v3/pdts_timestamp_comparator.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/config/etc/addrtab/v7xx/kerberos_mib_v3/pdts_phase_comparator.xml b/config/etc/addrtab/v7xx/kerberos_mib_v3/pdts_phase_comparator.xml index 9d7d4643..f072001e 100644 --- a/config/etc/addrtab/v7xx/kerberos_mib_v3/pdts_phase_comparator.xml +++ b/config/etc/addrtab/v7xx/kerberos_mib_v3/pdts_phase_comparator.xml @@ -1,4 +1,4 @@ - + diff --git a/config/etc/addrtab/v7xx/kerberos_mib_v3/pdts_timestamp_comparator.xml b/config/etc/addrtab/v7xx/kerberos_mib_v3/pdts_timestamp_comparator.xml index ca76c71d..51635972 100644 --- a/config/etc/addrtab/v7xx/kerberos_mib_v3/pdts_timestamp_comparator.xml +++ b/config/etc/addrtab/v7xx/kerberos_mib_v3/pdts_timestamp_comparator.xml @@ -1,4 +1,4 @@ - + From e157d453215959eb4467aa122a787853090d804b Mon Sep 17 00:00:00 2001 From: Stoyan Trilov Date: Tue, 13 Jan 2026 15:05:14 +0000 Subject: [PATCH 6/7] fix v3 ionode header guards --- include/timing/MIBV3IONode.hpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/include/timing/MIBV3IONode.hpp b/include/timing/MIBV3IONode.hpp index 4004018d..1731de1c 100644 --- a/include/timing/MIBV3IONode.hpp +++ b/include/timing/MIBV3IONode.hpp @@ -9,8 +9,8 @@ * received with this code. */ -#ifndef TIMING_INCLUDE_TIMING_MIBV3IONode_HPP_ -#define TIMING_INCLUDE_TIMING_MIBV3IONode_HPP_ +#ifndef TIMING_INCLUDE_TIMING_MIBV3IONODE_HPP_ +#define TIMING_INCLUDE_TIMING_MIBV3IONODE_HPP_ // PDT Headers #include "TimingIssues.hpp" @@ -107,4 +107,4 @@ class MIBV3IONode : public IONode } // namespace timing } // namespace dunedaq -#endif // TIMING_INCLUDE_TIMING_MIBV3IONode_HPP_ +#endif // TIMING_INCLUDE_TIMING_MIBV3IONODE_HPP_ From 86792bdb10c2c6f2e8223d35fa9c2af30f1e0e17 Mon Sep 17 00:00:00 2001 From: Stoyan Trilov Date: Tue, 13 Jan 2026 15:06:50 +0000 Subject: [PATCH 7/7] revert us mux sel mask for kerberos mib v3 --- config/etc/addrtab/v7xx/kerberos_mib_v3/pdts_upstream_mux.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/etc/addrtab/v7xx/kerberos_mib_v3/pdts_upstream_mux.xml b/config/etc/addrtab/v7xx/kerberos_mib_v3/pdts_upstream_mux.xml index 6679e8dc..ab3399f6 100644 --- a/config/etc/addrtab/v7xx/kerberos_mib_v3/pdts_upstream_mux.xml +++ b/config/etc/addrtab/v7xx/kerberos_mib_v3/pdts_upstream_mux.xml @@ -1,7 +1,7 @@ - +