diff options
Diffstat (limited to 'arch/mips/sni/pcimt_scache.c')
-rw-r--r-- | arch/mips/sni/pcimt_scache.c | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/arch/mips/sni/pcimt_scache.c b/arch/mips/sni/pcimt_scache.c new file mode 100644 index 00000000000..a59d457fa8b --- /dev/null +++ b/arch/mips/sni/pcimt_scache.c @@ -0,0 +1,37 @@ +/* + * arch/mips/sni/pcimt_scache.c + * + * This file is subject to the terms and conditions of the GNU General Public + * License. See the file "COPYING" in the main directory of this archive + * for more details. + * + * Copyright (c) 1997, 1998 by Ralf Baechle + */ +#include <linux/init.h> +#include <linux/kernel.h> +#include <asm/bcache.h> +#include <asm/sni.h> + +#define cacheconf (*(volatile unsigned int *)PCIMT_CACHECONF) +#define invspace (*(volatile unsigned int *)PCIMT_INVSPACE) + +void __init sni_pcimt_sc_init(void) +{ + unsigned int scsiz, sc_size; + + scsiz = cacheconf & 7; + if (scsiz == 0) { + printk("Second level cache is deactived.\n"); + return; + } + if (scsiz >= 6) { + printk("Invalid second level cache size configured, " + "deactivating second level cache.\n"); + cacheconf = 0; + return; + } + + sc_size = 128 << scsiz; + printk("%dkb second level cache detected, deactivating.\n", sc_size); + cacheconf = 0; +} |