summaryrefslogtreecommitdiffstats
path: root/src/import/chips/p9/procedures/hwp/memory/lib
diff options
context:
space:
mode:
Diffstat (limited to 'src/import/chips/p9/procedures/hwp/memory/lib')
-rw-r--r--src/import/chips/p9/procedures/hwp/memory/lib/utils/conversions.H8
-rw-r--r--src/import/chips/p9/procedures/hwp/memory/lib/utils/count_dimm.H1
2 files changed, 5 insertions, 4 deletions
diff --git a/src/import/chips/p9/procedures/hwp/memory/lib/utils/conversions.H b/src/import/chips/p9/procedures/hwp/memory/lib/utils/conversions.H
index b801ccf0b..c219b956f 100644
--- a/src/import/chips/p9/procedures/hwp/memory/lib/utils/conversions.H
+++ b/src/import/chips/p9/procedures/hwp/memory/lib/utils/conversions.H
@@ -92,7 +92,7 @@ inline T freq_to_ps(const T i_transfer_rate)
T l_dimm_freq = i_transfer_rate / 2;
// ps per clock (note value is rounded down)
- return CONVERT_PS_IN_A_US / l_dimm_freq;
+ return CONVERT_PS_IN_A_US / ((l_dimm_freq == 0) ? 1 : l_dimm_freq);
}
///
@@ -107,7 +107,7 @@ inline T ps_to_freq(const T i_time_in_ps)
// reverse of freq_to_ps function, solving for freq
// since running at DDR, data is transferred on both rising & falling edges
// hence the 2X factor
- return (2 * CONVERT_PS_IN_A_US) / i_time_in_ps;
+ return (2 * CONVERT_PS_IN_A_US) / ((i_time_in_ps == 0) ? 1 : i_time_in_ps);
}
///
@@ -140,7 +140,7 @@ inline uint64_t ps_to_cycles(const fapi2::Target<T>& i_target, const uint64_t i_
// Hoping the compiler figures out how to do these together.
l_divisor = freq_to_ps(l_freq);
- l_quotient = i_ps / l_divisor;
+ l_quotient = i_ps / ((l_divisor == 0) ? 1 : l_divisor);
l_remainder = i_ps % l_divisor;
// Make sure we add a cycle if there wasn't an even number of cycles in the input
@@ -222,7 +222,7 @@ inline uint64_t cycles_to_time(const fapi2::Target<T>& i_target, const uint64_t
{
// Hoping the compiler figures out how to do these together.
uint64_t l_dividend = cycles_to_ps(i_target, i_cycles);
- uint64_t l_quotient = l_dividend / D;
+ uint64_t l_quotient = l_dividend / ((D == 0) ? 1 : D);
uint64_t l_remainder = l_dividend % D;
// Make sure we add time if there wasn't an even number of cycles
diff --git a/src/import/chips/p9/procedures/hwp/memory/lib/utils/count_dimm.H b/src/import/chips/p9/procedures/hwp/memory/lib/utils/count_dimm.H
index b77763b1e..66d926b21 100644
--- a/src/import/chips/p9/procedures/hwp/memory/lib/utils/count_dimm.H
+++ b/src/import/chips/p9/procedures/hwp/memory/lib/utils/count_dimm.H
@@ -32,6 +32,7 @@
#include <fapi2.H>
#include <lib/utils/find.H>
+#include <lib/utils/c_str.H>
namespace mss
{
OpenPOWER on IntegriCloud