diff options
author | Matt Derksen <mderkse1@us.ibm.com> | 2019-06-20 16:33:05 -0500 |
---|---|---|
committer | Daniel M Crowell <dcrowell@us.ibm.com> | 2019-08-15 17:06:46 -0500 |
commit | fc5fa5842e3e03e1419501de236c36b1641281d0 (patch) | |
tree | 55838f029f7fdb4404be79bc562ea4bce29aac02 /src/usr/scom | |
parent | 3048b4b1689faf1842499f6402f6175909b2b410 (diff) | |
download | talos-hostboot-fc5fa5842e3e03e1419501de236c36b1641281d0.tar.gz talos-hostboot-fc5fa5842e3e03e1419501de236c36b1641281d0.zip |
Runtime scom support for OCMBs
fapi2::getScom on OCMB targets eventually resolves
to a mmio call at runtime.
This commit registers a runtime version of mmioScomPerformOp
to the IBSCOM device ops for OCMB targets.
During runtime, hostboot will rely on the hypervisor (opal/phyp)
to issue the inband commands to perform the operation on the
desired OCMB.
Change-Id: I5ec25d0401267125419cd579a3a2d752f14234a4
RTC:210321
Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/80235
Tested-by: Jenkins Server <pfd-jenkins+hostboot@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>
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Reviewed-by: Christian R Geddes <crgeddes@us.ibm.com>
Reviewed-by: Roland Veloz <rveloz@us.ibm.com>
Reviewed-by: Daniel M Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/usr/scom')
-rw-r--r-- | src/usr/scom/runtime/rt_scom.C | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/src/usr/scom/runtime/rt_scom.C b/src/usr/scom/runtime/rt_scom.C index a27dfe81e..eafc14790 100644 --- a/src/usr/scom/runtime/rt_scom.C +++ b/src/usr/scom/runtime/rt_scom.C @@ -5,7 +5,7 @@ /* */ /* OpenPOWER HostBoot Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2013,2018 */ +/* Contributors Listed Below - COPYRIGHT 2013,2019 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -169,9 +169,9 @@ errlHndl_t sendScomToHyp(DeviceFW::OperationType i_opType, do { // Convert target to something Sapphire understands - RT_TARG::rtChipId_t proc_id = 0; + RT_TARG::rtChipId_t target_id = 0; l_err = RT_TARG::getRtTarget(i_target, - proc_id); + target_id); if(l_err) { break; @@ -185,7 +185,7 @@ errlHndl_t sendScomToHyp(DeviceFW::OperationType i_opType, if(i_opType == DeviceFW::READ) { l_hostRC = - g_hostInterfaces->scom_read(proc_id, + g_hostInterfaces->scom_read(target_id, i_scomAddr, io_buffer ); @@ -193,7 +193,7 @@ errlHndl_t sendScomToHyp(DeviceFW::OperationType i_opType, else if (i_opType == DeviceFW::WRITE) { l_hostRC = - g_hostInterfaces->scom_write(proc_id, + g_hostInterfaces->scom_write(target_id, i_scomAddr, io_buffer ); @@ -203,8 +203,8 @@ errlHndl_t sendScomToHyp(DeviceFW::OperationType i_opType, { TRACFCOMP(g_trac_scom,ERR_MRK "Hypervisor scom read/write failed. " - "rc 0x%X target 0x%llX proc_id 0x%llX addr 0x%llX r/w %d", - l_hostRC, get_huid(i_target), proc_id, i_scomAddr, i_opType); + "rc 0x%X target 0x%llX target_id 0x%llX addr 0x%llX r/w %d", + l_hostRC, get_huid(i_target), target_id, i_scomAddr, i_opType); // Use an unused bit in the 64-bit scom range to indicate // read/write. Cannot use bit0 since that is part of an |