From 7d92789eb1a9729e36d9106fa6c04b6398bdae70 Mon Sep 17 00:00:00 2001 From: Thi Tran Date: Thu, 19 Dec 2013 06:50:59 -0600 Subject: INITPROC: Hostboot - SW238944 - HWP update week 12/17 Change-Id: I72081f9e79f369d6516845114ff6365b5ea8935c CQ:SW238944 Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/7822 Tested-by: Jenkins Server Reviewed-by: Thi N. Tran Reviewed-by: A. Patrick Williams III --- .../build_winkle_images/p8_slw_build/pore_inline.h | 15 ++- .../p8_slw_build/sbe_xip_image.c | 16 ++-- .../memory_mss_mcbist_common.xml | 2 +- .../proc_fab_iovalid/proc_fab_iovalid.C | 106 +++++++++++---------- 4 files changed, 78 insertions(+), 61 deletions(-) (limited to 'src') diff --git a/src/usr/hwpf/hwp/build_winkle_images/p8_slw_build/pore_inline.h b/src/usr/hwpf/hwp/build_winkle_images/p8_slw_build/pore_inline.h index 6521a1f13..b84fab492 100644 --- a/src/usr/hwpf/hwp/build_winkle_images/p8_slw_build/pore_inline.h +++ b/src/usr/hwpf/hwp/build_winkle_images/p8_slw_build/pore_inline.h @@ -23,7 +23,13 @@ #ifndef __PORE_INLINE_H__ #define __PORE_INLINE_H__ -// $Id: pore_inline.h,v 1.19 2013/11/20 14:06:40 bcbrock Exp $ +// $Id: pore_inline.h,v 1.20 2013/12/11 00:11:13 bcbrock Exp $ +// $Source: /afs/awd/projects/eclipz/KnowledgeBase/.cvsroot/eclipz/chips/p8/working/procedures/pore_inline.h,v $ +//----------------------------------------------------------------------------- +// *! (C) Copyright International Business Machines Corp. 2013 +// *! All Rights Reserved -- Property of IBM +// *! *** IBM Confidential *** +//----------------------------------------------------------------------------- // ** WARNING : This file is maintained as part of the OCC firmware. Do ** // ** not edit this file in the PMX area or the hardware procedure area ** @@ -38,12 +44,14 @@ /// necessary, i.e., only in C files that explicitly use inline assembly and /// disassembly. +#ifndef PPC_HYP #include #include #include +#endif // PPC_HYP #include "pgas.h" -#ifdef __cplusplus +#if( defined(__cplusplus) && !defined(PLIC_MODULE) ) extern "C" { #endif #if 0 @@ -62,6 +70,7 @@ extern "C" { #ifdef PPC_HYP #define PORE_STATIC +#include #else #define PORE_STATIC static #endif @@ -864,7 +873,7 @@ pore_SCAND(PoreInlineContext *ctx, #if 0 { /* So __cplusplus doesn't mess w/auto-indent */ #endif -#ifdef __cplusplus +#if( defined(__cplusplus) && !defined(PLIC_MODULE) ) } #endif diff --git a/src/usr/hwpf/hwp/build_winkle_images/p8_slw_build/sbe_xip_image.c b/src/usr/hwpf/hwp/build_winkle_images/p8_slw_build/sbe_xip_image.c index c5dc7eea5..50fb358a6 100644 --- a/src/usr/hwpf/hwp/build_winkle_images/p8_slw_build/sbe_xip_image.c +++ b/src/usr/hwpf/hwp/build_winkle_images/p8_slw_build/sbe_xip_image.c @@ -20,7 +20,7 @@ /* Origin: 30 */ /* */ /* IBM_PROLOG_END_TAG */ -// $Id: sbe_xip_image.c,v 1.27 2013/06/13 20:26:25 bcbrock Exp $ +// $Id: sbe_xip_image.c,v 1.28 2013/12/11 00:12:41 bcbrock Exp $ // $Source: /afs/awd/projects/eclipz/KnowledgeBase/.cvsroot/eclipz/chips/p8/working/procedures/ipl/sbe/sbe_xip_image.c,v $ //----------------------------------------------------------------------------- // *! (C) Copyright International Business Machines Corp. 2011 @@ -44,9 +44,12 @@ /// ensure that no memory outside of the putative bounds of the image is ever /// referenced during validation. -#ifdef PPC_HYP -#include -#endif +#ifndef PLIC_MODULE +#include +#include +#include +#include +#endif // PLIC_MODULE #include #include @@ -65,13 +68,12 @@ #ifdef PPC_HYP -#ifndef _HVTYPES_H -#include -#endif +#ifdef PLIC_MODULE #define strcpy(dest, src) hvstrcpy(dest, src) #define strlen(s) hvstrlen(s) #define strcmp(s1, s2) hvstrcmp(s1, s2) +#endif //PLIC_MODULE #define XIP_STATIC diff --git a/src/usr/hwpf/hwp/dram_training/mss_draminit_trainadv/memory_mss_mcbist_common.xml b/src/usr/hwpf/hwp/dram_training/mss_draminit_trainadv/memory_mss_mcbist_common.xml index 357a2ce77..ba0375461 100644 --- a/src/usr/hwpf/hwp/dram_training/mss_draminit_trainadv/memory_mss_mcbist_common.xml +++ b/src/usr/hwpf/hwp/dram_training/mss_draminit_trainadv/memory_mss_mcbist_common.xml @@ -21,7 +21,7 @@ - + diff --git a/src/usr/hwpf/hwp/edi_ei_initialization/proc_fab_iovalid/proc_fab_iovalid.C b/src/usr/hwpf/hwp/edi_ei_initialization/proc_fab_iovalid/proc_fab_iovalid.C index 034f27c04..b10ef2970 100644 --- a/src/usr/hwpf/hwp/edi_ei_initialization/proc_fab_iovalid/proc_fab_iovalid.C +++ b/src/usr/hwpf/hwp/edi_ei_initialization/proc_fab_iovalid/proc_fab_iovalid.C @@ -20,7 +20,7 @@ /* Origin: 30 */ /* */ /* IBM_PROLOG_END_TAG */ -// $Id: proc_fab_iovalid.C,v 1.13 2013/10/28 03:57:09 jmcgill Exp $ +// $Id: proc_fab_iovalid.C,v 1.14 2013/12/13 16:03:40 jmcgill Exp $ // $Source: /afs/awd/projects/eclipz/KnowledgeBase/.cvsroot/eclipz/chips/p8/working/procedures/ipl/fapi/proc_fab_iovalid.C,v $ //------------------------------------------------------------------------------ // *| @@ -220,66 +220,72 @@ fapi::ReturnCode proc_fab_iovalid_manage_a_links( do { - // query secure iovalid attribute - rc = FAPI_ATTR_GET(ATTR_CHIP_EC_FEATURE_SECURE_IOVALID_PRESENT, - &(i_proc_chip.this_chip), - secure_iovalid_present_attr); - if (!rc.ok()) - { - FAPI_ERR("proc_fab_iovalid_manage_a_links: Error querying ATTR_CHIP_EC_FEATURE_SECURE_IOVALID_PRESENT"); - break; - } - - if (i_proc_chip.a0) - { - FAPI_DBG("proc_fab_iovalid_manage_a_links: Adding link A0 to active link mask"); - rc_ecmd |= gp0_iovalid_active.setBit(A_GP0_A0_IOVALID_BIT); - if (secure_iovalid_present_attr) + // do not attempt to drop secure iovalid + // running on FSP (stopclocks), this code will be unable to adjust this register + // clearing the GP0 settings should be sufficient to drop the downstream iovalids + if (i_set_not_clear) + { + // query secure iovalid attribute + rc = FAPI_ATTR_GET(ATTR_CHIP_EC_FEATURE_SECURE_IOVALID_PRESENT, + &(i_proc_chip.this_chip), + secure_iovalid_present_attr); + if (!rc.ok()) + { + FAPI_ERR("proc_fab_iovalid_manage_a_links: Error querying ATTR_CHIP_EC_FEATURE_SECURE_IOVALID_PRESENT"); + break; + } + + if (i_proc_chip.a0) { - FAPI_DBG("proc_fab_iovalid_manage_a_links: Adding link A0 to active link mask (secure)"); - if (i_set_not_clear) + FAPI_DBG("proc_fab_iovalid_manage_a_links: Adding link A0 to active link mask"); + rc_ecmd |= gp0_iovalid_active.setBit(A_GP0_A0_IOVALID_BIT); + if (secure_iovalid_present_attr) { - rc_ecmd |= secure_iovalid_data.setBit(ADU_IOS_LINK_EN_A0_IOVALID_BIT); + FAPI_DBG("proc_fab_iovalid_manage_a_links: Adding link A0 to active link mask (secure)"); + if (i_set_not_clear) + { + rc_ecmd |= secure_iovalid_data.setBit(ADU_IOS_LINK_EN_A0_IOVALID_BIT); + } + rc_ecmd |= secure_iovalid_mask.setBit(ADU_IOS_LINK_EN_A0_IOVALID_BIT); } - rc_ecmd |= secure_iovalid_mask.setBit(ADU_IOS_LINK_EN_A0_IOVALID_BIT); } - } - if (i_proc_chip.a1) - { - FAPI_DBG("proc_fab_iovalid_manage_a_links: Adding link A1 to active link mask"); - rc_ecmd |= gp0_iovalid_active.setBit(A_GP0_A1_IOVALID_BIT); - if (secure_iovalid_present_attr) + if (i_proc_chip.a1) { - FAPI_DBG("proc_fab_iovalid_manage_a_links: Adding link A1 to active link mask (secure)"); - if (i_set_not_clear) + FAPI_DBG("proc_fab_iovalid_manage_a_links: Adding link A1 to active link mask"); + rc_ecmd |= gp0_iovalid_active.setBit(A_GP0_A1_IOVALID_BIT); + if (secure_iovalid_present_attr) { - rc_ecmd |= secure_iovalid_data.setBit(ADU_IOS_LINK_EN_A1_IOVALID_BIT); + FAPI_DBG("proc_fab_iovalid_manage_a_links: Adding link A1 to active link mask (secure)"); + if (i_set_not_clear) + { + rc_ecmd |= secure_iovalid_data.setBit(ADU_IOS_LINK_EN_A1_IOVALID_BIT); + } + rc_ecmd |= secure_iovalid_mask.setBit(ADU_IOS_LINK_EN_A1_IOVALID_BIT); } - rc_ecmd |= secure_iovalid_mask.setBit(ADU_IOS_LINK_EN_A1_IOVALID_BIT); } - } - if (i_proc_chip.a2) - { - FAPI_DBG("proc_fab_iovalid_manage_a_links: Adding link A2 to active link mask"); - rc_ecmd |= gp0_iovalid_active.setBit(A_GP0_A2_IOVALID_BIT); - if (secure_iovalid_present_attr) + if (i_proc_chip.a2) { - FAPI_DBG("proc_fab_iovalid_manage_a_links: Adding link A2 to active link mask (secure)"); - if (i_set_not_clear) + FAPI_DBG("proc_fab_iovalid_manage_a_links: Adding link A2 to active link mask"); + rc_ecmd |= gp0_iovalid_active.setBit(A_GP0_A2_IOVALID_BIT); + if (secure_iovalid_present_attr) { - rc_ecmd |= secure_iovalid_data.setBit(ADU_IOS_LINK_EN_A2_IOVALID_BIT); + FAPI_DBG("proc_fab_iovalid_manage_a_links: Adding link A2 to active link mask (secure)"); + if (i_set_not_clear) + { + rc_ecmd |= secure_iovalid_data.setBit(ADU_IOS_LINK_EN_A2_IOVALID_BIT); + } + rc_ecmd |= secure_iovalid_mask.setBit(ADU_IOS_LINK_EN_A2_IOVALID_BIT); } - rc_ecmd |= secure_iovalid_mask.setBit(ADU_IOS_LINK_EN_A2_IOVALID_BIT); } - } - - // check aggregate return code from buffer manipulation operations - if (rc_ecmd) - { - FAPI_ERR("proc_fab_iovalid_manage_a_links: Error 0x%x setting up active link mask data buffersa", - rc_ecmd); - rc.setEcmdError(rc_ecmd); - break; + + // check aggregate return code from buffer manipulation operations + if (rc_ecmd) + { + FAPI_ERR("proc_fab_iovalid_manage_a_links: Error 0x%x setting up active link mask data buffersa", + rc_ecmd); + rc.setEcmdError(rc_ecmd); + break; + } } // write appropriate GP0 mask register to perform desired operation @@ -295,7 +301,7 @@ fapi::ReturnCode proc_fab_iovalid_manage_a_links( } // adjust secure iovalids if present - if (secure_iovalid_present_attr) + if (secure_iovalid_present_attr && i_set_not_clear) { rc = fapiPutScomUnderMask(i_proc_chip.this_chip, ADU_IOS_LINK_EN_0x02020019, -- cgit v1.2.1