diff options
Diffstat (limited to 'src/kernel/machchk.C')
-rw-r--r-- | src/kernel/machchk.C | 11 |
1 files changed, 9 insertions, 2 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 { |