summaryrefslogtreecommitdiffstats
path: root/src/kernel
diff options
context:
space:
mode:
authorBrian Bakke <bbakke@us.ibm.com>2017-11-17 10:51:24 -0600
committerDaniel M. Crowell <dcrowell@us.ibm.com>2017-11-30 09:33:28 -0500
commit3a88f18bc7386abaaceedca9b327806d85734f67 (patch)
treec4351bac24ee26d90c977a0bd1d766217f8817e2 /src/kernel
parentc5c12e6e0ae9160e15f7ff07d123cb9033103947 (diff)
downloadtalos-hostboot-3a88f18bc7386abaaceedca9b327806d85734f67.tar.gz
talos-hostboot-3a88f18bc7386abaaceedca9b327806d85734f67.zip
Enable ATTN prior to OPAL handoff
Change-Id: Iadfded90c09b149948348ee462ab34f9c2431982 RTC: 182134 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/49865 Reviewed-by: Matt Derksen <mderkse1@us.ibm.com> Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Reviewed-by: Christian R. Geddes <crgeddes@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>
Diffstat (limited to 'src/kernel')
-rw-r--r--src/kernel/syscall.C22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/kernel/syscall.C b/src/kernel/syscall.C
index 5245705d4..c50bae001 100644
--- a/src/kernel/syscall.C
+++ b/src/kernel/syscall.C
@@ -119,6 +119,7 @@ namespace Systemcalls
void CpuDDLevel(task_t *t);
void CpuStartCore(task_t *t);
void CpuSprValue(task_t *t);
+ void CpuSprSet(task_t *t);
void CpuNap(task_t *t);
void CpuWinkle(task_t *t);
void MmAllocBlock(task_t *t);
@@ -160,6 +161,7 @@ namespace Systemcalls
&CpuDDLevel, // MISC_CPUDDLEVEL
&CpuStartCore, // MISC_CPUSTARTCORE
&CpuSprValue, // MISC_CPUSPRVALUE
+ &CpuSprSet, // MISC_CPUSPRSET
&CpuNap, // MISC_CPUNAP
&CpuWinkle, // MISC_CPUWINKLE
@@ -745,6 +747,26 @@ namespace Systemcalls
}
};
+ /** Set SPR values. */
+ void CpuSprSet(task_t *t)
+ {
+ uint64_t spr = TASK_GETARG0(t);
+ uint64_t newValue = TASK_GETARG1(t);
+
+ switch (spr)
+ {
+ case CPU_SPR_HID:
+ setHID( newValue );
+ TASK_SETRTN(t, true);
+ break;
+
+ default:
+ // unsupported SPR for write
+ TASK_SETRTN(t, false);
+ break;
+ }
+ };
+
/**
* Allow a task to request privilege escalation to execute the 'nap'
* instruction.
OpenPOWER on IntegriCloud