NetBSD/sys/arch/mips/include
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
..
ansi.h
aout_machdep.h
asm.h
bsd-aout.h
bswap.h
bus_dma.h Add a dm_maxsegsz public member to bus_dmamap_t. This allows a user of the API 2005-03-09 19:04:43 +00:00
bus_space.h
cache_mipsNN.h
cache_r3k.h
cache_r4k.h
cache_r5k.h Add prototype for r5k_sdcache_wbinv_range_index() 2004-12-13 08:39:50 +00:00
cache_r10k.h cache_r10k.c rev. 1.1 is broken. Because, 2003-11-01 04:42:56 +00:00
cache_r5900.h
cache_tx39.h
cache.h Add a workaround to handle virtual alias which may cause data corruption 2005-03-26 09:51:02 +00:00
cachectl.h Don't use "int" to represent lengths; this is what size_t is for. This 2004-11-06 23:22:43 +00:00
cdefs.h
cpu_counter.h
cpu.h move some per-cpu data definitions to MI place so that they can be modified 2004-09-22 11:32:02 +00:00
cpuregs.h Add some more MTI CPU ids. 2003-10-29 23:41:10 +00:00
db_machdep.h Hide the register number constants behind an _R_ prefix, and also 2003-11-26 08:36:49 +00:00
ecoff_machdep.h
elf_machdep.h don't need ELF_INTER_NON_RELOCATABLE anymore if no COMPAT_16, from simonb 2003-10-31 14:06:29 +00:00
endian_machdep.h
endian.h
float.h
frame.h -remove definition of "struct sigframe" -- haven't found a use of it 2005-01-24 10:03:57 +00:00
ieee.h
ieeefp.h
int_const.h
int_fmtio.h
int_limits.h Factor out W{CHAR,INT}_{MAX,MIN} into their own header file. 2004-05-08 21:51:47 +00:00
int_mwgwtypes.h
int_types.h
isa_machdep.h
kcore.h
kdbparam.h
limits.h
lock.h
locore.h Uppercase CPU, plural is CPUs. 2004-02-13 11:36:08 +00:00
Makefile Factor out W{CHAR,INT}_{MAX,MIN} into their own header file. 2004-05-08 21:51:47 +00:00
Makefile.inc
math.h
mcontext.h Drop the "catchall" __fpregset_t, and use either a 32-bit or 64-bit 2004-07-03 05:06:37 +00:00
mips1_pte.h
mips3_pte.h
mips_opcode.h
mips_param.h
mipsNN.h
pcb.h Hide the register number constants behind an _R_ prefix, and also 2003-11-26 08:36:49 +00:00
pci_machdep.h remove now unnecessary "pci_enumerate_bus" definitions 2004-07-29 16:55:25 +00:00
pmap.h Add a workaround to handle virtual alias which may cause data corruption 2005-03-26 09:51:02 +00:00
pmc.h
proc.h
profile.h
psl.h
pte.h
ptrace.h
r3900regs.h
r5900regs.h
reg.h
regdef.h
regnum.h Hide the register number constants behind an _R_ prefix, and also 2003-11-26 08:36:49 +00:00
reloc.h
sb1regs.h
setjmp.h
signal.h -remove definition of "struct sigframe" -- haven't found a use of it 2005-01-24 10:03:57 +00:00
softintr.h
stdarg.h
svr4_machdep.h
sysarch.h Don't use "int" to represent lengths; this is what size_t is for. This 2004-11-06 23:22:43 +00:00
trap.h
types.h Do not export __HAVE_RAS to userland. Applications are supposed to try 2004-01-18 18:23:19 +00:00
userret.h Reduce code duplication by adding mi_userret() in sys/userret.h 2003-10-31 16:44:34 +00:00
varargs.h
vmparam.h Now that countless UVM bugs have been fixed and the MIPS pmap_prefer() 2005-01-17 05:26:02 +00:00
wchar_limits.h Factor out W{CHAR,INT}_{MAX,MIN} into their own header file. 2004-05-08 21:51:47 +00:00