diff options
author | Dan Crowell <dcrowell@us.ibm.com> | 2019-10-22 09:21:25 -0500 |
---|---|---|
committer | William G Hoffa <wghoffa@us.ibm.com> | 2019-10-28 16:17:58 -0500 |
commit | a7739158a42e3d4caf325f8f23c79641ec6707d2 (patch) | |
tree | 8a5aa642f2b98c41839c41a9b3a7fc20e43ab8e5 /src/usr/scom | |
parent | 4921bf245e22bccc84c60a2030801ec6ee48dcd6 (diff) | |
download | talos-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.C | 27 |
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; } |