This commit was manufactured by cvs2svn to create branch 'vserver'.
[linux-2.6.git] / include / asm-mips / mach-ip32 / cpu-feature-overrides.h
diff --git a/include/asm-mips/mach-ip32/cpu-feature-overrides.h b/include/asm-mips/mach-ip32/cpu-feature-overrides.h
new file mode 100644 (file)
index 0000000..b932237
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * 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) 2005 Ilya A. Volynets-Evenbakh
+ * Copyright (C) 2005 Ralf Baechle (ralf@linux-mips.org)
+ */
+#ifndef __ASM_MACH_IP32_CPU_FEATURE_OVERRIDES_H
+#define __ASM_MACH_IP32_CPU_FEATURE_OVERRIDES_H
+
+#include <linux/config.h>
+
+/*
+ * R5000 has an interesting "restriction":  ll(d)/sc(d)
+ * instructions to XKPHYS region simply do uncached bus
+ * requests. This breaks all the atomic bitops functions.
+ * so, for 64bit IP32 kernel we just don't use ll/sc.
+ * This does not affect luserland.
+ */
+#if defined(CONFIG_CPU_R5000) && defined(CONFIG_MIPS64)
+#define cpu_has_llsc           0
+#else
+#define cpu_has_llsc           1
+#endif
+
+/* Settings which are common for all ip32 CPUs */
+#define cpu_has_tlb            1
+#define cpu_has_4kex           1
+#define cpu_has_fpu            1
+#define cpu_has_32fpr          1
+#define cpu_has_counter                1
+#define cpu_has_mips16         0
+#define cpu_has_vce            0
+#define cpu_has_cache_cdex_s   0
+#define cpu_has_mcheck         0
+#define cpu_has_ejtag          0
+#define cpu_has_vtag_icache    0
+#define cpu_has_ic_fills_f_dc  0
+
+#endif /* __ASM_MACH_IP32_CPU_FEATURE_OVERRIDES_H */