[Skiboot] [PATCH v2 1/7] Make trigger_attn() enable attn also

Michael Neuling mikey at neuling.org
Mon May 2 15:26:15 AEST 2016


This changes trigger_attn() to also enable attn via HID0, so callers
don't have to do it themselves.

Signed-off-by: Michael Neuling <mikey at neuling.org>
---
 asm/misc.S        |  4 ++--
 core/cpu.c        | 16 ++++++++++++++++
 hw/fsp/fsp-attn.c |  5 -----
 3 files changed, 18 insertions(+), 7 deletions(-)

diff --git a/asm/misc.S b/asm/misc.S
index c8abdb9..146b9c3 100644
--- a/asm/misc.S
+++ b/asm/misc.S
@@ -36,8 +36,8 @@ set_hid0:
 	isync
 	blr
 
-.global trigger_attn
-trigger_attn:
+.global __trigger_attn
+__trigger_attn:
 	sync
 	isync
 	attn
diff --git a/core/cpu.c b/core/cpu.c
index d347903..d113d77 100644
--- a/core/cpu.c
+++ b/core/cpu.c
@@ -399,6 +399,22 @@ static void init_cpu_thread(struct cpu_thread *t,
 	assert(pir == container_of(t, struct cpu_stack, cpu) - cpu_stacks);
 }
 
+static void enable_attn(void)
+{
+	unsigned long hid0;
+
+	hid0 = mfspr(SPR_HID0);
+	hid0 |= SPR_HID0_ENABLE_ATTN;
+	set_hid0(hid0);
+}
+
+extern void __trigger_attn(void);
+void trigger_attn(void)
+{
+	enable_attn();
+	__trigger_attn();
+}
+
 void pre_init_boot_cpu(void)
 {
 	struct cpu_thread *cpu = this_cpu();
diff --git a/hw/fsp/fsp-attn.c b/hw/fsp/fsp-attn.c
index 7b56192..ff702ab 100644
--- a/hw/fsp/fsp-attn.c
+++ b/hw/fsp/fsp-attn.c
@@ -118,8 +118,6 @@ static void update_sp_attn_area(const char *msg)
 
 void __attribute__((noreturn)) ibm_fsp_terminate(const char *msg)
 {
-	unsigned long hid0;
-
 	/* Update SP attention area */
 	update_sp_attn_area(msg);
 
@@ -133,9 +131,6 @@ void __attribute__((noreturn)) ibm_fsp_terminate(const char *msg)
 	 * reboot loop.
 	 */
 
-	hid0 = mfspr(SPR_HID0);
-	hid0 |= SPR_HID0_ENABLE_ATTN;
-	set_hid0(hid0);
 	trigger_attn();
 	for (;;) ;
 }
-- 
2.7.4



More information about the Skiboot mailing list