summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--import/chips/p9/common/include/p9_obus_scom_addresses_fixes.H9
-rw-r--r--import/chips/p9/procedures/hwp/nest/p9_fbc_utils.C4
-rw-r--r--import/chips/p9/procedures/hwp/nest/p9_fbc_utils.H173
-rw-r--r--import/chips/p9/procedures/xml/attribute_info/nest_attributes.xml158
4 files changed, 177 insertions, 167 deletions
diff --git a/import/chips/p9/common/include/p9_obus_scom_addresses_fixes.H b/import/chips/p9/common/include/p9_obus_scom_addresses_fixes.H
index 7ff34b86..7b220d97 100644
--- a/import/chips/p9/common/include/p9_obus_scom_addresses_fixes.H
+++ b/import/chips/p9/common/include/p9_obus_scom_addresses_fixes.H
@@ -45,9 +45,14 @@
static const uint64_t SH_UNT_OBUS_1 = 514;
static const uint64_t SH_UNT_OBUS_2 = 515;
-REG64( OBUS_1_LL3_IOOL_CONTROL,
+REG64( OBUS_1_LL1_IOOL_CONTROL,
RULL(0x0A01080B), SH_UNT_OBUS_1, SH_ACS_SCOM );
-REG64( OBUS_2_LL3_IOOL_CONTROL,
+REG64( OBUS_1_LL1_LL1_LL1_PB_IOOL_FIR_REG,
+ RULL(0x0A010800), SH_UNT_OBUS_2, SH_ACS_SCOM );
+
+REG64( OBUS_2_LL2_IOOL_CONTROL,
RULL(0x0B01080B), SH_UNT_OBUS_2, SH_ACS_SCOM );
+REG64( OBUS_2_LL2_LL2_LL2_PB_IOOL_FIR_REG,
+ RULL(0x0B010800), SH_UNT_OBUS_2, SH_ACS_SCOM );
#endif
diff --git a/import/chips/p9/procedures/hwp/nest/p9_fbc_utils.C b/import/chips/p9/procedures/hwp/nest/p9_fbc_utils.C
index 2cc47ad3..2c11fdab 100644
--- a/import/chips/p9/procedures/hwp/nest/p9_fbc_utils.C
+++ b/import/chips/p9/procedures/hwp/nest/p9_fbc_utils.C
@@ -7,7 +7,7 @@
/* */
/* EKB Project */
/* */
-/* COPYRIGHT 2015 */
+/* COPYRIGHT 2015,2016 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -34,7 +34,7 @@
// *HWP FW Owner: Thi Tran <thi@us.ibm.com>
// *HWP Team: Nest
// *HWP Level: 2
-// *HWP Consumed by: SBE,HB
+// *HWP Consumed by: SBE,HB,FSP
//
//------------------------------------------------------------------------------
diff --git a/import/chips/p9/procedures/hwp/nest/p9_fbc_utils.H b/import/chips/p9/procedures/hwp/nest/p9_fbc_utils.H
index 7425d97f..b94e3b17 100644
--- a/import/chips/p9/procedures/hwp/nest/p9_fbc_utils.H
+++ b/import/chips/p9/procedures/hwp/nest/p9_fbc_utils.H
@@ -29,7 +29,7 @@
// *HWP FW Owner: Thi Tran <thi@us.ibm.com>
// *HWP Team: Nest
// *HWP Level: 2
-// *HWP Consumed by: SBE,HB
+// *HWP Consumed by: SBE,HB,FSP
//
#ifndef _P9_FBC_UTILS_H_
@@ -39,145 +39,11 @@
// Includes
//------------------------------------------------------------------------------
#include <fapi2.H>
-#include <p9_perv_scom_addresses.H>
-#include <p9_perv_scom_addresses_fld.H>
-#include <p9_misc_scom_addresses.H>
-#include <p9_misc_scom_addresses_fld.H>
-#include <p9_xbus_scom_addresses.H>
-#include <p9_xbus_scom_addresses_fld.H>
-#include <p9_obus_scom_addresses.H>
-
//------------------------------------------------------------------------------
// Constant definitions
//------------------------------------------------------------------------------
-// link types
-enum p9_fbc_link_t
-{
- XBUS = 0,
- ABUS = 1
-};
-
-// link constants
-const uint32_t P9_FBC_UTILS_MAX_X_LINKS = 7;
-const uint32_t P9_FBC_UTILS_MAX_A_LINKS = 4;
-
-// link control structure (DLL/TL/iovalid/FIRs)
-struct p9_fbc_link_ctl_t
-{
- p9_fbc_link_t link_type;
- uint8_t link_id;
- uint64_t iovalid_or_addr;
- uint64_t iovalid_clear_addr;
- uint8_t iovalid_field_start_bit;
- uint8_t ras_fir_field_bit;
- uint64_t dll_control_addr;
-};
-
-const p9_fbc_link_ctl_t P9_FBC_LINK_CTL_ARR[P9_FBC_UTILS_MAX_X_LINKS + P9_FBC_UTILS_MAX_A_LINKS] =
-{
- {
- XBUS,
- 0,
- PERV_XB_CPLT_CONF1_OR,
- PERV_XB_CPLT_CONF1_CLEAR,
- PERV_1_CPLT_CONF1_IOVALID_4D,
- PU_PB_CENT_SM1_EXTFIR_MASK_REG_PB_X0_FIR_ERR,
- XBUS_0_LL0_IOEL_CONTROL
- },
- {
- XBUS,
- 1,
- PERV_XB_CPLT_CONF1_OR,
- PERV_XB_CPLT_CONF1_CLEAR,
- PERV_1_CPLT_CONF1_IOVALID_6D,
- PU_PB_CENT_SM1_EXTFIR_MASK_REG_PB_X1_FIR_ERR,
- XBUS_1_LL1_IOEL_CONTROL
- },
- {
- XBUS,
- 2,
- PERV_XB_CPLT_CONF1_OR,
- PERV_XB_CPLT_CONF1_CLEAR,
- PERV_1_CPLT_CONF1_IOVALID_8D,
- PU_PB_CENT_SM1_EXTFIR_MASK_REG_PB_X2_FIR_ERR,
- XBUS_2_LL2_IOEL_CONTROL
- },
- {
- XBUS,
- 3,
- PERV_OB0_CPLT_CONF1_OR,
- PERV_OB0_CPLT_CONF1_CLEAR,
- PERV_1_CPLT_CONF1_IOVALID_4D,
- PU_PB_CENT_SM1_EXTFIR_MASK_REG_PB_X3_FIR_ERR,
- OBUS_0_LL0_IOOL_CONTROL
- },
- {
- XBUS,
- 4,
- PERV_OB1_CPLT_CONF1_OR,
- PERV_OB1_CPLT_CONF1_CLEAR,
- PERV_1_CPLT_CONF1_IOVALID_4D,
- PU_PB_CENT_SM1_EXTFIR_MASK_REG_PB_X4_FIR_ERR,
- OBUS_1_LL3_IOOL_CONTROL
- },
- {
- XBUS,
- 5,
- PERV_OB2_CPLT_CONF1_OR,
- PERV_OB2_CPLT_CONF1_CLEAR,
- PERV_1_CPLT_CONF1_IOVALID_4D,
- PU_PB_CENT_SM1_EXTFIR_MASK_REG_PB_X5_FIR_ERR,
- OBUS_2_LL3_IOOL_CONTROL
- },
- {
- XBUS,
- 6,
- PERV_OB3_CPLT_CONF1_OR,
- PERV_OB3_CPLT_CONF1_CLEAR,
- PERV_1_CPLT_CONF1_IOVALID_4D,
- PU_PB_CENT_SM1_EXTFIR_MASK_REG_PB_X6_FIR_ERR,
- OBUS_3_LL3_IOOL_CONTROL
- },
- {
- ABUS,
- 0,
- PERV_OB0_CPLT_CONF1_OR,
- PERV_OB0_CPLT_CONF1_CLEAR,
- PERV_1_CPLT_CONF1_IOVALID_4D,
- PU_PB_CENT_SM1_EXTFIR_MASK_REG_PB_X3_FIR_ERR,
- OBUS_0_LL0_IOOL_CONTROL
- },
- {
- ABUS,
- 1,
- PERV_OB1_CPLT_CONF1_OR,
- PERV_OB1_CPLT_CONF1_CLEAR,
- PERV_1_CPLT_CONF1_IOVALID_4D,
- PU_PB_CENT_SM1_EXTFIR_MASK_REG_PB_X4_FIR_ERR,
- OBUS_1_LL3_IOOL_CONTROL
- },
- {
- ABUS,
- 2,
- PERV_OB2_CPLT_CONF1_OR,
- PERV_OB2_CPLT_CONF1_CLEAR,
- PERV_1_CPLT_CONF1_IOVALID_4D,
- PU_PB_CENT_SM1_EXTFIR_MASK_REG_PB_X5_FIR_ERR,
- OBUS_2_LL3_IOOL_CONTROL
- },
- {
- ABUS,
- 3,
- PERV_OB3_CPLT_CONF1_OR,
- PERV_OB3_CPLT_CONF1_CLEAR,
- PERV_1_CPLT_CONF1_IOVALID_4D,
- PU_PB_CENT_SM1_EXTFIR_MASK_REG_PB_X6_FIR_ERR,
- OBUS_3_LL3_IOOL_CONTROL
- }
-};
-
// address range definitions
const uint64_t P9_FBC_UTILS_FBC_MAX_ADDRESS = ((1ULL << 56) - 1ULL);
const uint64_t P9_FBC_UTILS_CACHELINE_MASK = 0x7FULL;
@@ -191,45 +57,42 @@ const uint64_t FABRIC_CACHELINE_SIZE = 0x80;
// Function prototypes
//------------------------------------------------------------------------------
-extern "C" {
-
///
/// @brief Read FBC/ADU registers to determine state of fabric init and stop
/// control signals
///
-/// @param[in] i_target Reference to processor chip target
-/// @param[out] o_is_initialized State of fabric init signal
-/// @param[out] o_is_running State of fabric pervasive stop control
+/// @param[in] i_target Reference to processor chip target
+/// @param[out] o_is_initialized State of fabric init signal
+/// @param[out] o_is_running State of fabric pervasive stop control
/// @return fapi::ReturnCode, FAPI2_RC_SUCCESS if success, else error code.
///
- fapi2::ReturnCode p9_fbc_utils_get_fbc_state(
- const fapi2::Target<fapi2::TARGET_TYPE_PROC_CHIP>& i_target,
- bool& o_is_initialized,
- bool& o_is_running);
+fapi2::ReturnCode p9_fbc_utils_get_fbc_state(
+ const fapi2::Target<fapi2::TARGET_TYPE_PROC_CHIP>& i_target,
+ bool& o_is_initialized,
+ bool& o_is_running);
///
/// @brief Use ADU pMisc Mode register to clear fabric stop signal, overriding
/// a stop condition caused by a checkstop
///
-/// @param[in] i_target Reference to processor chip target
+/// @param[in] i_target Reference to processor chip target
/// @return fapi::ReturnCode, FAPI2_RC_SUCCESS if success, else error code.
///
- fapi2::ReturnCode p9_fbc_utils_override_fbc_stop(
- const fapi2::Target<fapi2::TARGET_TYPE_PROC_CHIP>& i_target);
+fapi2::ReturnCode p9_fbc_utils_override_fbc_stop(
+ const fapi2::Target<fapi2::TARGET_TYPE_PROC_CHIP>& i_target);
///
/// @brief Return base address origin (non-mirrored/mirrored) for this chip
///
-/// @param[in] i_target Reference to processor chip target
-/// @param[out] o_base_address_nm Non-mirrored base address for this chip
-/// @param[out] o_base_address_m Mirrored base address for this chip
+/// @param[in] i_target Reference to processor chip target
+/// @param[out] o_base_address_nm Non-mirrored base address for this chip
+/// @param[out] o_base_address_m Mirrored base address for this chip
/// @return fapi::ReturnCode, FAPI2_RC_SUCCESS if success, else error code.
///
- fapi2::ReturnCode p9_fbc_utils_get_chip_base_address(
- const fapi2::Target<fapi2::TARGET_TYPE_PROC_CHIP>& i_target,
- uint64_t& o_base_address_nm,
- uint64_t& o_base_address_m);
+fapi2::ReturnCode p9_fbc_utils_get_chip_base_address(
+ const fapi2::Target<fapi2::TARGET_TYPE_PROC_CHIP>& i_target,
+ uint64_t& o_base_address_nm,
+ uint64_t& o_base_address_m);
-} // extern "C"
#endif // _P9_FBC_UTILS_H_
diff --git a/import/chips/p9/procedures/xml/attribute_info/nest_attributes.xml b/import/chips/p9/procedures/xml/attribute_info/nest_attributes.xml
index a8c7bf06..254bd84e 100644
--- a/import/chips/p9/procedures/xml/attribute_info/nest_attributes.xml
+++ b/import/chips/p9/procedures/xml/attribute_info/nest_attributes.xml
@@ -148,18 +148,54 @@
</attribute>
<!-- ********************************************************************** -->
<attribute>
+ <id>ATTR_PROC_FABRIC_CORE_FLOOR_RATIO</id>
+ <targetType>TARGET_TYPE_SYSTEM</targetType>
+ <description>
+ Processor SMP core floor/nest frequency ratio
+ </description>
+ <valueType>uint8</valueType>
+ <enum>
+ RATIO_8_8 = 0x0,
+ RATIO_7_8 = 0x1,
+ RATIO_6_8 = 0x2,
+ RATIO_5_8 = 0x3,
+ RATIO_4_8 = 0x4,
+ RATIO_2_8 = 0x5
+ </enum>
+ <writeable/>
+</attribute>
+<!-- ********************************************************************** -->
+<attribute>
+ <id>ATTR_PROC_FABRIC_CORE_CEILING_RATIO</id>
+ <targetType>TARGET_TYPE_SYSTEM</targetType>
+ <description>
+ Processor SMP core celing/nest frequency ratio
+ </description>
+ <valueType>uint8</valueType>
+ <enum>
+ RATIO_8_8 = 0x0,
+ RATIO_7_8 = 0x1,
+ RATIO_6_8 = 0x2,
+ RATIO_5_8 = 0x3,
+ RATIO_4_8 = 0x4,
+ RATIO_2_8 = 0x5
+ </enum>
+ <writeable/>
+</attribute>
+<!-- ********************************************************************** -->
+<attribute>
<id>ATTR_PROC_FABRIC_PUMP_MODE</id>
<targetType>TARGET_TYPE_SYSTEM</targetType>
<description>
Processor SMP Fabric broadcast scope configuration.
- MODE1 = default = chip_is_node
- MODE2 = chip_is_group
+ CHIP_IS_NODE = MODE1 = default
+ CHIP_IS_GROUP = MODE2
Provided by the MRW.
</description>
<valueType>uint8</valueType>
<enum>
- MODE1 = 0x01,
- MODE2 = 0x02
+ CHIP_IS_NODE = 0x01,
+ CHIP_IS_GROUP = 0x02
</enum>
<platInit/>
</attribute>
@@ -192,7 +228,6 @@
Provided by the MRW.
</description>
<valueType>uint8</valueType>
- <array>4</array>
<enum>
SMP = 0x0,
CAPI = 0x1,
@@ -219,6 +254,25 @@
</attribute>
<!-- ********************************************************************** -->
<attribute>
+ <id>ATTR_PROC_FABRIC_OPTICS_CONFIG_MODE</id>
+ <targetType>TARGET_TYPE_PROC_CHIP</targetType>
+ <description>
+ Per-link optics configuration
+ 0 = default = SMP
+ 1 = CAPI 2.0
+ 2 = NV 2.0
+ </description>
+ <valueType>uint8</valueType>
+ <enum>
+ SMP = 0x0,
+ CAPI = 0x1,
+ NV = 0x2
+ </enum>
+ <array>4</array>
+ <writeable/>
+</attribute>
+<!-- ********************************************************************** -->
+<attribute>
<id>ATTR_PROC_FABRIC_CAPI_MODE</id>
<targetType>TARGET_TYPE_SYSTEM</targetType>
<description>
@@ -293,7 +347,6 @@
FALSE = 0x0,
TRUE = 0x1
</enum>
- <platInit/>
<writeable/>
</attribute>
<!-- ********************************************************************** -->
@@ -308,7 +361,6 @@
FALSE = 0x0,
TRUE = 0x1
</enum>
- <platInit/>
<writeable/>
</attribute>
<!-- ********************************************************************** -->
@@ -358,6 +410,19 @@
</attribute>
<!-- ********************************************************************** -->
<attribute>
+ <id>ATTR_PROC_FABRIC_X_ATTACHED_LINK_ID</id>
+ <targetType>TARGET_TYPE_PROC_CHIP</targetType>
+ <description>
+ For each fabric X link on this chip, specifies the link ID of the chip at the
+ receiving end of the link. Should be considered valid only if corresponding
+ ATTR_PROC_FABRIC_X_ATTACHED_CHIP_CNFG index is true.
+ </description>
+ <valueType>uint8</valueType>
+ <array>7</array>
+ <writeable/>
+</attribute>
+<!-- ********************************************************************** -->
+<attribute>
<id>ATTR_PROC_FABRIC_A_ATTACHED_CHIP_ID</id>
<targetType>TARGET_TYPE_PROC_CHIP</targetType>
<description>
@@ -371,6 +436,33 @@
</attribute>
<!-- ********************************************************************** -->
<attribute>
+ <id>ATTR_PROC_FABRIC_A_ATTACHED_LINK_ID</id>
+ <targetType>TARGET_TYPE_PROC_CHIP</targetType>
+ <description>
+ For each fabric A link on this chip, specifies the link ID of the chip at the
+ receiving end of the link. Should be considered valid only if corresponding
+ ATTR_PROC_FABRIC_A_ATTACHED_CHIP_CNFG index is true.
+ </description>
+ <valueType>uint8</valueType>
+ <array>4</array>
+ <writeable/>
+</attribute>
+<!-- ********************************************************************** -->
+<attribute>
+ <id>ATTR_PROC_FABRIC_X_AGGREGATE</id>
+ <targetType>TARGET_TYPE_PROC_CHIP</targetType>
+ <description>
+ Indicates if X links on this chip should be configured in aggregate mode.
+ </description>
+ <valueType>uint8</valueType>
+ <enum>
+ OFF = 0x0,
+ ON = 0x1
+ </enum>
+ <writeable/>
+</attribute>
+<!-- ********************************************************************** -->
+<attribute>
<id>ATTR_PROC_FABRIC_X_ADDR_DIS</id>
<targetType>TARGET_TYPE_PROC_CHIP</targetType>
<description>
@@ -388,6 +480,38 @@
</attribute>
<!-- ********************************************************************** -->
<attribute>
+ <id>ATTR_PROC_FABRIC_X_LINK_DELAY</id>
+ <targetType>TARGET_TYPE_PROC_CHIP</targetType>
+ <description>
+ Average of local/remote end link delay counter values.
+ Used to designate coherent link in aggregate configurations.
+ Should be considered valid only if corresponding ATTR_PROC_FABRIC_X_ATTACHED_CHIP_CNFG
+ index is true.
+ </description>
+ <valueType>uint32</valueType>
+ <array>7</array>
+ <enum>
+ OFF = 0x0,
+ ON = 0x1
+ </enum>
+ <writeable/>
+</attribute>
+<!-- ********************************************************************** -->
+<attribute>
+ <id>ATTR_PROC_FABRIC_A_AGGREGATE</id>
+ <targetType>TARGET_TYPE_PROC_CHIP</targetType>
+ <description>
+ Indicates if A links on this chip should be configured in aggregate mode.
+ </description>
+ <valueType>uint8</valueType>
+ <enum>
+ OFF = 0x0,
+ ON = 0x1
+ </enum>
+ <writeable/>
+</attribute>
+<!-- ********************************************************************** -->
+<attribute>
<id>ATTR_PROC_FABRIC_A_ADDR_DIS</id>
<targetType>TARGET_TYPE_PROC_CHIP</targetType>
<description>
@@ -405,6 +529,24 @@
</attribute>
<!-- ********************************************************************** -->
<attribute>
+ <id>ATTR_PROC_FABRIC_A_LINK_DELAY</id>
+ <targetType>TARGET_TYPE_PROC_CHIP</targetType>
+ <description>
+ Average of local/remote end link delay counter values.
+ Used to designate coherent link in aggregate configurations.
+ Should be considered valid only if corresponding ATTR_PROC_FABRIC_A_ATTACHED_CHIP_CNFG
+ index is true.
+ </description>
+ <valueType>uint32</valueType>
+ <array>4</array>
+ <enum>
+ OFF = 0x0,
+ ON = 0x1
+ </enum>
+ <writeable/>
+</attribute>
+<!-- ********************************************************************** -->
+<attribute>
<id>ATTR_PROC_EPS_GB_PERCENTAGE</id>
<targetType>TARGET_TYPE_SYSTEM</targetType>
<description>
@@ -450,7 +592,7 @@
Counter tier is index.
</description>
<valueType>uint32</valueType>
- <array>3</array>
+ <array>2</array>
<writeable/>
</attribute>
<!-- ********************************************************************** -->
OpenPOWER on IntegriCloud