diff options
author | Corey Swenson <cswenson@us.ibm.com> | 2018-02-22 10:32:21 -0600 |
---|---|---|
committer | William G. Hoffa <wghoffa@us.ibm.com> | 2018-03-08 15:10:19 -0500 |
commit | 4cf79f8dc40b280faf5aac52bad3e684138e2052 (patch) | |
tree | ca1a4194fc2d9e6147fcc6bedc547c9be5a409eb /src/kernel | |
parent | c0fce11639f72a479e3479a25362cf64337e51a1 (diff) | |
download | talos-hostboot-4cf79f8dc40b280faf5aac52bad3e684138e2052.tar.gz talos-hostboot-4cf79f8dc40b280faf5aac52bad3e684138e2052.zip |
Changes to Inband SCOM MMIO ranges for Cumulus
- Add function to compress SCOM address
- Old MCS target is now DMI
- Add istep12 call to enable inband SCOMs
- Set each DMI offset attribute in processMrw
Change-Id: If5171f8da6c58404ac598047ca0177aead048771
RTC:147272
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/54574
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: Daniel M. Crowell <dcrowell@us.ibm.com>
Reviewed-by: Prachi Gupta <pragupta@us.ibm.com>
Reviewed-by: William G. Hoffa <wghoffa@us.ibm.com>
Diffstat (limited to 'src/kernel')
-rw-r--r-- | src/kernel/machchk.C | 28 |
1 files changed, 23 insertions, 5 deletions
diff --git a/src/kernel/machchk.C b/src/kernel/machchk.C index 0b202024f..417b589c4 100644 --- a/src/kernel/machchk.C +++ b/src/kernel/machchk.C @@ -5,7 +5,9 @@ /* */ /* OpenPOWER HostBoot Project */ /* */ -/* COPYRIGHT International Business Machines Corp. 2013,2014 */ +/* Contributors Listed Below - COPYRIGHT 2013,2018 */ +/* [+] International Business Machines Corp. */ +/* */ /* */ /* Licensed under the Apache License, Version 2.0 (the "License"); */ /* you may not use this file except in compliance with the License. */ @@ -24,6 +26,7 @@ #include <kernel/console.H> #include <kernel/vmmmgr.H> #include <sys/mmio.h> +#include <arch/memorymap.H> namespace Kernel { @@ -83,12 +86,27 @@ bool handleLoadUE(task_t* t) uint64_t phys = VmmManager::findPhysicalAddress(vaddr); //Check if address is in IBSCOM MMIO Range. - if((phys >= MMIO_IBSCOM_START) && - (phys <= MMIO_IBSCOM_END)) + uint64_t ibAddrStart = 0; + for(uint32_t l_groupId=0; l_groupId<4; l_groupId++) { - ueMagicValue = MMIO_IBSCOM_UE_DETECTED; + 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; + } } - else + if(ueMagicValue != MMIO_IBSCOM_UE_DETECTED) { printk("MachineCheck::handleUE: Unrecognized address %lx\n", phys); |