[prev in list] [next in list] [prev in thread] [next in thread]
List: linux-ia64
Subject: [PATCH] ia64 hpsim: enable host idling via SSC_HALT_LIGHT
From: Mikael Pettersson <mikpelinux () gmail ! com>
Date: 2014-01-25 18:16:33
Message-ID: 21219.65409.623281.112520 () gargle ! gargle ! HOWL
[Download RAW message or body]
When the ia64 kernel idles it calls PAL_HALT_LIGHT,
but that is a no-op when running on ski. This prevents
ski and the host from idling.
Update pal_emulator_static to recognize PAL_HALT_LIGHT
and to propagate it to ski as a SSC_HALT_LIGHT. To have
any effect this requires a corresponding ski update to
implement SSC_HALT_LIGHT.
Tested with ski-1.3.2 + ITC 2MHz + SSC_HALT_LIGHT patches
on x86_64.
Signed-off-by: Mikael Pettersson <mikpelinux@gmail.com>
---
diff -rupN linux-3.13/arch/ia64/hp/sim/boot/boot_head.S \
linux-3.13.ia64-hpsim-SSC_HALT_LIGHT/arch/ia64/hp/sim/boot/boot_head.S
--- linux-3.13/arch/ia64/hp/sim/boot/boot_head.S 2013-07-01 00:13:29.000000000 +0200
+++ linux-3.13.ia64-hpsim-SSC_HALT_LIGHT/arch/ia64/hp/sim/boot/boot_head.S 2014-01-25 \
11:25:58.453254087 +0100 @@ -5,6 +5,7 @@
#include <asm/asmmacro.h>
#include <asm/pal.h>
+#include "ssc.h"
.bss
.align 16
@@ -158,6 +159,11 @@ static: cmp.eq p6,p7=PAL_PTCE_INFO,r28
mov r8=0 /* status = 0 */
mov r9=0x80|0x01 /* NatPage|WB */
;;
+1: cmp.eq p6,p7=PAL_HALT_LIGHT,r28
+(p7) br.cond.sptk.few 1f
+ mov r15=SSC_HALT_LIGHT
+ break 0x80001
+ ;;
1: br.cond.sptk.few rp
stacked:
br.ret.sptk.few rp
diff -rupN linux-3.13/arch/ia64/hp/sim/boot/ssc.h \
linux-3.13.ia64-hpsim-SSC_HALT_LIGHT/arch/ia64/hp/sim/boot/ssc.h
--- linux-3.13/arch/ia64/hp/sim/boot/ssc.h 2013-07-01 00:13:29.000000000 +0200
+++ linux-3.13.ia64-hpsim-SSC_HALT_LIGHT/arch/ia64/hp/sim/boot/ssc.h 2014-01-25 \
11:25:58.453254087 +0100 @@ -8,6 +8,7 @@
/* Simulator system calls: */
+#define SSC_HALT_LIGHT 19
#define SSC_CONSOLE_INIT 20
#define SSC_GETCHAR 21
#define SSC_PUTCHAR 31
@@ -27,9 +28,13 @@
#define SSC_GET_ARGS 75
+#ifndef __ASSEMBLY__
+
/*
* Simulator system call.
*/
extern long ssc (long arg0, long arg1, long arg2, long arg3, int nr);
+#endif /* !__ASSEMBLY */
+
#endif /* ssc_h */
--
To unsubscribe from this list: send the line "unsubscribe linux-ia64" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic