Add m5op to the build process
authorAli Saidi <saidi@eecs.umich.edu>
Tue, 28 Feb 2006 23:57:34 +0000 (18:57 -0500)
committerAli Saidi <saidi@eecs.umich.edu>
Tue, 28 Feb 2006 23:57:34 +0000 (18:57 -0500)
use quiesceNs on other CPUs
panic rather than spin on an error

console/Makefile:
    Add m5op to the build process
console/dbmentry.S:
    use quiesceNs on other CPUs
console/printf.c:
    panic rather than spin on an error.

system/alpha/console/Makefile
system/alpha/console/dbmentry.S
system/alpha/console/printf.c

index e29c02b1ac533cea7baeb4de3acc2b80463e5a8b..7f705dd8c7b9c6c188b81a8aa4475b512d993f62 100644 (file)
@@ -35,8 +35,8 @@ AS=$(CROSS_COMPILE)as
 LD=$(CROSS_COMPILE)ld
 
 DBMENTRY= fffffc0000010000
-CFLAGS=-I . -I ../h -I$(M5)/dev -fno-builtin -Wa,-m21164
-OBJS=dbmentry.o printf.o paljtokern.o paljtoslave.o console.o
+CFLAGS=-I . -I ../h -I$(M5)/dev -I$(M5)/util/m5/ -fno-builtin -Wa,-m21164
+OBJS=dbmentry.o printf.o paljtokern.o paljtoslave.o console.o m5op.o
 
 ### Make sure that the M5 variable is set ###
 ifndef M5
@@ -45,6 +45,9 @@ endif
 
 all: console
 
+m5op.o: $(M5)/util/m5/m5op.S
+       $(CC) $(CFLAGS) -nostdinc -o $@ -c $<
+
 %.o: %.S
        $(CC) $(CFLAGS) -nostdinc -o $@ -c $<
 
index c8a3691e3dcf040db2974c3a4caf59561d41705d..e8316390ffcdae1e484b91566d672f6f609f7b2d 100644 (file)
@@ -81,7 +81,9 @@ _entry:
         bis  zero,8,t4
         mulq t4,v0,t4
         addq t3,t4,t3
-cpuwait:   ldq  t4, 0(t3)
+        ldah a0, 3(zero)  # load arg0 with 65536*3
+cpuwait: .long 0x6000002  # jsr quiesceNs
+        ldq  t4, 0(t3)
         beq  t4, cpuwait
         bis  t4,t4,sp
 
@@ -220,8 +222,9 @@ SlaveSpin:                         # using any stack space
         mov a0, t0                 # cpu number
         mov a1, t1                 # cpu rpb pointer (virtual)
         mov a2, t2                 # what to spin on
-
-test:   ldl  t3, 0(t2)
+        ldah a0, 3(zero)  # load arg0 with 65536
+test:   .long 0x6000002  # jsr quiesceNs     # wait 65us*3
+        ldl  t3, 0(t2)
         beq  t3, test
         zapnot t1,0x1f,a0          # make rpb physical
         call_pal PAL_SWPCTX_ENTRY  # switch to pcb
index 0e665a43438b844487e143469024ac96bc6981c5..b958476fbd29bb35bcf79b821661aa3183ed5166 100644 (file)
@@ -54,6 +54,8 @@
 
 #include <sys/types.h>
 #include <stdarg.h>
+#include <stdint.h>
+#include "m5op.h"
 
 /* The string s is terminated by a '\0' */
 void
@@ -320,5 +322,5 @@ panic(const char *f, ...)
     }
 
     va_end(ap);         /* clean up */
-    while(1);
+    m5_panic();
 }