diff options
author | Ralf Baechle <ralf@linux-mips.org> | 2008-09-16 13:48:51 -0400 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2008-10-11 11:18:52 -0400 |
commit | 384740dc49ea651ba350704d13ff6be9976e37fe (patch) | |
tree | a6e80cad287ccae7a86d81bfa692fc96889c88ed /arch/mips/include/asm/mach-generic | |
parent | e8c7c482347574ecdd45c43e32c332d5fc2ece61 (diff) |
MIPS: Move headfiles to new location below arch/mips/include
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'arch/mips/include/asm/mach-generic')
-rw-r--r-- | arch/mips/include/asm/mach-generic/cpu-feature-overrides.h | 13 | ||||
-rw-r--r-- | arch/mips/include/asm/mach-generic/dma-coherence.h | 45 | ||||
-rw-r--r-- | arch/mips/include/asm/mach-generic/floppy.h | 139 | ||||
-rw-r--r-- | arch/mips/include/asm/mach-generic/gpio.h | 21 | ||||
-rw-r--r-- | arch/mips/include/asm/mach-generic/ide.h | 167 | ||||
-rw-r--r-- | arch/mips/include/asm/mach-generic/ioremap.h | 34 | ||||
-rw-r--r-- | arch/mips/include/asm/mach-generic/irq.h | 45 | ||||
-rw-r--r-- | arch/mips/include/asm/mach-generic/kernel-entry-init.h | 25 | ||||
-rw-r--r-- | arch/mips/include/asm/mach-generic/kmalloc.h | 13 | ||||
-rw-r--r-- | arch/mips/include/asm/mach-generic/mangle-port.h | 52 | ||||
-rw-r--r-- | arch/mips/include/asm/mach-generic/mc146818rtc.h | 36 | ||||
-rw-r--r-- | arch/mips/include/asm/mach-generic/spaces.h | 85 | ||||
-rw-r--r-- | arch/mips/include/asm/mach-generic/topology.h | 1 |
13 files changed, 676 insertions, 0 deletions
diff --git a/arch/mips/include/asm/mach-generic/cpu-feature-overrides.h b/arch/mips/include/asm/mach-generic/cpu-feature-overrides.h new file mode 100644 index 000000000000..7c185bb06f13 --- /dev/null +++ b/arch/mips/include/asm/mach-generic/cpu-feature-overrides.h | |||
@@ -0,0 +1,13 @@ | |||
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 Ralf Baechle | ||
7 | */ | ||
8 | #ifndef __ASM_MACH_GENERIC_CPU_FEATURE_OVERRIDES_H | ||
9 | #define __ASM_MACH_GENERIC_CPU_FEATURE_OVERRIDES_H | ||
10 | |||
11 | /* Intentionally empty file ... */ | ||
12 | |||
13 | #endif /* __ASM_MACH_GENERIC_CPU_FEATURE_OVERRIDES_H */ | ||
diff --git a/arch/mips/include/asm/mach-generic/dma-coherence.h b/arch/mips/include/asm/mach-generic/dma-coherence.h new file mode 100644 index 000000000000..76e04e7feb84 --- /dev/null +++ b/arch/mips/include/asm/mach-generic/dma-coherence.h | |||
@@ -0,0 +1,45 @@ | |||
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) 2006 Ralf Baechle <ralf@linux-mips.org> | ||
7 | * | ||
8 | */ | ||
9 | #ifndef __ASM_MACH_GENERIC_DMA_COHERENCE_H | ||
10 | #define __ASM_MACH_GENERIC_DMA_COHERENCE_H | ||
11 | |||
12 | struct device; | ||
13 | |||
14 | static inline dma_addr_t plat_map_dma_mem(struct device *dev, void *addr, | ||
15 | size_t size) | ||
16 | { | ||
17 | return virt_to_phys(addr); | ||
18 | } | ||
19 | |||
20 | static inline dma_addr_t plat_map_dma_mem_page(struct device *dev, | ||
21 | struct page *page) | ||
22 | { | ||
23 | return page_to_phys(page); | ||
24 | } | ||
25 | |||
26 | static inline unsigned long plat_dma_addr_to_phys(dma_addr_t dma_addr) | ||
27 | { | ||
28 | return dma_addr; | ||
29 | } | ||
30 | |||
31 | static inline void plat_unmap_dma_mem(dma_addr_t dma_addr) | ||
32 | { | ||
33 | } | ||
34 | |||
35 | static inline int plat_device_is_coherent(struct device *dev) | ||
36 | { | ||
37 | #ifdef CONFIG_DMA_COHERENT | ||
38 | return 1; | ||
39 | #endif | ||
40 | #ifdef CONFIG_DMA_NONCOHERENT | ||
41 | return 0; | ||
42 | #endif | ||
43 | } | ||
44 | |||
45 | #endif /* __ASM_MACH_GENERIC_DMA_COHERENCE_H */ | ||
diff --git a/arch/mips/include/asm/mach-generic/floppy.h b/arch/mips/include/asm/mach-generic/floppy.h new file mode 100644 index 000000000000..001a8ce17c17 --- /dev/null +++ b/arch/mips/include/asm/mach-generic/floppy.h | |||
@@ -0,0 +1,139 @@ | |||
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) 1996, 1997, 1998, 2003 by Ralf Baechle | ||
7 | */ | ||
8 | #ifndef __ASM_MACH_GENERIC_FLOPPY_H | ||
9 | #define __ASM_MACH_GENERIC_FLOPPY_H | ||
10 | |||
11 | #include <linux/delay.h> | ||
12 | #include <linux/init.h> | ||
13 | #include <linux/ioport.h> | ||
14 | #include <linux/sched.h> | ||
15 | #include <linux/linkage.h> | ||
16 | #include <linux/types.h> | ||
17 | #include <linux/mm.h> | ||
18 | |||
19 | #include <asm/bootinfo.h> | ||
20 | #include <asm/cachectl.h> | ||
21 | #include <asm/dma.h> | ||
22 | #include <asm/floppy.h> | ||
23 | #include <asm/io.h> | ||
24 | #include <asm/irq.h> | ||
25 | #include <asm/pgtable.h> | ||
26 | |||
27 | /* | ||
28 | * How to access the FDC's registers. | ||
29 | */ | ||
30 | static inline unsigned char fd_inb(unsigned int port) | ||
31 | { | ||
32 | return inb_p(port); | ||
33 | } | ||
34 | |||
35 | static inline void fd_outb(unsigned char value, unsigned int port) | ||
36 | { | ||
37 | outb_p(value, port); | ||
38 | } | ||
39 | |||
40 | /* | ||
41 | * How to access the floppy DMA functions. | ||
42 | */ | ||
43 | static inline void fd_enable_dma(void) | ||
44 | { | ||
45 | enable_dma(FLOPPY_DMA); | ||
46 | } | ||
47 | |||
48 | static inline void fd_disable_dma(void) | ||
49 | { | ||
50 | disable_dma(FLOPPY_DMA); | ||
51 | } | ||
52 | |||
53 | static inline int fd_request_dma(void) | ||
54 | { | ||
55 | return request_dma(FLOPPY_DMA, "floppy"); | ||
56 | } | ||
57 | |||
58 | static inline void fd_free_dma(void) | ||
59 | { | ||
60 | free_dma(FLOPPY_DMA); | ||
61 | } | ||
62 | |||
63 | static inline void fd_clear_dma_ff(void) | ||
64 | { | ||
65 | clear_dma_ff(FLOPPY_DMA); | ||
66 | } | ||
67 | |||
68 | static inline void fd_set_dma_mode(char mode) | ||
69 | { | ||
70 | set_dma_mode(FLOPPY_DMA, mode); | ||
71 | } | ||
72 | |||
73 | static inline void fd_set_dma_addr(char *addr) | ||
74 | { | ||
75 | set_dma_addr(FLOPPY_DMA, (unsigned long) addr); | ||
76 | } | ||
77 | |||
78 | static inline void fd_set_dma_count(unsigned int count) | ||
79 | { | ||
80 | set_dma_count(FLOPPY_DMA, count); | ||
81 | } | ||
82 | |||
83 | static inline int fd_get_dma_residue(void) | ||
84 | { | ||
85 | return get_dma_residue(FLOPPY_DMA); | ||
86 | } | ||
87 | |||
88 | static inline void fd_enable_irq(void) | ||
89 | { | ||
90 | enable_irq(FLOPPY_IRQ); | ||
91 | } | ||
92 | |||
93 | static inline void fd_disable_irq(void) | ||
94 | { | ||
95 | disable_irq(FLOPPY_IRQ); | ||
96 | } | ||
97 | |||
98 | static inline int fd_request_irq(void) | ||
99 | { | ||
100 | return request_irq(FLOPPY_IRQ, floppy_interrupt, | ||
101 | IRQF_DISABLED, "floppy", NULL); | ||
102 | } | ||
103 | |||
104 | static inline void fd_free_irq(void) | ||
105 | { | ||
106 | free_irq(FLOPPY_IRQ, NULL); | ||
107 | } | ||
108 | |||
109 | #define fd_free_irq() free_irq(FLOPPY_IRQ, NULL); | ||
110 | |||
111 | |||
112 | static inline unsigned long fd_getfdaddr1(void) | ||
113 | { | ||
114 | return 0x3f0; | ||
115 | } | ||
116 | |||
117 | static inline unsigned long fd_dma_mem_alloc(unsigned long size) | ||
118 | { | ||
119 | unsigned long mem; | ||
120 | |||
121 | mem = __get_dma_pages(GFP_KERNEL, get_order(size)); | ||
122 | |||
123 | return mem; | ||
124 | } | ||
125 | |||
126 | static inline void fd_dma_mem_free(unsigned long addr, unsigned long size) | ||
127 | { | ||
128 | free_pages(addr, get_order(size)); | ||
129 | } | ||
130 | |||
131 | static inline unsigned long fd_drive_type(unsigned long n) | ||
132 | { | ||
133 | if (n == 0) | ||
134 | return 4; /* 3,5", 1.44mb */ | ||
135 | |||
136 | return 0; | ||
137 | } | ||
138 | |||
139 | #endif /* __ASM_MACH_GENERIC_FLOPPY_H */ | ||
diff --git a/arch/mips/include/asm/mach-generic/gpio.h b/arch/mips/include/asm/mach-generic/gpio.h new file mode 100644 index 000000000000..b4e70208da64 --- /dev/null +++ b/arch/mips/include/asm/mach-generic/gpio.h | |||
@@ -0,0 +1,21 @@ | |||
1 | #ifndef __ASM_MACH_GENERIC_GPIO_H | ||
2 | #define __ASM_MACH_GENERIC_GPIO_H | ||
3 | |||
4 | #ifdef CONFIG_GPIOLIB | ||
5 | #define gpio_get_value __gpio_get_value | ||
6 | #define gpio_set_value __gpio_set_value | ||
7 | #define gpio_cansleep __gpio_cansleep | ||
8 | #else | ||
9 | int gpio_request(unsigned gpio, const char *label); | ||
10 | void gpio_free(unsigned gpio); | ||
11 | int gpio_direction_input(unsigned gpio); | ||
12 | int gpio_direction_output(unsigned gpio, int value); | ||
13 | int gpio_get_value(unsigned gpio); | ||
14 | void gpio_set_value(unsigned gpio, int value); | ||
15 | #endif | ||
16 | int gpio_to_irq(unsigned gpio); | ||
17 | int irq_to_gpio(unsigned irq); | ||
18 | |||
19 | #include <asm-generic/gpio.h> /* cansleep wrappers */ | ||
20 | |||
21 | #endif /* __ASM_MACH_GENERIC_GPIO_H */ | ||
diff --git a/arch/mips/include/asm/mach-generic/ide.h b/arch/mips/include/asm/mach-generic/ide.h new file mode 100644 index 000000000000..73008f7bdc93 --- /dev/null +++ b/arch/mips/include/asm/mach-generic/ide.h | |||
@@ -0,0 +1,167 @@ | |||
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-1996 Linus Torvalds & authors | ||
7 | * | ||
8 | * Copied from i386; many of the especially older MIPS or ISA-based platforms | ||
9 | * are basically identical. Using this file probably implies i8259 PIC | ||
10 | * support in a system but the very least interrupt numbers 0 - 15 need to | ||
11 | * be put aside for legacy devices. | ||
12 | */ | ||
13 | #ifndef __ASM_MACH_GENERIC_IDE_H | ||
14 | #define __ASM_MACH_GENERIC_IDE_H | ||
15 | |||
16 | #ifdef __KERNEL__ | ||
17 | |||
18 | #include <linux/pci.h> | ||
19 | #include <linux/stddef.h> | ||
20 | #include <asm/processor.h> | ||
21 | |||
22 | static __inline__ int ide_probe_legacy(void) | ||
23 | { | ||
24 | #ifdef CONFIG_PCI | ||
25 | struct pci_dev *dev; | ||
26 | /* | ||
27 | * This can be called on the ide_setup() path, super-early in | ||
28 | * boot. But the down_read() will enable local interrupts, | ||
29 | * which can cause some machines to crash. So here we detect | ||
30 | * and flag that situation and bail out early. | ||
31 | */ | ||
32 | if (no_pci_devices()) | ||
33 | return 0; | ||
34 | dev = pci_get_class(PCI_CLASS_BRIDGE_EISA << 8, NULL); | ||
35 | if (dev) | ||
36 | goto found; | ||
37 | dev = pci_get_class(PCI_CLASS_BRIDGE_ISA << 8, NULL); | ||
38 | if (dev) | ||
39 | goto found; | ||
40 | return 0; | ||
41 | found: | ||
42 | pci_dev_put(dev); | ||
43 | return 1; | ||
44 | #elif defined(CONFIG_EISA) || defined(CONFIG_ISA) | ||
45 | return 1; | ||
46 | #else | ||
47 | return 0; | ||
48 | #endif | ||
49 | } | ||
50 | |||
51 | /* MIPS port and memory-mapped I/O string operations. */ | ||
52 | static inline void __ide_flush_prologue(void) | ||
53 | { | ||
54 | #ifdef CONFIG_SMP | ||
55 | if (cpu_has_dc_aliases) | ||
56 | preempt_disable(); | ||
57 | #endif | ||
58 | } | ||
59 | |||
60 | static inline void __ide_flush_epilogue(void) | ||
61 | { | ||
62 | #ifdef CONFIG_SMP | ||
63 | if (cpu_has_dc_aliases) | ||
64 | preempt_enable(); | ||
65 | #endif | ||
66 | } | ||
67 | |||
68 | static inline void __ide_flush_dcache_range(unsigned long addr, unsigned long size) | ||
69 | { | ||
70 | if (cpu_has_dc_aliases) { | ||
71 | unsigned long end = addr + size; | ||
72 | |||
73 | while (addr < end) { | ||
74 | local_flush_data_cache_page((void *)addr); | ||
75 | addr += PAGE_SIZE; | ||
76 | } | ||
77 | } | ||
78 | } | ||
79 | |||
80 | /* | ||
81 | * insw() and gang might be called with interrupts disabled, so we can't | ||
82 | * send IPIs for flushing due to the potencial of deadlocks, see the comment | ||
83 | * above smp_call_function() in arch/mips/kernel/smp.c. We work around the | ||
84 | * problem by disabling preemption so we know we actually perform the flush | ||
85 | * on the processor that actually has the lines to be flushed which hopefully | ||
86 | * is even better for performance anyway. | ||
87 | */ | ||
88 | static inline void __ide_insw(unsigned long port, void *addr, | ||
89 | unsigned int count) | ||
90 | { | ||
91 | __ide_flush_prologue(); | ||
92 | insw(port, addr, count); | ||
93 | __ide_flush_dcache_range((unsigned long)addr, count * 2); | ||
94 | __ide_flush_epilogue(); | ||
95 | } | ||
96 | |||
97 | static inline void __ide_insl(unsigned long port, void *addr, unsigned int count) | ||
98 | { | ||
99 | __ide_flush_prologue(); | ||
100 | insl(port, addr, count); | ||
101 | __ide_flush_dcache_range((unsigned long)addr, count * 4); | ||
102 | __ide_flush_epilogue(); | ||
103 | } | ||
104 | |||
105 | static inline void __ide_outsw(unsigned long port, const void *addr, | ||
106 | unsigned long count) | ||
107 | { | ||
108 | __ide_flush_prologue(); | ||
109 | outsw(port, addr, count); | ||
110 | __ide_flush_dcache_range((unsigned long)addr, count * 2); | ||
111 | __ide_flush_epilogue(); | ||
112 | } | ||
113 | |||
114 | static inline void __ide_outsl(unsigned long port, const void *addr, | ||
115 | unsigned long count) | ||
116 | { | ||
117 | __ide_flush_prologue(); | ||
118 | outsl(port, addr, count); | ||
119 | __ide_flush_dcache_range((unsigned long)addr, count * 4); | ||
120 | __ide_flush_epilogue(); | ||
121 | } | ||
122 | |||
123 | static inline void __ide_mm_insw(void __iomem *port, void *addr, u32 count) | ||
124 | { | ||
125 | __ide_flush_prologue(); | ||
126 | readsw(port, addr, count); | ||
127 | __ide_flush_dcache_range((unsigned long)addr, count * 2); | ||
128 | __ide_flush_epilogue(); | ||
129 | } | ||
130 | |||
131 | static inline void __ide_mm_insl(void __iomem *port, void *addr, u32 count) | ||
132 | { | ||
133 | __ide_flush_prologue(); | ||
134 | readsl(port, addr, count); | ||
135 | __ide_flush_dcache_range((unsigned long)addr, count * 4); | ||
136 | __ide_flush_epilogue(); | ||
137 | } | ||
138 | |||
139 | static inline void __ide_mm_outsw(void __iomem *port, void *addr, u32 count) | ||
140 | { | ||
141 | __ide_flush_prologue(); | ||
142 | writesw(port, addr, count); | ||
143 | __ide_flush_dcache_range((unsigned long)addr, count * 2); | ||
144 | __ide_flush_epilogue(); | ||
145 | } | ||
146 | |||
147 | static inline void __ide_mm_outsl(void __iomem * port, void *addr, u32 count) | ||
148 | { | ||
149 | __ide_flush_prologue(); | ||
150 | writesl(port, addr, count); | ||
151 | __ide_flush_dcache_range((unsigned long)addr, count * 4); | ||
152 | __ide_flush_epilogue(); | ||
153 | } | ||
154 | |||
155 | /* ide_insw calls insw, not __ide_insw. Why? */ | ||
156 | #undef insw | ||
157 | #undef insl | ||
158 | #undef outsw | ||
159 | #undef outsl | ||
160 | #define insw(port, addr, count) __ide_insw(port, addr, count) | ||
161 | #define insl(port, addr, count) __ide_insl(port, addr, count) | ||
162 | #define outsw(port, addr, count) __ide_outsw(port, addr, count) | ||
163 | #define outsl(port, addr, count) __ide_outsl(port, addr, count) | ||
164 | |||
165 | #endif /* __KERNEL__ */ | ||
166 | |||
167 | #endif /* __ASM_MACH_GENERIC_IDE_H */ | ||
diff --git a/arch/mips/include/asm/mach-generic/ioremap.h b/arch/mips/include/asm/mach-generic/ioremap.h new file mode 100644 index 000000000000..b379938d47f0 --- /dev/null +++ b/arch/mips/include/asm/mach-generic/ioremap.h | |||
@@ -0,0 +1,34 @@ | |||
1 | /* | ||
2 | * include/asm-mips/mach-generic/ioremap.h | ||
3 | * | ||
4 | * This program is free software; you can redistribute it and/or | ||
5 | * modify it under the terms of the GNU General Public License | ||
6 | * as published by the Free Software Foundation; either version | ||
7 | * 2 of the License, or (at your option) any later version. | ||
8 | */ | ||
9 | #ifndef __ASM_MACH_GENERIC_IOREMAP_H | ||
10 | #define __ASM_MACH_GENERIC_IOREMAP_H | ||
11 | |||
12 | #include <linux/types.h> | ||
13 | |||
14 | /* | ||
15 | * Allow physical addresses to be fixed up to help peripherals located | ||
16 | * outside the low 32-bit range -- generic pass-through version. | ||
17 | */ | ||
18 | static inline phys_t fixup_bigphys_addr(phys_t phys_addr, phys_t size) | ||
19 | { | ||
20 | return phys_addr; | ||
21 | } | ||
22 | |||
23 | static inline void __iomem *plat_ioremap(phys_t offset, unsigned long size, | ||
24 | unsigned long flags) | ||
25 | { | ||
26 | return NULL; | ||
27 | } | ||
28 | |||
29 | static inline int plat_iounmap(const volatile void __iomem *addr) | ||
30 | { | ||
31 | return 0; | ||
32 | } | ||
33 | |||
34 | #endif /* __ASM_MACH_GENERIC_IOREMAP_H */ | ||
diff --git a/arch/mips/include/asm/mach-generic/irq.h b/arch/mips/include/asm/mach-generic/irq.h new file mode 100644 index 000000000000..70d9a25132c5 --- /dev/null +++ b/arch/mips/include/asm/mach-generic/irq.h | |||
@@ -0,0 +1,45 @@ | |||
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 by Ralf Baechle | ||
7 | */ | ||
8 | #ifndef __ASM_MACH_GENERIC_IRQ_H | ||
9 | #define __ASM_MACH_GENERIC_IRQ_H | ||
10 | |||
11 | #ifndef NR_IRQS | ||
12 | #define NR_IRQS 128 | ||
13 | #endif | ||
14 | |||
15 | #ifdef CONFIG_I8259 | ||
16 | #ifndef I8259A_IRQ_BASE | ||
17 | #define I8259A_IRQ_BASE 0 | ||
18 | #endif | ||
19 | #endif | ||
20 | |||
21 | #ifdef CONFIG_IRQ_CPU | ||
22 | |||
23 | #ifndef MIPS_CPU_IRQ_BASE | ||
24 | #ifdef CONFIG_I8259 | ||
25 | #define MIPS_CPU_IRQ_BASE 16 | ||
26 | #else | ||
27 | #define MIPS_CPU_IRQ_BASE 0 | ||
28 | #endif /* CONFIG_I8259 */ | ||
29 | #endif | ||
30 | |||
31 | #ifdef CONFIG_IRQ_CPU_RM7K | ||
32 | #ifndef RM7K_CPU_IRQ_BASE | ||
33 | #define RM7K_CPU_IRQ_BASE (MIPS_CPU_IRQ_BASE+8) | ||
34 | #endif | ||
35 | #endif | ||
36 | |||
37 | #ifdef CONFIG_IRQ_CPU_RM9K | ||
38 | #ifndef RM9K_CPU_IRQ_BASE | ||
39 | #define RM9K_CPU_IRQ_BASE (MIPS_CPU_IRQ_BASE+12) | ||
40 | #endif | ||
41 | #endif | ||
42 | |||
43 | #endif /* CONFIG_IRQ_CPU */ | ||
44 | |||
45 | #endif /* __ASM_MACH_GENERIC_IRQ_H */ | ||
diff --git a/arch/mips/include/asm/mach-generic/kernel-entry-init.h b/arch/mips/include/asm/mach-generic/kernel-entry-init.h new file mode 100644 index 000000000000..7e66505fa574 --- /dev/null +++ b/arch/mips/include/asm/mach-generic/kernel-entry-init.h | |||
@@ -0,0 +1,25 @@ | |||
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 Embedded Alley Solutions, Inc | ||
7 | * Copyright (C) 2005 Ralf Baechle (ralf@linux-mips.org) | ||
8 | */ | ||
9 | #ifndef __ASM_MACH_GENERIC_KERNEL_ENTRY_H | ||
10 | #define __ASM_MACH_GENERIC_KERNEL_ENTRY_H | ||
11 | |||
12 | /* Intentionally empty macro, used in head.S. Override in | ||
13 | * arch/mips/mach-xxx/kernel-entry-init.h when necessary. | ||
14 | */ | ||
15 | .macro kernel_entry_setup | ||
16 | .endm | ||
17 | |||
18 | /* | ||
19 | * Do SMP slave processor setup necessary before we can savely execute C code. | ||
20 | */ | ||
21 | .macro smp_slave_setup | ||
22 | .endm | ||
23 | |||
24 | |||
25 | #endif /* __ASM_MACH_GENERIC_KERNEL_ENTRY_H */ | ||
diff --git a/arch/mips/include/asm/mach-generic/kmalloc.h b/arch/mips/include/asm/mach-generic/kmalloc.h new file mode 100644 index 000000000000..b8e6deba352f --- /dev/null +++ b/arch/mips/include/asm/mach-generic/kmalloc.h | |||
@@ -0,0 +1,13 @@ | |||
1 | #ifndef __ASM_MACH_GENERIC_KMALLOC_H | ||
2 | #define __ASM_MACH_GENERIC_KMALLOC_H | ||
3 | |||
4 | |||
5 | #ifndef CONFIG_DMA_COHERENT | ||
6 | /* | ||
7 | * Total overkill for most systems but need as a safe default. | ||
8 | * Set this one if any device in the system might do non-coherent DMA. | ||
9 | */ | ||
10 | #define ARCH_KMALLOC_MINALIGN 128 | ||
11 | #endif | ||
12 | |||
13 | #endif /* __ASM_MACH_GENERIC_KMALLOC_H */ | ||
diff --git a/arch/mips/include/asm/mach-generic/mangle-port.h b/arch/mips/include/asm/mach-generic/mangle-port.h new file mode 100644 index 000000000000..f49dc990214b --- /dev/null +++ b/arch/mips/include/asm/mach-generic/mangle-port.h | |||
@@ -0,0 +1,52 @@ | |||
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, 2004 Ralf Baechle | ||
7 | */ | ||
8 | #ifndef __ASM_MACH_GENERIC_MANGLE_PORT_H | ||
9 | #define __ASM_MACH_GENERIC_MANGLE_PORT_H | ||
10 | |||
11 | #define __swizzle_addr_b(port) (port) | ||
12 | #define __swizzle_addr_w(port) (port) | ||
13 | #define __swizzle_addr_l(port) (port) | ||
14 | #define __swizzle_addr_q(port) (port) | ||
15 | |||
16 | /* | ||
17 | * Sane hardware offers swapping of PCI/ISA I/O space accesses in hardware; | ||
18 | * less sane hardware forces software to fiddle with this... | ||
19 | * | ||
20 | * Regardless, if the host bus endianness mismatches that of PCI/ISA, then | ||
21 | * you can't have the numerical value of data and byte addresses within | ||
22 | * multibyte quantities both preserved at the same time. Hence two | ||
23 | * variations of functions: non-prefixed ones that preserve the value | ||
24 | * and prefixed ones that preserve byte addresses. The latters are | ||
25 | * typically used for moving raw data between a peripheral and memory (cf. | ||
26 | * string I/O functions), hence the "__mem_" prefix. | ||
27 | */ | ||
28 | #if defined(CONFIG_SWAP_IO_SPACE) | ||
29 | |||
30 | # define ioswabb(a, x) (x) | ||
31 | # define __mem_ioswabb(a, x) (x) | ||
32 | # define ioswabw(a, x) le16_to_cpu(x) | ||
33 | # define __mem_ioswabw(a, x) (x) | ||
34 | # define ioswabl(a, x) le32_to_cpu(x) | ||
35 | # define __mem_ioswabl(a, x) (x) | ||
36 | # define ioswabq(a, x) le64_to_cpu(x) | ||
37 | # define __mem_ioswabq(a, x) (x) | ||
38 | |||
39 | #else | ||
40 | |||
41 | # define ioswabb(a, x) (x) | ||
42 | # define __mem_ioswabb(a, x) (x) | ||
43 | # define ioswabw(a, x) (x) | ||
44 | # define __mem_ioswabw(a, x) cpu_to_le16(x) | ||
45 | # define ioswabl(a, x) (x) | ||
46 | # define __mem_ioswabl(a, x) cpu_to_le32(x) | ||
47 | # define ioswabq(a, x) (x) | ||
48 | # define __mem_ioswabq(a, x) cpu_to_le32(x) | ||
49 | |||
50 | #endif | ||
51 | |||
52 | #endif /* __ASM_MACH_GENERIC_MANGLE_PORT_H */ | ||
diff --git a/arch/mips/include/asm/mach-generic/mc146818rtc.h b/arch/mips/include/asm/mach-generic/mc146818rtc.h new file mode 100644 index 000000000000..0b9a942f079d --- /dev/null +++ b/arch/mips/include/asm/mach-generic/mc146818rtc.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) 1998, 2001, 03 by Ralf Baechle | ||
7 | * | ||
8 | * RTC routines for PC style attached Dallas chip. | ||
9 | */ | ||
10 | #ifndef __ASM_MACH_GENERIC_MC146818RTC_H | ||
11 | #define __ASM_MACH_GENERIC_MC146818RTC_H | ||
12 | |||
13 | #include <asm/io.h> | ||
14 | |||
15 | #define RTC_PORT(x) (0x70 + (x)) | ||
16 | #define RTC_IRQ 8 | ||
17 | |||
18 | static inline unsigned char CMOS_READ(unsigned long addr) | ||
19 | { | ||
20 | outb_p(addr, RTC_PORT(0)); | ||
21 | return inb_p(RTC_PORT(1)); | ||
22 | } | ||
23 | |||
24 | static inline void CMOS_WRITE(unsigned char data, unsigned long addr) | ||
25 | { | ||
26 | outb_p(addr, RTC_PORT(0)); | ||
27 | outb_p(data, RTC_PORT(1)); | ||
28 | } | ||
29 | |||
30 | #define RTC_ALWAYS_BCD 1 | ||
31 | |||
32 | #ifndef mc146818_decode_year | ||
33 | #define mc146818_decode_year(year) ((year) < 70 ? (year) + 2000 : (year) + 1900) | ||
34 | #endif | ||
35 | |||
36 | #endif /* __ASM_MACH_GENERIC_MC146818RTC_H */ | ||
diff --git a/arch/mips/include/asm/mach-generic/spaces.h b/arch/mips/include/asm/mach-generic/spaces.h new file mode 100644 index 000000000000..c9fa4b14968d --- /dev/null +++ b/arch/mips/include/asm/mach-generic/spaces.h | |||
@@ -0,0 +1,85 @@ | |||
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 Ralf Baechle | ||
7 | * Copyright (C) 2000, 2002 Maciej W. Rozycki | ||
8 | * Copyright (C) 1990, 1999, 2000 Silicon Graphics, Inc. | ||
9 | */ | ||
10 | #ifndef _ASM_MACH_GENERIC_SPACES_H | ||
11 | #define _ASM_MACH_GENERIC_SPACES_H | ||
12 | |||
13 | #include <linux/const.h> | ||
14 | |||
15 | /* | ||
16 | * This gives the physical RAM offset. | ||
17 | */ | ||
18 | #ifndef PHYS_OFFSET | ||
19 | #define PHYS_OFFSET _AC(0, UL) | ||
20 | #endif | ||
21 | |||
22 | #ifdef CONFIG_32BIT | ||
23 | |||
24 | #define CAC_BASE _AC(0x80000000, UL) | ||
25 | #define IO_BASE _AC(0xa0000000, UL) | ||
26 | #define UNCAC_BASE _AC(0xa0000000, UL) | ||
27 | |||
28 | #ifndef MAP_BASE | ||
29 | #define MAP_BASE _AC(0xc0000000, UL) | ||
30 | #endif | ||
31 | |||
32 | /* | ||
33 | * Memory above this physical address will be considered highmem. | ||
34 | */ | ||
35 | #ifndef HIGHMEM_START | ||
36 | #define HIGHMEM_START _AC(0x20000000, UL) | ||
37 | #endif | ||
38 | |||
39 | #endif /* CONFIG_32BIT */ | ||
40 | |||
41 | #ifdef CONFIG_64BIT | ||
42 | |||
43 | #ifndef CAC_BASE | ||
44 | #ifdef CONFIG_DMA_NONCOHERENT | ||
45 | #define CAC_BASE _AC(0x9800000000000000, UL) | ||
46 | #else | ||
47 | #define CAC_BASE _AC(0xa800000000000000, UL) | ||
48 | #endif | ||
49 | #endif | ||
50 | |||
51 | #ifndef IO_BASE | ||
52 | #define IO_BASE _AC(0x9000000000000000, UL) | ||
53 | #endif | ||
54 | |||
55 | #ifndef UNCAC_BASE | ||
56 | #define UNCAC_BASE _AC(0x9000000000000000, UL) | ||
57 | #endif | ||
58 | |||
59 | #ifndef MAP_BASE | ||
60 | #define MAP_BASE _AC(0xc000000000000000, UL) | ||
61 | #endif | ||
62 | |||
63 | /* | ||
64 | * Memory above this physical address will be considered highmem. | ||
65 | * Fixme: 59 bits is a fictive number and makes assumptions about processors | ||
66 | * in the distant future. Nobody will care for a few years :-) | ||
67 | */ | ||
68 | #ifndef HIGHMEM_START | ||
69 | #define HIGHMEM_START (_AC(1, UL) << _AC(59, UL)) | ||
70 | #endif | ||
71 | |||
72 | #define TO_PHYS(x) ( ((x) & TO_PHYS_MASK)) | ||
73 | #define TO_CAC(x) (CAC_BASE | ((x) & TO_PHYS_MASK)) | ||
74 | #define TO_UNCAC(x) (UNCAC_BASE | ((x) & TO_PHYS_MASK)) | ||
75 | |||
76 | #endif /* CONFIG_64BIT */ | ||
77 | |||
78 | /* | ||
79 | * This handles the memory map. | ||
80 | */ | ||
81 | #ifndef PAGE_OFFSET | ||
82 | #define PAGE_OFFSET (CAC_BASE + PHYS_OFFSET) | ||
83 | #endif | ||
84 | |||
85 | #endif /* __ASM_MACH_GENERIC_SPACES_H */ | ||
diff --git a/arch/mips/include/asm/mach-generic/topology.h b/arch/mips/include/asm/mach-generic/topology.h new file mode 100644 index 000000000000..5428f333a02c --- /dev/null +++ b/arch/mips/include/asm/mach-generic/topology.h | |||
@@ -0,0 +1 @@ | |||
#include <asm-generic/topology.h> | |||