summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/kernel/machchk.C11
-rw-r--r--src/usr/xscom/xscom.C7
2 files changed, 11 insertions, 7 deletions
diff --git a/src/kernel/machchk.C b/src/kernel/machchk.C
index d17c1ff90..73f5831b6 100644
--- a/src/kernel/machchk.C
+++ b/src/kernel/machchk.C
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2013,2018 */
+/* Contributors Listed Below - COPYRIGHT 2013,2019 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -180,7 +180,14 @@ void forceCheckstop()
{
printk( "Forcing a xstop with %p = %.16lX\n",
g_xstopRegPtr, g_xstopRegValue );
- *g_xstopRegPtr = g_xstopRegValue;
+
+ // Per PowerPC ISA :
+ // Store Doubleword Caching Inhibited Indexed
+ // stdcix RS,RA,RB
+ // let the effective address (EA) be the sum(RA|0)+ (RB).
+ // (RS) is stored into the doubleword in storage addressed by EA
+ asm volatile("stdcix %0,0,%1"
+ :: "r" (g_xstopRegValue) , "r" (reinterpret_cast <uint64_t>(g_xstopRegPtr)));
}
else
{
diff --git a/src/usr/xscom/xscom.C b/src/usr/xscom/xscom.C
index 73d7e9e22..3b3a59d40 100644
--- a/src/usr/xscom/xscom.C
+++ b/src/usr/xscom/xscom.C
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2011,2018 */
+/* Contributors Listed Below - COPYRIGHT 2011,2019 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -810,11 +810,8 @@ uint64_t generate_mmio_addr( TARGETING::Target* i_proc,
// Build the XSCom address (relative to group 0, chip 0)
XSComP9Address l_mmioAddr(i_scomAddr);
- // Get the offset
- uint64_t l_offset = l_mmioAddr.offset();
-
// Compute value relative to target chip
- l_returnAddr = l_XSComBaseAddr + l_offset;
+ l_returnAddr = l_XSComBaseAddr + l_mmioAddr;
return l_returnAddr;
}
OpenPOWER on IntegriCloud