summaryrefslogtreecommitdiffstats
path: root/src/usr/scom
diff options
context:
space:
mode:
authorDan Crowell <dcrowell@us.ibm.com>2019-10-22 09:21:25 -0500
committerWilliam G Hoffa <wghoffa@us.ibm.com>2019-10-28 16:17:58 -0500
commita7739158a42e3d4caf325f8f23c79641ec6707d2 (patch)
tree8a5aa642f2b98c41839c41a9b3a7fc20e43ab8e5 /src/usr/scom
parent4921bf245e22bccc84c60a2030801ec6ee48dcd6 (diff)
downloadtalos-hostboot-a7739158a42e3d4caf325f8f23c79641ec6707d2.tar.gz
talos-hostboot-a7739158a42e3d4caf325f8f23c79641ec6707d2.zip
Support scoms to MEM_PORT targets
Some of the memory HWPs require MEM_PORT scom support for Explorer. There is no address translation required but we need to allow the scoms to occur. Added testcase paths to scom MEM_PORT targets. Change-Id: I00b29e8dda6a105e994a5dcd009fd4b8aebdbdef Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/85690 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Reviewed-by: Christian R Geddes <crgeddes@us.ibm.com> Reviewed-by: Corey V Swenson <cswenson@us.ibm.com> Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com> Reviewed-by: William G Hoffa <wghoffa@us.ibm.com>
Diffstat (limited to 'src/usr/scom')
-rw-r--r--src/usr/scom/scomtrans.C27
1 files changed, 20 insertions, 7 deletions
diff --git a/src/usr/scom/scomtrans.C b/src/usr/scom/scomtrans.C
index 5fb2ae9f8..6f0275e33 100644
--- a/src/usr/scom/scomtrans.C
+++ b/src/usr/scom/scomtrans.C
@@ -192,6 +192,11 @@ DEVICE_REGISTER_ROUTE(DeviceFW::WILDCARD,
TARGETING::TYPE_NPU,
startScomProcess);
+DEVICE_REGISTER_ROUTE(DeviceFW::WILDCARD,
+ DeviceFW::SCOM,
+ TARGETING::TYPE_MEM_PORT,
+ startScomProcess);
+
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
errlHndl_t startScomProcess(DeviceFW::OperationType i_opType,
@@ -301,9 +306,10 @@ errlHndl_t scomTranslate(TARGETING::Target * &i_target,
// Get the type attribute.
TARGETING::TYPE l_type = i_target->getAttr<TARGETING::ATTR_TYPE>();
- centaurChipUnits_t l_chipUnit = CENTAUR_CHIP;
+ centaurChipUnits_t l_cenChipUnit = CENTAUR_CHIP;
+ p9ChipUnits_t l_p9ChipUnit = NONE;
- if(false == getChipUnitCentaur(l_type,l_chipUnit))
+ if(false == getChipUnitCentaur(l_type,l_cenChipUnit))
{
l_err = centaur_translation(i_target,
l_type,
@@ -311,14 +317,21 @@ errlHndl_t scomTranslate(TARGETING::Target * &i_target,
i_opMode);
o_needsWakeup = false;
}
- else
+ else if(false == getChipUnitP9(l_type,l_p9ChipUnit))
{
l_err = p9_translation(i_target,
- l_type,
- io_addr,
- o_needsWakeup,
- i_opMode);
+ l_type,
+ io_addr,
+ o_needsWakeup,
+ i_opMode);
}
+ else
+ {
+ // The only type leftover should be mem_port, and there is
+ // no translation required for that
+ assert( TARGETING::TYPE_MEM_PORT == l_type );
+ }
+
return l_err;
}
OpenPOWER on IntegriCloud