summaryrefslogtreecommitdiffstats
path: root/sbe/hwpf/include/plat/plat_hw_access.H
diff options
context:
space:
mode:
Diffstat (limited to 'sbe/hwpf/include/plat/plat_hw_access.H')
-rw-r--r--sbe/hwpf/include/plat/plat_hw_access.H40
1 files changed, 32 insertions, 8 deletions
diff --git a/sbe/hwpf/include/plat/plat_hw_access.H b/sbe/hwpf/include/plat/plat_hw_access.H
index 765837fd..0860e83d 100644
--- a/sbe/hwpf/include/plat/plat_hw_access.H
+++ b/sbe/hwpf/include/plat/plat_hw_access.H
@@ -1,3 +1,27 @@
+/* IBM_PROLOG_BEGIN_TAG */
+/* This is an automatically generated prolog. */
+/* */
+/* $Source: sbe/hwpf/include/plat/plat_hw_access.H $ */
+/* */
+/* OpenPOWER sbe Project */
+/* */
+/* Contributors Listed Below - COPYRIGHT 2015,2016 */
+/* [+] 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 plat_hw_access.H
*
@@ -20,12 +44,12 @@
/* Write MSR */ \
mtmsr(msr_data); \
};
-
+
#define PLAT_GET_PIB_ERROR_MASK(_m_mask) \
uint8_t _m_mask; \
uint32_t _sem = mfmsr(); \
_m_mask = (uint8_t)((_sem & MSR_SEM) >> (32-(MSR_SEM_START_BIT + MSR_SEM_LEN)));
-
+
// Building block PPE instructions
#define PPE_MFMSR(_m_data) \
asm volatile \
@@ -45,13 +69,13 @@ asm volatile \
/// GetScom
#define PLAT_GETSCOM(_m_rc, _m_base, _m_offset, _m_data) \
- _m_rc = getscom(_m_base.getAddressOverlay(), (0 == _m_base.getAddressOverlay())?_m_offset:(uint32_t)(_m_offset & BITS(40,24)), _m_data);
-
+ _m_rc = getscom_abs(getEffectiveAddress(_m_base, _m_offset), _m_data)
+
/// PutScom
#define PLAT_PUTSCOM(_m_rc, _m_base, _m_offset, _m_data) \
- _m_rc = putscom(_m_base.getAddressOverlay(), (0 == _m_base.getAddressOverlay())?_m_offset:(uint32_t)(_m_offset & BITS(40,24)), _m_data);
-
-/// GetCFAM
+ _m_rc = putscom_abs(getEffectiveAddress(_m_base, _m_offset), _m_data)
+
+/// GetCFAM
#define PLAT_GETCFAM(_m_base, _m_offset, _m_data) \
static_assert( K == TARGET_TYPE_NONE, \
"getCfamRegister is not supported by PPE platforms")
@@ -60,7 +84,7 @@ asm volatile \
#define PLAT_PUTCFAM(_m_base, _m_offset, _m_data) \
static_assert( K == TARGET_TYPE_NONE, \
"putCfamRegister is not supported by PPE platforms")
-
+
/// ModifyCFAM
#define PLAT_MODCFAM(_m_base, _m_offset, _m_data, _m_mode) \
static_assert( K == TARGET_TYPE_NONE, \
OpenPOWER on IntegriCloud