diff options
author | Luke Mulkey <lwmulkey@us.ibm.com> | 2017-06-09 13:38:49 -0500 |
---|---|---|
committer | Daniel M. Crowell <dcrowell@us.ibm.com> | 2017-09-25 22:55:27 -0400 |
commit | 4930d04b18415303cac72d1b203719c1b9443cbd (patch) | |
tree | 8e09ec47f71f5e3beaa05a756ef12a006e2ccc43 | |
parent | 3027cb5ef916d5d47be892dfe4ef37b01e40861b (diff) | |
download | talos-hostboot-4930d04b18415303cac72d1b203719c1b9443cbd.tar.gz talos-hostboot-4930d04b18415303cac72d1b203719c1b9443cbd.zip |
Memory buffer vpd accessor functions
Patch set 1 is fapi1 version for comparison
Change-Id: I9b8c7bb634ee51df3960991fc853a38ae734bbd0
Original-Change-Id: I533ad241a5baa4c13b5b6db9207cf7016761370b
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/41627
Dev-Ready: Steven B. Janssen <janssens@us.ibm.com>
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Tested-by: Hostboot CI <hostboot-ci+hostboot@us.ibm.com>
Reviewed-by: Brent Wieman <bwieman@us.ibm.com>
Reviewed-by: ANDRE A. MARIN <aamarin@us.ibm.com>
Reviewed-by: Steven B. Janssen <janssens@us.ibm.com>
Reviewed-by: Jennifer A. Stofer <stofer@us.ibm.com>
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/46348
Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com>
Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com>
Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
-rw-r--r-- | src/import/chips/centaur/procedures/vpd_accessors/getMBvpdDram2NModeEnabled.C | 106 |
1 files changed, 106 insertions, 0 deletions
diff --git a/src/import/chips/centaur/procedures/vpd_accessors/getMBvpdDram2NModeEnabled.C b/src/import/chips/centaur/procedures/vpd_accessors/getMBvpdDram2NModeEnabled.C new file mode 100644 index 000000000..c58b38099 --- /dev/null +++ b/src/import/chips/centaur/procedures/vpd_accessors/getMBvpdDram2NModeEnabled.C @@ -0,0 +1,106 @@ +/* IBM_PROLOG_BEGIN_TAG */ +/* This is an automatically generated prolog. */ +/* */ +/* $Source: src/import/chips/centaur/procedures/vpd_accessors/getMBvpdDram2NModeEnabled.C $ */ +/* */ +/* OpenPOWER HostBoot Project */ +/* */ +/* Contributors Listed Below - COPYRIGHT 2017 */ +/* [+] International Business Machines Corp. */ +/* */ +/* */ +/* Licensed under the Apache License, Version 2.0 (the "License"); */ +/* you may not use this file except in compliance with the License. */ +/* You may obtain a copy of the License at */ +/* */ +/* http://www.apache.org/licenses/LICENSE-2.0 */ +/* */ +/* Unless required by applicable law or agreed to in writing, software */ +/* distributed under the License is distributed on an "AS IS" BASIS, */ +/* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or */ +/* implied. See the License for the specific language governing */ +/* permissions and limitations under the License. */ +/* */ +/* IBM_PROLOG_END_TAG */ +/// @file getMBvpdDram2NModeEnabled.C +/// @brief MBVPD Accessor for providing the ATTR_VPD_DRAM_2N_MODE_ENABLED attribute +/// +/// *HWP HWP Owner: Luke Mulkey <lwmulkey@us.ibm.com> +/// *HWP HWP Backup: Andre Marin <aamarin@us.ibm.com> +/// *HWP Team: Memory +/// *HWP Level: 2 +/// *HWP Consumed by: HB + +#include <stdint.h> + +// fapi support +#include <fapi2.H> +#include <getMBvpdDram2NModeEnabled.H> +#include <getMBvpdAttr.H> + +extern "C" +{ + +/// +/// @brief Get the ATTR_DRAM_2N_MODE_ENABLED FAPI attribute +/// +/// Return whether Dram 2N Mode is enabled based on the MR keyword +/// DRAM_2N_MODE value. The DRAM_2N_Mode values for both ports of the mba +/// must be equal, otherwise an error is returned. +/// +/// @param[in] i_mbaTarget - Reference to mba Target +/// @param[out] o_val - ATTR_VPD_DRAM_2N_MODE_ENABLED enumeration value +/// @return fapi::ReturnCode FAPI_RC_SUCCESS if success, else error code +/// + fapi2::ReturnCode getMBvpdDram2NModeEnabled( + const fapi2::Target<fapi2::TARGET_TYPE_MBA>& i_mbaTarget, + uint8_t& o_val) + { + fapi2::ReturnCode l_fapirc; + uint8_t l_dram2NMode [2] = {0, 0}; + const uint8_t DRAM_2N_MODE = 0x02; + + FAPI_DBG("getMBvpdDram2NModeEnabled: entry "); + + // Retrieve the Dram 2N Mode from the MR keyword + FAPI_EXEC_HWP(l_fapirc, + getMBvpdAttr, + i_mbaTarget, + fapi2::ATTR_CEN_VPD_DRAM_2N_MODE_ENABLED, + &l_dram2NMode, + sizeof(l_dram2NMode)); + + if (l_fapirc) + { + FAPI_ERR("getMBvpdDram2NModeEnabled: Read of VZ keyword failed"); + return l_fapirc; // break out with fapirc + } + + // ensure values match + FAPI_ASSERT(l_dram2NMode[0] == l_dram2NMode[1], + fapi2::CEN_MBVPD_DRAM_2N_MODE_NOT_EQUAL(). + set_PORT0(l_dram2NMode[0]). + set_PORT1(l_dram2NMode[1]). + set_MBA_TARGET(i_mbaTarget), + "getMBvpdDram2NModeEnabled:" + " ports should have same value 0x%02x != 0x%02x", + l_dram2NMode[0], l_dram2NMode[1]); + + // return value + if (DRAM_2N_MODE == l_dram2NMode[0] ) + { + o_val = fapi2::ENUM_ATTR_CEN_VPD_DRAM_2N_MODE_ENABLED_TRUE; + } + else + { + o_val = fapi2::ENUM_ATTR_CEN_VPD_DRAM_2N_MODE_ENABLED_FALSE; + } + + FAPI_DBG("getMBvpdDram2NModeEnabled: exit rc=0x%08x)", + static_cast<uint32_t>(l_fapirc)); + + fapi_try_exit: + return fapi2::current_err; + } + +} // extern "C" |