From 5fbc5a59c927103b37f04e0d2055714f7aa8c93c Mon Sep 17 00:00:00 2001 From: Thi Tran Date: Tue, 12 Nov 2013 12:33:34 -0600 Subject: Hostboot Centaur DD2.0 additional supports (SW231619) Change-Id: I2c10860fa7b29c64579a6caf3532f316f9727e5f CMVC-Coreq:904369 CQ:SW231619 Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/7194 Tested-by: Jenkins Server Reviewed-by: A. Patrick Williams III --- src/usr/scom/scomtrans.C | 30 ++++++++++++++++++++++++------ src/usr/scom/scomtrans.H | 10 ++++++++-- 2 files changed, 32 insertions(+), 8 deletions(-) (limited to 'src/usr/scom') diff --git a/src/usr/scom/scomtrans.C b/src/usr/scom/scomtrans.C index 694d1fafe..024b2cd54 100644 --- a/src/usr/scom/scomtrans.C +++ b/src/usr/scom/scomtrans.C @@ -414,6 +414,9 @@ errlHndl_t scomTranslate(DeviceFW::OperationType i_opType, // SCOM_TRANS_MBA_MASK = 0xFFFFFFFF7FFFFC00, // SCOM_TRANS_MBA_BASEADDR = 0x0000000003010400, // + // SCOM_TRANS_TCM_MBA_MASK = 0xFFFFFFFFFFFFFC00 + // SCOM_TRANS_TCM_MBA_BASEADDR = 0x0000000003010800 + // // In the XML.. the // physical:sys-0/node-0/membuf-10/mbs-0/mba-1 // @@ -422,8 +425,10 @@ errlHndl_t scomTranslate(DeviceFW::OperationType i_opType, // // 0x00000000_03010400 MBA 0 # MBA01 // 0x00000000_03010C00 MBA 1 # MBA23 - // - // + + // 0x00000000_03010880 MBA 0 # Trace for MBA01 + // 0x00000000_030110C0 MBA 1 # Trace for MBA23 + // 0x00000000_03011400 MBA 0 # DPHY01 (indirect addressing) // 0x00000000_03011800 MBA 1 # DPHY23 (indirect addressing) @@ -433,13 +438,13 @@ errlHndl_t scomTranslate(DeviceFW::OperationType i_opType, // 0x80000000_0701143f MBA 0 # DPHY01 (indirect addressing) // 0x80000000_0701183f MBA 1 # DPHY23 (indirect addressing) // + // SCOM_TRANS_IND_MBA_MASK = 0x80000000FFFFFFFF, // SCOM_TRANS_IND_MBA_BASEADDR = 0x800000000301143f, - - // check to see that the Address is in the correct direct - // scom MBA address range. - if ((i_addr & SCOM_TRANS_MBA_MASK) == SCOM_TRANS_MBA_BASEADDR) + // check to see that the Address is in the correct direct + // scom MBA address range. + if ( (i_addr & SCOM_TRANS_MBA_MASK) == SCOM_TRANS_MBA_BASEADDR ) { l_err = scomPerformTranslate(epath, @@ -450,6 +455,19 @@ errlHndl_t scomTranslate(DeviceFW::OperationType i_opType, i_target, i_addr ); } + + // New TCM MBA registers for DD2.0 + else if ( (i_addr & SCOM_TRANS_TCM_MBA_MASK) == + SCOM_TRANS_TCM_MBA_BASEADDR ) + { + l_instance = epath.pathElementOfType(TARGETING::TYPE_MBA).instance; + i_addr = i_addr + (l_instance * SCOM_TRANS_TCM_MBA_OFFSET); + // Call to set the target to the parent target type + l_err = scomfindParentTarget(epath, + TARGETING::TYPE_MEMBUF, + i_target); + } + // check to see if valid MBA 0 indirect address range else if ((i_addr & SCOM_TRANS_IND_MBA_MASK) == SCOM_TRANS_IND_MBA_BASEADDR) diff --git a/src/usr/scom/scomtrans.H b/src/usr/scom/scomtrans.H index 473b0c6a9..d5a5413f7 100644 --- a/src/usr/scom/scomtrans.H +++ b/src/usr/scom/scomtrans.H @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 2011,2012 */ +/* COPYRIGHT International Business Machines Corp. 2011,2013 */ /* */ /* p1 */ /* */ @@ -38,11 +38,12 @@ namespace SCOM SCOM_TRANS_EX_MASK = 0xFFFFFFFF7F000000, SCOM_TRANS_MCS_MASK = 0xFFFFFFFF7FFFFF80, SCOM_TRANS_MBA_MASK = 0xFFFFFFFF7FFFFC00, + SCOM_TRANS_TCM_MBA_MASK = 0xFFFFFFFFFFFFFC00, SCOM_TRANS_XBUS_MASK = 0x00000000FFFFFC00, SCOM_TRANS_IND_MCS_DMI_MASK = 0x80000060FFFFFFFF, SCOM_TRANS_IND_MBA_MASK = 0x80000000FFFFFFFF, SCOM_TRANS_ABUS_MASK = 0x00000060FFFFFC00, - SCOM_TRANS_INDIRECT_MASK = 0x8000000000000000, + SCOM_TRANS_INDIRECT_MASK = 0x8000000000000000, }; enum ScomTransBaseAddr @@ -52,6 +53,7 @@ namespace SCOM SCOM_TRANS_MCS_DMI_BASEADDR = 0x0000000002011A00, SCOM_TRANS_IND_MCS_BASEADDR = 0x8000006002011A00, SCOM_TRANS_MBA_BASEADDR = 0x0000000003010400, + SCOM_TRANS_TCM_MBA_BASEADDR = 0x0000000003010800, SCOM_TRANS_XBUS_BASEADDR = 0x0000000004011000, SCOM_TRANS_ABUS_BASEADDR = 0x0000000008010C00, SCOM_TRANS_IND_MBA_BASEADDR = 0x800000000301143f, @@ -59,6 +61,10 @@ namespace SCOM SCOM_TRANS_INDIRECT_ADDRESS = 0x8000000000000000, }; + enum ScomTransOffset + { + SCOM_TRANS_TCM_MBA_OFFSET = 0x840, + }; /** -- cgit v1.2.1