diff options
author | Caleb Palmer <cnpalmer@us.ibm.com> | 2018-04-23 08:55:42 -0500 |
---|---|---|
committer | Zane C. Shelley <zshelle@us.ibm.com> | 2018-05-18 10:39:40 -0400 |
commit | 41a25f11016a7847565e323f42615e460354afa4 (patch) | |
tree | c83727db6669e6f9a52bec739db452a90bcf6165 /src/usr/diag/prdf/common | |
parent | 1b04e458595a9e9c5c04dd322f90d4c44129e111 (diff) | |
download | talos-hostboot-41a25f11016a7847565e323f42615e460354afa4.tar.gz talos-hostboot-41a25f11016a7847565e323f42615e460354afa4.zip |
PRD: Resume maint cmd support for MBA
Change-Id: I77b56983eba633104f8b15d6b608cb490c5be48d
RTC: 191647
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/57918
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Reviewed-by: Brian J. Stegmiller <bjs@us.ibm.com>
Reviewed-by: Benjamin J. Weisenbeck <bweisenb@us.ibm.com>
Reviewed-by: Matt Derksen <mderkse1@us.ibm.com>
Reviewed-by: Zane C. Shelley <zshelle@us.ibm.com>
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/59013
Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com>
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com>
Diffstat (limited to 'src/usr/diag/prdf/common')
-rw-r--r-- | src/usr/diag/prdf/common/plat/mem/prdfMemAddress.C | 11 | ||||
-rw-r--r-- | src/usr/diag/prdf/common/plat/mem/prdfMemAddress.H | 12 |
2 files changed, 22 insertions, 1 deletions
diff --git a/src/usr/diag/prdf/common/plat/mem/prdfMemAddress.C b/src/usr/diag/prdf/common/plat/mem/prdfMemAddress.C index 5893d6dc9..de44ed87e 100644 --- a/src/usr/diag/prdf/common/plat/mem/prdfMemAddress.C +++ b/src/usr/diag/prdf/common/plat/mem/prdfMemAddress.C @@ -103,6 +103,17 @@ MemAddr MemAddr::fromMaintAddr<TYPE_MBA>( uint64_t i_addr ) return MemAddr( MemRank(mrnk, srnk), bnk, row, col ); } +template<> +uint64_t MemAddr::toMaintAddr<TYPE_MBA>() const +{ + return ( ((uint64_t) iv_rnk.getMaster() << 60) | + ((uint64_t) iv_rnk.getSlave() << 57) | + ((uint64_t) iv_bnk << 53) | + ((uint64_t)(iv_row & 0x1ffff) << 36) | // r16-r0 + ((uint64_t) iv_col << 24) | + ((uint64_t)(iv_row & 0x20000) << 13) ); // r17 +} + //------------------------------------------------------------------------------ // Address Accessor Functions //------------------------------------------------------------------------------ diff --git a/src/usr/diag/prdf/common/plat/mem/prdfMemAddress.H b/src/usr/diag/prdf/common/plat/mem/prdfMemAddress.H index 4b1fc07fb..b0b86af04 100644 --- a/src/usr/diag/prdf/common/plat/mem/prdfMemAddress.H +++ b/src/usr/diag/prdf/common/plat/mem/prdfMemAddress.H @@ -87,12 +87,22 @@ class MemAddr static MemAddr fromReadAddr( uint64_t i_addr ); /** - * @brief Creates a MemAddr from a maintenance address. + * @brief Creates a MemAddr from the current maintenance address. * @param i_addr 64-bit address. */ template<TARGETING::TYPE T> static MemAddr fromMaintAddr( uint64_t i_addr ); + /** + * @brief Converts internal data structure to a maintenance address. + * @return A uint64_t version of the address. + * @note Does not include error type. This is because in most cases we + * will use this function to write out to hardware and in doing so + * we will want to clear the status bits anyway. + */ + template<TARGETING::TYPE T> + uint64_t toMaintAddr() const; + /** @return This address's rank. */ const MemRank& getRank() const { return iv_rnk; } |