NetBSD/sys/arch/mips
tsutsui a8d2e55834 Add a workaround to handle virtual alias which may cause data corruption
on R5000/Rm52xx machines:
- Add a new global variable mips_cache_virtual_alias in mips/cache.c,
  which indicates that VIPT cache on the CPU could cause virtual alias
  and software support is required to handle it. (i.e. no VCED/VCEI)
- Add several cache flush/invalidate ops around KSEG0 access which
  might cause virtual alias if mips_cache_virtual_alias is true.
  (note checking mips_sdcache_line_size isn't valid for R5000/Rm52xx
   because only R4000/R4400 with L2 cache have VCED/VCEI)
- Remove a global variable mips_sdcache_forceinv, which is now superseded
  by new mips_cache_virtual_alias.

While here, also change some R4000/R4400 cache ops:
- Don't override mips_cache_alias_mask and mips_cache_prefer_mask with
  values based on MIPS3_MAX_PCACHE_SIZE for R4000/R4400 with L2 cache
  because it's still worth to reduce VCED/VCEI.
- Flush dcache in pmap_zero_page(9) unconditionally on all MIPS_HAS_R4K_MMU
  CPUs and remove cache flush code from cpu_lwp_fork() in vm_machdep.c.

Thanks to Markus W Kilbinger for testing patches on port-cobalt/port-mips.


XXX This fix is just a workaround because it doesn't handle all possible
XXX virtual aliases. As discussed on port-mips, maybe the real fix
XXX for virtual alias is to change MI UVM to adapt it to VIPT cache.
XXX (all VA mappings against the same PA must have the same VAC index etc.)
2005-03-26 09:51:02 +00:00
..
alchemy Remove some errant semicolons. 2005-02-25 07:18:40 +00:00
bonito __KERNEL_RCSID() 2003-07-15 02:43:09 +00:00
cfe __KERNEL_RCSID() 2003-07-15 02:43:09 +00:00
conf -remove definition of "struct sigframe" -- haven't found a use of it 2005-01-24 10:03:57 +00:00
include Add a workaround to handle virtual alias which may cause data corruption 2005-03-26 09:51:02 +00:00
mips Add a workaround to handle virtual alias which may cause data corruption 2005-03-26 09:51:02 +00:00
sibyte autoconf cleanup: turn xxxsubmatch() functions into the locator 2004-09-13 14:57:31 +00:00
Makefile
Makefile.inc