turbosparc: 256 contexts, page tables cannot be cached.
This commit is contained in:
parent
bcc725c5e3
commit
45cc2d6db4
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: cache.c,v 1.26 1997/04/11 20:06:53 pk Exp $ */
|
||||
/* $NetBSD: cache.c,v 1.27 1997/05/06 21:00:56 pk Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1996
|
||||
|
@ -640,9 +640,6 @@ viking_cache_flush(base, len)
|
|||
* (in case of write-back caches) DMA operations.
|
||||
*/
|
||||
|
||||
/* XXX investigate other methods instead of blowing the entire cache */
|
||||
sta(0x80000000, ASI_DCACHECLR, 0); /* Unlock */
|
||||
sta(0, ASI_DCACHECLR, 0);
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -696,7 +693,7 @@ viking_pcache_flush_line(va, pa)
|
|||
}
|
||||
|
||||
void
|
||||
cypress_pcache_flush_line(va, pa)
|
||||
srmmu_pcache_flush_line(va, pa)
|
||||
int va;
|
||||
int pa;
|
||||
{
|
||||
|
@ -704,8 +701,6 @@ cypress_pcache_flush_line(va, pa)
|
|||
* Flush cache line corresponding to virtual address `va'
|
||||
* which is mapped at physical address `pa'.
|
||||
*/
|
||||
|
||||
/* NOT YET IMPLEMENTED */
|
||||
sta(va, ASI_IDCACHELFP, 0);
|
||||
}
|
||||
#endif /* SUN4M */
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: cache.h,v 1.14 1997/03/24 19:56:58 pk Exp $ */
|
||||
/* $NetBSD: cache.h,v 1.15 1997/05/06 21:00:55 pk Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1996
|
||||
|
@ -55,8 +55,7 @@
|
|||
*
|
||||
* VAC_NONE is not actually used now, but if someone builds a physical
|
||||
* cache Sun-4 (or, more likely, a virtual index/physical tag cache)
|
||||
* everything will work (after pulling out the #ifdef notdef's: grep
|
||||
* for VAC_NONE to find them).
|
||||
* everything will work.
|
||||
*/
|
||||
enum vactype { VAC_NONE, VAC_WRITETHROUGH, VAC_WRITEBACK };
|
||||
|
||||
|
@ -176,7 +175,7 @@ void srmmu_cache_flush __P((caddr_t, u_int));/* flush region */
|
|||
void ms1_cache_flush __P((caddr_t, u_int));
|
||||
void viking_cache_flush __P((caddr_t, u_int));
|
||||
void viking_pcache_flush_line __P((int, int));
|
||||
void cypress_pcache_flush_line __P((int, int));
|
||||
void srmmu_pcache_flush_line __P((int, int));
|
||||
|
||||
extern void sparc_noop __P((void));
|
||||
|
||||
|
@ -210,7 +209,8 @@ struct cacheinfo {
|
|||
int c_linesize; /* line size, in bytes */
|
||||
int c_l2linesize; /* log2(linesize) */
|
||||
int c_nlines; /* number of cache lines */
|
||||
int c_physical; /* true => cache is physical */
|
||||
int c_physical; /* true => cache has physical
|
||||
address tags */
|
||||
int c_associativity; /* # of "buckets" in cache line */
|
||||
int c_split; /* true => cache is split */
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: cpu.c,v 1.40 1997/04/18 19:51:05 pk Exp $ */
|
||||
/* $NetBSD: cpu.c,v 1.41 1997/05/06 21:00:54 pk Exp $ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1996
|
||||
|
@ -867,7 +867,7 @@ struct module_info module_cypress = { /* UNTESTED */
|
|||
srmmu_vcache_flush_segment,
|
||||
srmmu_vcache_flush_region,
|
||||
srmmu_vcache_flush_context,
|
||||
cypress_pcache_flush_line
|
||||
srmmu_pcache_flush_line
|
||||
};
|
||||
|
||||
void
|
||||
|
@ -889,14 +889,14 @@ struct module_info module_turbosparc = { /* UNTESTED */
|
|||
0,
|
||||
0,
|
||||
turbosparc_cache_enable,
|
||||
4096,
|
||||
256,
|
||||
srmmu_get_fltstatus,
|
||||
srmmu_cache_flush,
|
||||
srmmu_vcache_flush_page,
|
||||
srmmu_vcache_flush_segment,
|
||||
srmmu_vcache_flush_region,
|
||||
srmmu_vcache_flush_context,
|
||||
noop_pcache_flush_line
|
||||
srmmu_pcache_flush_line
|
||||
};
|
||||
|
||||
void
|
||||
|
@ -905,7 +905,6 @@ cpumatch_turbosparc(sc, mp, node)
|
|||
struct module_info *mp;
|
||||
int node;
|
||||
{
|
||||
sc->flags |= CPUFLG_CACHEPAGETABLES;
|
||||
sc->cpu_type = CPUTYP_MS2;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue