diff options
author | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-04-16 18:20:36 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-04-16 18:20:36 -0400 |
commit | 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 (patch) | |
tree | 0bba044c4ce775e45a88a51686b5d9f90697ea9d /include/asm-sh/cpu-sh2 |
Linux-2.6.12-rc2v2.6.12-rc2
Initial git repository build. I'm not bothering with the full history,
even though we have it. We can create a separate "historical" git
archive of that later if we want to, and in the meantime it's about
3.2GB when imported into git - space that would just make the early
git days unnecessarily complicated, when we don't have a lot of good
infrastructure for it.
Let it rip!
Diffstat (limited to 'include/asm-sh/cpu-sh2')
-rw-r--r-- | include/asm-sh/cpu-sh2/addrspace.h | 16 | ||||
-rw-r--r-- | include/asm-sh/cpu-sh2/cache.h | 31 | ||||
-rw-r--r-- | include/asm-sh/cpu-sh2/cacheflush.h | 42 | ||||
-rw-r--r-- | include/asm-sh/cpu-sh2/dma.h | 23 | ||||
-rw-r--r-- | include/asm-sh/cpu-sh2/shmparam.h | 16 | ||||
-rw-r--r-- | include/asm-sh/cpu-sh2/sigcontext.h | 17 | ||||
-rw-r--r-- | include/asm-sh/cpu-sh2/ubc.h | 32 | ||||
-rw-r--r-- | include/asm-sh/cpu-sh2/watchdog.h | 69 |
8 files changed, 246 insertions, 0 deletions
diff --git a/include/asm-sh/cpu-sh2/addrspace.h b/include/asm-sh/cpu-sh2/addrspace.h new file mode 100644 index 000000000000..8706c903c5a0 --- /dev/null +++ b/include/asm-sh/cpu-sh2/addrspace.h | |||
@@ -0,0 +1,16 @@ | |||
1 | /* | ||
2 | * Definitions for the address spaces of the SH-2 CPUs. | ||
3 | * | ||
4 | * Copyright (C) 2003 Paul Mundt | ||
5 | * | ||
6 | * This file is subject to the terms and conditions of the GNU General Public | ||
7 | * License. See the file "COPYING" in the main directory of this archive | ||
8 | * for more details. | ||
9 | */ | ||
10 | #ifndef __ASM_CPU_SH2_ADDRSPACE_H | ||
11 | #define __ASM_CPU_SH2_ADDRSPACE_H | ||
12 | |||
13 | /* Should fill here */ | ||
14 | |||
15 | #endif /* __ASM_CPU_SH2_ADDRSPACE_H */ | ||
16 | |||
diff --git a/include/asm-sh/cpu-sh2/cache.h b/include/asm-sh/cpu-sh2/cache.h new file mode 100644 index 000000000000..cd96402e8562 --- /dev/null +++ b/include/asm-sh/cpu-sh2/cache.h | |||
@@ -0,0 +1,31 @@ | |||
1 | /* | ||
2 | * include/asm-sh/cpu-sh2/cache.h | ||
3 | * | ||
4 | * Copyright (C) 2003 Paul Mundt | ||
5 | * | ||
6 | * This file is subject to the terms and conditions of the GNU General Public | ||
7 | * License. See the file "COPYING" in the main directory of this archive | ||
8 | * for more details. | ||
9 | */ | ||
10 | #ifndef __ASM_CPU_SH2_CACHE_H | ||
11 | #define __ASM_CPU_SH2_CACHE_H | ||
12 | |||
13 | #define L1_CACHE_SHIFT 4 | ||
14 | |||
15 | #define CCR 0xfffffe92 /* Address of Cache Control Register */ | ||
16 | |||
17 | #define CCR_CACHE_CE 0x01 /* Cache enable */ | ||
18 | #define CCR_CACHE_ID 0x02 /* Instruction Replacement disable */ | ||
19 | #define CCR_CACHE_OD 0x04 /* Data Replacement disable */ | ||
20 | #define CCR_CACHE_TW 0x08 /* Two-way mode */ | ||
21 | #define CCR_CACHE_CP 0x10 /* Cache purge */ | ||
22 | |||
23 | #define CACHE_OC_ADDRESS_ARRAY 0x60000000 | ||
24 | |||
25 | #define CCR_CACHE_ENABLE CCR_CACHE_CE | ||
26 | #define CCR_CACHE_INVALIDATE CCR_CACHE_CP | ||
27 | #define CCR_CACHE_ORA CCR_CACHE_TW | ||
28 | #define CCR_CACHE_WT 0x00 /* SH-2 is _always_ write-through */ | ||
29 | |||
30 | #endif /* __ASM_CPU_SH2_CACHE_H */ | ||
31 | |||
diff --git a/include/asm-sh/cpu-sh2/cacheflush.h b/include/asm-sh/cpu-sh2/cacheflush.h new file mode 100644 index 000000000000..f556fa80ea97 --- /dev/null +++ b/include/asm-sh/cpu-sh2/cacheflush.h | |||
@@ -0,0 +1,42 @@ | |||
1 | /* | ||
2 | * include/asm-sh/cpu-sh2/cacheflush.h | ||
3 | * | ||
4 | * Copyright (C) 2003 Paul Mundt | ||
5 | * | ||
6 | * This file is subject to the terms and conditions of the GNU General Public | ||
7 | * License. See the file "COPYING" in the main directory of this archive | ||
8 | * for more details. | ||
9 | */ | ||
10 | #ifndef __ASM_CPU_SH2_CACHEFLUSH_H | ||
11 | #define __ASM_CPU_SH2_CACHEFLUSH_H | ||
12 | |||
13 | /* | ||
14 | * Cache flushing: | ||
15 | * | ||
16 | * - flush_cache_all() flushes entire cache | ||
17 | * - flush_cache_mm(mm) flushes the specified mm context's cache lines | ||
18 | * - flush_cache_page(mm, vmaddr, pfn) flushes a single page | ||
19 | * - flush_cache_range(vma, start, end) flushes a range of pages | ||
20 | * | ||
21 | * - flush_dcache_page(pg) flushes(wback&invalidates) a page for dcache | ||
22 | * - flush_icache_range(start, end) flushes(invalidates) a range for icache | ||
23 | * - flush_icache_page(vma, pg) flushes(invalidates) a page for icache | ||
24 | * | ||
25 | * Caches are indexed (effectively) by physical address on SH-2, so | ||
26 | * we don't need them. | ||
27 | */ | ||
28 | #define flush_cache_all() do { } while (0) | ||
29 | #define flush_cache_mm(mm) do { } while (0) | ||
30 | #define flush_cache_range(vma, start, end) do { } while (0) | ||
31 | #define flush_cache_page(vma, vmaddr, pfn) do { } while (0) | ||
32 | #define flush_dcache_page(page) do { } while (0) | ||
33 | #define flush_dcache_mmap_lock(mapping) do { } while (0) | ||
34 | #define flush_dcache_mmap_unlock(mapping) do { } while (0) | ||
35 | #define flush_icache_range(start, end) do { } while (0) | ||
36 | #define flush_icache_page(vma,pg) do { } while (0) | ||
37 | #define flush_icache_user_range(vma,pg,adr,len) do { } while (0) | ||
38 | #define flush_cache_sigtramp(vaddr) do { } while (0) | ||
39 | |||
40 | #define p3_cache_init() do { } while (0) | ||
41 | #endif /* __ASM_CPU_SH2_CACHEFLUSH_H */ | ||
42 | |||
diff --git a/include/asm-sh/cpu-sh2/dma.h b/include/asm-sh/cpu-sh2/dma.h new file mode 100644 index 000000000000..d66b43cdc637 --- /dev/null +++ b/include/asm-sh/cpu-sh2/dma.h | |||
@@ -0,0 +1,23 @@ | |||
1 | /* | ||
2 | * Definitions for the SH-2 DMAC. | ||
3 | * | ||
4 | * Copyright (C) 2003 Paul Mundt | ||
5 | * | ||
6 | * This file is subject to the terms and conditions of the GNU General Public | ||
7 | * License. See the file "COPYING" in the main directory of this archive | ||
8 | * for more details. | ||
9 | */ | ||
10 | #ifndef __ASM_CPU_SH2_DMA_H | ||
11 | #define __ASM_CPU_SH2_DMA_H | ||
12 | |||
13 | #define SH_MAX_DMA_CHANNELS 2 | ||
14 | |||
15 | #define SAR ((unsigned long[]){ 0xffffff80, 0xffffff90 }) | ||
16 | #define DAR ((unsigned long[]){ 0xffffff84, 0xffffff94 }) | ||
17 | #define DMATCR ((unsigned long[]){ 0xffffff88, 0xffffff98 }) | ||
18 | #define CHCR ((unsigned long[]){ 0xfffffffc, 0xffffff9c }) | ||
19 | |||
20 | #define DMAOR 0xffffffb0 | ||
21 | |||
22 | #endif /* __ASM_CPU_SH2_DMA_H */ | ||
23 | |||
diff --git a/include/asm-sh/cpu-sh2/shmparam.h b/include/asm-sh/cpu-sh2/shmparam.h new file mode 100644 index 000000000000..817c1821ee4b --- /dev/null +++ b/include/asm-sh/cpu-sh2/shmparam.h | |||
@@ -0,0 +1,16 @@ | |||
1 | /* | ||
2 | * include/asm-sh/cpu-sh2/shmparam.h | ||
3 | * | ||
4 | * Copyright (C) 2003 Paul Mundt | ||
5 | * | ||
6 | * This file is subject to the terms and conditions of the GNU General Public | ||
7 | * License. See the file "COPYING" in the main directory of this archive | ||
8 | * for more details. | ||
9 | */ | ||
10 | #ifndef __ASM_CPU_SH2_SHMPARAM_H | ||
11 | #define __ASM_CPU_SH2_SHMPARAM_H | ||
12 | |||
13 | #define SHMLBA PAGE_SIZE /* attach addr a multiple of this */ | ||
14 | |||
15 | #endif /* __ASM_CPU_SH2_SHMPARAM_H */ | ||
16 | |||
diff --git a/include/asm-sh/cpu-sh2/sigcontext.h b/include/asm-sh/cpu-sh2/sigcontext.h new file mode 100644 index 000000000000..fe5c15dd6e87 --- /dev/null +++ b/include/asm-sh/cpu-sh2/sigcontext.h | |||
@@ -0,0 +1,17 @@ | |||
1 | #ifndef __ASM_CPU_SH2_SIGCONTEXT_H | ||
2 | #define __ASM_CPU_SH2_SIGCONTEXT_H | ||
3 | |||
4 | struct sigcontext { | ||
5 | unsigned long oldmask; | ||
6 | |||
7 | /* CPU registers */ | ||
8 | unsigned long sc_regs[16]; | ||
9 | unsigned long sc_pc; | ||
10 | unsigned long sc_pr; | ||
11 | unsigned long sc_sr; | ||
12 | unsigned long sc_gbr; | ||
13 | unsigned long sc_mach; | ||
14 | unsigned long sc_macl; | ||
15 | }; | ||
16 | |||
17 | #endif /* __ASM_CPU_SH2_SIGCONTEXT_H */ | ||
diff --git a/include/asm-sh/cpu-sh2/ubc.h b/include/asm-sh/cpu-sh2/ubc.h new file mode 100644 index 000000000000..ba0e87f19c7a --- /dev/null +++ b/include/asm-sh/cpu-sh2/ubc.h | |||
@@ -0,0 +1,32 @@ | |||
1 | /* | ||
2 | * include/asm-sh/cpu-sh2/ubc.h | ||
3 | * | ||
4 | * Copyright (C) 2003 Paul Mundt | ||
5 | * | ||
6 | * This file is subject to the terms and conditions of the GNU General Public | ||
7 | * License. See the file "COPYING" in the main directory of this archive | ||
8 | * for more details. | ||
9 | */ | ||
10 | #ifndef __ASM_CPU_SH2_UBC_H | ||
11 | #define __ASM_CPU_SH2_UBC_H | ||
12 | |||
13 | #define UBC_BARA 0xffffff40 | ||
14 | #define UBC_BAMRA 0xffffff44 | ||
15 | #define UBC_BBRA 0xffffff48 | ||
16 | #define UBC_BARB 0xffffff60 | ||
17 | #define UBC_BAMRB 0xffffff64 | ||
18 | #define UBC_BBRB 0xffffff68 | ||
19 | #define UBC_BDRB 0xffffff70 | ||
20 | #define UBC_BDMRB 0xffffff74 | ||
21 | #define UBC_BRCR 0xffffff78 | ||
22 | |||
23 | /* | ||
24 | * We don't have any ASID changes to make in the UBC on the SH-2. | ||
25 | * | ||
26 | * Make these purposely invalid to track misuse. | ||
27 | */ | ||
28 | #define UBC_BASRA 0x00000000 | ||
29 | #define UBC_BASRB 0x00000000 | ||
30 | |||
31 | #endif /* __ASM_CPU_SH2_UBC_H */ | ||
32 | |||
diff --git a/include/asm-sh/cpu-sh2/watchdog.h b/include/asm-sh/cpu-sh2/watchdog.h new file mode 100644 index 000000000000..393161c9c6d0 --- /dev/null +++ b/include/asm-sh/cpu-sh2/watchdog.h | |||
@@ -0,0 +1,69 @@ | |||
1 | /* | ||
2 | * include/asm-sh/cpu-sh2/watchdog.h | ||
3 | * | ||
4 | * Copyright (C) 2002, 2003 Paul Mundt | ||
5 | * | ||
6 | * This file is subject to the terms and conditions of the GNU General Public | ||
7 | * License. See the file "COPYING" in the main directory of this archive | ||
8 | * for more details. | ||
9 | */ | ||
10 | #ifndef __ASM_CPU_SH2_WATCHDOG_H | ||
11 | #define __ASM_CPU_SH2_WATCHDOG_H | ||
12 | |||
13 | /* | ||
14 | * More SH-2 brilliance .. its not good enough that we can't read | ||
15 | * and write the same sizes to WTCNT, now we have to read and write | ||
16 | * with different sizes at different addresses for WTCNT _and_ RSTCSR. | ||
17 | * | ||
18 | * At least on the bright side no one has managed to screw over WTCSR | ||
19 | * in this fashion .. yet. | ||
20 | */ | ||
21 | /* Register definitions */ | ||
22 | #define WTCNT 0xfffffe80 | ||
23 | #define WTCSR 0xfffffe80 | ||
24 | #define RSTCSR 0xfffffe82 | ||
25 | |||
26 | #define WTCNT_R (WTCNT + 1) | ||
27 | #define RSTCSR_R (RSTCSR + 1) | ||
28 | |||
29 | /* Bit definitions */ | ||
30 | #define WTCSR_IOVF 0x80 | ||
31 | #define WTCSR_WT 0x40 | ||
32 | #define WTCSR_TME 0x20 | ||
33 | #define WTCSR_RSTS 0x00 | ||
34 | |||
35 | #define RSTCSR_RSTS 0x20 | ||
36 | |||
37 | /** | ||
38 | * sh_wdt_read_rstcsr - Read from Reset Control/Status Register | ||
39 | * | ||
40 | * Reads back the RSTCSR value. | ||
41 | */ | ||
42 | static inline __u8 sh_wdt_read_rstcsr(void) | ||
43 | { | ||
44 | /* | ||
45 | * Same read/write brain-damage as for WTCNT here.. | ||
46 | */ | ||
47 | return ctrl_inb(RSTCSR_R); | ||
48 | } | ||
49 | |||
50 | /** | ||
51 | * sh_wdt_write_csr - Write to Reset Control/Status Register | ||
52 | * | ||
53 | * @val: Value to write | ||
54 | * | ||
55 | * Writes the given value @val to the lower byte of the control/status | ||
56 | * register. The upper byte is set manually on each write. | ||
57 | */ | ||
58 | static inline void sh_wdt_write_rstcsr(__u8 val) | ||
59 | { | ||
60 | /* | ||
61 | * Note: Due to the brain-damaged nature of this register, | ||
62 | * we can't presently touch the WOVF bit, since the upper byte | ||
63 | * has to be swapped for this. So just leave it alone.. | ||
64 | */ | ||
65 | ctrl_outw((WTCNT_HIGH << 8) | (__u16)val, RSTCSR); | ||
66 | } | ||
67 | |||
68 | #endif /* __ASM_CPU_SH2_WATCHDOG_H */ | ||
69 | |||