summaryrefslogtreecommitdiffstats
path: root/src/kernel
diff options
context:
space:
mode:
authorCorey Swenson <cswenson@us.ibm.com>2018-03-09 00:27:54 -0600
committerWilliam G. Hoffa <wghoffa@us.ibm.com>2018-03-20 18:29:47 -0400
commited84b08afa873008e71fb617146e536d2e9fe9b3 (patch)
treee015fe122af99c85ba5c42ed048dd93dd1cbe7eb /src/kernel
parent0e69501ebe5b6e31e52cfb765bdeef1a219cf4e1 (diff)
downloadtalos-hostboot-ed84b08afa873008e71fb617146e536d2e9fe9b3.tar.gz
talos-hostboot-ed84b08afa873008e71fb617146e536d2e9fe9b3.zip
Inband SCOM clean up
- Addresses review comments from original commit - Adds inband scom multicast workaround Change-Id: Ia17a8e5359227691464f3552ded585ede771813b Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/55305 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: Prachi Gupta <pragupta@us.ibm.com> Reviewed-by: Christian R. Geddes <crgeddes@us.ibm.com> Reviewed-by: William G. Hoffa <wghoffa@us.ibm.com>
Diffstat (limited to 'src/kernel')
-rw-r--r--src/kernel/machchk.C33
1 files changed, 13 insertions, 20 deletions
diff --git a/src/kernel/machchk.C b/src/kernel/machchk.C
index 417b589c4..79edf4240 100644
--- a/src/kernel/machchk.C
+++ b/src/kernel/machchk.C
@@ -85,28 +85,21 @@ bool handleLoadUE(task_t* t)
uint64_t phys = VmmManager::findPhysicalAddress(vaddr);
- //Check if address is in IBSCOM MMIO Range.
- uint64_t ibAddrStart = 0;
- for(uint32_t l_groupId=0; l_groupId<4; l_groupId++)
+ // Check if address is in IBSCOM MMIO Range.
+ // Base mask bits are always set for ibscom.
+ // Combined mask bits could be set for ibscom.
+ // ~Combined mask bits can not be set for ibscom.
+ uint64_t combMask = MMIO_IBSCOM_BASE_MASK |
+ MMIO_IBSCOM_DMI_MASK |
+ MMIO_IBSCOM_CHIP_MASK |
+ MMIO_IBSCOM_GROUP_MASK;
+
+ if(((phys & MMIO_IBSCOM_BASE_MASK) == MMIO_IBSCOM_BASE_MASK) &&
+ ((phys & ~combMask) == 0))
{
- for(uint32_t l_chipId=0; l_chipId<4; l_chipId++)
- {
- ibAddrStart = computeMemoryMapOffset( MMIO_IBSCOM_BASE,
- l_groupId,
- l_chipId );
- if((phys >= ibAddrStart) &&
- (phys <= ibAddrStart + MMIO_IBSCOM_SIZE - 1))
- {
- ueMagicValue = MMIO_IBSCOM_UE_DETECTED;
- break;
- }
- }
- if(ueMagicValue == MMIO_IBSCOM_UE_DETECTED)
- {
- break;
- }
+ ueMagicValue = MMIO_IBSCOM_UE_DETECTED;
}
- if(ueMagicValue != MMIO_IBSCOM_UE_DETECTED)
+ else
{
printk("MachineCheck::handleUE: Unrecognized address %lx\n",
phys);
OpenPOWER on IntegriCloud