Linux MIPS Architecture development
 help / color / mirror / Atom feed
* CONFIG_MIPS_UNCACHED
@ 2001-01-23 23:26 Quinn Jensen
  2001-01-23 23:53 ` CONFIG_MIPS_UNCACHED Pete Popov
  0 siblings, 1 reply; 23+ messages in thread
From: Quinn Jensen @ 2001-01-23 23:26 UTC (permalink / raw)
  To: linux-mips

Ralf,

On some machines with weird firmware (e.g. IDT 334 board)
the processor comes up with the cache already enabled for
kseg0.  In this case, the set_cp0_config() call in mips32.c
to turn off the cache (gated by CONFIG_MIPS_UNCACHED) should
probably come after the first call to flush_cache_all(),
which is safer but still not totally safe, I suppose.
Or am I totally hosed trying to turn the kseg0 cache off
after it was once on?

Quinn Jensen

^ permalink raw reply	[flat|nested] 23+ messages in thread
* CONFIG_MIPS_UNCACHED
@ 2001-06-23 16:05 Jun Sun
  2001-06-23 17:17 ` CONFIG_MIPS_UNCACHED Kevin D. Kissell
  0 siblings, 1 reply; 23+ messages in thread
From: Jun Sun @ 2001-06-23 16:05 UTC (permalink / raw)
  To: linux-mips


I looked at the code and it appears this config may not work properly.

My understanding is that if CPU has been running with cache enabled, and,
presummably, have many dirty cache entries, and if you suddenly change config
register to run kernel uncached, you *don't* get all the dirty cache lines
flushed into memory.  Therefore, you will be accessing stale data in memory.

Is this right?  If so, we need a better way to run CPU uncached.

In the past, I have been a private patch to do so.  It seems pretty difficult
to come up a generic, because we want to figure out the CPU type and disable
cache *before* kernel starts to modify any memory content.

BTW, this comes to me as I observe some weired behavior when I try to run
uncached.

Jun

^ permalink raw reply	[flat|nested] 23+ messages in thread

end of thread, other threads:[~2001-06-26 13:09 UTC | newest]

Thread overview: 23+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2001-01-23 23:26 CONFIG_MIPS_UNCACHED Quinn Jensen
2001-01-23 23:53 ` CONFIG_MIPS_UNCACHED Pete Popov
2001-01-24 20:10   ` CONFIG_MIPS_UNCACHED Jun Sun
2001-01-25  0:31     ` CONFIG_MIPS_UNCACHED Ralf Baechle
2001-01-25  1:09       ` CONFIG_MIPS_UNCACHED Pete Popov
2001-01-25  1:37         ` CONFIG_MIPS_UNCACHED Jun Sun
2001-01-26 10:02       ` CONFIG_MIPS_UNCACHED Kevin D. Kissell
2001-01-26 10:02         ` CONFIG_MIPS_UNCACHED Kevin D. Kissell
  -- strict thread matches above, loose matches on Subject: below --
2001-06-23 16:05 CONFIG_MIPS_UNCACHED Jun Sun
2001-06-23 17:17 ` CONFIG_MIPS_UNCACHED Kevin D. Kissell
2001-06-23 17:17   ` CONFIG_MIPS_UNCACHED Kevin D. Kissell
2001-06-23 17:49   ` CONFIG_MIPS_UNCACHED Jun Sun
2001-06-23 20:15     ` CONFIG_MIPS_UNCACHED Kevin D. Kissell
2001-06-23 20:15       ` CONFIG_MIPS_UNCACHED Kevin D. Kissell
2001-06-25  4:42       ` CONFIG_MIPS_UNCACHED Jun Sun
2001-06-25  6:51         ` CONFIG_MIPS_UNCACHED Kevin D. Kissell
2001-06-25  6:51           ` CONFIG_MIPS_UNCACHED Kevin D. Kissell
2001-06-25 16:38           ` CONFIG_MIPS_UNCACHED Jun Sun
2001-06-25 17:35           ` CONFIG_MIPS_UNCACHED Justin Carlson
2001-06-26  8:50             ` CONFIG_MIPS_UNCACHED Kevin D. Kissell
2001-06-26  8:50               ` CONFIG_MIPS_UNCACHED Kevin D. Kissell
2001-06-26 13:11               ` CONFIG_MIPS_UNCACHED Maciej W. Rozycki
2001-06-25 13:22     ` CONFIG_MIPS_UNCACHED Maciej W. Rozycki

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox