summaryrefslogtreecommitdiffstats
path: root/src/import
diff options
context:
space:
mode:
authorAdam Hale <adam.samuel.hale@ibm.com>2019-06-03 13:05:21 -0400
committerChristian R Geddes <crgeddes@us.ibm.com>2019-08-26 16:27:10 -0500
commit074a2dd38f9a0ed7b944be505ffa2eb327abc341 (patch)
tree1d64ab332767573d3b301381005a5fd36d669194 /src/import
parentbf2951c9b9189c61b2d9ca25bf15cb496b9f5a51 (diff)
downloadtalos-hostboot-074a2dd38f9a0ed7b944be505ffa2eb327abc341.tar.gz
talos-hostboot-074a2dd38f9a0ed7b944be505ffa2eb327abc341.zip
Axone int updates
Change-Id: I6468addadd23f6f252ade88eacfd6a1fd2f47025 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/82625 Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: PPE CI <ppe-ci+hostboot@us.ibm.com> Tested-by: Hostboot CI <hostboot-ci+hostboot@us.ibm.com> Tested-by: HWSV CI <hwsv-ci+hostboot@us.ibm.com> Reviewed-by: Mark Pizzutillo <mark.pizzutillo@ibm.com> Reviewed-by: Devon A Baughen <devon.baughen1@ibm.com> Reviewed-by: Jennifer A Stofer <stofer@us.ibm.com> Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/82636 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: Christian R Geddes <crgeddes@us.ibm.com>
Diffstat (limited to 'src/import')
-rw-r--r--src/import/chips/p9/initfiles/p9a.int.scan.initfile47
-rw-r--r--src/import/chips/p9/initfiles/p9a.int.scom.initfile178
-rw-r--r--src/import/chips/p9/procedures/hwp/initfiles/p9a_int_scan.C72
-rw-r--r--src/import/chips/p9/procedures/hwp/initfiles/p9a_int_scan.H47
-rw-r--r--src/import/chips/p9/procedures/hwp/initfiles/p9a_int_scan.mk36
-rw-r--r--src/import/chips/p9/procedures/hwp/initfiles/p9a_int_scom.C228
-rw-r--r--src/import/chips/p9/procedures/hwp/initfiles/p9a_int_scom.H45
-rw-r--r--src/import/chips/p9/procedures/hwp/initfiles/p9a_int_scom.mk27
-rw-r--r--src/import/chips/p9/procedures/xml/attribute_info/chip_ec_attributes.xml17
9 files changed, 697 insertions, 0 deletions
diff --git a/src/import/chips/p9/initfiles/p9a.int.scan.initfile b/src/import/chips/p9/initfiles/p9a.int.scan.initfile
new file mode 100644
index 000000000..745c936d3
--- /dev/null
+++ b/src/import/chips/p9/initfiles/p9a.int.scan.initfile
@@ -0,0 +1,47 @@
+#-- *!***************************************************************************
+#-- *!
+#-- *! OWNER NAME : David Kauer (dmkauer@us.ibm.com)
+#-- *!
+#-- *!***************************************************************************
+
+
+SyntaxVersion = 3
+
+target_type 0 TARGET_TYPE_PROC_CHIP;
+
+# Enabled for DD1 only
+ispy INT.INT_PC_LBS1_CMD_MMIO_LDST_CS [when=L && ATTR_CHIP_EC_FEATURE_P9N_INT_DD10] {
+ bits, spyv;
+ 5, 0b1;
+ 6, 0b1;
+}
+
+# Defect HW378025 / Nimbus DD1 only
+ispy INT.INT_PC_LBS1_REGS_CLOCKGATE_DIS_CS [when=L && ATTR_CHIP_EC_FEATURE_HW378025] {
+ spyv;
+ 0b1;
+}
+
+# Defect HW930007 / Nimbus DD1 only
+ispy INT.INT_PC.LBS2.VPC.P1.LCBCNTL_BLK.CLOCKGATE_DISABLE [when=L && ATTR_CHIP_EC_FEATURE_HW930007] {
+ spyv;
+ 0b1;
+}
+
+# Defect HW408972 / Nimbus DD1 & DD2
+ispy INT.INT_PC_LBS1_CRESP_MAC_CS [when=L && ATTR_CHIP_EC_FEATURE_HW408972] {
+ bits, spyv, expr;
+ 3, 0b1, ((ATTR_CHIP_EC_FEATURE_P9N_INT_DD10 == 1) || (ATTR_CHIP_EC_FEATURE_P9N_INT_DD20 == 1));
+ 4, 0b1, (ATTR_CHIP_EC_FEATURE_P9N_INT_DD21 == 1);
+}
+
+# Defect HW388874
+espy BRIDGE.PSIHB.ESB_OR_LSI_INTERRUPTS [when=L] {
+ spyv, expr;
+ ON, (ATTR_CHIP_EC_FEATURE_HW388874 == 0);
+}
+# HW441771 - Axone init to return to P9 behavior
+ispy INT.INT_VC_LBS6_ARX_CS_AXONE_DISABLE_CILOAD_ORDERINGS [when=L && ATTR_CHIP_EC_FEATURE_AXONE_HW441771] {
+ spyv;
+ 0b1;
+}
diff --git a/src/import/chips/p9/initfiles/p9a.int.scom.initfile b/src/import/chips/p9/initfiles/p9a.int.scom.initfile
new file mode 100644
index 000000000..5b0ff1886
--- /dev/null
+++ b/src/import/chips/p9/initfiles/p9a.int.scom.initfile
@@ -0,0 +1,178 @@
+#- *!***************************************************************************
+#-- *!
+#-- *! OWNER NAME : David Kauer (dmkauer@us.ibm.com)
+#-- *!
+#-- *!***************************************************************************
+
+SyntaxVersion = 3
+
+target_type 0 TARGET_TYPE_PROC_CHIP;
+target_type 1 TARGET_TYPE_SYSTEM;
+
+ispy INT.INT_PC.INT_PC_AIB_TX_CRD_RSD_CRD_VPC_LD_RMT [when=S && ATTR_CHIP_EC_FEATURE_P9N_INT_DD10] {
+ spyv;
+ 0b00;
+}
+
+ispy INT.INT_VC.INT_VC_EQC_CONFIG_PAGE_OFFSET_CFG [when=S] {
+ spyv;
+ 0x5BBF;
+}
+
+ispy INT.INT_VC.INT_VC_IRQ_TO_EQC_CREDITS [when=S] {
+ spyv;
+ 0x6262220242160000;
+}
+
+# SW437676 / SW445631
+ispy INT.INT_VC.INT_VC_AIB_TIMEOUT [when=S] {
+ spyv;
+ 0x18;
+}
+
+ispy INT.INT_PC.INT_PC_DBG_TMOT_ARX_TIMEOUT [when=S] {
+ spyv;
+ 0x18;
+}
+
+ispy INT.INT_PC.INT_PC_DBG_TMOT_MMIO_LDST_TIMEOUT [when=S] {
+ spyv;
+ 0x18;
+}
+
+# Defect HW372116 / Nimbus DD1 only
+ispy INT.INT_CQ.INT_CQ_AIB_CTL [when=S && ATTR_CHIP_EC_FEATURE_HW372116] {
+ spyv;
+ 0x0070000072040140;
+}
+
+# Defect HW395947 / Nimbus DD1 only
+espy INT.INT_VC.INT_VC_AIB_TX_ORDERING_TAG_2_RELAXED_WR_ORDERING_DMA [when=S && ATTR_CHIP_EC_FEATURE_HW395947] {
+ spyv;
+ OFF;
+}
+
+espy INT.INT_PC.INT_PC_AIB_TX_ORDER_RELAXED_WR_ORDERING [when=S && ATTR_CHIP_EC_FEATURE_HW395947] {
+ spyv;
+ OFF;
+}
+
+# Error Configuration
+ispy INT.INT_PC.INT_PC_ERR0_CFG0_ERROR_CONFIG0 [when=S] {
+ spyv, expr;
+ 0x010003FF00100020, (ATTR_CHIP_EC_FEATURE_HW426891 == 0);
+ 0x050043EF00100020, (ATTR_CHIP_EC_FEATURE_HW426891 == 1);
+}
+
+ispy INT.INT_PC.INT_PC_ERR0_CFG1_ERROR_CONFIG0 [when=S] {
+ spyv, expr;
+ 0xD8DFB200DFAFFFD7, (ATTR_CHIP_EC_FEATURE_HW426891 == 0);
+ 0xFADFBB8CFFAFFFD7, (ATTR_CHIP_EC_FEATURE_HW426891 == 1);
+}
+
+ispy INT.INT_PC.INT_PC_ERR1_CFG0_ERROR_CONFIG0 [when=S && ATTR_CHIP_EC_FEATURE_P9N_INT_DD10] {
+ spyv;
+ 0x0008002000002002;
+}
+
+ispy INT.INT_PC.INT_PC_ERR1_CFG1_ERROR_CONFIG0 [when=S && ATTR_CHIP_EC_FEATURE_P9N_INT_DD10] {
+ spyv;
+ 0xEF6417D2DE7DD3FD;
+}
+
+ispy INT.INT_PC.LBS2.INT_PC_VPC_ERR_CFG0_ERROR_CONFIG [when=S] {
+ spyv, expr;
+ 0x0002000410000000, (ATTR_CHIP_EC_FEATURE_HW426891 == 0);
+ 0x0002000610000000, (ATTR_CHIP_EC_FEATURE_HW426891 == 1);
+}
+
+ispy INT.INT_PC.LBS2.INT_PC_VPC_ERR_CFG1_ERROR_CONFIG [when=S && ATTR_CHIP_EC_FEATURE_P9N_INT_DD10] {
+ spyv;
+ 0x7710CCC3E0000701;
+}
+
+ispy INT.INT_VC.INT_VC_ERR_CFG_G0R0_ERROR_CONFIG [when=S && ATTR_CHIP_EC_FEATURE_P9N_INT_DD10] {
+ spyv;
+ 0x00001003000002;
+}
+
+ispy INT.INT_VC.INT_VC_ERR_CFG_G0R1_ERROR_CONFIG [when=S && ATTR_CHIP_EC_FEATURE_P9N_INT_DD10] {
+ spyv;
+ 0xFFFFEFFCFFFFFC;
+}
+
+ispy INT.INT_VC.INT_VC_ERR_CFG_G1R0_ERROR_CONFIG [when=S && ATTR_CHIP_EC_FEATURE_HW411637] {
+ spyv;
+ 0x0002C018006;
+}
+
+ispy INT.INT_VC.INT_VC_ERR_CFG_G1R1_ERROR_CONFIG [when=S && ATTR_CHIP_EC_FEATURE_HW411637] {
+ spyv;
+ 0xFFFCFFEFFFA;
+}
+
+
+# FIR Registers
+ispy INT.INT_CQ.INT_CQ_FIRMASK_FIR_MASK [when=S] {
+ spyv, expr;
+ 0x2000005C04028000, (ATTR_CHIP_EC_FEATURE_HW411637 == 1 && ATTR_CHIP_EC_FEATURE_HW426891 == 0);
+ 0x2000005C040281C3, (ATTR_CHIP_EC_FEATURE_HW411637 == 1 && ATTR_CHIP_EC_FEATURE_HW426891 == 1);
+ 0x0000005C040081C3, (ATTR_CHIP_EC_FEATURE_HW411637 == 0 && ATTR_CHIP_EC_FEATURE_HW426891 == 1);
+}
+
+ispy INT.INT_CQ.INT_CQ_ACTION0_ACTION0 [when=S] {
+ spyv;
+ 0x0000000000000000;
+}
+
+ispy INT.INT_CQ.INT_CQ_ACTION1_ACTION1 [when=S] {
+ spyv, expr;
+ 0x9554021F80110FCF, (ATTR_CHIP_EC_FEATURE_P9N_INT_DD10 == 1);
+ 0x9554021F80110E0C, (ATTR_CHIP_EC_FEATURE_P9N_INT_DD10 == 0);
+}
+
+
+# Dependent Dials
+ispy INT.INT_CQ.INT_CQ_CFG_PB_GEN_ADDR_BAR_MODE [when=S] {
+ spyv;
+ 0;
+}
+
+ispy INT.INT_CQ.INT_CQ_PBO_CTL_SKIP_G [when=S] {
+ spyv, expr;
+ 1 , (TGT1.ATTR_PROC_FABRIC_PUMP_MODE == ATTR_PROC_FABRIC_PUMP_MODE::CHIP_IS_GROUP);
+ 0 , (TGT1.ATTR_PROC_FABRIC_PUMP_MODE == ATTR_PROC_FABRIC_PUMP_MODE::CHIP_IS_NODE);
+}
+
+ispy INT.INT_CQ.INT_CQ_CFG_PB_GEN_PUMP_MODE [when=S] {
+ spyv, expr;
+ 1 , (TGT1.ATTR_PROC_FABRIC_PUMP_MODE == ATTR_PROC_FABRIC_PUMP_MODE::CHIP_IS_GROUP);
+ 0 , (TGT1.ATTR_PROC_FABRIC_PUMP_MODE == ATTR_PROC_FABRIC_PUMP_MODE::CHIP_IS_NODE);
+}
+
+ispy INT.INT_CQ.INT_CQ_CFG_PB_GEN_ADDR_EXT_MASK_EN_15_21 [when=S && ATTR_CHIP_EC_FEATURE_EXTENDED_ADDRESSING_MODE] {
+ bits, spyv;
+ 0:3, (TGT1.ATTR_FABRIC_ADDR_EXTENSION_GROUP_ID);
+ 4:6, (TGT1.ATTR_FABRIC_ADDR_EXTENSION_CHIP_ID);
+}
+
+ispy INT.INT_CQ.INT_CQ_CFG_PB_GEN_SMF_CONFIG_0_1 [when=S && ATTR_CHIP_EC_FEATURE_SMF_SUPPORTED] {
+ spyv, expr;
+ 0b10, (TGT1.ATTR_SMF_CONFIG == TGT1.ATTR_SMF_CONFIG::ENABLED);
+}
+
+# disable MCD for HW423589
+espy INT.INT_CQ.INT_CQ_PBO_CTL_DISABLE_G [when=S && ATTR_CHIP_EC_FEATURE_HW423589_OPTION1] {
+ spyv;
+ ON;
+}
+
+espy INT.INT_CQ.INT_CQ_PBO_CTL_DISABLE_VG_NOT_SYS [when=S && ATTR_CHIP_EC_FEATURE_HW423589_OPTION1] {
+ spyv;
+ ON;
+}
+# HW441771 - Axone init to return to P9 behavior
+ispy INT.INT_CQ.INT_CQ_PBI_CTL_RESERVED_25_31 [when=S && ATTR_CHIP_EC_FEATURE_AXONE_HW441771] {
+ spyv;
+ 0b1000000;
+}
diff --git a/src/import/chips/p9/procedures/hwp/initfiles/p9a_int_scan.C b/src/import/chips/p9/procedures/hwp/initfiles/p9a_int_scan.C
new file mode 100644
index 000000000..f35a145d7
--- /dev/null
+++ b/src/import/chips/p9/procedures/hwp/initfiles/p9a_int_scan.C
@@ -0,0 +1,72 @@
+/* IBM_PROLOG_BEGIN_TAG */
+/* This is an automatically generated prolog. */
+/* */
+/* $Source: src/import/chips/p9/procedures/hwp/initfiles/p9a_int_scan.C $ */
+/* */
+/* OpenPOWER HostBoot Project */
+/* */
+/* Contributors Listed Below - COPYRIGHT 2019 */
+/* [+] 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 */
+#include "p9a_int_scan.H"
+#include <stdint.h>
+#include <stddef.h>
+#include <fapi2.H>
+
+using namespace fapi2;
+
+constexpr uint64_t literal_0 = 0;
+constexpr uint64_t literal_0b1 = 0b1;
+
+fapi2::ReturnCode p9a_int_scan(const fapi2::Target<fapi2::TARGET_TYPE_PROC_CHIP>& TGT0)
+{
+ {
+ fapi2::ATTR_EC_Type l_chip_ec;
+ fapi2::ATTR_NAME_Type l_chip_id;
+ FAPI_TRY(FAPI_ATTR_GET_PRIVILEGED(fapi2::ATTR_NAME, TGT0, l_chip_id));
+ FAPI_TRY(FAPI_ATTR_GET_PRIVILEGED(fapi2::ATTR_EC, TGT0, l_chip_ec));
+ fapi2::ATTR_CHIP_EC_FEATURE_HW388874_Type l_TGT0_ATTR_CHIP_EC_FEATURE_HW388874;
+ FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_CHIP_EC_FEATURE_HW388874, TGT0, l_TGT0_ATTR_CHIP_EC_FEATURE_HW388874));
+ bool l_BRIDGE_PSIHB_ESB_OR_LSI_INTERRUPTS_update = false;
+ fapi2::variable_buffer l_BRIDGE_PSIHB_ESB_OR_LSI_INTERRUPTS(1);
+ fapi2::variable_buffer l_BRIDGE_PSIHB_ESB_OR_LSI_INTERRUPTS_CARE(1);
+
+ if ((l_TGT0_ATTR_CHIP_EC_FEATURE_HW388874 == literal_0))
+ {
+ constexpr auto l_BRIDGE_PSIHB_ESB_OR_LSI_INTERRUPTS_ON = 0x1;
+ l_BRIDGE_PSIHB_ESB_OR_LSI_INTERRUPTS.insertFromRight<uint64_t>(l_BRIDGE_PSIHB_ESB_OR_LSI_INTERRUPTS_ON, 0, 1);
+ l_BRIDGE_PSIHB_ESB_OR_LSI_INTERRUPTS_CARE.insertFromRight<uint64_t>(0x1, 0, 1);
+ l_BRIDGE_PSIHB_ESB_OR_LSI_INTERRUPTS_update = true;
+ }
+
+ if ( l_BRIDGE_PSIHB_ESB_OR_LSI_INTERRUPTS_update)
+ {
+ FAPI_TRY(fapi2::putSpyWithCare(TGT0, "BRIDGE.PSIHB.ESB_OR_LSI_INTERRUPTS", l_BRIDGE_PSIHB_ESB_OR_LSI_INTERRUPTS,
+ l_BRIDGE_PSIHB_ESB_OR_LSI_INTERRUPTS_CARE));
+ }
+
+ fapi2::variable_buffer l_INT_INT_VC_LBS6_ARX_CS_AXONE_DISABLE_CILOAD_ORDERINGS(1);
+ fapi2::variable_buffer l_INT_INT_VC_LBS6_ARX_CS_AXONE_DISABLE_CILOAD_ORDERINGS_CARE(1);
+ l_INT_INT_VC_LBS6_ARX_CS_AXONE_DISABLE_CILOAD_ORDERINGS.insertFromRight<uint64_t>(literal_0b1, 0, 1);
+ l_INT_INT_VC_LBS6_ARX_CS_AXONE_DISABLE_CILOAD_ORDERINGS_CARE.insertFromRight<uint64_t>(0x1, 0, 1);
+ FAPI_TRY(fapi2::putSpyWithCare(TGT0, "INT.INT_VC_LBS6_ARX_CS_AXONE_DISABLE_CILOAD_ORDERINGS",
+ l_INT_INT_VC_LBS6_ARX_CS_AXONE_DISABLE_CILOAD_ORDERINGS, l_INT_INT_VC_LBS6_ARX_CS_AXONE_DISABLE_CILOAD_ORDERINGS_CARE));
+
+ };
+fapi_try_exit:
+ return fapi2::current_err;
+}
diff --git a/src/import/chips/p9/procedures/hwp/initfiles/p9a_int_scan.H b/src/import/chips/p9/procedures/hwp/initfiles/p9a_int_scan.H
new file mode 100644
index 000000000..470e17d7d
--- /dev/null
+++ b/src/import/chips/p9/procedures/hwp/initfiles/p9a_int_scan.H
@@ -0,0 +1,47 @@
+/* IBM_PROLOG_BEGIN_TAG */
+/* This is an automatically generated prolog. */
+/* */
+/* $Source: src/import/chips/p9/procedures/hwp/initfiles/p9a_int_scan.H $ */
+/* */
+/* OpenPOWER HostBoot Project */
+/* */
+/* Contributors Listed Below - COPYRIGHT 2019 */
+/* [+] 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 */
+#ifndef _INIT_P9A_INT_SCAN_PROCEDURE_H_
+#define _INIT_P9A_INT_SCAN_PROCEDURE_H_
+
+
+#include <stddef.h>
+#include <stdint.h>
+#include <fapi2.H>
+
+#ifdef IFCOMPILER_PLAT
+#define INITFILE_PROCEDURE \
+ p9a_int_scan(TGT0);
+#endif
+
+typedef fapi2::ReturnCode (*p9a_int_scan_FP_t)(const fapi2::Target<fapi2::TARGET_TYPE_PROC_CHIP>&);
+
+extern "C"
+{
+
+ fapi2::ReturnCode p9a_int_scan(const fapi2::Target<fapi2::TARGET_TYPE_PROC_CHIP>& TGT0);
+
+}
+
+#endif
diff --git a/src/import/chips/p9/procedures/hwp/initfiles/p9a_int_scan.mk b/src/import/chips/p9/procedures/hwp/initfiles/p9a_int_scan.mk
new file mode 100644
index 000000000..6fcb57af4
--- /dev/null
+++ b/src/import/chips/p9/procedures/hwp/initfiles/p9a_int_scan.mk
@@ -0,0 +1,36 @@
+# IBM_PROLOG_BEGIN_TAG
+# This is an automatically generated prolog.
+#
+# $Source: src/import/chips/p9/procedures/hwp/initfiles/p9a_int_scan.mk $
+#
+# OpenPOWER HostBoot Project
+#
+# Contributors Listed Below - COPYRIGHT 2019
+# [+] 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
+PROCEDURE=p9a_int_scan
+lib$(PROCEDURE)_COMMONFLAGS+=-DFAPI_SUPPORT_SPY_AS_STRING=1
+$(call BUILD_PROCEDURE)
+
+PROCEDURE=p9a_int_scan_ifCompiler
+lib$(PROCEDURE)_COMMONFLAGS+=-DFAPI_SUPPORT_SPY_AS_STRING=1
+lib$(PROCEDURE)_COMMONFLAGS+=-DIFCOMPILER_PLAT=1
+FAPI=2_IFCOMPILER
+OBJS+=p9a_int_scan.o
+lib$(PROCEDURE)_LIBPATH=$(LIBPATH)/ifCompiler
+lib$(PROCEDURE)_COMMONFLAGS+=-fno-var-tracking-assignments
+$(call BUILD_PROCEDURE)
diff --git a/src/import/chips/p9/procedures/hwp/initfiles/p9a_int_scom.C b/src/import/chips/p9/procedures/hwp/initfiles/p9a_int_scom.C
new file mode 100644
index 000000000..aa6143eb6
--- /dev/null
+++ b/src/import/chips/p9/procedures/hwp/initfiles/p9a_int_scom.C
@@ -0,0 +1,228 @@
+/* IBM_PROLOG_BEGIN_TAG */
+/* This is an automatically generated prolog. */
+/* */
+/* $Source: src/import/chips/p9/procedures/hwp/initfiles/p9a_int_scom.C $ */
+/* */
+/* OpenPOWER HostBoot Project */
+/* */
+/* Contributors Listed Below - COPYRIGHT 2019 */
+/* [+] 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 */
+#include "p9a_int_scom.H"
+#include <stdint.h>
+#include <stddef.h>
+#include <fapi2.H>
+
+using namespace fapi2;
+
+constexpr uint64_t literal_0 = 0;
+constexpr uint64_t literal_1 = 1;
+constexpr uint64_t literal_0b10 = 0b10;
+constexpr uint64_t literal_0b1000000 = 0b1000000;
+constexpr uint64_t literal_0x2000005C04028000 = 0x2000005C04028000;
+constexpr uint64_t literal_0x2000005C040281C3 = 0x2000005C040281C3;
+constexpr uint64_t literal_0x0000005C040081C3 = 0x0000005C040081C3;
+constexpr uint64_t literal_0x0000000000000000 = 0x0000000000000000;
+constexpr uint64_t literal_0x9554021F80110FCF = 0x9554021F80110FCF;
+constexpr uint64_t literal_0x9554021F80110E0C = 0x9554021F80110E0C;
+constexpr uint64_t literal_0x18 = 0x18;
+constexpr uint64_t literal_0x010003FF00100020 = 0x010003FF00100020;
+constexpr uint64_t literal_0x050043EF00100020 = 0x050043EF00100020;
+constexpr uint64_t literal_0xD8DFB200DFAFFFD7 = 0xD8DFB200DFAFFFD7;
+constexpr uint64_t literal_0xFADFBB8CFFAFFFD7 = 0xFADFBB8CFFAFFFD7;
+constexpr uint64_t literal_0x0002000410000000 = 0x0002000410000000;
+constexpr uint64_t literal_0x0002000610000000 = 0x0002000610000000;
+constexpr uint64_t literal_0x6262220242160000 = 0x6262220242160000;
+constexpr uint64_t literal_0x5BBF = 0x5BBF;
+
+fapi2::ReturnCode p9a_int_scom(const fapi2::Target<fapi2::TARGET_TYPE_PROC_CHIP>& TGT0,
+ const fapi2::Target<fapi2::TARGET_TYPE_SYSTEM>& TGT1)
+{
+ {
+ fapi2::ATTR_EC_Type l_chip_ec;
+ fapi2::ATTR_NAME_Type l_chip_id;
+ FAPI_TRY(FAPI_ATTR_GET_PRIVILEGED(fapi2::ATTR_NAME, TGT0, l_chip_id));
+ FAPI_TRY(FAPI_ATTR_GET_PRIVILEGED(fapi2::ATTR_EC, TGT0, l_chip_ec));
+ fapi2::ATTR_PROC_FABRIC_PUMP_MODE_Type l_TGT1_ATTR_PROC_FABRIC_PUMP_MODE;
+ FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_PROC_FABRIC_PUMP_MODE, TGT1, l_TGT1_ATTR_PROC_FABRIC_PUMP_MODE));
+ fapi2::ATTR_FABRIC_ADDR_EXTENSION_GROUP_ID_Type l_TGT1_ATTR_FABRIC_ADDR_EXTENSION_GROUP_ID;
+ FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_FABRIC_ADDR_EXTENSION_GROUP_ID, TGT1, l_TGT1_ATTR_FABRIC_ADDR_EXTENSION_GROUP_ID));
+ fapi2::ATTR_FABRIC_ADDR_EXTENSION_CHIP_ID_Type l_TGT1_ATTR_FABRIC_ADDR_EXTENSION_CHIP_ID;
+ FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_FABRIC_ADDR_EXTENSION_CHIP_ID, TGT1, l_TGT1_ATTR_FABRIC_ADDR_EXTENSION_CHIP_ID));
+ fapi2::ATTR_SMF_CONFIG_Type l_TGT1_ATTR_SMF_CONFIG;
+ FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_SMF_CONFIG, TGT1, l_TGT1_ATTR_SMF_CONFIG));
+ fapi2::ATTR_CHIP_EC_FEATURE_HW426891_Type l_TGT0_ATTR_CHIP_EC_FEATURE_HW426891;
+ FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_CHIP_EC_FEATURE_HW426891, TGT0, l_TGT0_ATTR_CHIP_EC_FEATURE_HW426891));
+ fapi2::ATTR_CHIP_EC_FEATURE_HW411637_Type l_TGT0_ATTR_CHIP_EC_FEATURE_HW411637;
+ FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_CHIP_EC_FEATURE_HW411637, TGT0, l_TGT0_ATTR_CHIP_EC_FEATURE_HW411637));
+ fapi2::ATTR_CHIP_EC_FEATURE_P9N_INT_DD10_Type l_TGT0_ATTR_CHIP_EC_FEATURE_P9N_INT_DD10;
+ FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_CHIP_EC_FEATURE_P9N_INT_DD10, TGT0, l_TGT0_ATTR_CHIP_EC_FEATURE_P9N_INT_DD10));
+ fapi2::buffer<uint64_t> l_scom_buffer;
+ {
+ FAPI_TRY(fapi2::getScom( TGT0, 0x501300aull, l_scom_buffer ));
+
+ l_scom_buffer.insert<0, 1, 63, uint64_t>(literal_0 );
+
+ if ((l_TGT1_ATTR_PROC_FABRIC_PUMP_MODE == fapi2::ENUM_ATTR_PROC_FABRIC_PUMP_MODE_CHIP_IS_GROUP))
+ {
+ l_scom_buffer.insert<1, 1, 63, uint64_t>(literal_1 );
+ }
+ else if ((l_TGT1_ATTR_PROC_FABRIC_PUMP_MODE == fapi2::ENUM_ATTR_PROC_FABRIC_PUMP_MODE_CHIP_IS_NODE))
+ {
+ l_scom_buffer.insert<1, 1, 63, uint64_t>(literal_0 );
+ }
+
+ l_scom_buffer.insert<5, 4, 60, uint64_t>(l_TGT1_ATTR_FABRIC_ADDR_EXTENSION_GROUP_ID );
+ l_scom_buffer.insert<9, 3, 61, uint64_t>(l_TGT1_ATTR_FABRIC_ADDR_EXTENSION_CHIP_ID );
+
+ if ((l_TGT1_ATTR_SMF_CONFIG == fapi2::ENUM_ATTR_SMF_CONFIG_ENABLED))
+ {
+ l_scom_buffer.insert<12, 2, 62, uint64_t>(literal_0b10 );
+ }
+
+ FAPI_TRY(fapi2::putScom(TGT0, 0x501300aull, l_scom_buffer));
+ }
+ {
+ FAPI_TRY(fapi2::getScom( TGT0, 0x5013020ull, l_scom_buffer ));
+
+ l_scom_buffer.insert<25, 7, 57, uint64_t>(literal_0b1000000 );
+ FAPI_TRY(fapi2::putScom(TGT0, 0x5013020ull, l_scom_buffer));
+ }
+ {
+ FAPI_TRY(fapi2::getScom( TGT0, 0x5013021ull, l_scom_buffer ));
+
+ if ((l_TGT1_ATTR_PROC_FABRIC_PUMP_MODE == fapi2::ENUM_ATTR_PROC_FABRIC_PUMP_MODE_CHIP_IS_GROUP))
+ {
+ l_scom_buffer.insert<49, 1, 63, uint64_t>(literal_1 );
+ }
+ else if ((l_TGT1_ATTR_PROC_FABRIC_PUMP_MODE == fapi2::ENUM_ATTR_PROC_FABRIC_PUMP_MODE_CHIP_IS_NODE))
+ {
+ l_scom_buffer.insert<49, 1, 63, uint64_t>(literal_0 );
+ }
+
+ FAPI_TRY(fapi2::putScom(TGT0, 0x5013021ull, l_scom_buffer));
+ }
+ {
+ FAPI_TRY(fapi2::getScom( TGT0, 0x5013033ull, l_scom_buffer ));
+
+ if (((l_TGT0_ATTR_CHIP_EC_FEATURE_HW411637 == literal_1) && (l_TGT0_ATTR_CHIP_EC_FEATURE_HW426891 == literal_0)))
+ {
+ l_scom_buffer.insert<0, 64, 0, uint64_t>(literal_0x2000005C04028000 );
+ }
+ else if (((l_TGT0_ATTR_CHIP_EC_FEATURE_HW411637 == literal_1) && (l_TGT0_ATTR_CHIP_EC_FEATURE_HW426891 == literal_1)))
+ {
+ l_scom_buffer.insert<0, 64, 0, uint64_t>(literal_0x2000005C040281C3 );
+ }
+ else if (((l_TGT0_ATTR_CHIP_EC_FEATURE_HW411637 == literal_0) && (l_TGT0_ATTR_CHIP_EC_FEATURE_HW426891 == literal_1)))
+ {
+ l_scom_buffer.insert<0, 64, 0, uint64_t>(literal_0x0000005C040081C3 );
+ }
+
+ FAPI_TRY(fapi2::putScom(TGT0, 0x5013033ull, l_scom_buffer));
+ }
+ {
+ FAPI_TRY(fapi2::getScom( TGT0, 0x5013036ull, l_scom_buffer ));
+
+ l_scom_buffer.insert<0, 64, 0, uint64_t>(literal_0x0000000000000000 );
+ FAPI_TRY(fapi2::putScom(TGT0, 0x5013036ull, l_scom_buffer));
+ }
+ {
+ FAPI_TRY(fapi2::getScom( TGT0, 0x5013037ull, l_scom_buffer ));
+
+ if ((l_TGT0_ATTR_CHIP_EC_FEATURE_P9N_INT_DD10 == literal_1))
+ {
+ l_scom_buffer.insert<0, 64, 0, uint64_t>(literal_0x9554021F80110FCF );
+ }
+ else if ((l_TGT0_ATTR_CHIP_EC_FEATURE_P9N_INT_DD10 == literal_0))
+ {
+ l_scom_buffer.insert<0, 64, 0, uint64_t>(literal_0x9554021F80110E0C );
+ }
+
+ FAPI_TRY(fapi2::putScom(TGT0, 0x5013037ull, l_scom_buffer));
+ }
+ {
+ FAPI_TRY(fapi2::getScom( TGT0, 0x5013130ull, l_scom_buffer ));
+
+ l_scom_buffer.insert<2, 6, 58, uint64_t>(literal_0x18 );
+ l_scom_buffer.insert<10, 6, 58, uint64_t>(literal_0x18 );
+ FAPI_TRY(fapi2::putScom(TGT0, 0x5013130ull, l_scom_buffer));
+ }
+ {
+ FAPI_TRY(fapi2::getScom( TGT0, 0x5013140ull, l_scom_buffer ));
+
+ if ((l_TGT0_ATTR_CHIP_EC_FEATURE_HW426891 == literal_0))
+ {
+ l_scom_buffer.insert<0, 64, 0, uint64_t>(literal_0x010003FF00100020 );
+ }
+ else if ((l_TGT0_ATTR_CHIP_EC_FEATURE_HW426891 == literal_1))
+ {
+ l_scom_buffer.insert<0, 64, 0, uint64_t>(literal_0x050043EF00100020 );
+ }
+
+ FAPI_TRY(fapi2::putScom(TGT0, 0x5013140ull, l_scom_buffer));
+ }
+ {
+ FAPI_TRY(fapi2::getScom( TGT0, 0x5013141ull, l_scom_buffer ));
+
+ if ((l_TGT0_ATTR_CHIP_EC_FEATURE_HW426891 == literal_0))
+ {
+ l_scom_buffer.insert<0, 64, 0, uint64_t>(literal_0xD8DFB200DFAFFFD7 );
+ }
+ else if ((l_TGT0_ATTR_CHIP_EC_FEATURE_HW426891 == literal_1))
+ {
+ l_scom_buffer.insert<0, 64, 0, uint64_t>(literal_0xFADFBB8CFFAFFFD7 );
+ }
+
+ FAPI_TRY(fapi2::putScom(TGT0, 0x5013141ull, l_scom_buffer));
+ }
+ {
+ FAPI_TRY(fapi2::getScom( TGT0, 0x5013178ull, l_scom_buffer ));
+
+ if ((l_TGT0_ATTR_CHIP_EC_FEATURE_HW426891 == literal_0))
+ {
+ l_scom_buffer.insert<0, 64, 0, uint64_t>(literal_0x0002000410000000 );
+ }
+ else if ((l_TGT0_ATTR_CHIP_EC_FEATURE_HW426891 == literal_1))
+ {
+ l_scom_buffer.insert<0, 64, 0, uint64_t>(literal_0x0002000610000000 );
+ }
+
+ FAPI_TRY(fapi2::putScom(TGT0, 0x5013178ull, l_scom_buffer));
+ }
+ {
+ FAPI_TRY(fapi2::getScom( TGT0, 0x501320eull, l_scom_buffer ));
+
+ l_scom_buffer.insert<0, 48, 0, uint64_t>(literal_0x6262220242160000 );
+ FAPI_TRY(fapi2::putScom(TGT0, 0x501320eull, l_scom_buffer));
+ }
+ {
+ FAPI_TRY(fapi2::getScom( TGT0, 0x5013214ull, l_scom_buffer ));
+
+ l_scom_buffer.insert<16, 16, 48, uint64_t>(literal_0x5BBF );
+ FAPI_TRY(fapi2::putScom(TGT0, 0x5013214ull, l_scom_buffer));
+ }
+ {
+ FAPI_TRY(fapi2::getScom( TGT0, 0x501322bull, l_scom_buffer ));
+
+ l_scom_buffer.insert<58, 6, 58, uint64_t>(literal_0x18 );
+ FAPI_TRY(fapi2::putScom(TGT0, 0x501322bull, l_scom_buffer));
+ }
+
+ };
+fapi_try_exit:
+ return fapi2::current_err;
+}
diff --git a/src/import/chips/p9/procedures/hwp/initfiles/p9a_int_scom.H b/src/import/chips/p9/procedures/hwp/initfiles/p9a_int_scom.H
new file mode 100644
index 000000000..50fb3b02e
--- /dev/null
+++ b/src/import/chips/p9/procedures/hwp/initfiles/p9a_int_scom.H
@@ -0,0 +1,45 @@
+/* IBM_PROLOG_BEGIN_TAG */
+/* This is an automatically generated prolog. */
+/* */
+/* $Source: src/import/chips/p9/procedures/hwp/initfiles/p9a_int_scom.H $ */
+/* */
+/* OpenPOWER HostBoot Project */
+/* */
+/* Contributors Listed Below - COPYRIGHT 2019 */
+/* [+] 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 */
+#ifndef _INIT_P9A_INT_SCOM_PROCEDURE_H_
+#define _INIT_P9A_INT_SCOM_PROCEDURE_H_
+
+
+#include <stddef.h>
+#include <stdint.h>
+#include <fapi2.H>
+
+
+typedef fapi2::ReturnCode (*p9a_int_scom_FP_t)(const fapi2::Target<fapi2::TARGET_TYPE_PROC_CHIP>&,
+ const fapi2::Target<fapi2::TARGET_TYPE_SYSTEM>&);
+
+extern "C"
+{
+
+ fapi2::ReturnCode p9a_int_scom(const fapi2::Target<fapi2::TARGET_TYPE_PROC_CHIP>& TGT0,
+ const fapi2::Target<fapi2::TARGET_TYPE_SYSTEM>& TGT1);
+
+}
+
+#endif
diff --git a/src/import/chips/p9/procedures/hwp/initfiles/p9a_int_scom.mk b/src/import/chips/p9/procedures/hwp/initfiles/p9a_int_scom.mk
new file mode 100644
index 000000000..8242855ad
--- /dev/null
+++ b/src/import/chips/p9/procedures/hwp/initfiles/p9a_int_scom.mk
@@ -0,0 +1,27 @@
+# IBM_PROLOG_BEGIN_TAG
+# This is an automatically generated prolog.
+#
+# $Source: src/import/chips/p9/procedures/hwp/initfiles/p9a_int_scom.mk $
+#
+# OpenPOWER HostBoot Project
+#
+# Contributors Listed Below - COPYRIGHT 2019
+# [+] 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
+PROCEDURE=p9a_int_scom
+lib$(PROCEDURE)_COMMONFLAGS+=-fno-var-tracking-assignments
+$(call BUILD_PROCEDURE)
diff --git a/src/import/chips/p9/procedures/xml/attribute_info/chip_ec_attributes.xml b/src/import/chips/p9/procedures/xml/attribute_info/chip_ec_attributes.xml
index 140c9ac9a..4bbfaaeac 100644
--- a/src/import/chips/p9/procedures/xml/attribute_info/chip_ec_attributes.xml
+++ b/src/import/chips/p9/procedures/xml/attribute_info/chip_ec_attributes.xml
@@ -9026,6 +9026,23 @@
</attribute>
<!-- ******************************************************************** -->
<attribute>
+ <id>ATTR_CHIP_EC_FEATURE_AXONE_HW441771</id>
+ <targetType>TARGET_TYPE_PROC_CHIP</targetType>
+ <description>
+ Bumpy Toothpaste fix not enabled in Axone
+ </description>
+ <chipEcFeature>
+ <chip>
+ <name>ENUM_ATTR_NAME_AXONE</name>
+ <ec>
+ <value>0x10</value>
+ <test>GREATER_THAN_OR_EQUAL</test>
+ </ec>
+ </chip>
+ </chipEcFeature>
+ </attribute>
+ <!-- ******************************************************************** -->
+ <attribute>
<id>ATTR_CHIP_EC_FEATURE_OMI_DL_X4_BACKOFF_ENABLE</id>
<targetType>TARGET_TYPE_OCMB_CHIP</targetType>
<description>
OpenPOWER on IntegriCloud