summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/include/arch/pirformat.H167
-rw-r--r--src/include/kernel/intmsghandler.H21
-rw-r--r--src/include/usr/hwas/common/deconfigGard.H4
-rw-r--r--src/include/usr/intr/interrupt.H40
-rw-r--r--src/include/usr/runtime/rt_targeting.H19
-rw-r--r--src/include/usr/targeting/common/targetservice.H6
-rw-r--r--src/usr/devtree/bld_devtree.C77
-rw-r--r--src/usr/diag/attn/common/attntarget.C6
-rw-r--r--src/usr/diag/attn/ipl/attnsvc.C4
-rw-r--r--src/usr/diag/attn/ipl/test/attnfakepresenter.C6
-rw-r--r--src/usr/diag/attn/ipl/test/attnfaketarget.C6
-rw-r--r--src/usr/errl/errlmanager.C12
-rw-r--r--src/usr/hwas/common/deconfigGard.C112
-rw-r--r--src/usr/hwas/test/hwasGardTest.H122
-rw-r--r--src/usr/hwpf/hwp/occ/occ.C10
-rw-r--r--src/usr/hwpf/hwp/occ/occ_common.C10
-rw-r--r--src/usr/hwpf/hwp/occ/runtime/rt_occ.C6
-rw-r--r--src/usr/intr/intrrp.C51
-rw-r--r--src/usr/intr/intrrp.H7
-rw-r--r--src/usr/isteps/istep10/call_proc_build_smp.C6
-rw-r--r--src/usr/isteps/istep14/call_proc_exit_cache_contained.C8
-rw-r--r--src/usr/isteps/istep16/call_host_activate_slave_cores.C10
-rw-r--r--src/usr/isteps/istep21/call_host_start_payload.C8
-rw-r--r--src/usr/mbox/mailboxsp.C7
-rw-r--r--src/usr/runtime/test/runtimeattrstest.H10
-rw-r--r--src/usr/targeting/common/Targets.pm6
-rwxr-xr-xsrc/usr/targeting/common/genHwsvMrwXml.pl2
-rw-r--r--src/usr/targeting/common/processMrw.pl34
-rw-r--r--src/usr/targeting/common/targetservice.C20
-rw-r--r--src/usr/targeting/common/util.C10
-rw-r--r--src/usr/targeting/common/xmltohb/attribute_types.xml20
-rw-r--r--src/usr/targeting/common/xmltohb/simics_NIMBUS.system.xml2
-rwxr-xr-xsrc/usr/targeting/common/xmltohb/target_types.xml3
-rw-r--r--src/usr/targeting/namedtarget.C10
-rw-r--r--src/usr/targeting/runtime/rt_targeting.C65
-rw-r--r--src/usr/xscom/xscom.C16
36 files changed, 536 insertions, 387 deletions
diff --git a/src/include/arch/pirformat.H b/src/include/arch/pirformat.H
new file mode 100644
index 000000000..90d164f93
--- /dev/null
+++ b/src/include/arch/pirformat.H
@@ -0,0 +1,167 @@
+/* IBM_PROLOG_BEGIN_TAG */
+/* This is an automatically generated prolog. */
+/* */
+/* $Source: src/include/arch/pirformat.H $ */
+/* */
+/* OpenPOWER HostBoot 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 */
+/* A variety of PIR/PID formatting utilities */
+
+#ifndef _PIRFORMAT_H
+#define _PIRFORMAT_H
+
+/**
+ * @brief Format of Processor Id Register (PIR) for P9
+ *
+ * GGGGCCCPPPPPTT where
+ * G = group, C = chip, P = proc, T = thread
+ */
+struct PIR_t
+{
+ union
+ {
+ uint32_t word;
+
+ struct
+ {
+ // Normal Core Mode
+ uint32_t reserved:18; // 00:17 = unused
+ uint32_t groupId:4; // 18:21 = group id
+ uint32_t chipId:3; // 22:24 = chip id
+ uint32_t coreId:5; // 25:29 = core id (normal core)
+ uint32_t threadId:2; // 30:31 = thread id (normal core)
+ } PACKED;
+
+ struct
+ {
+ // Fused Core Mode
+ uint32_t reservedFused:18; // 00:17 = unused
+ uint32_t groupIdFused:4; // 18:21 = group id
+ uint32_t chipIdFused:3; // 22:24 = chip id
+ uint32_t coreIdFused:4; // 25:28 = core id (fused core)
+ uint32_t threadIdFused:3; // 29:31 = thread id (fused core)
+ } PACKED;
+ };
+ PIR_t(uint32_t i_word = 0) : word(i_word) {}
+
+ PIR_t(uint32_t i_groupId, uint32_t i_chipId,
+ uint32_t i_coreId, uint32_t i_thread = 0) :
+ reserved(0),
+ groupId(i_groupId), chipId(i_chipId),
+ coreId(i_coreId), threadId(i_thread) {}
+
+ PIR_t operator= (uint32_t i_word)
+ {
+ word = i_word;
+ return word;
+ }
+
+ bool operator< (const PIR_t& r) const
+ {
+ return word < r.word;
+ }
+
+ // Some more handy constants
+ enum
+ {
+ // Normal (non-fused) mode
+ BITS_IN_GROUP = 4,
+ BITS_IN_CHIP = 3,
+ BITS_IN_CORE = 5,
+ BITS_IN_THREAD = 2,
+
+ BITS_AFTER_THREAD = 0,
+ BITS_AFTER_CORE = BITS_AFTER_THREAD+BITS_IN_THREAD,
+ BITS_AFTER_CHIP = BITS_AFTER_CORE+BITS_IN_CORE,
+ BITS_AFTER_GROUP = BITS_AFTER_CHIP+BITS_IN_CHIP,
+
+ GROUP_MASK = 0x00003C00,
+ CHIP_MASK = 0x00000380,
+ CORE_MASK = 0x0000007C,
+ THREAD_MASK = 0x00000003,
+ VALID_BITS = 0x00003FFF,
+
+
+ // Fused mode
+ BITS_IN_CORE_FUSED = 5,
+ BITS_IN_THREAD_FUSED = 3,
+
+ GROUP_MASK_FUSED = 0x00003C00,
+ CHIP_MASK_FUSED = 0x00000380,
+ CORE_MASK_FUSED = 0x00000078,
+ THREAD_MASK_FUSED = 0x00000007,
+ };
+
+ // Some handy functions
+ inline static uint32_t groupFromPir( uint32_t i_pir ) {
+ return (static_cast<PIR_t>(i_pir)).groupId;
+ }
+ inline static uint32_t chipFromPir( uint32_t i_pir ) {
+ return (static_cast<PIR_t>(i_pir)).chipId;
+ }
+ inline static uint32_t coreFromPir( uint32_t i_pir ) {
+ return (static_cast<PIR_t>(i_pir)).coreId;
+ }
+ inline static uint32_t threadFromPir( uint32_t i_pir ) {
+ return (static_cast<PIR_t>(i_pir)).threadId;
+ }
+
+ inline static uint32_t groupFromChipId( uint32_t i_chipId ) {
+ return (i_chipId >> BITS_IN_CHIP);
+ }
+ inline static uint32_t chipFromChipId( uint32_t i_chipId ) {
+ return (i_chipId & (CHIP_MASK >>
+ (BITS_IN_CORE + BITS_IN_THREAD)));
+ }
+
+ inline static uint32_t groupFromCoreId( uint32_t i_chipId ) {
+ return (i_chipId >> (BITS_IN_CHIP+ BITS_IN_CORE));
+ }
+ inline static uint32_t chipFromCoreId( uint32_t i_chipId ) {
+ return (i_chipId >> BITS_IN_CORE);
+ }
+ inline static uint32_t coreFromCoreId( uint32_t i_chipId ) {
+ return (i_chipId & (CORE_MASK >> BITS_IN_THREAD));
+ }
+
+ inline static uint32_t createChipId( uint32_t i_groupId,
+ uint32_t i_chipId ) {
+ return ((i_groupId << BITS_IN_CHIP) | i_chipId);
+ }
+ inline static uint32_t createCoreId( uint32_t i_groupId,
+ uint32_t i_chipId,
+ uint32_t i_coreId )
+ {
+ return ((((i_groupId << BITS_IN_CHIP)
+ | i_chipId)
+ << BITS_IN_CORE) | i_coreId);
+ }
+
+ inline static uint32_t createCoreId( uint32_t i_chipId,
+ uint32_t i_coreId )
+ {
+ return ((i_chipId << BITS_IN_CORE) | i_coreId);
+ }
+
+};
+
+
+#endif /* _PIRFORMAT_H */
+
diff --git a/src/include/kernel/intmsghandler.H b/src/include/kernel/intmsghandler.H
index 57044a483..98d8d5288 100644
--- a/src/include/kernel/intmsghandler.H
+++ b/src/include/kernel/intmsghandler.H
@@ -5,7 +5,9 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* COPYRIGHT International Business Machines Corp. 2011,2014 */
+/* Contributors Listed Below - COPYRIGHT 2011,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. */
@@ -28,6 +30,7 @@
#include <kernel/msghandler.H>
#include <kernel/msg.H>
#include <builtins.h>
+#include <arch/pirformat.H>
/**
* @class InterruptMsgHdlr
@@ -53,17 +56,17 @@ class InterruptMsgHdlr : public MessageHandler
*/
enum
{
- P8_PIR_THREADID_MSK = 0x00000007,
- P8_PIR_COREID_MSK = 0x00000078,
- P8_PIR_CHIPID_MSK = 0x00000380,
- P8_PIR_NODEID_MSK = 0x00001C00,
+ P8_PIR_THREADID_MSK = PIR_t::THREAD_MASK,
+ P8_PIR_COREID_MSK = PIR_t::CORE_MASK,
+ P8_PIR_CHIPID_MSK = PIR_t::CHIP_MASK,
+ P8_PIR_NODEID_MSK = PIR_t::GROUP_MASK,
// Logical Shift Left fields for mmio Base address from PIR.
// (IP addr bit pos - PIR bit pos)
- P8_IP_THREADID_LSL = (12-0),
- P8_IP_COREID_LSL = (15-3),
- P8_IP_CHIPID_LSL = (20-7),
- P8_IP_NODEID_LSL = (22-10),
+ P8_IP_THREADID_LSL = (12-PIR_t::BITS_AFTER_CORE),
+ P8_IP_COREID_LSL = (15-PIR_t::BITS_AFTER_CORE),
+ P8_IP_CHIPID_LSL = (20-PIR_t::BITS_AFTER_CHIP),
+ P8_IP_NODEID_LSL = (22-PIR_t::BITS_AFTER_GROUP),
XIRR_ADDR_OFFSET = 4,
MFRR_ADDR_OFFSET = 12,
diff --git a/src/include/usr/hwas/common/deconfigGard.H b/src/include/usr/hwas/common/deconfigGard.H
index 374b6b44f..7c11d8643 100644
--- a/src/include/usr/hwas/common/deconfigGard.H
+++ b/src/include/usr/hwas/common/deconfigGard.H
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2012,2015 */
+/* Contributors Listed Below - COPYRIGHT 2012,2016 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -431,7 +431,7 @@ private:
// target for this chip
TARGETING::Target * iv_pThisProc;
TARGETING::ATTR_HUID_type procHUID;
- TARGETING::ATTR_FABRIC_NODE_ID_type procFabricNode;
+ TARGETING::ATTR_FABRIC_GROUP_ID_type procFabricGroup;
TARGETING::ATTR_FABRIC_CHIP_ID_type procFabricChip;
bool iv_masterCapable;
bool iv_deconfigured;
diff --git a/src/include/usr/intr/interrupt.H b/src/include/usr/intr/interrupt.H
index b5e41a2d9..1b24c2eed 100644
--- a/src/include/usr/intr/interrupt.H
+++ b/src/include/usr/intr/interrupt.H
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2011,2015 */
+/* Contributors Listed Below - COPYRIGHT 2011,2016 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -36,44 +36,6 @@ namespace TARGETING
namespace INTR
{
/**
- * cpu PIR register
- */
- struct PIR_t
- {
- union
- {
- uint32_t word;
- struct
- {
- //P8:
- uint32_t reserved:19; //!< zeros
- uint32_t nodeId:3; //!< node (0-3)
- uint32_t chipId:3; //!< chip pos on node (0-5)
- uint32_t coreId:4; //!< Core number (1-6,9-14)?
- uint32_t threadId:3; //!< Thread number (0-7)
- } PACKED;
- };
- PIR_t(uint32_t i_word = 0) : word(i_word) {}
-
- PIR_t(uint32_t i_nodeId, uint32_t i_chipId,
- uint32_t i_coreId, uint32_t i_thread = 0) :
- reserved(0),
- nodeId(i_nodeId), chipId(i_chipId),
- coreId(i_coreId), threadId(i_thread) {}
-
- PIR_t operator= (uint32_t i_word)
- {
- word = i_word;
- return word;
- }
-
- bool operator< (const PIR_t& r) const
- {
- return word < r.word;
- }
- };
-
- /**
* External Interrupt Types (XISR)
* This value is passed in message data[0] on interrupt or shutdown.
* @note The XISR is 24 bits:
diff --git a/src/include/usr/runtime/rt_targeting.H b/src/include/usr/runtime/rt_targeting.H
index 7559b6170..e26ea5fe4 100644
--- a/src/include/usr/runtime/rt_targeting.H
+++ b/src/include/usr/runtime/rt_targeting.H
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2014,2015 */
+/* Contributors Listed Below - COPYRIGHT 2014,2016 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -38,20 +38,19 @@ namespace RT_TARG
enum
{
- CHIPID_NODE_SHIFT = 3, //!< CHIPID NODE is 'NNNCCC'b
- MEMBUF_ID_SHIFT = 4, //!< CHIPID for MEMBUF is 'NNNCCCMMMM'b
- UNIT_ID_SHIFT = 4, //!< CHIPID for CORE is 'NNNCCCPPPP'b
- UNIT_ID_MASK = 0x000003ff, //!< Valid id bits w/o ID_FLAG
- PROC_ID_TYPE = 0x00000000, //!< PROC chip id type
- MEMBUF_ID_TYPE = 0x80000000, //!< MEMBUF chip id type
- CORE_ID_TYPE = 0x40000000, //!< CORE/EX chip id type
- CHIPID_ID_MASK = 0xFF000000, //!< TYPE field
+ MEMBUF_ID_SHIFT = 4, //!< CHIPID for MEMBUF is '<procid>MMMM'b
+ MEMBUF_ID_MASK = 0x0000000F, //!< valid position bits for MEMBUF
+
+ PROC_TYPE = 0x00000000, //!< PROC chip id type
+ MEMBUF_TYPE = 0x80000000, //!< MEMBUF chip id type
+ CORE_TYPE = 0x40000000, //!< CORE chip id type
+ CHIPID_TYPE_MASK = 0xFF000000, //!< TYPE field
};
/**
* @brief Convert a TARGETING::Target to an unit ID that can be used
- * in calls to Sapphire
+ * in calls to the runtime host
* @param[in] The HB TARGETING::Target
* @param[out] Sapphire target id
* @return an error handle on error
diff --git a/src/include/usr/targeting/common/targetservice.H b/src/include/usr/targeting/common/targetservice.H
index 828fe86f3..455502dcf 100644
--- a/src/include/usr/targeting/common/targetservice.H
+++ b/src/include/usr/targeting/common/targetservice.H
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2012,2015 */
+/* Contributors Listed Below - COPYRIGHT 2012,2016 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -79,8 +79,8 @@ namespace TARGETING
/* Invalid Section Id - to initialize struct variable */
static const uint8_t INVALID_SECTIONID = 0xFF;
- // Special "not found" fabric node ID is the data type with all bits set
- static const ATTR_FABRIC_NODE_ID_type FABRIC_NODE_ID_NOT_FOUND =
+ // Special "not found" fabric group ID is the data type with all bits set
+ static const ATTR_FABRIC_GROUP_ID_type FABRIC_GROUP_ID_NOT_FOUND =
INVALID_NODE;
/**
diff --git a/src/usr/devtree/bld_devtree.C b/src/usr/devtree/bld_devtree.C
index aca3f3562..14b690426 100644
--- a/src/usr/devtree/bld_devtree.C
+++ b/src/usr/devtree/bld_devtree.C
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2013,2015 */
+/* Contributors Listed Below - COPYRIGHT 2013,2016 */
/* [+] Google Inc. */
/* [+] International Business Machines Corp. */
/* */
@@ -34,7 +34,6 @@
#include <devtree/devtreeif.H>
#include "devtree.H"
#include <sys/mmio.h> //THIRTYTWO_GB
-#include <intr/interrupt.H>
#include <vpd/vpd_if.H>
#include <stdio.h>
#include <pnor/pnorif.H>
@@ -48,12 +47,15 @@
#include <vpd/pvpdenums.H>
#include <i2c/i2cif.H>
#include <i2c/eepromif.H>
+#include <intr/interrupt.H>
+
#include <ipmi/ipmisensor.H>
//@TODO RTC:143092
//#include <fapi.H>
//#include <fapiPlatHwpInvoker.H> // for fapi::fapiRcToErrl()
#include <vpd/mvpdenums.H>
+#include <arch/pirformat.H>
trace_desc_t *g_trac_devtree = NULL;
TRAC_INIT(&g_trac_devtree, "DEVTREE", 4096);
@@ -64,20 +66,17 @@ using namespace TARGETING;
typedef std::pair<uint64_t,uint64_t> homerAddr_t;
-#define CHIPID_EXTRACT_NODE(i_chipid) (i_chipid >> CHIPID_NODE_SHIFT)
-#define CHIPID_EXTRACT_PROC(i_chipid) (i_chipid & CHIPID_PROC_MASK)
-
enum BuildConstants
{
- DEVTREE_DATA_ADDR =0xFF00000, /* 256MB - 1MB*/
+ DEVTREE_DATA_ADDR =0xFF00000, /*256MB - 1MB*/
DEVTREE_SPACE_SIZE =0x40000, /*256KB*/
XSCOM_NODE_SHIFT =38, /*Node pos is 25, so 63-25=38*/
XSCOM_CHIP_SHIFT =35, /*Chip pos is 28, so 63-28=35*/
- CHIPID_NODE_SHIFT =3, /*CHIPID is NNNCCC, shift 3*/
- CHIPID_PROC_MASK =0x7, /*CHIPID is NNNCCC, shift 3*/
+ CHIPID_NODE_SHIFT =3, /*CHIPID is NNNNCCC, shift 3*/
+ CHIPID_PROC_MASK =0x7, /*CHIPID is NNNNCCC, shift 3*/
PHB0_MASK =0x80,
- MAX_PHBs =4, /*Max PHBs per chip is 4*/
- THREADPERCORE =8, /*8 threads per core*/
+ MAX_PHBs =4, /*Max PHBs per chip is 4*/
+ THREADPERCORE =8, /*8 threads per core*/
MHZ =1000000,
/* The Cache unit address (and reg property) is mostly free-for-all
@@ -168,7 +167,7 @@ void bld_swCheckstopFir (devTree * i_dt, dtOffset_t & i_parentNode)
//@todo-RTC:123043 -- Should use the functions in RT_TARG
uint32_t getProcChipId(const TARGETING::Target * i_pProc)
{
- uint32_t l_fabId = i_pProc->getAttr<TARGETING::ATTR_FABRIC_NODE_ID>();
+ uint32_t l_fabId = i_pProc->getAttr<TARGETING::ATTR_FABRIC_GROUP_ID>();
uint32_t l_procPos = i_pProc->getAttr<TARGETING::ATTR_FABRIC_CHIP_ID>();
return ( (l_fabId << CHIPID_NODE_SHIFT) + l_procPos);
}
@@ -600,6 +599,7 @@ void bld_xscom_node(devTree * i_dt, dtOffset_t & i_parentNode,
/**********************************************************/
/* Xscom node */
/**********************************************************/
+ //@todo-Fix for P9-RTC:128077
uint64_t l_xscomAddr = l_xscomBaseAddr +
(static_cast<uint64_t>(i_chipid) << XSCOM_CHIP_SHIFT);
@@ -787,7 +787,7 @@ uint32_t bld_l2_node(devTree * i_dt, dtOffset_t & i_parentNode,
uint32_t bld_cpu_node(devTree * i_dt, dtOffset_t & i_parentNode,
const TARGETING::Target * i_ex,
- INTR::PIR_t i_pir, uint32_t i_chipId,
+ PIR_t i_pir, uint32_t i_chipId,
uint32_t i_nextCacheHandle)
{
/*
@@ -929,7 +929,7 @@ uint32_t bld_cpu_node(devTree * i_dt, dtOffset_t & i_parentNode,
uint32_t bld_intr_node(devTree * i_dt, dtOffset_t & i_parentNode,
const TARGETING::Target * i_ex,
- INTR::PIR_t i_pir)
+ PIR_t i_pir)
{
/*
@@ -1421,26 +1421,26 @@ errlHndl_t bld_fdt_cpu(devTree * i_dt,
//to be reserved -- save it away
o_homerRegions.push_back(getHomerPhysAddr(l_pProc));
- TARGETING::TargetHandleList l_exlist;
- getChildChiplets( l_exlist, l_pProc, TYPE_CORE );
- for (size_t core = 0; core < l_exlist.size(); core++)
+ TARGETING::TargetHandleList l_corelist;
+ getChildChiplets( l_corelist, l_pProc, TYPE_CORE );
+ for (size_t core = 0; core < l_corelist.size(); core++)
{
- const TARGETING::Target * l_ex = l_exlist[core];
- if(l_ex->getAttr<TARGETING::ATTR_HWAS_STATE>().functional != true)
+ const TARGETING::Target * l_core = l_corelist[core];
+ if(l_core->getAttr<TARGETING::ATTR_HWAS_STATE>().functional != true)
{
continue; //Not functional
}
- /* Proc ID Reg is N NNCC CPPP PTTT Where
- NNN is node number
+ /* Proc ID Reg is GG GGCC CPPP PPTT Where
+ GGGG is Group number
CCC is Chip
- PPPP is the core number
- TTT is Thread num
+ PPPPP is the core number
+ TT is Thread num
*/
- uint32_t l_coreNum = l_ex->getAttr<TARGETING::ATTR_CHIP_UNIT>();
- INTR::PIR_t pir(0);
- pir.nodeId = CHIPID_EXTRACT_NODE(l_chipid);
- pir.chipId = CHIPID_EXTRACT_PROC(l_chipid);
+ uint32_t l_coreNum = l_core->getAttr<TARGETING::ATTR_CHIP_UNIT>();
+ PIR_t pir(0);
+ pir.groupId = PIR_t::groupFromChipId(l_chipid);
+ pir.chipId = PIR_t::chipFromChipId(l_chipid);
pir.coreId = l_coreNum;
TRACFCOMP( g_trac_devtree, "Added pir[%x] chipid 0x%x core %d",
@@ -1451,10 +1451,10 @@ errlHndl_t bld_fdt_cpu(devTree * i_dt,
uint32_t l3pHandle = bld_l3_node(i_dt, cpusNode, pir.word);
uint32_t l2pHandle = bld_l2_node(i_dt, cpusNode, pir.word,
l3pHandle);
- bld_cpu_node(i_dt, cpusNode, l_ex, pir, l_chipid, l2pHandle);
+ bld_cpu_node(i_dt, cpusNode, l_core, pir, l_chipid, l2pHandle);
rootNode = i_dt->findNode("/");
- bld_intr_node(i_dt, rootNode, l_ex, pir);
+ bld_intr_node(i_dt, rootNode, l_core, pir);
}
}
@@ -1949,19 +1949,20 @@ errlHndl_t bld_fdt_vpd(devTree * i_dt, bool i_smallTree)
//@TODO RTC:143092
#if 0
- TARGETING::TargetHandleList l_exlist;
+ TARGETING::TargetHandleList l_corelist;
fapi::Target l_pFapiProc(fapi::TARGET_TYPE_PROC_CHIP,
(const_cast<TARGETING::Target*>(l_pProc) ));
- getChildChiplets( l_exlist, l_pProc, TYPE_CORE );
- for (size_t core = 0; core < l_exlist.size(); core++)
+ getChildChiplets( l_corelist, l_pProc, TYPE_CORE );
+ for (size_t core = 0; core < l_corelist.size(); core++)
{
- const TARGETING::Target * l_ex = l_exlist[core];
+ const TARGETING::Target * l_core = l_corelist[core];
- uint32_t l_coreNum = l_ex->getAttr<TARGETING::ATTR_CHIP_UNIT>();
- INTR::PIR_t pir(0);
- pir.nodeId = CHIPID_EXTRACT_NODE(l_procId);
- pir.chipId = CHIPID_EXTRACT_PROC(l_procId);
+ uint32_t l_coreNum =
+ l_core->getAttr<TARGETING::ATTR_CHIP_UNIT>();
+ PIR_t pir(0);
+ pir.groupId = PIR_t::groupFromChipId(l_procId);
+ pir.chipId = PIR_t::chipFromChipId(l_procId);
pir.coreId = l_coreNum;
// Get #V bucket data
@@ -1982,10 +1983,10 @@ errlHndl_t bld_fdt_vpd(devTree * i_dt, bool i_smallTree)
}
//Add the attached core
- dtOffset_t exNode = i_dt->addNode(procNode, "cpu",
+ dtOffset_t coreNode = i_dt->addNode(procNode, "cpu",
pir.word);
- i_dt->addPropertyBytes(exNode, "frequency,voltage",
+ i_dt->addPropertyBytes(coreNode, "frequency,voltage",
reinterpret_cast<uint8_t*>( &l_poundVdata),
sizeof(fapi::voltageBucketData_t));
}
diff --git a/src/usr/diag/attn/common/attntarget.C b/src/usr/diag/attn/common/attntarget.C
index fcc9df417..ed90b75f2 100644
--- a/src/usr/diag/attn/common/attntarget.C
+++ b/src/usr/diag/attn/common/attntarget.C
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2014 */
+/* Contributors Listed Below - COPYRIGHT 2014,2016 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -189,9 +189,9 @@ bool TargetServiceImpl::getAttribute(
switch (i_attribute)
{
- case ATTR_FABRIC_NODE_ID:
+ case ATTR_FABRIC_GROUP_ID:
- found = i_target->tryGetAttr<ATTR_FABRIC_NODE_ID>(u8);
+ found = i_target->tryGetAttr<ATTR_FABRIC_GROUP_ID>(u8);
o_val = u8;
break;
diff --git a/src/usr/diag/attn/ipl/attnsvc.C b/src/usr/diag/attn/ipl/attnsvc.C
index 2fe0bb934..c8ecbae35 100644
--- a/src/usr/diag/attn/ipl/attnsvc.C
+++ b/src/usr/diag/attn/ipl/attnsvc.C
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2014,2015 */
+/* Contributors Listed Below - COPYRIGHT 2014,2016 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -177,7 +177,7 @@ void Service::processIntrQMsgPreAck(const msg_t & i_msg)
{
uint64_t node = 0, chip = 0;
- getTargetService().getAttribute(ATTR_FABRIC_NODE_ID, *it, node);
+ getTargetService().getAttribute(ATTR_FABRIC_GROUP_ID, *it, node);
getTargetService().getAttribute(ATTR_FABRIC_CHIP_ID, *it, chip);
if(node == xisr.node
diff --git a/src/usr/diag/attn/ipl/test/attnfakepresenter.C b/src/usr/diag/attn/ipl/test/attnfakepresenter.C
index d44bdf7de..f5c23f733 100644
--- a/src/usr/diag/attn/ipl/test/attnfakepresenter.C
+++ b/src/usr/diag/attn/ipl/test/attnfakepresenter.C
@@ -1,11 +1,11 @@
/* IBM_PROLOG_BEGIN_TAG */
/* This is an automatically generated prolog. */
/* */
-/* $Source: src/usr/diag/attn/hostboot/test/attnfakepresenter.C $ */
+/* $Source: src/usr/diag/attn/ipl/test/attnfakepresenter.C $ */
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2014 */
+/* Contributors Listed Below - COPYRIGHT 2014,2016 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -134,7 +134,7 @@ void FakePresenter::interrupt(
uint64_t node = 0, chip = 0;
- getTargetService().getAttribute(ATTR_FABRIC_NODE_ID, i_source, node);
+ getTargetService().getAttribute(ATTR_FABRIC_GROUP_ID, i_source, node);
getTargetService().getAttribute(ATTR_FABRIC_CHIP_ID, i_source, chip);
xisr.node = node;
diff --git a/src/usr/diag/attn/ipl/test/attnfaketarget.C b/src/usr/diag/attn/ipl/test/attnfaketarget.C
index 9f76135ea..9a4d5814a 100644
--- a/src/usr/diag/attn/ipl/test/attnfaketarget.C
+++ b/src/usr/diag/attn/ipl/test/attnfaketarget.C
@@ -1,11 +1,11 @@
/* IBM_PROLOG_BEGIN_TAG */
/* This is an automatically generated prolog. */
/* */
-/* $Source: src/usr/diag/attn/hostboot/test/attnfaketarget.C $ */
+/* $Source: src/usr/diag/attn/ipl/test/attnfaketarget.C $ */
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2014 */
+/* Contributors Listed Below - COPYRIGHT 2014,2016 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -87,7 +87,7 @@ bool FakeProcTargetService::getAttribute(
switch (i_attribute)
{
- case ATTR_FABRIC_NODE_ID:
+ case ATTR_FABRIC_GROUP_ID:
o_val = 0;
break;
diff --git a/src/usr/errl/errlmanager.C b/src/usr/errl/errlmanager.C
index fe48a2a8a..ac0174713 100644
--- a/src/usr/errl/errlmanager.C
+++ b/src/usr/errl/errlmanager.C
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2011,2015 */
+/* Contributors Listed Below - COPYRIGHT 2011,2016 */
/* [+] Google Inc. */
/* [+] International Business Machines Corp. */
/* */
@@ -46,7 +46,7 @@
#include <initservice/initserviceif.H>
#include <pnor/pnorif.H>
#include <sys/mm.h>
-#include <intr/interrupt.H>
+#include <arch/pirformat.H>
#include <errldisplay/errldisplay.H>
#include <console/consoleif.H>
#include <config.h>
@@ -155,10 +155,10 @@ ErrlManager::ErrlManager() :
// [0..3] for hostboot on master proc (chip==0) on node [0..3]
// [4..7] for hostboot on alternate proc on node [0..3]
- const INTR::PIR_t masterCpu = task_getcpuid();
+ const PIR_t masterCpu = task_getcpuid();
const uint32_t l_eid_id = (masterCpu.chipId == 0) ?
- masterCpu.nodeId :
- masterCpu.nodeId + 4;
+ masterCpu.groupId :
+ masterCpu.groupId + 4;
iv_currLogId = ERRLOG_PLID_BASE + ERRLOG_PLID_INITIAL +
(l_eid_id << ERRLOG_PLID_NODE_SHIFT);
@@ -170,7 +170,7 @@ ErrlManager::ErrlManager() :
// whatever it is.
TRACFCOMP( g_trac_errl, INFO_MRK"ErrlManager on node %d (%smaster proc), LogId 0x%X",
- masterCpu.nodeId, (masterCpu.chipId == 0) ? "" : "alternate ",
+ masterCpu.groupId, (masterCpu.chipId == 0) ? "" : "alternate ",
iv_currLogId);
// Create and register error log message queue.
diff --git a/src/usr/hwas/common/deconfigGard.C b/src/usr/hwas/common/deconfigGard.C
index fa266c881..5e08ed095 100644
--- a/src/usr/hwas/common/deconfigGard.C
+++ b/src/usr/hwas/common/deconfigGard.C
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2012,2015 */
+/* Contributors Listed Below - COPYRIGHT 2012,2016 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -1137,9 +1137,9 @@ errlHndl_t DeconfigGard::_invokeDeconfigureAssocProc(
// HUID
l_ProcInfo.procHUID =
(*l_procsIter)->getAttr<ATTR_HUID>();
- // FABRIC_NODE_ID
- l_ProcInfo.procFabricNode =
- (*l_procsIter)->getAttr<ATTR_FABRIC_NODE_ID>();
+ // FABRIC_GROUP_ID
+ l_ProcInfo.procFabricGroup =
+ (*l_procsIter)->getAttr<ATTR_FABRIC_GROUP_ID>();
// FABRIC_CHIP_ID
l_ProcInfo.procFabricChip =
(*l_procsIter)->getAttr<ATTR_FABRIC_CHIP_ID>();
@@ -2024,7 +2024,7 @@ errlHndl_t DeconfigGard::_deconfigureAssocProc(ProcInfoVector &io_procInfo)
// STEP 3:
// If a deconfigured bus connects two non-master procs,
- // both of which are in the master-containing logical node,
+ // both of which are in the master-containing logical group,
// mark proc with higher HUID to be deconfigured.
// Iterate through procs and check xbus chiplets
@@ -2043,9 +2043,9 @@ errlHndl_t DeconfigGard::_deconfigureAssocProc(ProcInfoVector &io_procInfo)
{
continue;
}
- // If current proc is on master logical node
- if (l_pMasterProcInfo->procFabricNode ==
- (*l_procInfoIter).procFabricNode)
+ // If current proc is on master logical group
+ if (l_pMasterProcInfo->procFabricGroup ==
+ (*l_procInfoIter).procFabricGroup)
{
// Check xbus endpoints
for (uint8_t i = 0; i < NUM_X_BUSES; i++)
@@ -2063,7 +2063,7 @@ errlHndl_t DeconfigGard::_deconfigureAssocProc(ProcInfoVector &io_procInfo)
" %.8X for deconfiguration "
"due to higher HUID than peer "
"proc on same master-containing logical "
- "node.",
+ "group.",
(*l_procInfoIter).iv_pXProcs[i]->procHUID);
(*l_procInfoIter).iv_pXProcs[i]->
iv_deconfigured = true;
@@ -2074,7 +2074,7 @@ errlHndl_t DeconfigGard::_deconfigureAssocProc(ProcInfoVector &io_procInfo)
"%.8X for deconfiguration "
"due to higher HUID than peer "
"proc on same master-containing logical "
- "node.",
+ "group.",
(*l_procInfoIter).procHUID);
(*l_procInfoIter).iv_deconfigured = true;
}
@@ -2086,14 +2086,14 @@ errlHndl_t DeconfigGard::_deconfigureAssocProc(ProcInfoVector &io_procInfo)
// STEP 4:
// If a deconfigured bus connects two procs, both in the same
- // non-master-containing logical node, mark current proc
+ // non-master-containing logical group, mark current proc
// deconfigured if there is a same position proc marked deconfigured
- // in the master logical node, else mark remote proc if there is
+ // in the master logical group, else mark remote proc if there is
// a same position proc marked deconfigured in the master logical
- // node otherwise, mark the proc with the higher HUID.
+ // group otherwise, mark the proc with the higher HUID.
// Iterate through procs and, if in non-master
- // logical node, check xbus chiplets
+ // logical group, check xbus chiplets
for (ProcInfoVector::iterator
l_procInfoIter = io_procInfo.begin();
l_procInfoIter != io_procInfo.end();
@@ -2104,14 +2104,14 @@ errlHndl_t DeconfigGard::_deconfigureAssocProc(ProcInfoVector &io_procInfo)
{
continue;
}
- // Don't examine procs on master logical node
- if (l_pMasterProcInfo->procFabricNode ==
- (*l_procInfoIter).procFabricNode)
+ // Don't examine procs on master logical group
+ if (l_pMasterProcInfo->procFabricGroup ==
+ (*l_procInfoIter).procFabricGroup)
{
continue;
}
// Check xbuses because they connect procs which
- // are in the same logical node
+ // are in the same logical group
for (uint8_t i = 0; i < NUM_X_BUSES; i++)
{
// If endpoint deconfigured and endpoint peer proc
@@ -2123,19 +2123,19 @@ errlHndl_t DeconfigGard::_deconfigureAssocProc(ProcInfoVector &io_procInfo)
// finding a proc to mark deconfigured
bool l_chipIDmatch = false;
// Iterate through procs and examine ones found to
- // be on the master-containing logical node
+ // be on the master-containing logical group
for (ProcInfoVector::const_iterator
- l_mNodeProcInfoIter = io_procInfo.begin();
- l_mNodeProcInfoIter != io_procInfo.end();
- ++l_mNodeProcInfoIter)
+ l_mGroupProcInfoIter = io_procInfo.begin();
+ l_mGroupProcInfoIter != io_procInfo.end();
+ ++l_mGroupProcInfoIter)
{
- if (l_pMasterProcInfo->procFabricNode ==
- (*l_mNodeProcInfoIter).procFabricNode)
+ if (l_pMasterProcInfo->procFabricGroup ==
+ (*l_mGroupProcInfoIter).procFabricGroup)
{
- // If master logical node proc deconfigured with
+ // If master logical group proc deconfigured with
// same FABRIC_CHIP_ID as current proc
- if (((*l_mNodeProcInfoIter).iv_deconfigured) &&
- ((*l_mNodeProcInfoIter).procFabricChip ==
+ if (((*l_mGroupProcInfoIter).iv_deconfigured) &&
+ ((*l_mGroupProcInfoIter).procFabricChip ==
(*l_procInfoIter).procFabricChip))
{
// Mark current proc to be deconfigured
@@ -2144,19 +2144,19 @@ errlHndl_t DeconfigGard::_deconfigureAssocProc(ProcInfoVector &io_procInfo)
"%.8X for deconfiguration "
"due to same position deconfigured "
"proc on master-containing logical "
- "node.",
+ "group.",
(*l_procInfoIter).procHUID);
(*l_procInfoIter).iv_deconfigured =\
true;
l_chipIDmatch = true;
break;
}
- // If master logical node proc deconfigured with
+ // If master logical group proc deconfigured with
// same FABRIC_CHIP_ID as current proc's xbus peer
// proc
- else if (((*l_mNodeProcInfoIter).
+ else if (((*l_mGroupProcInfoIter).
iv_deconfigured) &&
- ((*l_mNodeProcInfoIter).
+ ((*l_mGroupProcInfoIter).
procFabricChip ==
(*l_procInfoIter).iv_pXProcs[i]->
procFabricChip))
@@ -2167,7 +2167,7 @@ errlHndl_t DeconfigGard::_deconfigureAssocProc(ProcInfoVector &io_procInfo)
"proc: %.8X for deconfiguration "
"due to same position deconfigured "
"proc on master-containing logical "
- "node.",
+ "group.",
(*l_procInfoIter).iv_pXProcs[i]->procHUID);
(*l_procInfoIter).iv_pXProcs[i]->
iv_deconfigured = true;
@@ -2187,7 +2187,7 @@ errlHndl_t DeconfigGard::_deconfigureAssocProc(ProcInfoVector &io_procInfo)
" %.8X for deconfiguration "
"due to higher HUID than peer "
"proc on same non master-containing logical "
- "node.",
+ "group.",
(*l_procInfoIter).procHUID);
(*l_procInfoIter).iv_deconfigured =
true;
@@ -2198,7 +2198,7 @@ errlHndl_t DeconfigGard::_deconfigureAssocProc(ProcInfoVector &io_procInfo)
" %.8X for deconfiguration "
"due to higher HUID than peer "
"proc on same non master-containing logical "
- "node.",
+ "group.",
(*l_procInfoIter).iv_pXProcs[i]->procHUID);
(*l_procInfoIter).iv_pXProcs[i]->
iv_deconfigured = true;
@@ -2209,7 +2209,7 @@ errlHndl_t DeconfigGard::_deconfigureAssocProc(ProcInfoVector &io_procInfo)
}// STEP 4
// STEP 5:
- // If a deconfigured bus conects two procs on different logical nodes,
+ // If a deconfigured bus conects two procs on different logical groups,
// and neither proc is the master proc: If current proc's xbus peer
// proc is marked as deconfigured, mark current proc. Else, mark
// abus peer proc.
@@ -2231,7 +2231,7 @@ errlHndl_t DeconfigGard::_deconfigureAssocProc(ProcInfoVector &io_procInfo)
continue;
}
// Check abuses because they connect procs which are in
- // different logical nodes
+ // different logical groups
for (uint8_t i = 0; i < NUM_A_BUSES; i++)
{
// If endpoint deconfigured and endpoint peer proc
@@ -2279,7 +2279,7 @@ errlHndl_t DeconfigGard::_deconfigureAssocProc(ProcInfoVector &io_procInfo)
}while(0);
if (!l_errlHdl)
{
- // Perform SMP node balancing
+ // Perform SMP group balancing
l_errlHdl = _symmetryValidation(io_procInfo);
}
return l_errlHdl;
@@ -2293,13 +2293,13 @@ errlHndl_t DeconfigGard::_symmetryValidation(ProcInfoVector &io_procInfo)
// Defined for possible use in future applications
errlHndl_t l_errlHdl = NULL;
- // Perform SMP node balancing
+ // Perform SMP group balancing
do
{
// STEP 1:
- // If a proc is deconfigured in a logical node
+ // If a proc is deconfigured in a logical group
// containing the master proc, iterate through all procs
- // and mark as deconfigured those in other logical nodes
+ // and mark as deconfigured those in other logical groups
// with the same FABRIC_CHIP_ID (procFabricChip)
// Find master proc
@@ -2320,7 +2320,7 @@ errlHndl_t DeconfigGard::_symmetryValidation(ProcInfoVector &io_procInfo)
// If no master proc found, abort
HWAS_ASSERT(l_pMasterProcInfo, "HWAS _symmetryValidation:"
"Master proc not found");
- // Iterate through procs and check if in master logical node
+ // Iterate through procs and check if in master logical group
for (ProcInfoVector::const_iterator
l_procInfoIter = io_procInfo.begin();
l_procInfoIter != io_procInfo.end();
@@ -2331,10 +2331,10 @@ errlHndl_t DeconfigGard::_symmetryValidation(ProcInfoVector &io_procInfo)
{
continue;
}
- // If current proc is on master logical node
+ // If current proc is on master logical group
// and marked as deconfigured
- if ((l_pMasterProcInfo->procFabricNode ==
- (*l_procInfoIter).procFabricNode) &&
+ if ((l_pMasterProcInfo->procFabricGroup ==
+ (*l_procInfoIter).procFabricGroup) &&
((*l_procInfoIter).iv_deconfigured))
{
// Iterate through procs and mark any same-
@@ -2357,13 +2357,13 @@ errlHndl_t DeconfigGard::_symmetryValidation(ProcInfoVector &io_procInfo)
}// STEP 1
// STEP 2:
- // If a deconfigured proc is found on a non-master-containing node
+ // If a deconfigured proc is found on a non-master-containing group
// and has the same position (FABRIC_CHIP_ID) as a functional
- // non-master chip on the master logical node,
+ // non-master chip on the master logical group,
// mark its xbus peer proc(s) for deconfiguration
// Iterate through procs, if marked deconfigured, compare chip
- // position to functional chip on master node.
+ // position to functional chip on master group.
for (ProcInfoVector::const_iterator
l_procInfoIter = io_procInfo.begin();
l_procInfoIter != io_procInfo.end();
@@ -2373,19 +2373,19 @@ errlHndl_t DeconfigGard::_symmetryValidation(ProcInfoVector &io_procInfo)
if ((*l_procInfoIter).iv_deconfigured)
{
// Iterate through procs, examining those on
- // the master logical node
+ // the master logical group
for (ProcInfoVector::const_iterator
- l_mNodeProcInfoIter = io_procInfo.begin();
- l_mNodeProcInfoIter != io_procInfo.end();
- ++l_mNodeProcInfoIter)
+ l_mGroupProcInfoIter = io_procInfo.begin();
+ l_mGroupProcInfoIter != io_procInfo.end();
+ ++l_mGroupProcInfoIter)
{
- // If proc found is on the master-containing logical node
+ // If proc found is on the master-containing logical group
// functional, and matches the position of the deconfigured
// proc from the outer loop
- if ((l_pMasterProcInfo->procFabricNode ==
- (*l_mNodeProcInfoIter).procFabricNode) &&
- (!((*l_mNodeProcInfoIter).iv_deconfigured)) &&
- ((*l_mNodeProcInfoIter).procFabricChip ==
+ if ((l_pMasterProcInfo->procFabricGroup ==
+ (*l_mGroupProcInfoIter).procFabricGroup) &&
+ (!((*l_mGroupProcInfoIter).iv_deconfigured)) &&
+ ((*l_mGroupProcInfoIter).procFabricChip ==
(*l_procInfoIter).procFabricChip))
{
// Find xbus peer proc to mark deconfigured
diff --git a/src/usr/hwas/test/hwasGardTest.H b/src/usr/hwas/test/hwasGardTest.H
index f25a67ee3..a1d3110fc 100644
--- a/src/usr/hwas/test/hwasGardTest.H
+++ b/src/usr/hwas/test/hwasGardTest.H
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2011,2015 */
+/* Contributors Listed Below - COPYRIGHT 2011,2016 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -1812,7 +1812,7 @@ public:
// Proc0:
l_tuletaProcs[0].iv_pThisProc = NULL; // Target *
l_tuletaProcs[0].procHUID = 0; // HUID
- l_tuletaProcs[0].procFabricNode = 0; // FABRIC_NODE_ID
+ l_tuletaProcs[0].procFabricGroup = 0; // FABRIC_GROUP_ID
l_tuletaProcs[0].procFabricChip = 0; // FABRIC_CHIP_ID
l_tuletaProcs[0].iv_masterCapable = true; // Master proc
l_tuletaProcs[0].iv_deconfigured = false; // HWAS state
@@ -1828,7 +1828,7 @@ public:
// Proc1:
l_tuletaProcs[1].iv_pThisProc = NULL; // Target *
l_tuletaProcs[1].procHUID = 1; // HUID
- l_tuletaProcs[1].procFabricNode = 0; // FABRIC_NODE_ID
+ l_tuletaProcs[1].procFabricGroup = 0; // FABRIC_GROUP_ID
l_tuletaProcs[1].procFabricChip = 1; // FABRIC_CHIP_ID
l_tuletaProcs[1].iv_masterCapable = false; // Not master proc
l_tuletaProcs[1].iv_deconfigured = false; // HWAS state
@@ -1841,7 +1841,7 @@ public:
// Proc2:
l_tuletaProcs[2].iv_pThisProc = NULL; // Target *
l_tuletaProcs[2].procHUID = 2; // HUID
- l_tuletaProcs[2].procFabricNode = 1; // FABRIC_NODE_ID
+ l_tuletaProcs[2].procFabricGroup = 1; // FABRIC_GROUP_ID
l_tuletaProcs[2].procFabricChip = 0; // FABRIC_CHIP_ID
l_tuletaProcs[2].iv_masterCapable = false; // Not master proc
l_tuletaProcs[2].iv_deconfigured = false; // HWAS state
@@ -1855,7 +1855,7 @@ public:
// Proc3:
l_tuletaProcs[3].iv_pThisProc = NULL; // Target *
l_tuletaProcs[3].procHUID = 3; // HUID
- l_tuletaProcs[3].procFabricNode = 1; // FABRIC_NODE_ID
+ l_tuletaProcs[3].procFabricGroup = 1; // FABRIC_GROUP_ID
l_tuletaProcs[3].procFabricChip = 1; // FABRIC_CHIP_ID
l_tuletaProcs[3].iv_masterCapable = false; // Not master proc
l_tuletaProcs[3].iv_deconfigured = false; // HWAS state
@@ -1920,7 +1920,7 @@ public:
// Proc0:
l_tuletaProcs[0].iv_pThisProc = NULL; // Target *
l_tuletaProcs[0].procHUID = 0; // HUID
- l_tuletaProcs[0].procFabricNode = 0; // FABRIC_NODE_ID
+ l_tuletaProcs[0].procFabricGroup = 0; // FABRIC_GROUP_ID
l_tuletaProcs[0].procFabricChip = 0; // FABRIC_CHIP_ID
l_tuletaProcs[0].iv_masterCapable = false; // Note master proc
l_tuletaProcs[0].iv_deconfigured = false; // HWAS state
@@ -1933,7 +1933,7 @@ public:
// Proc1:
l_tuletaProcs[1].iv_pThisProc = NULL; // Target *
l_tuletaProcs[1].procHUID = 1; // HUID
- l_tuletaProcs[1].procFabricNode = 0; // FABRIC_NODE_ID
+ l_tuletaProcs[1].procFabricGroup = 0; // FABRIC_GROUP_ID
l_tuletaProcs[1].procFabricChip = 1; // FABRIC_CHIP_ID
l_tuletaProcs[1].iv_masterCapable = false; // Not master proc
l_tuletaProcs[1].iv_deconfigured = false; // HWAS state
@@ -1946,7 +1946,7 @@ public:
// Proc2:
l_tuletaProcs[2].iv_pThisProc = NULL; // Target *
l_tuletaProcs[2].procHUID = 2; // HUID
- l_tuletaProcs[2].procFabricNode = 1; // FABRIC_NODE_ID
+ l_tuletaProcs[2].procFabricGroup = 1; // FABRIC_GROUP_ID
l_tuletaProcs[2].procFabricChip = 0; // FABRIC_CHIP_ID
l_tuletaProcs[2].iv_masterCapable = true; // Master proc
l_tuletaProcs[2].iv_deconfigured = false; // HWAS state
@@ -1960,7 +1960,7 @@ public:
// Proc3:
l_tuletaProcs[3].iv_pThisProc = NULL; // Target *
l_tuletaProcs[3].procHUID = 3; // HUID
- l_tuletaProcs[3].procFabricNode = 1; // FABRIC_NODE_ID
+ l_tuletaProcs[3].procFabricGroup = 1; // FABRIC_GROUP_ID
l_tuletaProcs[3].procFabricChip = 1; // FABRIC_CHIP_ID
l_tuletaProcs[3].iv_masterCapable = false; // Not master proc
l_tuletaProcs[3].iv_deconfigured = false; // HWAS state
@@ -2024,7 +2024,7 @@ public:
// Proc0:
l_orlenaProcs[0].iv_pThisProc = NULL; // Target *
l_orlenaProcs[0].procHUID = 0; // HUID
- l_orlenaProcs[0].procFabricNode = 0; // FABRIC_NODE_ID
+ l_orlenaProcs[0].procFabricGroup = 0; // FABRIC_GROUP_ID
l_orlenaProcs[0].procFabricChip = 0; // FABRIC_CHIP_ID
l_orlenaProcs[0].iv_masterCapable = true; // Master proc
l_orlenaProcs[0].iv_deconfigured = false; // HWAS state
@@ -2039,7 +2039,7 @@ public:
// Proc1:
l_orlenaProcs[1].iv_pThisProc = NULL; // Target *
l_orlenaProcs[1].procHUID = 1; // HUID
- l_orlenaProcs[1].procFabricNode = 0; // FABRIC_NODE_ID
+ l_orlenaProcs[1].procFabricGroup = 0; // FABRIC_GROUP_ID
l_orlenaProcs[1].procFabricChip = 1; // FABRIC_CHIP_ID
l_orlenaProcs[1].iv_masterCapable = false; // Not master proc
l_orlenaProcs[1].iv_deconfigured = false; // HWAS state
@@ -2054,7 +2054,7 @@ public:
// Proc2:
l_orlenaProcs[2].iv_pThisProc = NULL; // Target *
l_orlenaProcs[2].procHUID = 2; // HUID
- l_orlenaProcs[2].procFabricNode = 1; // FABRIC_NODE_ID
+ l_orlenaProcs[2].procFabricGroup = 1; // FABRIC_GROUP_ID
l_orlenaProcs[2].procFabricChip = 0; // FABRIC_CHIP_ID
l_orlenaProcs[2].iv_masterCapable = false; // Not master proc
l_orlenaProcs[2].iv_deconfigured = false; // HWAS state
@@ -2068,7 +2068,7 @@ public:
// Proc3:
l_orlenaProcs[3].iv_pThisProc = NULL; // Target *
l_orlenaProcs[3].procHUID = 3; // HUID
- l_orlenaProcs[3].procFabricNode = 1; // FABRIC_NODE_ID
+ l_orlenaProcs[3].procFabricGroup = 1; // FABRIC_GROUP_ID
l_orlenaProcs[3].procFabricChip = 1; // FABRIC_CHIP_ID
l_orlenaProcs[3].iv_masterCapable = false; // Not master proc
l_orlenaProcs[3].iv_deconfigured = false; // HWAS state
@@ -2082,7 +2082,7 @@ public:
// Proc4:
l_orlenaProcs[4].iv_pThisProc = NULL; // Target *
l_orlenaProcs[4].procHUID = 4; // HUID
- l_orlenaProcs[4].procFabricNode = 2; // FABRIC_NODE_ID
+ l_orlenaProcs[4].procFabricGroup = 2; // FABRIC_GROUP_ID
l_orlenaProcs[4].procFabricChip = 0; // FABRIC_CHIP_ID
l_orlenaProcs[4].iv_masterCapable = false; // Master proc
l_orlenaProcs[4].iv_deconfigured = false; // HWAS state
@@ -2096,7 +2096,7 @@ public:
// Proc5:
l_orlenaProcs[5].iv_pThisProc = NULL; // Target *
l_orlenaProcs[5].procHUID = 5; // HUID
- l_orlenaProcs[5].procFabricNode = 2; // FABRIC_NODE_ID
+ l_orlenaProcs[5].procFabricGroup = 2; // FABRIC_GROUP_ID
l_orlenaProcs[5].procFabricChip = 1; // FABRIC_CHIP_ID
l_orlenaProcs[5].iv_masterCapable = false; // Not master proc
l_orlenaProcs[5].iv_deconfigured = false; // HWAS state
@@ -2110,7 +2110,7 @@ public:
// Proc6:
l_orlenaProcs[6].iv_pThisProc = NULL; // Target *
l_orlenaProcs[6].procHUID = 6; // HUID
- l_orlenaProcs[6].procFabricNode = 3; // FABRIC_NODE_ID
+ l_orlenaProcs[6].procFabricGroup = 3; // FABRIC_GROUP_ID
l_orlenaProcs[6].procFabricChip = 0; // FABRIC_CHIP_ID
l_orlenaProcs[6].iv_masterCapable = false; // Not master proc
l_orlenaProcs[6].iv_deconfigured = false; // HWAS state
@@ -2124,7 +2124,7 @@ public:
// Proc7:
l_orlenaProcs[7].iv_pThisProc = NULL; // Target *
l_orlenaProcs[7].procHUID = 7; // HUID
- l_orlenaProcs[7].procFabricNode = 3; // FABRIC_NODE_ID
+ l_orlenaProcs[7].procFabricGroup = 3; // FABRIC_GROUP_ID
l_orlenaProcs[7].procFabricChip = 1; // FABRIC_CHIP_ID
l_orlenaProcs[7].iv_masterCapable = false; // Not master proc
l_orlenaProcs[7].iv_deconfigured = false; // HWAS state
@@ -2193,7 +2193,7 @@ public:
// Proc0:
l_orlenaProcs[0].iv_pThisProc = NULL; // Target *
l_orlenaProcs[0].procHUID = 0; // HUID
- l_orlenaProcs[0].procFabricNode = 0; // FABRIC_NODE_ID
+ l_orlenaProcs[0].procFabricGroup = 0; // FABRIC_GROUP_ID
l_orlenaProcs[0].procFabricChip = 0; // FABRIC_CHIP_ID
l_orlenaProcs[0].iv_masterCapable = true; // Master proc
l_orlenaProcs[0].iv_deconfigured = false; // HWAS state
@@ -2207,7 +2207,7 @@ public:
// Proc1:
l_orlenaProcs[1].iv_pThisProc = NULL; // Target *
l_orlenaProcs[1].procHUID = 1; // HUID
- l_orlenaProcs[1].procFabricNode = 0; // FABRIC_NODE_ID
+ l_orlenaProcs[1].procFabricGroup = 0; // FABRIC_GROUP_ID
l_orlenaProcs[1].procFabricChip = 1; // FABRIC_CHIP_ID
l_orlenaProcs[1].iv_masterCapable = false; // Not master proc
l_orlenaProcs[1].iv_deconfigured = false; // HWAS state
@@ -2221,7 +2221,7 @@ public:
// Proc2:
l_orlenaProcs[2].iv_pThisProc = NULL; // Target *
l_orlenaProcs[2].procHUID = 2; // HUID
- l_orlenaProcs[2].procFabricNode = 1; // FABRIC_NODE_ID
+ l_orlenaProcs[2].procFabricGroup = 1; // FABRIC_GROUP_ID
l_orlenaProcs[2].procFabricChip = 0; // FABRIC_CHIP_ID
l_orlenaProcs[2].iv_masterCapable = false; // Not master proc
l_orlenaProcs[2].iv_deconfigured = false; // HWAS state
@@ -2236,7 +2236,7 @@ public:
// Proc3:
l_orlenaProcs[3].iv_pThisProc = NULL; // Target *
l_orlenaProcs[3].procHUID = 3; // HUID
- l_orlenaProcs[3].procFabricNode = 1; // FABRIC_NODE_ID
+ l_orlenaProcs[3].procFabricGroup = 1; // FABRIC_GROUP_ID
l_orlenaProcs[3].procFabricChip = 1; // FABRIC_CHIP_ID
l_orlenaProcs[3].iv_masterCapable = false; // Not master proc
l_orlenaProcs[3].iv_deconfigured = false; // HWAS state
@@ -2250,7 +2250,7 @@ public:
// Proc4:
l_orlenaProcs[4].iv_pThisProc = NULL; // Target *
l_orlenaProcs[4].procHUID = 4; // HUID
- l_orlenaProcs[4].procFabricNode = 2; // FABRIC_NODE_ID
+ l_orlenaProcs[4].procFabricGroup = 2; // FABRIC_GROUP_ID
l_orlenaProcs[4].procFabricChip = 0; // FABRIC_CHIP_ID
l_orlenaProcs[4].iv_masterCapable = false; // Master proc
l_orlenaProcs[4].iv_deconfigured = false; // HWAS state
@@ -2265,7 +2265,7 @@ public:
// Proc5:
l_orlenaProcs[5].iv_pThisProc = NULL; // Target *
l_orlenaProcs[5].procHUID = 5; // HUID
- l_orlenaProcs[5].procFabricNode = 2; // FABRIC_NODE_ID
+ l_orlenaProcs[5].procFabricGroup = 2; // FABRIC_GROUP_ID
l_orlenaProcs[5].procFabricChip = 1; // FABRIC_CHIP_ID
l_orlenaProcs[5].iv_masterCapable = false; // Not master proc
l_orlenaProcs[5].iv_deconfigured = false; // HWAS state
@@ -2279,7 +2279,7 @@ public:
// Proc6:
l_orlenaProcs[6].iv_pThisProc = NULL; // Target *
l_orlenaProcs[6].procHUID = 6; // HUID
- l_orlenaProcs[6].procFabricNode = 3; // FABRIC_NODE_ID
+ l_orlenaProcs[6].procFabricGroup = 3; // FABRIC_GROUP_ID
l_orlenaProcs[6].procFabricChip = 0; // FABRIC_CHIP_ID
l_orlenaProcs[6].iv_masterCapable = false; // Not master proc
l_orlenaProcs[6].iv_deconfigured = false; // HWAS state
@@ -2294,7 +2294,7 @@ public:
// Proc7:
l_orlenaProcs[7].iv_pThisProc = NULL; // Target *
l_orlenaProcs[7].procHUID = 7; // HUID
- l_orlenaProcs[7].procFabricNode = 3; // FABRIC_NODE_ID
+ l_orlenaProcs[7].procFabricGroup = 3; // FABRIC_GROUP_ID
l_orlenaProcs[7].procFabricChip = 1; // FABRIC_CHIP_ID
l_orlenaProcs[7].iv_masterCapable = false; // Not master proc
l_orlenaProcs[7].iv_deconfigured = false; // HWAS state
@@ -2365,7 +2365,7 @@ public:
// Proc0:
l_orlenaProcs[0].iv_pThisProc = NULL; // Target *
l_orlenaProcs[0].procHUID = 0; // HUID
- l_orlenaProcs[0].procFabricNode = 0; // FABRIC_NODE_ID
+ l_orlenaProcs[0].procFabricGroup = 0; // FABRIC_GROUP_ID
l_orlenaProcs[0].procFabricChip = 0; // FABRIC_CHIP_ID
l_orlenaProcs[0].iv_masterCapable = true; // Master proc
l_orlenaProcs[0].iv_deconfigured = false; // HWAS state
@@ -2380,7 +2380,7 @@ public:
// Proc1:
l_orlenaProcs[1].iv_pThisProc = NULL; // Target *
l_orlenaProcs[1].procHUID = 1; // HUID
- l_orlenaProcs[1].procFabricNode = 0; // FABRIC_NODE_ID
+ l_orlenaProcs[1].procFabricGroup = 0; // FABRIC_GROUP_ID
l_orlenaProcs[1].procFabricChip = 1; // FABRIC_CHIP_ID
l_orlenaProcs[1].iv_masterCapable = false; // Not master proc
l_orlenaProcs[1].iv_deconfigured = false; // HWAS state
@@ -2394,7 +2394,7 @@ public:
// Proc2:
l_orlenaProcs[2].iv_pThisProc = NULL; // Target *
l_orlenaProcs[2].procHUID = 2; // HUID
- l_orlenaProcs[2].procFabricNode = 1; // FABRIC_NODE_ID
+ l_orlenaProcs[2].procFabricGroup = 1; // FABRIC_GROUP_ID
l_orlenaProcs[2].procFabricChip = 0; // FABRIC_CHIP_ID
l_orlenaProcs[2].iv_masterCapable = false; // Not master proc
l_orlenaProcs[2].iv_deconfigured = false; // HWAS state
@@ -2409,7 +2409,7 @@ public:
// Proc3:
l_orlenaProcs[3].iv_pThisProc = NULL; // Target *
l_orlenaProcs[3].procHUID = 3; // HUID
- l_orlenaProcs[3].procFabricNode = 1; // FABRIC_NODE_ID
+ l_orlenaProcs[3].procFabricGroup = 1; // FABRIC_GROUP_ID
l_orlenaProcs[3].procFabricChip = 1; // FABRIC_CHIP_ID
l_orlenaProcs[3].iv_masterCapable = false; // Not master proc
l_orlenaProcs[3].iv_deconfigured = false; // HWAS state
@@ -2423,7 +2423,7 @@ public:
// Proc4:
l_orlenaProcs[4].iv_pThisProc = NULL; // Target *
l_orlenaProcs[4].procHUID = 4; // HUID
- l_orlenaProcs[4].procFabricNode = 2; // FABRIC_NODE_ID
+ l_orlenaProcs[4].procFabricGroup = 2; // FABRIC_GROUP_ID
l_orlenaProcs[4].procFabricChip = 0; // FABRIC_CHIP_ID
l_orlenaProcs[4].iv_masterCapable = false; // Master proc
l_orlenaProcs[4].iv_deconfigured = true; // HWAS state
@@ -2441,7 +2441,7 @@ public:
// Proc5:
l_orlenaProcs[5].iv_pThisProc = NULL; // Target *
l_orlenaProcs[5].procHUID = 5; // HUID
- l_orlenaProcs[5].procFabricNode = 2; // FABRIC_NODE_ID
+ l_orlenaProcs[5].procFabricGroup = 2; // FABRIC_GROUP_ID
l_orlenaProcs[5].procFabricChip = 1; // FABRIC_CHIP_ID
l_orlenaProcs[5].iv_masterCapable = false; // Not master proc
l_orlenaProcs[5].iv_deconfigured = false; // HWAS state
@@ -2457,7 +2457,7 @@ public:
// Proc6:
l_orlenaProcs[6].iv_pThisProc = NULL; // Target *
l_orlenaProcs[6].procHUID = 6; // HUID
- l_orlenaProcs[6].procFabricNode = 3; // FABRIC_NODE_ID
+ l_orlenaProcs[6].procFabricGroup = 3; // FABRIC_GROUP_ID
l_orlenaProcs[6].procFabricChip = 0; // FABRIC_CHIP_ID
l_orlenaProcs[6].iv_masterCapable = false; // Not master proc
l_orlenaProcs[6].iv_deconfigured = false; // HWAS state
@@ -2472,7 +2472,7 @@ public:
// Proc7:
l_orlenaProcs[7].iv_pThisProc = NULL; // Target *
l_orlenaProcs[7].procHUID = 7; // HUID
- l_orlenaProcs[7].procFabricNode = 3; // FABRIC_NODE_ID
+ l_orlenaProcs[7].procFabricGroup = 3; // FABRIC_GROUP_ID
l_orlenaProcs[7].procFabricChip = 1; // FABRIC_CHIP_ID
l_orlenaProcs[7].iv_masterCapable = false; // Not master proc
l_orlenaProcs[7].iv_deconfigured = false; // HWAS state
@@ -2545,7 +2545,7 @@ public:
// Proc0:
l_brazosProcs[0].iv_pThisProc = NULL; // Target *
l_brazosProcs[0].procHUID = 0; // HUID
- l_brazosProcs[0].procFabricNode = 0; // FABRIC_NODE_ID
+ l_brazosProcs[0].procFabricGroup = 0; // FABRIC_GROUP_ID
l_brazosProcs[0].procFabricChip = 0; // FABRIC_CHIP_ID
l_brazosProcs[0].iv_masterCapable = true; // Master proc
l_brazosProcs[0].iv_deconfigured = false; // HWAS state
@@ -2558,7 +2558,7 @@ public:
// Proc1:
l_brazosProcs[1].iv_pThisProc = NULL; // Target *
l_brazosProcs[1].procHUID = 1; // HUID
- l_brazosProcs[1].procFabricNode = 0; // FABRIC_NODE_ID
+ l_brazosProcs[1].procFabricGroup = 0; // FABRIC_GROUP_ID
l_brazosProcs[1].procFabricChip = 1; // FABRIC_CHIP_ID
l_brazosProcs[1].iv_masterCapable = false; // Not master proc
l_brazosProcs[1].iv_deconfigured = false; // HWAS state
@@ -2572,7 +2572,7 @@ public:
// Proc2:
l_brazosProcs[2].iv_pThisProc = NULL; // Target *
l_brazosProcs[2].procHUID = 2; // HUID
- l_brazosProcs[2].procFabricNode = 0; // FABRIC_NODE_ID
+ l_brazosProcs[2].procFabricGroup = 0; // FABRIC_GROUP_ID
l_brazosProcs[2].procFabricChip = 2; // FABRIC_CHIP_ID
l_brazosProcs[2].iv_masterCapable = false; // Not master proc
l_brazosProcs[2].iv_deconfigured = false; // HWAS state
@@ -2584,7 +2584,7 @@ public:
// Proc3:
l_brazosProcs[3].iv_pThisProc = NULL; // Target *
l_brazosProcs[3].procHUID = 3; // HUID
- l_brazosProcs[3].procFabricNode = 0; // FABRIC_NODE_ID
+ l_brazosProcs[3].procFabricGroup = 0; // FABRIC_GROUP_ID
l_brazosProcs[3].procFabricChip = 3; // FABRIC_CHIP_ID
l_brazosProcs[3].iv_masterCapable = false; // Not master proc
l_brazosProcs[3].iv_deconfigured = false; // HWAS state
@@ -2795,7 +2795,7 @@ public:
// Proc0:
l_tuletaProcs[0].iv_pThisProc = NULL; // Target *
l_tuletaProcs[0].procHUID = 0; // HUID
- l_tuletaProcs[0].procFabricNode = 0; // FABRIC_NODE_ID
+ l_tuletaProcs[0].procFabricGroup = 0; // FABRIC_GROUP_ID
l_tuletaProcs[0].procFabricChip = 0; // FABRIC_CHIP_ID
l_tuletaProcs[0].iv_masterCapable = true; // Master proc
l_tuletaProcs[0].iv_deconfigured = false; // HWAS state
@@ -2808,7 +2808,7 @@ public:
// Proc1:
l_tuletaProcs[1].iv_pThisProc = NULL; // Target *
l_tuletaProcs[1].procHUID = 1; // HUID
- l_tuletaProcs[1].procFabricNode = 0; // FABRIC_NODE_ID
+ l_tuletaProcs[1].procFabricGroup = 0; // FABRIC_GROUP_ID
l_tuletaProcs[1].procFabricChip = 1; // FABRIC_CHIP_ID
l_tuletaProcs[1].iv_masterCapable = false; // Not master proc
l_tuletaProcs[1].iv_deconfigured = false; // HWAS state
@@ -2821,7 +2821,7 @@ public:
// Proc2:
l_tuletaProcs[2].iv_pThisProc = NULL; // Target *
l_tuletaProcs[2].procHUID = 2; // HUID
- l_tuletaProcs[2].procFabricNode = 1; // FABRIC_NODE_ID
+ l_tuletaProcs[2].procFabricGroup = 1; // FABRIC_GROUP_ID
l_tuletaProcs[2].procFabricChip = 0; // FABRIC_CHIP_ID
l_tuletaProcs[2].iv_masterCapable = false; // Not master proc
l_tuletaProcs[2].iv_deconfigured = true; // HWAS state
@@ -2836,7 +2836,7 @@ public:
// Proc3:
l_tuletaProcs[3].iv_pThisProc = NULL; // Target *
l_tuletaProcs[3].procHUID = 3; // HUID
- l_tuletaProcs[3].procFabricNode = 1; // FABRIC_NODE_ID
+ l_tuletaProcs[3].procFabricGroup = 1; // FABRIC_GROUP_ID
l_tuletaProcs[3].procFabricChip = 1; // FABRIC_CHIP_ID
l_tuletaProcs[3].iv_masterCapable = false; // Not master proc
l_tuletaProcs[3].iv_deconfigured = true; // HWAS state
@@ -2902,7 +2902,7 @@ public:
// Proc0:
l_tuletaProcs[0].iv_pThisProc = NULL; // Target *
l_tuletaProcs[0].procHUID = 0; // HUID
- l_tuletaProcs[0].procFabricNode = 0; // FABRIC_NODE_ID
+ l_tuletaProcs[0].procFabricGroup = 0; // FABRIC_GROUP_ID
l_tuletaProcs[0].procFabricChip = 0; // FABRIC_CHIP_ID
l_tuletaProcs[0].iv_masterCapable = true; // Master proc
l_tuletaProcs[0].iv_deconfigured = false; // HWAS state
@@ -2915,7 +2915,7 @@ public:
// Proc1:
l_tuletaProcs[1].iv_pThisProc = NULL; // Target *
l_tuletaProcs[1].procHUID = 1; // HUID
- l_tuletaProcs[1].procFabricNode = 0; // FABRIC_NODE_ID
+ l_tuletaProcs[1].procFabricGroup = 0; // FABRIC_GROUP_ID
l_tuletaProcs[1].procFabricChip = 1; // FABRIC_CHIP_ID
l_tuletaProcs[1].iv_masterCapable = false; // Not master proc
l_tuletaProcs[1].iv_deconfigured = false; // HWAS state
@@ -2925,7 +2925,7 @@ public:
// Proc2:
l_tuletaProcs[2].iv_pThisProc = NULL; // Target *
l_tuletaProcs[2].procHUID = 2; // HUID
- l_tuletaProcs[2].procFabricNode = 1; // FABRIC_NODE_ID
+ l_tuletaProcs[2].procFabricGroup = 1; // FABRIC_GROUP_ID
l_tuletaProcs[2].procFabricChip = 0; // FABRIC_CHIP_ID
l_tuletaProcs[2].iv_masterCapable = false; // Not master proc
l_tuletaProcs[2].iv_deconfigured = false; // HWAS state
@@ -2937,7 +2937,7 @@ public:
// Proc3:
l_tuletaProcs[3].iv_pThisProc = NULL; // Target *
l_tuletaProcs[3].procHUID = 3; // HUID
- l_tuletaProcs[3].procFabricNode = 1; // FABRIC_NODE_ID
+ l_tuletaProcs[3].procFabricGroup = 1; // FABRIC_GROUP_ID
l_tuletaProcs[3].procFabricChip = 1; // FABRIC_CHIP_ID
l_tuletaProcs[3].iv_masterCapable = false; // Not master proc
l_tuletaProcs[3].iv_deconfigured = true; // HWAS state
@@ -2998,7 +2998,7 @@ public:
// Proc0:
l_brazosProcs[0].iv_pThisProc = NULL; // Target *
l_brazosProcs[0].procHUID = 0; // HUID
- l_brazosProcs[0].procFabricNode = 0; // FABRIC_NODE_ID
+ l_brazosProcs[0].procFabricGroup = 0; // FABRIC_GROUP_ID
l_brazosProcs[0].procFabricChip = 0; // FABRIC_CHIP_ID
l_brazosProcs[0].iv_masterCapable = true; // Master proc
l_brazosProcs[0].iv_deconfigured = false; // HWAS state
@@ -3011,7 +3011,7 @@ public:
// Proc1:
l_brazosProcs[1].iv_pThisProc = NULL; // Target *
l_brazosProcs[1].procHUID = 1; // HUID
- l_brazosProcs[1].procFabricNode = 0; // FABRIC_NODE_ID
+ l_brazosProcs[1].procFabricGroup = 0; // FABRIC_GROUP_ID
l_brazosProcs[1].procFabricChip = 1; // FABRIC_CHIP_ID
l_brazosProcs[1].iv_masterCapable = true; // Not master proc
l_brazosProcs[1].iv_deconfigured = false; // HWAS state
@@ -3025,7 +3025,7 @@ public:
// Proc2:
l_brazosProcs[2].iv_pThisProc = NULL; // Target *
l_brazosProcs[2].procHUID = 2; // HUID
- l_brazosProcs[2].procFabricNode = 0; // FABRIC_NODE_ID
+ l_brazosProcs[2].procFabricGroup = 0; // FABRIC_GROUP_ID
l_brazosProcs[2].procFabricChip = 2; // FABRIC_CHIP_ID
l_brazosProcs[2].iv_masterCapable = false; // Not master proc
l_brazosProcs[2].iv_deconfigured = false; // HWAS state
@@ -3037,7 +3037,7 @@ public:
// Proc3:
l_brazosProcs[3].iv_pThisProc = NULL; // Target *
l_brazosProcs[3].procHUID = 3; // HUID
- l_brazosProcs[3].procFabricNode = 0; // FABRIC_NODE_ID
+ l_brazosProcs[3].procFabricGroup = 0; // FABRIC_GROUP_ID
l_brazosProcs[3].procFabricChip = 3; // FABRIC_CHIP_ID
l_brazosProcs[3].iv_masterCapable = false; // Not master proc
l_brazosProcs[3].iv_deconfigured = false; // HWAS state
@@ -3100,7 +3100,7 @@ public:
// Proc0:
l_brazosProcs[0].iv_pThisProc = NULL; // Target *
l_brazosProcs[0].procHUID = 0; // HUID
- l_brazosProcs[0].procFabricNode = 0; // FABRIC_NODE_ID
+ l_brazosProcs[0].procFabricGroup = 0; // FABRIC_GROUP_ID
l_brazosProcs[0].procFabricChip = 0; // FABRIC_CHIP_ID
l_brazosProcs[0].iv_masterCapable = true; // Master proc
l_brazosProcs[0].iv_deconfigured = true; // HWAS state
@@ -3113,7 +3113,7 @@ public:
// Proc1:
l_brazosProcs[1].iv_pThisProc = NULL; // Target *
l_brazosProcs[1].procHUID = 1; // HUID
- l_brazosProcs[1].procFabricNode = 0; // FABRIC_NODE_ID
+ l_brazosProcs[1].procFabricGroup = 0; // FABRIC_GROUP_ID
l_brazosProcs[1].procFabricChip = 1; // FABRIC_CHIP_ID
l_brazosProcs[1].iv_masterCapable = true; // Not master proc
l_brazosProcs[1].iv_deconfigured = false; // HWAS state
@@ -3127,7 +3127,7 @@ public:
// Proc2:
l_brazosProcs[2].iv_pThisProc = NULL; // Target *
l_brazosProcs[2].procHUID = 2; // HUID
- l_brazosProcs[2].procFabricNode = 0; // FABRIC_NODE_ID
+ l_brazosProcs[2].procFabricGroup = 0; // FABRIC_GROUP_ID
l_brazosProcs[2].procFabricChip = 2; // FABRIC_CHIP_ID
l_brazosProcs[2].iv_masterCapable = false; // Not master proc
l_brazosProcs[2].iv_deconfigured = false; // HWAS state
@@ -3139,7 +3139,7 @@ public:
// Proc3:
l_brazosProcs[3].iv_pThisProc = NULL; // Target *
l_brazosProcs[3].procHUID = 3; // HUID
- l_brazosProcs[3].procFabricNode = 0; // FABRIC_NODE_ID
+ l_brazosProcs[3].procFabricGroup = 0; // FABRIC_GROUP_ID
l_brazosProcs[3].procFabricChip = 3; // FABRIC_CHIP_ID
l_brazosProcs[3].iv_masterCapable = false; // Not master proc
l_brazosProcs[3].iv_deconfigured = false; // HWAS state
@@ -3202,7 +3202,7 @@ public:
// Proc0:
l_brazosProcs[0].iv_pThisProc = NULL; // Target *
l_brazosProcs[0].procHUID = 0; // HUID
- l_brazosProcs[0].procFabricNode = 0; // FABRIC_NODE_ID
+ l_brazosProcs[0].procFabricGroup = 0; // FABRIC_GROUP_ID
l_brazosProcs[0].procFabricChip = 0; // FABRIC_CHIP_ID
l_brazosProcs[0].iv_masterCapable = true; // Master proc
l_brazosProcs[0].iv_deconfigured = false; // HWAS state
@@ -3215,7 +3215,7 @@ public:
// Proc1:
l_brazosProcs[1].iv_pThisProc = NULL; // Target *
l_brazosProcs[1].procHUID = 1; // HUID
- l_brazosProcs[1].procFabricNode = 0; // FABRIC_NODE_ID
+ l_brazosProcs[1].procFabricGroup = 0; // FABRIC_GROUP_ID
l_brazosProcs[1].procFabricChip = 1; // FABRIC_CHIP_ID
l_brazosProcs[1].iv_masterCapable = true; // Not master proc
l_brazosProcs[1].iv_deconfigured = true; // HWAS state
@@ -3229,7 +3229,7 @@ public:
// Proc2:
l_brazosProcs[2].iv_pThisProc = NULL; // Target *
l_brazosProcs[2].procHUID = 2; // HUID
- l_brazosProcs[2].procFabricNode = 0; // FABRIC_NODE_ID
+ l_brazosProcs[2].procFabricGroup = 0; // FABRIC_GROUP_ID
l_brazosProcs[2].procFabricChip = 2; // FABRIC_CHIP_ID
l_brazosProcs[2].iv_masterCapable = false; // Not master proc
l_brazosProcs[2].iv_deconfigured = false; // HWAS state
@@ -3241,7 +3241,7 @@ public:
// Proc3:
l_brazosProcs[3].iv_pThisProc = NULL; // Target *
l_brazosProcs[3].procHUID = 3; // HUID
- l_brazosProcs[3].procFabricNode = 0; // FABRIC_NODE_ID
+ l_brazosProcs[3].procFabricGroup = 0; // FABRIC_GROUP_ID
l_brazosProcs[3].procFabricChip = 3; // FABRIC_CHIP_ID
l_brazosProcs[3].iv_masterCapable = false; // Not master proc
l_brazosProcs[3].iv_deconfigured = false; // HWAS state
@@ -3305,7 +3305,7 @@ public:
// Proc0:
l_brazosProcs[0].iv_pThisProc = NULL; // Target *
l_brazosProcs[0].procHUID = 0; // HUID
- l_brazosProcs[0].procFabricNode = 0; // FABRIC_NODE_ID
+ l_brazosProcs[0].procFabricGroup = 0; // FABRIC_GROUP_ID
l_brazosProcs[0].procFabricChip = 0; // FABRIC_CHIP_ID
l_brazosProcs[0].iv_masterCapable = true; // Master proc
l_brazosProcs[0].iv_deconfigured = true; // HWAS state
@@ -3318,7 +3318,7 @@ public:
// Proc1:
l_brazosProcs[1].iv_pThisProc = NULL; // Target *
l_brazosProcs[1].procHUID = 1; // HUID
- l_brazosProcs[1].procFabricNode = 0; // FABRIC_NODE_ID
+ l_brazosProcs[1].procFabricGroup = 0; // FABRIC_GROUP_ID
l_brazosProcs[1].procFabricChip = 1; // FABRIC_CHIP_ID
l_brazosProcs[1].iv_masterCapable = true; // Not master proc
l_brazosProcs[1].iv_deconfigured = false; // HWAS state
@@ -3333,7 +3333,7 @@ public:
// Proc2:
l_brazosProcs[2].iv_pThisProc = NULL; // Target *
l_brazosProcs[2].procHUID = 2; // HUID
- l_brazosProcs[2].procFabricNode = 0; // FABRIC_NODE_ID
+ l_brazosProcs[2].procFabricGroup = 0; // FABRIC_GROUP_ID
l_brazosProcs[2].procFabricChip = 2; // FABRIC_CHIP_ID
l_brazosProcs[2].iv_masterCapable = false; // Not master proc
l_brazosProcs[2].iv_deconfigured = false; // HWAS state
@@ -3346,7 +3346,7 @@ public:
// Proc3:
l_brazosProcs[3].iv_pThisProc = NULL; // Target *
l_brazosProcs[3].procHUID = 3; // HUID
- l_brazosProcs[3].procFabricNode = 0; // FABRIC_NODE_ID
+ l_brazosProcs[3].procFabricGroup = 0; // FABRIC_GROUP_ID
l_brazosProcs[3].procFabricChip = 3; // FABRIC_CHIP_ID
l_brazosProcs[3].iv_masterCapable = false; // Not master proc
l_brazosProcs[3].iv_deconfigured = false; // HWAS state
diff --git a/src/usr/hwpf/hwp/occ/occ.C b/src/usr/hwpf/hwp/occ/occ.C
index 8c7e67e9d..070477fa7 100644
--- a/src/usr/hwpf/hwp/occ/occ.C
+++ b/src/usr/hwpf/hwp/occ/occ.C
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2013,2015 */
+/* Contributors Listed Below - COPYRIGHT 2013,2016 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -392,7 +392,7 @@ namespace HBOCC
TRACUCOMP( g_fapiImpTd, INFO_MRK
"loadnStartAllOccs: Cur target nodeID=%d",
- targ0->getAttr<ATTR_FABRIC_NODE_ID>());
+ targ0->getAttr<ATTR_FABRIC_GROUP_ID>());
//if the next target in the list is in the same node
@@ -402,11 +402,11 @@ namespace HBOCC
{
TRACUCOMP( g_fapiImpTd, INFO_MRK
"loadnStartAllOccs: n+1 target nodeID=%d",
- ((*(itr+1))->getAttr<ATTR_FABRIC_NODE_ID>())
+ ((*(itr+1))->getAttr<ATTR_FABRIC_GROUP_ID>())
);
- if((targ0->getAttr<ATTR_FABRIC_NODE_ID>()) ==
- ((*(itr+1))->getAttr<ATTR_FABRIC_NODE_ID>()))
+ if((targ0->getAttr<ATTR_FABRIC_GROUP_ID>()) ==
+ ((*(itr+1))->getAttr<ATTR_FABRIC_GROUP_ID>()))
{
itr++;
targ1 = *itr;
diff --git a/src/usr/hwpf/hwp/occ/occ_common.C b/src/usr/hwpf/hwp/occ/occ_common.C
index 33ab95e0d..285eeebe3 100644
--- a/src/usr/hwpf/hwp/occ/occ_common.C
+++ b/src/usr/hwpf/hwp/occ/occ_common.C
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2013,2015 */
+/* Contributors Listed Below - COPYRIGHT 2013,2016 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -850,17 +850,17 @@ namespace HBOCC
Target* targ1 = NULL;
TRACFCOMP( g_fapiImpTd, INFO_MRK"stopAllOCCs: Cur target nodeID=%d",
- targ0->getAttr<ATTR_FABRIC_NODE_ID>());
+ targ0->getAttr<ATTR_FABRIC_GROUP_ID>());
//if the next target in the list is in the same node
// they are on the same DCM, so bump itr forward
// and update targ0 pointer
if((itr+1) != procChips.end())
{
- TRACFCOMP( g_fapiImpTd, INFO_MRK"stopAllOCCs: n+1 target nodeID=%d", ((*(itr+1))->getAttr<ATTR_FABRIC_NODE_ID>()));
+ TRACFCOMP( g_fapiImpTd, INFO_MRK"stopAllOCCs: n+1 target nodeID=%d", ((*(itr+1))->getAttr<ATTR_FABRIC_GROUP_ID>()));
- if((targ0->getAttr<ATTR_FABRIC_NODE_ID>()) ==
- ((*(itr+1))->getAttr<ATTR_FABRIC_NODE_ID>()))
+ if((targ0->getAttr<ATTR_FABRIC_GROUP_ID>()) ==
+ ((*(itr+1))->getAttr<ATTR_FABRIC_GROUP_ID>()))
{
//need to flip the numbers because we were reversed
targ1 = targ0;
diff --git a/src/usr/hwpf/hwp/occ/runtime/rt_occ.C b/src/usr/hwpf/hwp/occ/runtime/rt_occ.C
index cb7a1b45a..282dacb96 100644
--- a/src/usr/hwpf/hwp/occ/runtime/rt_occ.C
+++ b/src/usr/hwpf/hwp/occ/runtime/rt_occ.C
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2014,2015 */
+/* Contributors Listed Below - COPYRIGHT 2014,2016 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -351,8 +351,8 @@ namespace RT_OCC
TARGETING::Target* t1 = NULL;
if((itarg+1) != targets.end())
{
- if((t0->getAttr<ATTR_FABRIC_NODE_ID>()) ==
- ((*(itarg+1))->getAttr<ATTR_FABRIC_NODE_ID>()))
+ if((t0->getAttr<ATTR_FABRIC_GROUP_ID>()) ==
+ ((*(itarg+1))->getAttr<ATTR_FABRIC_GROUP_ID>()))
{
++itarg;
t1 = *itarg;
diff --git a/src/usr/intr/intrrp.C b/src/usr/intr/intrrp.C
index 8bd385947..7a19429aa 100644
--- a/src/usr/intr/intrrp.C
+++ b/src/usr/intr/intrrp.C
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2011,2015 */
+/* Contributors Listed Below - COPYRIGHT 2011,2016 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -50,6 +50,7 @@
#include <hwas/common/hwasCallout.H>
#include <fsi/fsiif.H>
#include <arch/ppc.H>
+#include <arch/pirformat.H>
#include <config.h>
#define INTR_TRACE_NAME INTR_COMP_NAME
@@ -185,8 +186,8 @@ errlHndl_t IntrRp::_init()
iv_masterCpu = cpuid;
iv_masterCpu.threadId = 0;
- TRACFCOMP(g_trac_intr,"Master cpu node[%d], chip[%d], core[%d], thread[%d]",
- iv_masterCpu.nodeId, iv_masterCpu.chipId, iv_masterCpu.coreId,
+ TRACFCOMP(g_trac_intr,"Master cpu group[%d], chip[%d], core[%d], thread[%d]",
+ iv_masterCpu.groupId, iv_masterCpu.chipId, iv_masterCpu.coreId,
iv_masterCpu.threadId);
// The base realAddr is the base address for the whole system.
@@ -200,7 +201,7 @@ errlHndl_t IntrRp::_init()
uint64_t barValue = 0;
barValue = procTarget->getAttr<TARGETING::ATTR_INTP_BASE_ADDR>();
- // Mask off node & chip id to get base address
+ // Mask off group & chip id to get base address
uint64_t realAddr = barValue & ICPBAR_BASE_ADDRESS_MASK;
TRACFCOMP(g_trac_intr,"INTR: realAddr = %lx",realAddr);
@@ -607,9 +608,9 @@ void IntrRp::msgHandler()
pir.threadId = 0;
iv_cpuList.push_back(pir);
- TRACFCOMP(g_trac_intr,"Add CPU node[%d], chip[%d],"
+ TRACFCOMP(g_trac_intr,"Add CPU group[%d], chip[%d],"
"core[%d], thread[%d]",
- pir.nodeId, pir.chipId, pir.coreId,
+ pir.groupId, pir.chipId, pir.coreId,
pir.threadId);
size_t threads = cpu_thread_count();
@@ -709,7 +710,7 @@ void IntrRp::msgHandler()
uint32_t * xirrAddress =
reinterpret_cast<uint32_t*>(baseAddr + XIRR_OFFSET);
- //Generate the mailbox IRSN for this node
+ //Generate the mailbox IRSN for this group
uint32_t l_irsn = makeXISR(iv_masterCpu, ISN_FSI);
l_irsn |= CPPR_MASK; //set all CPPR bits - allow any INTR
@@ -879,9 +880,9 @@ errlHndl_t IntrRp::initIRSCReg(TARGETING::Target * i_target)
iv_chipList.end())
{
uint8_t chip = 0;
- uint8_t node = 0;
+ uint8_t group = 0;
- node = i_target->getAttr<ATTR_FABRIC_NODE_ID>();
+ group = i_target->getAttr<ATTR_FABRIC_NODE_ID>();
chip = i_target->getAttr<ATTR_FABRIC_CHIP_ID>();
size_t scom_len = sizeof(uint64_t);
@@ -900,7 +901,7 @@ errlHndl_t IntrRp::initIRSCReg(TARGETING::Target * i_target)
PSIHB_ISRN_REG_t reg;
PIR_t pir(0);
- pir.nodeId = node;
+ pir.groupId = group;
pir.chipId = chip;
// IRSN must be unique for each processor chip
reg.irsn = makeXISR(pir,0);
@@ -1112,7 +1113,7 @@ errlHndl_t IntrRp::registerInterruptISN(msg_q_t i_msgQ,
chip = (*target_itr)->getAttr<ATTR_FABRIC_CHIP_ID>();
PIR_t pir(0);
- pir.nodeId = node;
+ pir.groupId = node;
pir.chipId = chip;
uint32_t l_irsn = makeXISR(pir, i_intr_type);
@@ -1186,7 +1187,7 @@ msg_q_t IntrRp::unregisterInterruptISN(ISNvalue_t i_intr_type)
chip = (*target_itr)->getAttr<ATTR_FABRIC_CHIP_ID>();
PIR_t pir(0);
- pir.nodeId = node;
+ pir.groupId = node;
pir.chipId = chip;
uint32_t l_irsn = makeXISR(pir, i_intr_type);
@@ -1247,7 +1248,7 @@ void IntrRp::initInterruptPresenter(const PIR_t i_pir) const
LinkReg_t linkReg;
linkReg.word = 0;
linkReg.loopTrip = 1; // needed?
- linkReg.node = iv_masterCpu.nodeId;
+ linkReg.node = iv_masterCpu.groupId;
linkReg.pchip= iv_masterCpu.chipId;
linkReg.pcore= iv_masterCpu.coreId;
linkReg.tspec= iv_masterCpu.threadId;
@@ -1684,7 +1685,7 @@ errlHndl_t IntrRp::blindIssueEOIs(TARGETING::Target * i_proc)
(*core)->getAttr<TARGETING::ATTR_CHIP_UNIT>();
PIR_t pir(0);
- pir.nodeId = node;
+ pir.groupId = node;
pir.chipId = chip;
pir.coreId = coreId;
@@ -1900,7 +1901,7 @@ void IntrRp::allowAllInterrupts(TARGETING::Target* i_core)
CHIP_UNIT_ATTR coreId = i_core->getAttr<TARGETING::ATTR_CHIP_UNIT>();
PIR_t pir(0);
- pir.nodeId = node;
+ pir.groupId = node;
pir.chipId = chip;
pir.coreId = coreId;
@@ -1924,7 +1925,7 @@ void IntrRp::disableAllInterrupts(TARGETING::Target* i_core)
CHIP_UNIT_ATTR coreId = i_core->getAttr<TARGETING::ATTR_CHIP_UNIT>();
PIR_t pir(0);
- pir.nodeId = node;
+ pir.groupId = node;
pir.chipId = chip;
pir.coreId = coreId;
@@ -1960,7 +1961,7 @@ void IntrRp::drainMpIplInterrupts(TARGETING::TargetHandleList & i_cores)
(*core)->getAttr<TARGETING::ATTR_CHIP_UNIT>();
PIR_t pir(0);
- pir.nodeId = node;
+ pir.groupId = node;
pir.chipId = chip;
pir.coreId = coreId;
@@ -2193,7 +2194,7 @@ errlHndl_t IntrRp::syncNodes(intr_mpipl_sync_t i_sync_type)
uint64_t hrmorBase = KernelIpc::ipc_data_area.hrmor_base;
void * node_info_ptr =
- reinterpret_cast<void *>((iv_masterCpu.nodeId * hrmorBase) +
+ reinterpret_cast<void *>((iv_masterCpu.groupId * hrmorBase) +
VMM_INTERNODE_PRESERVED_MEMORY_ADDR);
internode_info_t * this_node_info =
@@ -2224,7 +2225,7 @@ errlHndl_t IntrRp::syncNodes(intr_mpipl_sync_t i_sync_type)
for(uint64_t node = 0; node < MAX_NODES_PER_SYS; ++node)
{
- if (node == iv_masterCpu.nodeId)
+ if (node == iv_masterCpu.groupId)
{
vaddr[node] = this_node_info;
}
@@ -2296,7 +2297,7 @@ errlHndl_t IntrRp::syncNodes(intr_mpipl_sync_t i_sync_type)
{
// We are still using this_node_info area
// so unmap it later.
- if(node != iv_masterCpu.nodeId)
+ if(node != iv_masterCpu.groupId)
{
mm_block_unmap(vaddr[node]);
}
@@ -2316,7 +2317,7 @@ errlHndl_t IntrRp::initializeMpiplSyncArea()
errlHndl_t err = NULL;
uint64_t hrmorBase = KernelIpc::ipc_data_area.hrmor_base;
void * node_info_ptr =
- reinterpret_cast<void *>((iv_masterCpu.nodeId * hrmorBase) +
+ reinterpret_cast<void *>((iv_masterCpu.groupId * hrmorBase) +
VMM_INTERNODE_PRESERVED_MEMORY_ADDR);
internode_info_t * this_node_info =
@@ -2335,7 +2336,7 @@ errlHndl_t IntrRp::initializeMpiplSyncArea()
this_node_info->mpipl_intr_sync = INTR_MPIPL_SYNC_CLEAR;
for(uint64_t node = 0; node < MAX_NODES_PER_SYS; ++node)
{
- if(iv_masterCpu.nodeId == node)
+ if(iv_masterCpu.groupId == node)
{
this_node_info->exist[node] = true;
}
@@ -2376,7 +2377,7 @@ errlHndl_t IntrRp::addHbNodeToMpiplSyncArea(uint64_t i_hbNode)
errlHndl_t err = NULL;
uint64_t hrmorBase = KernelIpc::ipc_data_area.hrmor_base;
void * node_info_ptr =
- reinterpret_cast<void *>((iv_masterCpu.nodeId * hrmorBase) +
+ reinterpret_cast<void *>((iv_masterCpu.groupId * hrmorBase) +
VMM_INTERNODE_PRESERVED_MEMORY_ADDR);
internode_info_t * this_node_info =
@@ -2426,7 +2427,7 @@ errlHndl_t IntrRp::extractHbNodeInfo(void)
uint64_t hrmorBase = KernelIpc::ipc_data_area.hrmor_base;
TARGETING::ATTR_HB_EXISTING_IMAGE_type hb_existing_image = 0;
void * node_info_ptr =
- reinterpret_cast<void *>((iv_masterCpu.nodeId * hrmorBase) +
+ reinterpret_cast<void *>((iv_masterCpu.groupId * hrmorBase) +
VMM_INTERNODE_PRESERVED_MEMORY_ADDR);
internode_info_t * this_node_info =
@@ -2715,7 +2716,7 @@ uint64_t INTR::getIntpAddr(const TARGETING::Target * i_ex, uint8_t i_thread)
uint64_t l_intB =l_proc->getAttr<TARGETING::ATTR_INTP_BASE_ADDR>();
PIR_t pir(0);
- pir.nodeId = l_proc->getAttr<TARGETING::ATTR_FABRIC_NODE_ID>();
+ pir.groupId = l_proc->getAttr<TARGETING::ATTR_FABRIC_NODE_ID>();
pir.chipId = l_proc->getAttr<TARGETING::ATTR_FABRIC_CHIP_ID>();
pir.coreId = i_ex->getAttr<TARGETING::ATTR_CHIP_UNIT>();
pir.threadId = i_thread;
diff --git a/src/usr/intr/intrrp.H b/src/usr/intr/intrrp.H
index 35268215f..ca0fa83aa 100644
--- a/src/usr/intr/intrrp.H
+++ b/src/usr/intr/intrrp.H
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2011,2015 */
+/* Contributors Listed Below - COPYRIGHT 2011,2016 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -37,6 +37,7 @@
#include <intr/interrupt.H>
#include <map>
#include <algorithm>
+#include <arch/pirformat.H>
struct msg_t;
@@ -61,7 +62,7 @@ namespace INTR
r.u32 = 0;
r.isn = i_isn;
r.chip = i_pir.chipId;
- r.node = i_pir.nodeId;
+ r.node = i_pir.groupId;
r.intrproc = 1; // not interproc intr
return r.u32;
}
@@ -176,7 +177,7 @@ namespace INTR
// [0] last
// [1] LoopTrip
// [2:18] Reserved
- // [19:21] NodeId
+ // [19:21] GroupId
// [22:24] ChipId
// [25:28] PCore
// [29:31] TSpec
diff --git a/src/usr/isteps/istep10/call_proc_build_smp.C b/src/usr/isteps/istep10/call_proc_build_smp.C
index 24323255d..0d3cf18b2 100644
--- a/src/usr/isteps/istep10/call_proc_build_smp.C
+++ b/src/usr/isteps/istep10/call_proc_build_smp.C
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2015 */
+/* Contributors Listed Below - COPYRIGHT 2015,2016 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -159,9 +159,9 @@ void* call_proc_build_smp (void *io_pArgs)
(const_cast<TARGETING::Target*>(l_itr->second)));
l_procEntry.f0_node_id = static_cast<proc_fab_smp_node_id>(
- l_pTarget->getAttr<TARGETING::ATTR_FABRIC_NODE_ID>());
+ l_pTarget->getAttr<TARGETING::ATTR_FABRIC_GROUP_ID>());
l_procEntry.f1_node_id = static_cast<proc_fab_smp_node_id>(
- l_pParent->getAttr<TARGETING::ATTR_FABRIC_NODE_ID>());
+ l_pParent->getAttr<TARGETING::ATTR_FABRIC_GROUP_ID>());
}
// Get X-BUS
diff --git a/src/usr/isteps/istep14/call_proc_exit_cache_contained.C b/src/usr/isteps/istep14/call_proc_exit_cache_contained.C
index d517b6979..a3a11e59e 100644
--- a/src/usr/isteps/istep14/call_proc_exit_cache_contained.C
+++ b/src/usr/isteps/istep14/call_proc_exit_cache_contained.C
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2015 */
+/* Contributors Listed Below - COPYRIGHT 2015,2016 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -36,7 +36,7 @@
#include <targeting/common/utilFilter.H>
#include <sys/mm.h>
-#include <intr/interrupt.H>
+#include <arch/pirformat.H>
#include <isteps/hwpf_reasoncodes.H>
// @TODO RTC:134082 remove below block
@@ -103,11 +103,11 @@ void* call_proc_exit_cache_contained (void *io_pArgs)
l_sys->getAttr<TARGETING::ATTR_MIRROR_BASE_ADDRESS>();
// For single-node systems, the non-master processors can be
- // in a different logical (powerbus) node.
+ // in a different logical (powerbus) group.
// Need to migrate task to master.
task_affinity_pin();
task_affinity_migrate_to_master();
- uint64_t this_node = INTR::PIR_t(task_getcpuid()).nodeId;
+ uint64_t this_node = PIR_t(task_getcpuid()).groupId;
task_affinity_unpin();
l_mirrorBaseAddr += (this_node * hrmor_base)/2;
diff --git a/src/usr/isteps/istep16/call_host_activate_slave_cores.C b/src/usr/isteps/istep16/call_host_activate_slave_cores.C
index 88e8f025e..ebb51482c 100644
--- a/src/usr/isteps/istep16/call_host_activate_slave_cores.C
+++ b/src/usr/isteps/istep16/call_host_activate_slave_cores.C
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2015 */
+/* Contributors Listed Below - COPYRIGHT 2015,2016 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -38,7 +38,7 @@
#include <isteps/hwpisteperror.H>
#include <errl/errludtarget.H>
-#include <intr/interrupt.H>
+#include <arch/pirformat.H>
#include <console/consoleif.H>
// targeting support
@@ -88,8 +88,8 @@ void* call_host_activate_slave_cores (void *io_pArgs)
CHIP_UNIT_ATTR l_coreId =
(*l_core)->getAttr<TARGETING::ATTR_CHIP_UNIT>();
- FABRIC_NODE_ID_ATTR l_logicalNodeId =
- l_processor->getAttr<TARGETING::ATTR_FABRIC_NODE_ID>();
+ FABRIC_GROUP_ID_ATTR l_logicalNodeId =
+ l_processor->getAttr<TARGETING::ATTR_FABRIC_GROUP_ID>();
FABRIC_CHIP_ID_ATTR l_chipId =
l_processor->getAttr<TARGETING::ATTR_FABRIC_CHIP_ID>();
TARGETING::Target* sys = NULL;
@@ -97,7 +97,7 @@ void* call_host_activate_slave_cores (void *io_pArgs)
assert( sys != NULL );
uint64_t en_threads = sys->getAttr<ATTR_ENABLED_THREADS>();
- uint64_t pir = INTR::PIR_t(l_logicalNodeId, l_chipId, l_coreId).word;
+ uint64_t pir = PIR_t(l_logicalNodeId, l_chipId, l_coreId).word;
if (pir != l_masterCoreID)
{
diff --git a/src/usr/isteps/istep21/call_host_start_payload.C b/src/usr/isteps/istep21/call_host_start_payload.C
index f3760ede6..a57ccd01b 100644
--- a/src/usr/isteps/istep21/call_host_start_payload.C
+++ b/src/usr/isteps/istep21/call_host_start_payload.C
@@ -31,7 +31,6 @@
#include <initservice/initserviceif.H>
#include <initservice/istepdispatcherif.H>
#include <sys/task.h>
-#include <intr/interrupt.H>
#include <initservice/extinitserviceif.H>
#include <hbotcompid.H>
#include <sys/misc.h>
@@ -43,9 +42,8 @@
#include <devtree/devtreeif.H>
#include <kernel/ipc.H> // for internode data areas
#include <mbox/ipc_msg_types.H>
-
#include <devicefw/userif.H>
-
+#include <arch/pirformat.H>
@@ -195,11 +193,11 @@ void* call_host_start_payload (void *io_pArgs)
"call_host_start_payload entry" );
// For single-node systems, the non-master processors can be in a
- // different logical (powerbus) node. Need to migrate task to master.
+ // different logical (powerbus) group. Need to migrate task to master.
task_affinity_pin();
task_affinity_migrate_to_master();
- uint64_t this_node = INTR::PIR_t(task_getcpuid()).nodeId;
+ uint64_t this_node = PIR_t(task_getcpuid()).groupId;
task_affinity_unpin();
diff --git a/src/usr/mbox/mailboxsp.C b/src/usr/mbox/mailboxsp.C
index 49fae3bdc..9f8a90d24 100644
--- a/src/usr/mbox/mailboxsp.C
+++ b/src/usr/mbox/mailboxsp.C
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2012,2015 */
+/* Contributors Listed Below - COPYRIGHT 2012,2016 */
/* [+] Google Inc. */
/* [+] International Business Machines Corp. */
/* */
@@ -47,6 +47,7 @@
#include <errl/errludprintk.H>
#include <errno.h>
#include <sys/time.h>
+#include <arch/pirformat.H>
// Local functions
namespace MBOX
@@ -1951,8 +1952,8 @@ errlHndl_t MBOX::send(queue_id_t i_q_id, msg_t * i_msg,int i_node)
i_msg->extra_data);
// node means Hb instance number in this context
- INTR::PIR_t my_pir (KernelIpc::ipc_data_area.pir);
- if( (my_pir.nodeId == i_node)
+ PIR_t my_pir (KernelIpc::ipc_data_area.pir);
+ if( (my_pir.groupId == i_node)
&& (MBOX::HB_TEST_MSGQ != i_q_id) ) //use IPC for tests
{
// Message is to this node - don't use IPC path
diff --git a/src/usr/runtime/test/runtimeattrstest.H b/src/usr/runtime/test/runtimeattrstest.H
index 9236225bd..478f405ea 100644
--- a/src/usr/runtime/test/runtimeattrstest.H
+++ b/src/usr/runtime/test/runtimeattrstest.H
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2012,2015 */
+/* Contributors Listed Below - COPYRIGHT 2012,2016 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -473,11 +473,11 @@ class RuntimeAttrsTest: public CxxTest::TestSuite
TARGETING::Target* proc_target = NULL;
for( size_t p = 0; p < all_procs.size(); p++ )
{
- uint64_t node_id =
- all_procs[p]->getAttr<TARGETING::ATTR_FABRIC_NODE_ID>();
- uint64_t CHIP_UNIT_POS =
+ uint64_t group_id =
+ all_procs[p]->getAttr<TARGETING::ATTR_FABRIC_GROUP_ID>();
+ uint64_t chip_pos =
all_procs[p]->getAttr<TARGETING::ATTR_FABRIC_CHIP_ID>();
- uint32_t procid = (node_id << 3) | (CHIP_UNIT_POS); //NNNCCC
+ uint32_t procid = createChipId( node_id, chip_pos );
if( procid == i_procid )
{
proc_target = all_procs[p];
diff --git a/src/usr/targeting/common/Targets.pm b/src/usr/targeting/common/Targets.pm
index dffb5fa8b..102b9a025 100644
--- a/src/usr/targeting/common/Targets.pm
+++ b/src/usr/targeting/common/Targets.pm
@@ -5,7 +5,7 @@
#
# OpenPOWER HostBoot Project
#
-# Contributors Listed Below - COPYRIGHT 2015
+# Contributors Listed Below - COPYRIGHT 2015,2016
# [+] International Business Machines Corp.
#
#
@@ -464,8 +464,8 @@ sub buildAffinity
$self->setAttribute($target, "PHYS_PATH", $parent_physical);
$self->setAttribute($target, "POSITION", $proc);
$self->setAttribute($target, "ENTITY_INSTANCE",$proc);
- $self->setAttribute($target, "FABRIC_NODE_ID",
- $self->getAttribute($socket,"FABRIC_NODE_ID"));
+ $self->setAttribute($target, "FABRIC_GROUP_ID",
+ $self->getAttribute($socket,"FABRIC_GROUP_ID"));
$self->setAttribute($target, "FABRIC_CHIP_ID",
$self->getAttribute($socket,"FABRIC_CHIP_ID"));
diff --git a/src/usr/targeting/common/genHwsvMrwXml.pl b/src/usr/targeting/common/genHwsvMrwXml.pl
index 894a6483a..5f46030a0 100755
--- a/src/usr/targeting/common/genHwsvMrwXml.pl
+++ b/src/usr/targeting/common/genHwsvMrwXml.pl
@@ -3155,7 +3155,7 @@ sub generate_proc
<default>instance:$ipath</default>
</compileAttribute>
<attribute>
- <id>FABRIC_NODE_ID</id>
+ <id>FABRIC_GROUP_ID</id>
<default>$lognode</default>
</attribute>
<attribute>
diff --git a/src/usr/targeting/common/processMrw.pl b/src/usr/targeting/common/processMrw.pl
index 4f877377d..9d21ec101 100644
--- a/src/usr/targeting/common/processMrw.pl
+++ b/src/usr/targeting/common/processMrw.pl
@@ -125,7 +125,7 @@ foreach my $n (keys %{$targetObj->{TOPOLOGY}}) {
foreach my $p (keys %{$targetObj->{TOPOLOGY}->{$n}}) {
if ($targetObj->{TOPOLOGY}->{$n}->{$p} > 1) {
print "ERROR: Fabric topology invalid. 2 targets have same ".
- "FABRIC_NODE_ID,FABRIC_CHIP_ID ($n,$p)\n";
+ "FABRIC_GROUP_ID,FABRIC_CHIP_ID ($n,$p)\n";
$targetObj->myExit(3);
}
}
@@ -614,9 +614,9 @@ sub setupBars
#--------------------------------------------------
## Setup BARs
- my $node = $targetObj->getAttribute($target, "FABRIC_NODE_ID");
+ my $group = $targetObj->getAttribute($target, "FABRIC_GROUP_ID");
my $proc = $targetObj->getAttribute($target, "FABRIC_CHIP_ID");
- $targetObj->{TOPOLOGY}->{$node}->{$proc}++;
+ $targetObj->{TOPOLOGY}->{$group}->{$proc}++;
my @bars=("FSP_BASE_ADDR","PSI_BRIDGE_BASE_ADDR",
"INTP_BASE_ADDR","PHB_MMIO_ADDRS_64","PHB_MMIO_ADDRS_32",
@@ -636,10 +636,10 @@ sub setupBars
foreach my $bar (@bars)
{
- my ($num,$base,$node_offset,$proc_offset,$offset) = split(/,/,
+ my ($num,$base,$group_offset,$proc_offset,$offset) = split(/,/,
$targetObj->getAttribute($target,$bar));
my $i_base = Math::BigInt->new($base);
- my $i_node_offset = Math::BigInt->new($node_offset);
+ my $i_node_offset = Math::BigInt->new($group_offset);
my $i_proc_offset = Math::BigInt->new($proc_offset);
my $i_offset = Math::BigInt->new($offset);
@@ -654,7 +654,7 @@ sub setupBars
{
#Note: Hex convert method avoids overflow on 32bit machine
my $b=sprintf("0x%016s",substr((
- $i_base+$i_node_offset*$node+
+ $i_base+$i_node_offset*$group+
$i_proc_offset*$proc+$i_offset*$i)->as_hex(),2));
my $sep=",";
if ($i==$num-1)
@@ -677,20 +677,20 @@ sub processMcs
my $target = shift;
my $parentTarget = shift;
- my $node = $targetObj->getAttribute($parentTarget, "FABRIC_NODE_ID");
+ my $group = $targetObj->getAttribute($parentTarget, "FABRIC_GROUP_ID");
my $proc = $targetObj->getAttribute($parentTarget, "FABRIC_CHIP_ID");
- my ($base,$node_offset,$proc_offset,$offset) = split(/,/,
+ my ($base,$group_offset,$proc_offset,$offset) = split(/,/,
$targetObj->getAttribute($target,"IBSCOM_MCS_BASE_ADDR"));
my $i_base = Math::BigInt->new($base);
- my $i_node_offset = Math::BigInt->new($node_offset);
+ my $i_node_offset = Math::BigInt->new($group_offset);
my $i_proc_offset = Math::BigInt->new($proc_offset);
my $i_offset = Math::BigInt->new($offset);
my $mcs = $targetObj->getAttribute($target, "MCS_NUM");
#Note: Hex convert method avoids overflow on 32bit machines
my $mcsStr=sprintf("0x%016s",substr((
- $i_base+$i_node_offset*$node+
+ $i_base+$i_node_offset*$group+
$i_proc_offset*$proc+$i_offset*$mcs)->as_hex(),2));
$targetObj->setAttribute($target, "IBSCOM_MCS_BASE_ADDR", $mcsStr);
}
@@ -1071,16 +1071,16 @@ sub processMembufVpdAssociation
"VPD_REC_NUM",$targetObj->{vpd_num});
}
}
- my $node_assocs=$targetObj->findConnections($vpd->{DEST_PARENT},
+ my $group_assocs=$targetObj->findConnections($vpd->{DEST_PARENT},
"LOGICAL_ASSOCIATION","CARD");
- if ($node_assocs ne "") {
- foreach my $node_assoc (@{$node_assocs->{CONN}}) {
- my $mb_target = $node_assoc->{DEST_PARENT};
- my $node_target = $targetObj->getTargetParent($mb_target);
+ if ($group_assocs ne "") {
+ foreach my $group_assoc (@{$group_assocs->{CONN}}) {
+ my $mb_target = $group_assoc->{DEST_PARENT};
+ my $group_target = $targetObj->getTargetParent($mb_target);
setEepromAttributes($targetObj,
- "EEPROM_VPD_PRIMARY_INFO",$node_target,$vpd);
- $targetObj->setAttribute($node_target,
+ "EEPROM_VPD_PRIMARY_INFO",$group_target,$vpd);
+ $targetObj->setAttribute($group_target,
"VPD_REC_NUM",$targetObj->{vpd_num});
}
}
diff --git a/src/usr/targeting/common/targetservice.C b/src/usr/targeting/common/targetservice.C
index cd3870ded..a89a1fd9b 100644
--- a/src/usr/targeting/common/targetservice.C
+++ b/src/usr/targeting/common/targetservice.C
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2012,2014 */
+/* Contributors Listed Below - COPYRIGHT 2012,2016 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -683,16 +683,16 @@ errlHndl_t TargetService::queryMasterProcChipTargetHandle(
targetService().end(),
&actingMasterProcFilter);
- TARGETING::ATTR_FABRIC_NODE_ID_type minFabricNodeId =
- TARGETING::FABRIC_NODE_ID_NOT_FOUND;
+ TARGETING::ATTR_FABRIC_GROUP_ID_type minFabricGroupId =
+ TARGETING::FABRIC_GROUP_ID_NOT_FOUND;
for(; blueprintProcs; ++blueprintProcs)
{
- TARGETING::ATTR_FABRIC_NODE_ID_type fabricNodeId =
+ TARGETING::ATTR_FABRIC_GROUP_ID_type fabricGroupId =
blueprintProcs->getAttr<
- TARGETING::ATTR_FABRIC_NODE_ID>();
- if(fabricNodeId < minFabricNodeId)
+ TARGETING::ATTR_FABRIC_GROUP_ID>();
+ if(fabricGroupId < minFabricGroupId)
{
- minFabricNodeId = fabricNodeId;
+ minFabricGroupId = fabricGroupId;
pMasterProc = *blueprintProcs;
}
}
@@ -1018,11 +1018,11 @@ void TargetService::dump() const
TARG_INF("XSCOM Base Address = 0x%016llX",l_xscomBaseAddr);
}
- uint8_t l_Node_Id = 0;
+ uint8_t l_Group_Id = 0;
if ( l_allTargets->tryGetAttr<
- ATTR_FABRIC_NODE_ID>(l_Node_Id))
+ ATTR_FABRIC_GROUP_ID>(l_Group_Id))
{
- TARG_INF("XSCOM Node ID = 0x%X",l_Node_Id);
+ TARG_INF("XSCOM Node ID = 0x%X",l_Group_Id);
}
uint8_t l_Chip_Id = 0;
diff --git a/src/usr/targeting/common/util.C b/src/usr/targeting/common/util.C
index dd4a7082d..1fbb563f7 100644
--- a/src/usr/targeting/common/util.C
+++ b/src/usr/targeting/common/util.C
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2012,2015 */
+/* Contributors Listed Below - COPYRIGHT 2012,2016 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -298,16 +298,16 @@ uint64_t get_bottom_mem_addr(void)
bool orderByNodeAndPosition( Target* i_firstProc,
Target* i_secondProc)
{
- uint8_t nodeId0 = i_firstProc->getAttr<ATTR_FABRIC_NODE_ID>();
- uint8_t nodeId1 = i_secondProc->getAttr<ATTR_FABRIC_NODE_ID>();
+ uint8_t groupId0 = i_firstProc->getAttr<ATTR_FABRIC_GROUP_ID>();
+ uint8_t groupId1 = i_secondProc->getAttr<ATTR_FABRIC_GROUP_ID>();
uint8_t fabpos0 = i_firstProc->getAttr<ATTR_FABRIC_CHIP_ID>();
uint8_t fabpos1 = i_secondProc->getAttr<ATTR_FABRIC_CHIP_ID>();
- if (nodeId0 == nodeId1)
+ if (groupId0 == groupId1)
{
return fabpos0 < fabpos1;
}
- return nodeId0 < nodeId1;
+ return groupId0 < groupId1;
}
uint8_t is_fused_mode( )
diff --git a/src/usr/targeting/common/xmltohb/attribute_types.xml b/src/usr/targeting/common/xmltohb/attribute_types.xml
index 813204720..a0228b446 100644
--- a/src/usr/targeting/common/xmltohb/attribute_types.xml
+++ b/src/usr/targeting/common/xmltohb/attribute_types.xml
@@ -2323,6 +2323,7 @@
<attribute>
<id>FABRIC_NODE_ID</id>
<description>
+ DEPRECATED!!!!
Chip attribute.
Logical fabric node the chip belongs to.
Provided by the Machine Readable Workbook.
@@ -2340,6 +2341,25 @@
</attribute>
<attribute>
+ <id>FABRIC_GROUP_ID</id>
+ <description>
+ Chip attribute.
+ Logical fabric group the chip belongs to.
+ Provided by the Machine Readable Workbook.
+ Can vary across drawers.
+ </description>
+ <simpleType><uint8_t>
+ <default>0</default>
+ </uint8_t></simpleType>
+ <persistency>non-volatile</persistency>
+ <readable/>
+ <hwpfToHbAttrMap>
+ <id>ATTR_FABRIC_GROUP_ID</id>
+ <macro>DIRECT</macro>
+ </hwpfToHbAttrMap>
+</attribute>
+
+<attribute>
<id>FABRIC_CHIP_ID</id>
<description>
Chip attribute.
diff --git a/src/usr/targeting/common/xmltohb/simics_NIMBUS.system.xml b/src/usr/targeting/common/xmltohb/simics_NIMBUS.system.xml
index 5c13545bc..8b8f680d0 100644
--- a/src/usr/targeting/common/xmltohb/simics_NIMBUS.system.xml
+++ b/src/usr/targeting/common/xmltohb/simics_NIMBUS.system.xml
@@ -188,7 +188,7 @@
</attribute>
<!-- End FSI connections -->
<attribute>
- <id>FABRIC_NODE_ID</id>
+ <id>FABRIC_GROUP_ID</id>
<default>0</default>
</attribute>
<attribute>
diff --git a/src/usr/targeting/common/xmltohb/target_types.xml b/src/usr/targeting/common/xmltohb/target_types.xml
index d6bff1c84..9cf860eaa 100755
--- a/src/usr/targeting/common/xmltohb/target_types.xml
+++ b/src/usr/targeting/common/xmltohb/target_types.xml
@@ -390,7 +390,8 @@
<id>FSI_GP_REG_SCOM_ACCESS</id>
<default>1</default>
</attribute>
- <attribute><id>FABRIC_NODE_ID</id></attribute>
+ <attribute><id>FABRIC_NODE_ID</id></attribute><!-- DEPRECATED -->
+ <attribute><id>FABRIC_GROUP_ID</id></attribute>
<attribute><id>FABRIC_CHIP_ID</id></attribute>
<attribute>
<!-- Processor chips have an SBE -->
diff --git a/src/usr/targeting/namedtarget.C b/src/usr/targeting/namedtarget.C
index 22144bcea..6b247f4d8 100644
--- a/src/usr/targeting/namedtarget.C
+++ b/src/usr/targeting/namedtarget.C
@@ -5,7 +5,9 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* COPYRIGHT International Business Machines Corp. 2012,2014 */
+/* Contributors Listed Below - COPYRIGHT 2012,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. */
@@ -62,8 +64,8 @@ const TARGETING::Target * getMasterCore( )
TARGETING::Target * l_processor = NULL;
(void)TARGETING::targetService().masterProcChipTargetHandle( l_processor );
- FABRIC_NODE_ID_ATTR l_logicalNodeId =
- l_processor->getAttr<TARGETING::ATTR_FABRIC_NODE_ID>();
+ FABRIC_GROUP_ID_ATTR l_logicalGroupId =
+ l_processor->getAttr<TARGETING::ATTR_FABRIC_GROUP_ID>();
FABRIC_CHIP_ID_ATTR l_chipId =
l_processor->getAttr<TARGETING::ATTR_FABRIC_CHIP_ID>();
@@ -89,7 +91,7 @@ const TARGETING::Target * getMasterCore( )
uint64_t pir = l_coreId << 3;
pir |= l_chipId << 7;
- pir |= l_logicalNodeId << 10;
+ pir |= l_logicalGroupId << 10;
if (pir == l_masterCoreID){
TRACFCOMP( g_trac_targeting,
diff --git a/src/usr/targeting/runtime/rt_targeting.C b/src/usr/targeting/runtime/rt_targeting.C
index 4707d63e9..707be836d 100644
--- a/src/usr/targeting/runtime/rt_targeting.C
+++ b/src/usr/targeting/runtime/rt_targeting.C
@@ -5,7 +5,9 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* COPYRIGHT International Business Machines Corp. 2014 */
+/* Contributors Listed Below - COPYRIGHT 2014,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. */
@@ -32,6 +34,7 @@
#include <targeting/common/utilFilter.H>
#include <targeting/common/trace.H>
#include <targeting/common/targreasoncodes.H>
+#include <arch/pirformat.H>
#include <runtime/rt_targeting.H>
@@ -89,20 +92,19 @@ errlHndl_t getRtTarget(const TARGETING::Target* i_target,
if(target_type == TARGETING::TYPE_PROC)
{
- // use 0b0000.0000.0000.0000.0000.0000.00NN.NCCC:
uint32_t fabId =
- i_target->getAttr<TARGETING::ATTR_FABRIC_NODE_ID>();
+ i_target->getAttr<TARGETING::ATTR_FABRIC_GROUP_ID>();
uint32_t procPos =
i_target->getAttr<TARGETING::ATTR_FABRIC_CHIP_ID>();
- o_chipId = (fabId << CHIPID_NODE_SHIFT) + procPos;
+ o_chipId = PIR_t::createChipId( fabId, procPos );
}
else if( target_type == TARGETING::TYPE_MEMBUF)
{
//MEMBUF
- // 0b1000.0000.0000.0000.0000.00NN.NCCC.MMMM
- // where NNN id node, CCC is chip, MMMM is memory channel
+ // 0b1000.0000.0000.0000.0000.0GGG.GCCC.MMMM
+ // where GGGG is group, CCC is chip, MMMM is memory channel
//
TARGETING::TargetHandleList targetList;
@@ -163,16 +165,15 @@ errlHndl_t getRtTarget(const TARGETING::Target* i_target,
break;
}
- o_chipId = (o_chipId << UNIT_ID_SHIFT);
+ o_chipId = (o_chipId << MEMBUF_ID_SHIFT);
o_chipId += pos;
- o_chipId |= MEMBUF_ID_TYPE;
+ o_chipId |= MEMBUF_TYPE;
}
- else if(target_type == TARGETING::TYPE_EX ||
- target_type == TARGETING::TYPE_CORE)
+ else if(target_type == TARGETING::TYPE_CORE)
{
- // EX/CORE
- // 0b0100.0000.0000.0000.0000.00NN.NCCC.PPPP
- // NNN is node, CCC is chip, PPPP is core
+ // CORE
+ // 0b0100.0000.0000.0000.0000.GGGG.CCCP.PPPP
+ // GGGG is group, CCC is chip, PPPPP is core
uint32_t pos = i_target->getAttr<TARGETING::ATTR_CHIP_UNIT>();
const TARGETING::Target * proc_target = getParentChip(i_target);
@@ -188,9 +189,8 @@ errlHndl_t getRtTarget(const TARGETING::Target* i_target,
break;
}
- o_chipId = (o_chipId << UNIT_ID_SHIFT);
- o_chipId += pos;
- o_chipId |= CORE_ID_TYPE;
+ o_chipId = PIR_t::createCoreId(o_chipId,pos);
+ o_chipId |= CORE_TYPE;
}
else
{
@@ -234,18 +234,18 @@ errlHndl_t getHbTarget(rtChipId_t i_rt_chip_id,
do
{
- uint64_t idType = i_rt_chip_id & CHIPID_ID_MASK;
+ uint64_t idType = i_rt_chip_id & CHIPID_TYPE_MASK;
- if(0 != (idType == MEMBUF_ID_TYPE))
+ if(0 != (idType == MEMBUF_TYPE))
{
//membuf
- uint64_t chip_id = i_rt_chip_id & UNIT_ID_MASK;
- uint32_t unitPos = chip_id & 0x0000000f;
- chip_id >>= UNIT_ID_SHIFT;
+ uint64_t proc_chip_id = i_rt_chip_id & ~CHIPID_TYPE_MASK;
+ uint32_t unitPos = proc_chip_id & MEMBUF_ID_MASK;
+ proc_chip_id >>= MEMBUF_ID_SHIFT;
TARGETING::Target * proc = NULL;
TARGETING::Target * msc = NULL;
- err = getHbTarget(chip_id, proc);
+ err = getHbTarget(proc_chip_id, proc);
if(err)
{
break;
@@ -308,13 +308,11 @@ errlHndl_t getHbTarget(rtChipId_t i_rt_chip_id,
}
}
- else if(0 != (idType == CORE_ID_TYPE))
+ else if(0 != (idType == CORE_TYPE))
{
- // core/ex will alway return EX chiplet as there is no concept
- // (yet) of a core in fapi
- uint64_t chip_id = i_rt_chip_id & UNIT_ID_MASK;
- uint32_t unitPos = chip_id & 0x0000000f;
- chip_id >>= UNIT_ID_SHIFT;
+ uint64_t core_id = i_rt_chip_id & ~CHIPID_TYPE_MASK;
+ uint32_t unitPos = PIR_t::coreFromCoreId(core_id);
+ uint64_t chip_id = PIR_t::chipFromCoreId(core_id);
TARGETING::Target * proc = NULL;
err = getHbTarget(chip_id, proc);
@@ -323,7 +321,7 @@ errlHndl_t getHbTarget(rtChipId_t i_rt_chip_id,
break;
}
- PredicateCTM exFilter(CLASS_UNIT, TYPE_EX);
+ PredicateCTM exFilter(CLASS_UNIT, TYPE_CORE);
PredicateAttrVal<ATTR_CHIP_UNIT> unitAttr(unitPos);
PredicatePostfixExpr exUnitFilter;
exUnitFilter.push(&exFilter).push(&unitAttr).And();
@@ -343,15 +341,14 @@ errlHndl_t getHbTarget(rtChipId_t i_rt_chip_id,
}
// o_target not found caught below..
}
- else if( idType == PROC_ID_TYPE)
+ else if( idType == PROC_TYPE)
{
// assume processor chip
- // chip_id = 'NNNCCC'b
- uint32_t fabId = i_rt_chip_id >> CHIPID_NODE_SHIFT;
- uint32_t procPos = i_rt_chip_id & 0x7;
+ uint32_t fabId = PIR_t::groupFromChipId(i_rt_chip_id);
+ uint32_t procPos = PIR_t::chipFromChipId(i_rt_chip_id);
PredicateCTM procFilter(CLASS_CHIP, TYPE_PROC);
- PredicateAttrVal<ATTR_FABRIC_NODE_ID> nodeFilter(fabId);
+ PredicateAttrVal<ATTR_FABRIC_GROUP_ID> nodeFilter(fabId);
PredicateAttrVal<ATTR_FABRIC_CHIP_ID> chipFilter(procPos);
PredicatePostfixExpr theProc, theAttrs;
diff --git a/src/usr/xscom/xscom.C b/src/usr/xscom/xscom.C
index a3d8e28dc..5eaad2237 100644
--- a/src/usr/xscom/xscom.C
+++ b/src/usr/xscom/xscom.C
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2011,2015 */
+/* Contributors Listed Below - COPYRIGHT 2011,2016 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -46,6 +46,7 @@
#include <assert.h>
#include <errl/errludlogregister.H>
#include <xscom/piberror.H>
+#include <arch/pirformat.H>
// Trace definition
trace_desc_t* g_trac_xscom = NULL;
@@ -347,7 +348,7 @@ errlHndl_t getTargetVirtualAddress(TARGETING::Target* i_target,
// Get the target Node Id
xscomNodeId =
- i_target->getAttr<TARGETING::ATTR_FABRIC_NODE_ID>();
+ i_target->getAttr<TARGETING::ATTR_FABRIC_GROUP_ID>();
// Get the target Chip Id
xscomChipId =
@@ -548,12 +549,7 @@ uint64_t* getCpuIdVirtualAddress()
uint64_t* o_virtAddr = 0;
// Get the CPU core this thread is running on
- uint32_t cpuid = task_getcpuid();
-
- //NNNCCCPPPPTTT format fot the cpuid..
- // N = node, C = chip, P = proc, T = thread
- uint32_t chipId = (cpuid & 0x0380)>>7;
- uint32_t nodeId = (cpuid & 0x1C00)>>10;
+ PIR_t cpuid = task_getcpuid();
// Can change the above hardcoded values to either a macro or use
// the info below to do the masking and shifting.
@@ -566,8 +562,8 @@ uint64_t* getCpuIdVirtualAddress()
// Target's XSCOM Base address
XSComBase_t l_XSComBaseAddr = l_systemBaseAddr +
- ( ( (g_xscomMaxChipsPerNode * nodeId) +
- chipId ) * THIRTYTWO_GB);
+ ( ( (g_xscomMaxChipsPerNode * cpuid.groupId) +
+ cpuid.chipId ) * THIRTYTWO_GB);
// Target's virtual address
o_virtAddr = static_cast<uint64_t*>
OpenPOWER on IntegriCloud