summaryrefslogtreecommitdiff
path: root/sys/arch/landisk/stand
diff options
context:
space:
mode:
authorDale Rahn <drahn@cvs.openbsd.org>2006-10-29 14:48:00 +0000
committerDale Rahn <drahn@cvs.openbsd.org>2006-10-29 14:48:00 +0000
commit447d3d43c9071d76e2b1cd03b4836e63f81517b1 (patch)
tree32df966333c32acf083d215ff9ebb1aae99ca8fe /sys/arch/landisk/stand
parentc39db9d92be8db9f2d33e296ff81effc3cefa369 (diff)
Disable cache before jumping into the kernel, makes bootloader more reliable.
ok miod@
Diffstat (limited to 'sys/arch/landisk/stand')
-rw-r--r--sys/arch/landisk/stand/boot/devs.c3
-rw-r--r--sys/arch/landisk/stand/boot/libsa.h3
-rw-r--r--sys/arch/landisk/stand/boot/srt0.S12
3 files changed, 15 insertions, 3 deletions
diff --git a/sys/arch/landisk/stand/boot/devs.c b/sys/arch/landisk/stand/boot/devs.c
index baa6698e717..4534cbf80a7 100644
--- a/sys/arch/landisk/stand/boot/devs.c
+++ b/sys/arch/landisk/stand/boot/devs.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: devs.c,v 1.3 2006/10/16 21:22:59 drahn Exp $ */
+/* $OpenBSD: devs.c,v 1.4 2006/10/29 14:47:59 drahn Exp $ */
/*
* Copyright (c) 2006 Michael Shalayeff
@@ -76,6 +76,7 @@ run_loadfile(u_long *marks, int howto)
entry = marks[MARK_ENTRY];
cache_flush();
+ cache_disable();
printf("entry point at 0x%x\n", (int)entry);
printf("start at 0x%x\n", (int)marks[MARK_START]);
diff --git a/sys/arch/landisk/stand/boot/libsa.h b/sys/arch/landisk/stand/boot/libsa.h
index 8f961db3ba0..75a640911ab 100644
--- a/sys/arch/landisk/stand/boot/libsa.h
+++ b/sys/arch/landisk/stand/boot/libsa.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: libsa.h,v 1.2 2006/10/11 23:06:46 drahn Exp $ */
+/* $OpenBSD: libsa.h,v 1.3 2006/10/29 14:47:59 drahn Exp $ */
/*
* Copyright (c) 2006 Michael Shalayeff
@@ -33,3 +33,4 @@ void scif_init(unsigned int);
int scif_getc(void);
void scif_putc(int);
void cache_flush(void);
+void cache_disable(void);
diff --git a/sys/arch/landisk/stand/boot/srt0.S b/sys/arch/landisk/stand/boot/srt0.S
index a1b8d2166c6..247513760bc 100644
--- a/sys/arch/landisk/stand/boot/srt0.S
+++ b/sys/arch/landisk/stand/boot/srt0.S
@@ -1,4 +1,4 @@
-/* $OpenBSD: srt0.S,v 1.2 2006/10/11 23:06:46 drahn Exp $ */
+/* $OpenBSD: srt0.S,v 1.3 2006/10/29 14:47:59 drahn Exp $ */
/* $NetBSD: boot.S,v 1.1 2006/09/01 21:26:18 uwe Exp $ */
/*-
@@ -140,6 +140,16 @@ ENTRY(cache_flush)
rts
nop
+/*
+ * void cache_disable(void);
+ */
+ENTRY(cache_disable)
+ mov #1, r4
+ mov #6, r0
+ trapa #0x3f
+ rts
+ nop
+
.align 2
.L.boot_magic1:
.long 0x20031125