From: Alexandr Andreev <andreev@niisi.msk.ru>
To: linux-mips@oss.sgi.com
Subject: Troubles in r2300.c
Date: Wed, 06 Jun 2001 21:39:22 -0400 [thread overview]
Message-ID: <3B1EDB4A.4080803@niisi.msk.ru> (raw)
Hi.
In the r2300.c ,in some functions ( like the r3k_cache_size and so on ),
the
CONFIG register is modified. To return this register to initial state, the
save_and_cli(flags) and the restore_flags(flags) functions are used. The
restore_flags do not modify whole STATUS register, but only the
Interrupt Enable
bit. So we should use the read_32bit_cp0_register and the
write_32bit_cp0_register
functions instead ( like it was in linux-2.4.1 ).
And also, this patch adds R3081E CPU support to the ld_mmu_r2300() function.
diff -u -r1.12 r2300.c
--- arch/mips/mm/r2300.c 2001/05/31 14:27:32 1.12
+++ arch/mips/mm/r2300.c 2001/06/06 17:10:47
@@ -125,7 +125,7 @@
p = (volatile unsigned long *) KSEG0;
- save_and_cli(flags);
+ flags = read_32bit_cp0_register(CP0_STATUS);
/* isolate cache space */
write_32bit_cp0_register(CP0_STATUS, (ca_flags|flags)&~ST0_IEC);
@@ -147,7 +147,7 @@
if (size > 0x40000)
size = 0;
}
- restore_flags(flags);
+ write_32bit_cp0_register(CP0_STATUS, flags);
return size * sizeof(*p);
}
@@ -170,7 +170,7 @@
if (size > icache_size)
size = icache_size;
- save_and_cli(flags);
+ flags = read_32bit_cp0_register(CP0_STATUS);
/* isolate cache space */
write_32bit_cp0_register(CP0_STATUS,
(ST0_ISC|ST0_SWC|flags)&~ST0_IEC);
@@ -212,7 +212,7 @@
p += 0x080;
}
- restore_flags(flags);
+ write_32bit_cp0_register(CP0_STATUS,flags);
}
static void r3k_flush_dcache_range(unsigned long start, unsigned long end)
@@ -224,7 +224,7 @@
if (size > dcache_size)
size = dcache_size;
- save_and_cli(flags);
+ flags = read_32bit_cp0_register(CP0_STATUS);
/* isolate cache space */
write_32bit_cp0_register(CP0_STATUS, (ST0_ISC|flags)&~ST0_IEC);
@@ -266,7 +266,7 @@
p += 0x080;
}
- restore_flags(flags);
+ write_32bit_cp0_register(CP0_STATUS,flags);
}
static inline unsigned long get_phys_page (unsigned long addr,
@@ -714,6 +714,7 @@
case CPU_R3000:
case CPU_R3000A:
case CPU_R3081:
+ case CPU_R3081E:
r3k_probe_cache();
next reply other threads:[~2001-06-06 17:41 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-06-07 1:39 Alexandr Andreev [this message]
2001-06-06 18:34 ` Troubles in r2300.c Maciej W. Rozycki
2001-06-06 19:55 ` Ralf Baechle
2001-06-07 23:11 ` Alexandr Andreev
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=3B1EDB4A.4080803@niisi.msk.ru \
--to=andreev@niisi.msk.ru \
--cc=linux-mips@oss.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.