From fc5fa5842e3e03e1419501de236c36b1641281d0 Mon Sep 17 00:00:00 2001 From: Matt Derksen Date: Thu, 20 Jun 2019 16:33:05 -0500 Subject: 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 Tested-by: Jenkins OP Build CI Tested-by: Jenkins OP HW Tested-by: FSP CI Jenkins Reviewed-by: Christian R Geddes Reviewed-by: Roland Veloz Reviewed-by: Daniel M Crowell --- src/usr/scom/runtime/rt_scom.C | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'src/usr/scom') 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 -- cgit v1.2.1