new file mode 100644
@@ -0,0 +1,60 @@
+From 3796175f32f0cc24c16809d8175d423bc7053de9 Mon Sep 17 00:00:00 2001
+From: StefanBruens <stefan.bruens@rwth-aachen.de>
+Date: Wed, 5 May 2021 18:24:58 +0200
+Subject: [PATCH 003/121] usrp2: Replace boost::math::iround/math::sign with
+ std::lround
+
+Instead of multiplying zone with the sign repeatedly just make
+the zone a signed value.
+
+See #437, #438
+
+Signed-off-by: Aaron Rossetto <aaron.rossetto@ni.com>
+[gwenhael.goavec-merou@trabucayre.com: backport from upstream]
+Signed-off-by: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>
+---
+ host/lib/usrp/usrp2/usrp2_impl.cpp | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/host/lib/usrp/usrp2/usrp2_impl.cpp b/host/lib/usrp/usrp2/usrp2_impl.cpp
+index d780a6c6b..59fd9849c 100644
+--- a/host/lib/usrp/usrp2/usrp2_impl.cpp
++++ b/host/lib/usrp/usrp2/usrp2_impl.cpp
+@@ -20,6 +20,7 @@
+ #include <boost/format.hpp>
+ #include <boost/math/special_functions.hpp>
+ #include <functional>
++#include <cmath>
+
+ using namespace uhd;
+ using namespace uhd::usrp;
+@@ -916,22 +917,21 @@ double usrp2_impl::set_tx_dsp_freq(const std::string& mb, const double freq_)
+ const double tick_rate = _tree->access<double>("/mboards/" + mb + "/tick_rate").get();
+
+ // calculate the DAC shift (multiples of rate)
+- const int sign = boost::math::sign(new_freq);
+- const int zone = std::min(boost::math::iround(new_freq / tick_rate), 2);
+- const double dac_shift = sign * zone * tick_rate;
++ const int zone = std::max(std::min(std::lround(new_freq / tick_rate), 2), -2);
++ const double dac_shift = zone * tick_rate;
+ new_freq -= dac_shift; // update FPGA DSP target freq
+ UHD_LOG_TRACE("USRP2",
+ "DSP Tuning: Requested " + std::to_string(freq_ / 1e6)
+ + " MHz, Using "
+ "Nyquist zone "
+- + std::to_string(sign * zone)
++ + std::to_string(zone)
+ + ", leftover DSP tuning: " + std::to_string(new_freq / 1e6) + " MHz.");
+
+ // set the DAC shift (modulation mode)
+ if (zone == 0) {
+ _mbc[mb].codec->set_tx_mod_mode(0); // no shift
+ } else {
+- _mbc[mb].codec->set_tx_mod_mode(sign * 4 / zone); // DAC interp = 4
++ _mbc[mb].codec->set_tx_mod_mode(4 / zone); // DAC interp = 4
+ }
+
+ return _mbc[mb].tx_dsp->set_freq(new_freq) + dac_shift; // actual freq
+--
+2.32.0
+
new file mode 100644
@@ -0,0 +1,28 @@
+From d1c6290fe9c8b01068abfca6f272e2a1e031b9de Mon Sep 17 00:00:00 2001
+From: StefanBruens <stefan.bruens@rwth-aachen.de>
+Date: Wed, 5 May 2021 18:49:40 +0200
+Subject: [PATCH 004/121] usrp2: Use explicit template type for std::min<T>
+
+Signed-off-by: Aaron Rossetto <aaron.rossetto@ni.com>
+[gwenhael.goavec-merou@trabucayre.com: backport from upstream]
+Signed-off-by: Gwenhael Goavec-Merou <gwenhael.goavec-merou@trabucayre.com>
+---
+ host/lib/usrp/usrp2/usrp2_impl.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/host/lib/usrp/usrp2/usrp2_impl.cpp b/host/lib/usrp/usrp2/usrp2_impl.cpp
+index 59fd9849c..e82a9fa71 100644
+--- a/host/lib/usrp/usrp2/usrp2_impl.cpp
++++ b/host/lib/usrp/usrp2/usrp2_impl.cpp
+@@ -917,7 +917,7 @@ double usrp2_impl::set_tx_dsp_freq(const std::string& mb, const double freq_)
+ const double tick_rate = _tree->access<double>("/mboards/" + mb + "/tick_rate").get();
+
+ // calculate the DAC shift (multiples of rate)
+- const int zone = std::max(std::min(std::lround(new_freq / tick_rate), 2), -2);
++ const int zone = std::max(std::min<int>(std::lround(new_freq / tick_rate), 2), -2);
+ const double dac_shift = zone * tick_rate;
+ new_freq -= dac_shift; // update FPGA DSP target freq
+ UHD_LOG_TRACE("USRP2",
+--
+2.32.0
+