summaryrefslogtreecommitdiffstats
path: root/arch/alpha/kernel/head.S
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>1999-01-03 17:49:53 +0000
committerRalf Baechle <ralf@linux-mips.org>1999-01-03 17:49:53 +0000
commiteb7a5bf93aaa4be1d7c6181100ab7639e74d67f7 (patch)
tree5746fea1605ff013be9b78a1556aaad7615d664a /arch/alpha/kernel/head.S
parent80ea5b1e15398277650e1197957053b5a71c08bc (diff)
Merge with Linux 2.1.131 plus some more MIPS goodies.
Diffstat (limited to 'arch/alpha/kernel/head.S')
-rw-r--r--arch/alpha/kernel/head.S40
1 files changed, 31 insertions, 9 deletions
diff --git a/arch/alpha/kernel/head.S b/arch/alpha/kernel/head.S
index 92e11a82e..8ba50462b 100644
--- a/arch/alpha/kernel/head.S
+++ b/arch/alpha/kernel/head.S
@@ -9,8 +9,6 @@
#include <asm/system.h>
-#define halt call_pal PAL_halt
-
.globl swapper_pg_dir
.globl _stext
swapper_pg_dir=SWAPPER_PGD
@@ -29,28 +27,28 @@ __start:
lda $30,0x4000($8)
/* ... and then we can start the kernel. */
jsr $26,start_kernel
- halt
+ call_pal PAL_halt
.end __start
#ifdef __SMP__
.align 3
.globl __start_cpu
.ent __start_cpu
- /* on entry here from SRM console, the HWPCB of this processor */
- /* has been loaded, and $27 contains the task pointer */
+ /* On entry here from SRM console, the HWPCB of this processor
+ has been loaded, and $27 contains the task pointer */
__start_cpu:
.prologue 0
- /* first order of business, load the GP */
+ /* First order of business, load the GP */
br $26,1f
1: ldgp $29,0($26)
/* We need to get current loaded up with our first task... */
- lda $8,0($27)
- /* set FEN */
+ mov $27,$8
+ /* Set FEN */
lda $16,1($31)
call_pal PAL_wrfen
/* ... and then we can start the processor. */
jsr $26,start_secondary
- halt
+ call_pal PAL_halt
.end __start_cpu
#endif /* __SMP__ */
@@ -121,10 +119,20 @@ whami:
.globl wripir
.ent wripir
wripir:
+ .prologue 0
call_pal PAL_wripir
ret ($26)
.end wripir
+ .align 3
+ .globl wrvptptr
+ .ent wrvptptr
+wrvptptr:
+ .prologue 0
+ call_pal PAL_wrvptptr
+ ret ($26)
+ .end wrvptptr
+
#
# The following two functions are needed for supporting SRM PALcode
# on the PC164 (at least), since that PALcode manages the interrupt
@@ -152,3 +160,17 @@ cserve_dis:
call_pal PAL_cserve
ret ($26)
.end cserve_dis
+
+ #
+ # It is handy, on occasion, to make halt actually just loop.
+ # Putting it here means we dont have to recompile the whole
+ # kernel.
+ #
+
+ .align 3
+ .globl halt
+ .ent halt
+halt:
+ .prologue 0
+ call_pal PAL_halt
+ .end halt