summaryrefslogtreecommitdiffstats
path: root/src/import
diff options
context:
space:
mode:
authorGirisankar Paulraj <gpaulraj@in.ibm.com>2016-06-13 04:22:11 -0500
committerSachin Gupta <sgupta2m@in.ibm.com>2016-09-26 03:09:31 -0400
commitaaf33ec6e020cd863069c1c25771f837929f4e75 (patch)
tree9a1b5e327dcf0d3b540296d108a7b3098a1fb67b /src/import
parent7721ff79aff1e4774ec0630d98f397dd303933a8 (diff)
downloadtalos-sbe-aaf33ec6e020cd863069c1c25771f837929f4e75.tar.gz
talos-sbe-aaf33ec6e020cd863069c1c25771f837929f4e75.zip
Added 0b0,1,2 and 3 chiplet TOR block copy support.
Based on vpd module ring requirement, ob chiplet is separated based on each chiplet instance. So, ob becomes as ob0, 0b1, 0b2 and 0b3. Added more logic to traverse over above defined chiplets. Change-Id: I85b04c33236a03ac49676522325f5e140067e8f1 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/25706 Tested-by: Jenkins Server Tested-by: Hostboot CI Reviewed-by: Claus M. Olsen <cmolsen@us.ibm.com> Reviewed-by: RANGANATHPRASAD G. BRAHMASAMUDRA <prasadbgr@in.ibm.com> Reviewed-by: Martin Peschke <mpeschke@de.ibm.com> Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/30246 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Reviewed-by: Sachin Gupta <sgupta2m@in.ibm.com>
Diffstat (limited to 'src/import')
-rw-r--r--src/import/chips/p9/utils/imageProcs/p9_tor.C44
-rw-r--r--src/import/chips/p9/utils/imageProcs/p9_tor.H23
2 files changed, 57 insertions, 10 deletions
diff --git a/src/import/chips/p9/utils/imageProcs/p9_tor.C b/src/import/chips/p9/utils/imageProcs/p9_tor.C
index e8c6be30..efa8139e 100644
--- a/src/import/chips/p9/utils/imageProcs/p9_tor.C
+++ b/src/import/chips/p9/utils/imageProcs/p9_tor.C
@@ -167,6 +167,34 @@ int get_ring_from_sbe_image ( void* i_ringSectionPtr, // Image pointer
ring_id_list_instance = (GenRingIdList*) MC::RING_ID_LIST_INSTANCE;
break;
+ case OB0_CPLT :
+ l_cpltData = OB0::g_ob0Data;
+ iv_num_variant = (uint8_t)sizeof(OB0::RingVariants) / sizeof(uint16_t);
+ ring_id_list_common = (GenRingIdList*) OB0::RING_ID_LIST_COMMON;
+ ring_id_list_instance = (GenRingIdList*) OB0::RING_ID_LIST_INSTANCE;
+ break;
+
+ case OB1_CPLT :
+ l_cpltData = OB1::g_ob1Data;
+ iv_num_variant = (uint8_t)sizeof(OB1::RingVariants) / sizeof(uint16_t);
+ ring_id_list_common = (GenRingIdList*) OB1::RING_ID_LIST_COMMON;
+ ring_id_list_instance = (GenRingIdList*) OB1::RING_ID_LIST_INSTANCE;
+ break;
+
+ case OB2_CPLT :
+ l_cpltData = OB2::g_ob2Data;
+ iv_num_variant = (uint8_t)sizeof(OB2::RingVariants) / sizeof(uint16_t);
+ ring_id_list_common = (GenRingIdList*) OB2::RING_ID_LIST_COMMON;
+ ring_id_list_instance = (GenRingIdList*) OB2::RING_ID_LIST_INSTANCE;
+ break;
+
+ case OB3_CPLT :
+ l_cpltData = OB3::g_ob3Data;
+ iv_num_variant = (uint8_t)sizeof(OB3::RingVariants) / sizeof(uint16_t);
+ ring_id_list_common = (GenRingIdList*) OB3::RING_ID_LIST_COMMON;
+ ring_id_list_instance = (GenRingIdList*) OB3::RING_ID_LIST_INSTANCE;
+ break;
+
case PCI0_CPLT :
l_cpltData = PCI0::g_pci0Data;
iv_num_variant = (uint8_t)sizeof(PCI0::RingVariants) / sizeof(uint16_t);
@@ -174,6 +202,7 @@ int get_ring_from_sbe_image ( void* i_ringSectionPtr, // Image pointer
ring_id_list_instance = (GenRingIdList*) PCI0::RING_ID_LIST_INSTANCE;
break;
+
case PCI1_CPLT :
l_cpltData = PCI1::g_pci1Data;
iv_num_variant = (uint8_t)sizeof(PCI1::RingVariants) / sizeof(uint16_t);
@@ -1189,6 +1218,21 @@ int tor_get_ring( void*
l_sbeTorId = MC_CPLT;
break;
+ case 9 :
+ l_sbeTorId = OB0_CPLT;
+ break;
+
+ case 10 :
+ l_sbeTorId = OB1_CPLT;
+ break;
+
+ case 11 :
+ l_sbeTorId = OB2_CPLT;
+ break;
+
+ case 12 :
+ l_sbeTorId = OB3_CPLT;
+ break;
case 13 :
l_sbeTorId = PCI0_CPLT;
diff --git a/src/import/chips/p9/utils/imageProcs/p9_tor.H b/src/import/chips/p9/utils/imageProcs/p9_tor.H
index 13a00e98..26ef5a20 100644
--- a/src/import/chips/p9/utils/imageProcs/p9_tor.H
+++ b/src/import/chips/p9/utils/imageProcs/p9_tor.H
@@ -67,6 +67,7 @@ typedef struct
} TorPpeBlock_t;
+
#define IMGBUILD_TGR_RING_FOUND 0
#define IMGBUILD_TGR_RING_BLOCKS_FOUND 0
#define IMGBUILD_TGR_RING_NOT_FOUND 1 // Ring is not found in HW image.
@@ -146,12 +147,16 @@ typedef enum SbeTorId
N3_CPLT = 4,
XB_CPLT = 5,
MC_CPLT = 6,
- PCI0_CPLT = 7,
- PCI1_CPLT = 8,
- PCI2_CPLT = 9,
- EQ_CPLT = 10,
- EC_CPLT = 11,
- SBE_NOOF_CHIPLETS = 12
+ OB0_CPLT = 7,
+ OB1_CPLT = 8,
+ OB2_CPLT = 9,
+ OB3_CPLT = 10,
+ PCI0_CPLT = 11,
+ PCI1_CPLT = 12,
+ PCI2_CPLT = 13,
+ EQ_CPLT = 14,
+ EC_CPLT = 15,
+ SBE_NOOF_CHIPLETS = 16
} SbeTorId_t;
typedef enum CmeTorId
{
@@ -230,8 +235,7 @@ int tor_get_ring( void*
RingBlockType_t i_RingBlockType, // 0: single ring, 1: ring block
void** io_ringBlockPtr, // Addr of ring buffer
uint32_t& io_ringBlockSize, // size of ring data
- char* o_ringName // Ring name
- );
+ char* o_ringName); // Ring name
int tor_get_single_ring ( void*
i_ringSectionPt, // Ring address Ptr any of .rings, .overrides and .overlays.
@@ -253,8 +257,7 @@ int tor_get_block_of_rings ( void*
RingVariant_t i_RingVariant, // base,cache,etc
uint8_t i_instanceId, // Chiplet Instance ID
void** io_ringBlockPtr, // Addr of ring buffer
- uint32_t& io_ringBlockSize // size of ring data
- );
+ uint32_t& io_ringBlockSize); // size of ring data
};
#endif //_P9_TOR_H_
OpenPOWER on IntegriCloud