From: Ulf Carlsson <grim@zigzegv.ml.org>
To: linux@cthulhu.engr.sgi.com
Subject: [PATCH] sc
Date: Wed, 19 Aug 1998 22:03:05 +0200 (CEST) [thread overview]
Message-ID: <199808192003.WAA13671@calypso.saturn> (raw)
[-- Attachment #1: Type: text/plain, Size: 150 bytes --]
Hi,
Here's the patch for SC, still some BUS Errors when using the network device
(bootp doesn't work), sometimes even without obvious reason.
- Ulf
[-- Attachment #2: /home/grim/sc-patch.diff --]
[-- Type: text/plain, Size: 1695 bytes --]
--- head.S Thu Jul 9 19:51:48 1998
+++ sgi-lin/linux/arch/mips/kernel/head.S Tue Aug 18 22:34:35 1998
@@ -5,6 +5,7 @@
* Copyright (C) 1996, 1997, 1998 Ralf Baechle
* Modified for DECStation and hence R3000 support by Paul M. Antoine
* Further modifications by David S. Miller
+ * Modified for R4000SC/R44000SC support by Ulf Carlsson
*
* Head.S contains the MIPS exception handler and startup code.
*/
@@ -22,6 +23,7 @@
#include <asm/stackframe.h>
#include <asm/bootinfo.h>
#include <asm/cpu.h>
+#include <asm/cacheops.h>
.text
/*
@@ -315,16 +317,46 @@
NESTED(except_vec3_r4000, 0, sp)
.set noat
mfc0 k1, CP0_CAUSE
-
- /* XXX Have to check for VCE's _before_ we do a load or store. */
-
- la k0, exception_handlers
andi k1, k1, 0x7c
+ li k0, 31<<2
+ beq k1, k0, handle_vced
+ li k0, 14<<2
+ beq k1, k0, handle_vcei
+ la k0, exception_handlers
addu k0, k0, k1
lw k0, (k0)
nop
jr k0
nop
+
+/*
+ * Big shit, we now may have two dirty primary cache lines for the same
+ * physical address. We can savely invalidate the line pointed to by
+ * c0_badvaddr because after return from this exception handler the load /
+ * store will be re-executed.
+ *
+ * XXX should bitch on console.
+ */
+handle_vced:
+ mfc0 k0, CP0_BADVADDR
+ mtc0 zero, CP0_TAGLO
+ nop;nop
+ cache Index_Store_Tag_D,(k0)
+ nop;nop
+ cache Hit_Writeback_Inv_SD,(k0)
+ eret
+
+/*
+ * VCEI is simpler and should never happen unless userland is doing something
+ * really stupid. It's actually worth a SIGFRY.
+ *
+ * XXX should bitch on console.
+ */
+handle_vcei:
+ mfc0 k0, CP0_BADVADDR
+ cache Hit_Invalidate_SD,(k0) # also cleans pi
+ eret
+
END(except_vec3_r4000)
.set at
next reply other threads:[~1998-08-19 20:03 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
1998-08-19 20:03 Ulf Carlsson [this message]
1998-08-19 20:16 ` [PATCH] sc Alex deVries
1998-08-20 0:07 ` ralf
1998-08-20 4:55 ` Ulf Carlsson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=199808192003.WAA13671@calypso.saturn \
--to=grim@zigzegv.ml.org \
--cc=linux@cthulhu.engr.sgi.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.