diff options
Diffstat (limited to 'include/asm-mips/mach-ip32')
-rw-r--r-- | include/asm-mips/mach-ip32/cpu-feature-overrides.h | 41 | ||||
-rw-r--r-- | include/asm-mips/mach-ip32/mangle-port.h | 17 | ||||
-rw-r--r-- | include/asm-mips/mach-ip32/mc146818rtc.h | 35 | ||||
-rw-r--r-- | include/asm-mips/mach-ip32/spaces.h | 36 |
4 files changed, 129 insertions, 0 deletions
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 index 000000000000..b932237f2193 --- /dev/null +++ b/include/asm-mips/mach-ip32/cpu-feature-overrides.h | |||
@@ -0,0 +1,41 @@ | |||
1 | /* | ||
2 | * This file is subject to the terms and conditions of the GNU General Public | ||
3 | * License. See the file "COPYING" in the main directory of this archive | ||
4 | * for more details. | ||
5 | * | ||
6 | * Copyright (C) 2005 Ilya A. Volynets-Evenbakh | ||
7 | * Copyright (C) 2005 Ralf Baechle (ralf@linux-mips.org) | ||
8 | */ | ||
9 | #ifndef __ASM_MACH_IP32_CPU_FEATURE_OVERRIDES_H | ||
10 | #define __ASM_MACH_IP32_CPU_FEATURE_OVERRIDES_H | ||
11 | |||
12 | #include <linux/config.h> | ||
13 | |||
14 | /* | ||
15 | * R5000 has an interesting "restriction": ll(d)/sc(d) | ||
16 | * instructions to XKPHYS region simply do uncached bus | ||
17 | * requests. This breaks all the atomic bitops functions. | ||
18 | * so, for 64bit IP32 kernel we just don't use ll/sc. | ||
19 | * This does not affect luserland. | ||
20 | */ | ||
21 | #if defined(CONFIG_CPU_R5000) && defined(CONFIG_MIPS64) | ||
22 | #define cpu_has_llsc 0 | ||
23 | #else | ||
24 | #define cpu_has_llsc 1 | ||
25 | #endif | ||
26 | |||
27 | /* Settings which are common for all ip32 CPUs */ | ||
28 | #define cpu_has_tlb 1 | ||
29 | #define cpu_has_4kex 1 | ||
30 | #define cpu_has_fpu 1 | ||
31 | #define cpu_has_32fpr 1 | ||
32 | #define cpu_has_counter 1 | ||
33 | #define cpu_has_mips16 0 | ||
34 | #define cpu_has_vce 0 | ||
35 | #define cpu_has_cache_cdex_s 0 | ||
36 | #define cpu_has_mcheck 0 | ||
37 | #define cpu_has_ejtag 0 | ||
38 | #define cpu_has_vtag_icache 0 | ||
39 | #define cpu_has_ic_fills_f_dc 0 | ||
40 | |||
41 | #endif /* __ASM_MACH_IP32_CPU_FEATURE_OVERRIDES_H */ | ||
diff --git a/include/asm-mips/mach-ip32/mangle-port.h b/include/asm-mips/mach-ip32/mangle-port.h new file mode 100644 index 000000000000..6e25b52ed8f2 --- /dev/null +++ b/include/asm-mips/mach-ip32/mangle-port.h | |||
@@ -0,0 +1,17 @@ | |||
1 | /* | ||
2 | * This file is subject to the terms and conditions of the GNU General Public | ||
3 | * License. See the file "COPYING" in the main directory of this archive | ||
4 | * for more details. | ||
5 | * | ||
6 | * Copyright (C) 2003 Ladislav Michl | ||
7 | * Copyright (C) 2004 Ralf Baechle | ||
8 | */ | ||
9 | #ifndef __ASM_MACH_IP32_MANGLE_PORT_H | ||
10 | #define __ASM_MACH_IP32_MANGLE_PORT_H | ||
11 | |||
12 | #define __swizzle_addr_b(port) ((port) ^ 3) | ||
13 | #define __swizzle_addr_w(port) ((port) ^ 2) | ||
14 | #define __swizzle_addr_l(port) (port) | ||
15 | #define __swizzle_addr_q(port) (port) | ||
16 | |||
17 | #endif /* __ASM_MACH_IP32_MANGLE_PORT_H */ | ||
diff --git a/include/asm-mips/mach-ip32/mc146818rtc.h b/include/asm-mips/mach-ip32/mc146818rtc.h new file mode 100644 index 000000000000..f5d780ff843f --- /dev/null +++ b/include/asm-mips/mach-ip32/mc146818rtc.h | |||
@@ -0,0 +1,35 @@ | |||
1 | /* | ||
2 | * This file is subject to the terms and conditions of the GNU General Public | ||
3 | * License. See the file "COPYING" in the main directory of this archive | ||
4 | * for more details. | ||
5 | * | ||
6 | * Copyright (C) 1998, 2001, 03 by Ralf Baechle | ||
7 | * Copyright (C) 2000 Harald Koerfgen | ||
8 | * | ||
9 | * RTC routines for IP32 style attached Dallas chip. | ||
10 | */ | ||
11 | #ifndef __ASM_MACH_IP32_MC146818RTC_H | ||
12 | #define __ASM_MACH_IP32_MC146818RTC_H | ||
13 | |||
14 | #include <asm/io.h> | ||
15 | #include <asm/ip32/mace.h> | ||
16 | |||
17 | #define RTC_PORT(x) (0x70 + (x)) | ||
18 | |||
19 | static unsigned char CMOS_READ(unsigned long addr) | ||
20 | { | ||
21 | return mace->isa.rtc[addr << 8]; | ||
22 | } | ||
23 | |||
24 | static inline void CMOS_WRITE(unsigned char data, unsigned long addr) | ||
25 | { | ||
26 | mace->isa.rtc[addr << 8] = data; | ||
27 | } | ||
28 | |||
29 | /* FIXME: Do it right. For now just assume that noone lives in 20th century | ||
30 | * and no O2 user in 22th century ;-) */ | ||
31 | #define mc146818_decode_year(year) ((year) + 2000) | ||
32 | |||
33 | #define RTC_ALWAYS_BCD 0 | ||
34 | |||
35 | #endif /* __ASM_MACH_IP32_MC146818RTC_H */ | ||
diff --git a/include/asm-mips/mach-ip32/spaces.h b/include/asm-mips/mach-ip32/spaces.h new file mode 100644 index 000000000000..c7839f85c68d --- /dev/null +++ b/include/asm-mips/mach-ip32/spaces.h | |||
@@ -0,0 +1,36 @@ | |||
1 | /* | ||
2 | * This file is subject to the terms and conditions of the GNU General Public | ||
3 | * License. See the file "COPYING" in the main directory of this archive | ||
4 | * for more details. | ||
5 | * | ||
6 | * Copyright (C) 1994 - 1999, 2000, 03, 04, 05 Ralf Baechle (ralf@linux-mips.org) | ||
7 | * Copyright (C) 2000, 2002 Maciej W. Rozycki | ||
8 | * Copyright (C) 1990, 1999, 2000 Silicon Graphics, Inc. | ||
9 | */ | ||
10 | #ifndef _ASM_MACH_IP32_SPACES_H | ||
11 | #define _ASM_MACH_IP32_SPACES_H | ||
12 | |||
13 | /* | ||
14 | * Memory above this physical address will be considered highmem. | ||
15 | * Fixme: 59 bits is a fictive number and makes assumptions about processors | ||
16 | * in the distant future. Nobody will care for a few years :-) | ||
17 | */ | ||
18 | #ifndef HIGHMEM_START | ||
19 | #define HIGHMEM_START (1UL << 59UL) | ||
20 | #endif | ||
21 | |||
22 | #define CAC_BASE 0x9800000000000000 | ||
23 | #define IO_BASE 0x9000000000000000 | ||
24 | #define UNCAC_BASE 0x9000000000000000 | ||
25 | #define MAP_BASE 0xc000000000000000 | ||
26 | |||
27 | #define TO_PHYS(x) ( ((x) & TO_PHYS_MASK)) | ||
28 | #define TO_CAC(x) (CAC_BASE | ((x) & TO_PHYS_MASK)) | ||
29 | #define TO_UNCAC(x) (UNCAC_BASE | ((x) & TO_PHYS_MASK)) | ||
30 | |||
31 | /* | ||
32 | * This handles the memory map. | ||
33 | */ | ||
34 | #define PAGE_OFFSET CAC_BASE | ||
35 | |||
36 | #endif /* __ASM_MACH_IP32_SPACES_H */ | ||