diff options
Diffstat (limited to 'arch/mips')
-rw-r--r-- | arch/mips/Kconfig | 31 | ||||
-rw-r--r-- | arch/mips/Makefile | 13 | ||||
-rw-r--r-- | arch/mips/alchemy/devboards/db1200/setup.c | 10 | ||||
-rw-r--r-- | arch/mips/configs/bcm63xx_defconfig | 418 | ||||
-rw-r--r-- | arch/mips/include/asm/cmpxchg.h | 2 | ||||
-rw-r--r-- | arch/mips/include/asm/mach-loongson/loongson.h | 2 | ||||
-rw-r--r-- | arch/mips/include/asm/pgtable-64.h | 9 | ||||
-rw-r--r-- | arch/mips/include/asm/ptrace.h | 4 | ||||
-rw-r--r-- | arch/mips/include/asm/stackframe.h | 2 | ||||
-rw-r--r-- | arch/mips/include/asm/uasm.h | 18 | ||||
-rw-r--r-- | arch/mips/jazz/setup.c | 12 | ||||
-rw-r--r-- | arch/mips/kernel/traps.c | 16 | ||||
-rw-r--r-- | arch/mips/loongson/common/machtype.c | 2 | ||||
-rw-r--r-- | arch/mips/loongson/common/mem.c | 4 | ||||
-rw-r--r-- | arch/mips/loongson/common/reset.c | 20 | ||||
-rw-r--r-- | arch/mips/loongson/common/setup.c | 15 | ||||
-rw-r--r-- | arch/mips/loongson/lemote-2f/irq.c | 2 | ||||
-rw-r--r-- | arch/mips/mm/tlbex.c | 140 | ||||
-rw-r--r-- | arch/mips/nxp/pnx8550/common/reset.c | 2 | ||||
-rw-r--r-- | arch/mips/pci/pci-sb1250.c | 3 | ||||
-rw-r--r-- | arch/mips/sgi-ip22/ip22-berr.c | 2 | ||||
-rw-r--r-- | arch/mips/sgi-ip22/ip28-berr.c | 2 | ||||
-rw-r--r-- | arch/mips/sibyte/swarm/setup.c | 17 |
23 files changed, 570 insertions, 176 deletions
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig index 29e86923d1bf..7e6fd1cbd3f8 100644 --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig | |||
@@ -49,7 +49,7 @@ config AR7 | |||
49 | family: TNETD7100, 7200 and 7300. | 49 | family: TNETD7100, 7200 and 7300. |
50 | 50 | ||
51 | config BCM47XX | 51 | config BCM47XX |
52 | bool "BCM47XX based boards" | 52 | bool "Broadcom BCM47XX based boards" |
53 | select CEVT_R4K | 53 | select CEVT_R4K |
54 | select CSRC_R4K | 54 | select CSRC_R4K |
55 | select DMA_NONCOHERENT | 55 | select DMA_NONCOHERENT |
@@ -509,6 +509,7 @@ config SIBYTE_SWARM | |||
509 | bool "Sibyte BCM91250A-SWARM" | 509 | bool "Sibyte BCM91250A-SWARM" |
510 | select BOOT_ELF32 | 510 | select BOOT_ELF32 |
511 | select DMA_COHERENT | 511 | select DMA_COHERENT |
512 | select HAVE_PATA_PLATFORM | ||
512 | select NR_CPUS_DEFAULT_2 | 513 | select NR_CPUS_DEFAULT_2 |
513 | select SIBYTE_SB1250 | 514 | select SIBYTE_SB1250 |
514 | select SWAP_IO_SPACE | 515 | select SWAP_IO_SPACE |
@@ -523,6 +524,7 @@ config SIBYTE_LITTLESUR | |||
523 | depends on EXPERIMENTAL | 524 | depends on EXPERIMENTAL |
524 | select BOOT_ELF32 | 525 | select BOOT_ELF32 |
525 | select DMA_COHERENT | 526 | select DMA_COHERENT |
527 | select HAVE_PATA_PLATFORM | ||
526 | select NR_CPUS_DEFAULT_2 | 528 | select NR_CPUS_DEFAULT_2 |
527 | select SIBYTE_SB1250 | 529 | select SIBYTE_SB1250 |
528 | select SWAP_IO_SPACE | 530 | select SWAP_IO_SPACE |
@@ -1305,6 +1307,33 @@ config CPU_CAVIUM_OCTEON | |||
1305 | 1307 | ||
1306 | endchoice | 1308 | endchoice |
1307 | 1309 | ||
1310 | if CPU_LOONGSON2F | ||
1311 | config CPU_NOP_WORKAROUNDS | ||
1312 | bool | ||
1313 | |||
1314 | config CPU_JUMP_WORKAROUNDS | ||
1315 | bool | ||
1316 | |||
1317 | config CPU_LOONGSON2F_WORKAROUNDS | ||
1318 | bool "Loongson 2F Workarounds" | ||
1319 | default y | ||
1320 | select CPU_NOP_WORKAROUNDS | ||
1321 | select CPU_JUMP_WORKAROUNDS | ||
1322 | help | ||
1323 | Loongson 2F01 / 2F02 processors have the NOP & JUMP issues which | ||
1324 | require workarounds. Without workarounds the system may hang | ||
1325 | unexpectedly. For more information please refer to the gas | ||
1326 | -mfix-loongson2f-nop and -mfix-loongson2f-jump options. | ||
1327 | |||
1328 | Loongson 2F03 and later have fixed these issues and no workarounds | ||
1329 | are needed. The workarounds have no significant side effect on them | ||
1330 | but may decrease the performance of the system so this option should | ||
1331 | be disabled unless the kernel is intended to be run on 2F01 or 2F02 | ||
1332 | systems. | ||
1333 | |||
1334 | If unsure, please say Y. | ||
1335 | endif # CPU_LOONGSON2F | ||
1336 | |||
1308 | config SYS_SUPPORTS_ZBOOT | 1337 | config SYS_SUPPORTS_ZBOOT |
1309 | bool | 1338 | bool |
1310 | select HAVE_KERNEL_GZIP | 1339 | select HAVE_KERNEL_GZIP |
diff --git a/arch/mips/Makefile b/arch/mips/Makefile index 2f2eac233322..0b9c01add0a0 100644 --- a/arch/mips/Makefile +++ b/arch/mips/Makefile | |||
@@ -136,6 +136,19 @@ cflags-$(CONFIG_CPU_LOONGSON2E) += \ | |||
136 | $(call cc-option,-march=loongson2e,-march=r4600) | 136 | $(call cc-option,-march=loongson2e,-march=r4600) |
137 | cflags-$(CONFIG_CPU_LOONGSON2F) += \ | 137 | cflags-$(CONFIG_CPU_LOONGSON2F) += \ |
138 | $(call cc-option,-march=loongson2f,-march=r4600) | 138 | $(call cc-option,-march=loongson2f,-march=r4600) |
139 | # enable the workarounds for loongson2f | ||
140 | ifdef CONFIG_CPU_LOONGSON2F_WORKAROUNDS | ||
141 | ifeq ($(call as-option,-Wa$(comma)-mfix-loongson2f-nop,),) | ||
142 | $(error only binutils >= 2.20.2 have needed option -mfix-loongson2f-nop) | ||
143 | else | ||
144 | cflags-$(CONFIG_CPU_NOP_WORKAROUNDS) += -Wa$(comma)-mfix-loongson2f-nop | ||
145 | endif | ||
146 | ifeq ($(call as-option,-Wa$(comma)-mfix-loongson2f-jump,),) | ||
147 | $(error only binutils >= 2.20.2 have needed option -mfix-loongson2f-jump) | ||
148 | else | ||
149 | cflags-$(CONFIG_CPU_JUMP_WORKAROUNDS) += -Wa$(comma)-mfix-loongson2f-jump | ||
150 | endif | ||
151 | endif | ||
139 | 152 | ||
140 | cflags-$(CONFIG_CPU_MIPS32_R1) += $(call cc-option,-march=mips32,-mips32 -U_MIPS_ISA -D_MIPS_ISA=_MIPS_ISA_MIPS32) \ | 153 | cflags-$(CONFIG_CPU_MIPS32_R1) += $(call cc-option,-march=mips32,-mips32 -U_MIPS_ISA -D_MIPS_ISA=_MIPS_ISA_MIPS32) \ |
141 | -Wa,-mips32 -Wa,--trap | 154 | -Wa,-mips32 -Wa,--trap |
diff --git a/arch/mips/alchemy/devboards/db1200/setup.c b/arch/mips/alchemy/devboards/db1200/setup.c index be7e92ea01f3..887619547553 100644 --- a/arch/mips/alchemy/devboards/db1200/setup.c +++ b/arch/mips/alchemy/devboards/db1200/setup.c | |||
@@ -66,12 +66,16 @@ static int __init db1200_arch_init(void) | |||
66 | set_irq_type(AU1200_GPIO7_INT, IRQF_TRIGGER_LOW); | 66 | set_irq_type(AU1200_GPIO7_INT, IRQF_TRIGGER_LOW); |
67 | bcsr_init_irq(DB1200_INT_BEGIN, DB1200_INT_END, AU1200_GPIO7_INT); | 67 | bcsr_init_irq(DB1200_INT_BEGIN, DB1200_INT_END, AU1200_GPIO7_INT); |
68 | 68 | ||
69 | /* do not autoenable these: CPLD has broken edge int handling, | 69 | /* insert/eject pairs: one of both is always screaming. To avoid |
70 | * and the CD handler setup requires manual enabling to work | 70 | * issues they must not be automatically enabled when initially |
71 | * around that. | 71 | * requested. |
72 | */ | 72 | */ |
73 | irq_to_desc(DB1200_SD0_INSERT_INT)->status |= IRQ_NOAUTOEN; | 73 | irq_to_desc(DB1200_SD0_INSERT_INT)->status |= IRQ_NOAUTOEN; |
74 | irq_to_desc(DB1200_SD0_EJECT_INT)->status |= IRQ_NOAUTOEN; | 74 | irq_to_desc(DB1200_SD0_EJECT_INT)->status |= IRQ_NOAUTOEN; |
75 | irq_to_desc(DB1200_PC0_INSERT_INT)->status |= IRQ_NOAUTOEN; | ||
76 | irq_to_desc(DB1200_PC0_EJECT_INT)->status |= IRQ_NOAUTOEN; | ||
77 | irq_to_desc(DB1200_PC1_INSERT_INT)->status |= IRQ_NOAUTOEN; | ||
78 | irq_to_desc(DB1200_PC1_EJECT_INT)->status |= IRQ_NOAUTOEN; | ||
75 | 79 | ||
76 | return 0; | 80 | return 0; |
77 | } | 81 | } |
diff --git a/arch/mips/configs/bcm63xx_defconfig b/arch/mips/configs/bcm63xx_defconfig index 7fee0273c829..6389ca0fdc6c 100644 --- a/arch/mips/configs/bcm63xx_defconfig +++ b/arch/mips/configs/bcm63xx_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.30-rc6 | 3 | # Linux kernel version: 2.6.34-rc2 |
4 | # Sun May 31 20:17:18 2009 | 4 | # Tue Mar 23 10:36:32 2010 |
5 | # | 5 | # |
6 | CONFIG_MIPS=y | 6 | CONFIG_MIPS=y |
7 | 7 | ||
@@ -9,13 +9,14 @@ CONFIG_MIPS=y | |||
9 | # Machine selection | 9 | # Machine selection |
10 | # | 10 | # |
11 | # CONFIG_MACH_ALCHEMY is not set | 11 | # CONFIG_MACH_ALCHEMY is not set |
12 | # CONFIG_AR7 is not set | ||
12 | # CONFIG_BCM47XX is not set | 13 | # CONFIG_BCM47XX is not set |
13 | CONFIG_BCM63XX=y | 14 | CONFIG_BCM63XX=y |
14 | # CONFIG_MIPS_COBALT is not set | 15 | # CONFIG_MIPS_COBALT is not set |
15 | # CONFIG_MACH_DECSTATION is not set | 16 | # CONFIG_MACH_DECSTATION is not set |
16 | # CONFIG_MACH_JAZZ is not set | 17 | # CONFIG_MACH_JAZZ is not set |
17 | # CONFIG_LASAT is not set | 18 | # CONFIG_LASAT is not set |
18 | # CONFIG_LEMOTE_FULONG is not set | 19 | # CONFIG_MACH_LOONGSON is not set |
19 | # CONFIG_MIPS_MALTA is not set | 20 | # CONFIG_MIPS_MALTA is not set |
20 | # CONFIG_MIPS_SIM is not set | 21 | # CONFIG_MIPS_SIM is not set |
21 | # CONFIG_NEC_MARKEINS is not set | 22 | # CONFIG_NEC_MARKEINS is not set |
@@ -26,6 +27,7 @@ CONFIG_BCM63XX=y | |||
26 | # CONFIG_PNX8550_STB810 is not set | 27 | # CONFIG_PNX8550_STB810 is not set |
27 | # CONFIG_PMC_MSP is not set | 28 | # CONFIG_PMC_MSP is not set |
28 | # CONFIG_PMC_YOSEMITE is not set | 29 | # CONFIG_PMC_YOSEMITE is not set |
30 | # CONFIG_POWERTV is not set | ||
29 | # CONFIG_SGI_IP22 is not set | 31 | # CONFIG_SGI_IP22 is not set |
30 | # CONFIG_SGI_IP27 is not set | 32 | # CONFIG_SGI_IP27 is not set |
31 | # CONFIG_SGI_IP28 is not set | 33 | # CONFIG_SGI_IP28 is not set |
@@ -45,13 +47,17 @@ CONFIG_BCM63XX=y | |||
45 | # CONFIG_WR_PPMC is not set | 47 | # CONFIG_WR_PPMC is not set |
46 | # CONFIG_CAVIUM_OCTEON_SIMULATOR is not set | 48 | # CONFIG_CAVIUM_OCTEON_SIMULATOR is not set |
47 | # CONFIG_CAVIUM_OCTEON_REFERENCE_BOARD is not set | 49 | # CONFIG_CAVIUM_OCTEON_REFERENCE_BOARD is not set |
50 | # CONFIG_ALCHEMY_GPIO_INDIRECT is not set | ||
48 | 51 | ||
49 | # | 52 | # |
50 | # CPU support | 53 | # CPU support |
51 | # | 54 | # |
55 | CONFIG_BCM63XX_CPU_6338=y | ||
56 | CONFIG_BCM63XX_CPU_6345=y | ||
52 | CONFIG_BCM63XX_CPU_6348=y | 57 | CONFIG_BCM63XX_CPU_6348=y |
53 | CONFIG_BCM63XX_CPU_6358=y | 58 | CONFIG_BCM63XX_CPU_6358=y |
54 | CONFIG_BOARD_BCM963XX=y | 59 | CONFIG_BOARD_BCM963XX=y |
60 | CONFIG_LOONGSON_UART_BASE=y | ||
55 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 61 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
56 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set | 62 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set |
57 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set | 63 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set |
@@ -69,10 +75,8 @@ CONFIG_CEVT_R4K=y | |||
69 | CONFIG_CSRC_R4K_LIB=y | 75 | CONFIG_CSRC_R4K_LIB=y |
70 | CONFIG_CSRC_R4K=y | 76 | CONFIG_CSRC_R4K=y |
71 | CONFIG_DMA_NONCOHERENT=y | 77 | CONFIG_DMA_NONCOHERENT=y |
72 | CONFIG_DMA_NEED_PCI_MAP_STATE=y | 78 | CONFIG_NEED_DMA_MAP_STATE=y |
73 | CONFIG_EARLY_PRINTK=y | ||
74 | CONFIG_SYS_HAS_EARLY_PRINTK=y | 79 | CONFIG_SYS_HAS_EARLY_PRINTK=y |
75 | # CONFIG_HOTPLUG_CPU is not set | ||
76 | # CONFIG_NO_IOPORT is not set | 80 | # CONFIG_NO_IOPORT is not set |
77 | CONFIG_GENERIC_GPIO=y | 81 | CONFIG_GENERIC_GPIO=y |
78 | CONFIG_CPU_BIG_ENDIAN=y | 82 | CONFIG_CPU_BIG_ENDIAN=y |
@@ -85,7 +89,8 @@ CONFIG_MIPS_L1_CACHE_SHIFT=5 | |||
85 | # | 89 | # |
86 | # CPU selection | 90 | # CPU selection |
87 | # | 91 | # |
88 | # CONFIG_CPU_LOONGSON2 is not set | 92 | # CONFIG_CPU_LOONGSON2E is not set |
93 | # CONFIG_CPU_LOONGSON2F is not set | ||
89 | CONFIG_CPU_MIPS32_R1=y | 94 | CONFIG_CPU_MIPS32_R1=y |
90 | # CONFIG_CPU_MIPS32_R2 is not set | 95 | # CONFIG_CPU_MIPS32_R2 is not set |
91 | # CONFIG_CPU_MIPS64_R1 is not set | 96 | # CONFIG_CPU_MIPS64_R1 is not set |
@@ -128,7 +133,7 @@ CONFIG_CPU_HAS_PREFETCH=y | |||
128 | CONFIG_MIPS_MT_DISABLED=y | 133 | CONFIG_MIPS_MT_DISABLED=y |
129 | # CONFIG_MIPS_MT_SMP is not set | 134 | # CONFIG_MIPS_MT_SMP is not set |
130 | # CONFIG_MIPS_MT_SMTC is not set | 135 | # CONFIG_MIPS_MT_SMTC is not set |
131 | CONFIG_CPU_HAS_LLSC=y | 136 | # CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set |
132 | CONFIG_CPU_HAS_SYNC=y | 137 | CONFIG_CPU_HAS_SYNC=y |
133 | CONFIG_GENERIC_HARDIRQS=y | 138 | CONFIG_GENERIC_HARDIRQS=y |
134 | CONFIG_GENERIC_IRQ_PROBE=y | 139 | CONFIG_GENERIC_IRQ_PROBE=y |
@@ -146,9 +151,8 @@ CONFIG_SPLIT_PTLOCK_CPUS=4 | |||
146 | # CONFIG_PHYS_ADDR_T_64BIT is not set | 151 | # CONFIG_PHYS_ADDR_T_64BIT is not set |
147 | CONFIG_ZONE_DMA_FLAG=0 | 152 | CONFIG_ZONE_DMA_FLAG=0 |
148 | CONFIG_VIRT_TO_BUS=y | 153 | CONFIG_VIRT_TO_BUS=y |
149 | CONFIG_UNEVICTABLE_LRU=y | 154 | # CONFIG_KSM is not set |
150 | CONFIG_HAVE_MLOCK=y | 155 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
151 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
152 | CONFIG_TICK_ONESHOT=y | 156 | CONFIG_TICK_ONESHOT=y |
153 | CONFIG_NO_HZ=y | 157 | CONFIG_NO_HZ=y |
154 | # CONFIG_HIGH_RES_TIMERS is not set | 158 | # CONFIG_HIGH_RES_TIMERS is not set |
@@ -170,6 +174,7 @@ CONFIG_PREEMPT_NONE=y | |||
170 | CONFIG_LOCKDEP_SUPPORT=y | 174 | CONFIG_LOCKDEP_SUPPORT=y |
171 | CONFIG_STACKTRACE_SUPPORT=y | 175 | CONFIG_STACKTRACE_SUPPORT=y |
172 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 176 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
177 | CONFIG_CONSTRUCTORS=y | ||
173 | 178 | ||
174 | # | 179 | # |
175 | # General setup | 180 | # General setup |
@@ -189,15 +194,12 @@ CONFIG_LOCALVERSION="" | |||
189 | # | 194 | # |
190 | # RCU Subsystem | 195 | # RCU Subsystem |
191 | # | 196 | # |
192 | CONFIG_CLASSIC_RCU=y | ||
193 | # CONFIG_TREE_RCU is not set | 197 | # CONFIG_TREE_RCU is not set |
194 | # CONFIG_PREEMPT_RCU is not set | 198 | # CONFIG_TREE_PREEMPT_RCU is not set |
199 | CONFIG_TINY_RCU=y | ||
195 | # CONFIG_TREE_RCU_TRACE is not set | 200 | # CONFIG_TREE_RCU_TRACE is not set |
196 | # CONFIG_PREEMPT_RCU_TRACE is not set | ||
197 | # CONFIG_IKCONFIG is not set | 201 | # CONFIG_IKCONFIG is not set |
198 | CONFIG_LOG_BUF_SHIFT=17 | 202 | CONFIG_LOG_BUF_SHIFT=17 |
199 | # CONFIG_GROUP_SCHED is not set | ||
200 | # CONFIG_CGROUPS is not set | ||
201 | CONFIG_SYSFS_DEPRECATED=y | 203 | CONFIG_SYSFS_DEPRECATED=y |
202 | CONFIG_SYSFS_DEPRECATED_V2=y | 204 | CONFIG_SYSFS_DEPRECATED_V2=y |
203 | # CONFIG_RELAY is not set | 205 | # CONFIG_RELAY is not set |
@@ -205,11 +207,11 @@ CONFIG_SYSFS_DEPRECATED_V2=y | |||
205 | # CONFIG_BLK_DEV_INITRD is not set | 207 | # CONFIG_BLK_DEV_INITRD is not set |
206 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y | 208 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y |
207 | CONFIG_SYSCTL=y | 209 | CONFIG_SYSCTL=y |
210 | CONFIG_ANON_INODES=y | ||
208 | CONFIG_EMBEDDED=y | 211 | CONFIG_EMBEDDED=y |
209 | CONFIG_SYSCTL_SYSCALL=y | 212 | CONFIG_SYSCTL_SYSCALL=y |
210 | CONFIG_KALLSYMS=y | 213 | CONFIG_KALLSYMS=y |
211 | # CONFIG_KALLSYMS_EXTRA_PASS is not set | 214 | # CONFIG_KALLSYMS_EXTRA_PASS is not set |
212 | # CONFIG_STRIP_ASM_SYMS is not set | ||
213 | CONFIG_HOTPLUG=y | 215 | CONFIG_HOTPLUG=y |
214 | CONFIG_PRINTK=y | 216 | CONFIG_PRINTK=y |
215 | CONFIG_BUG=y | 217 | CONFIG_BUG=y |
@@ -223,6 +225,10 @@ CONFIG_BASE_FULL=y | |||
223 | # CONFIG_EVENTFD is not set | 225 | # CONFIG_EVENTFD is not set |
224 | # CONFIG_SHMEM is not set | 226 | # CONFIG_SHMEM is not set |
225 | # CONFIG_AIO is not set | 227 | # CONFIG_AIO is not set |
228 | |||
229 | # | ||
230 | # Kernel Performance Events And Counters | ||
231 | # | ||
226 | # CONFIG_VM_EVENT_COUNTERS is not set | 232 | # CONFIG_VM_EVENT_COUNTERS is not set |
227 | CONFIG_PCI_QUIRKS=y | 233 | CONFIG_PCI_QUIRKS=y |
228 | # CONFIG_SLUB_DEBUG is not set | 234 | # CONFIG_SLUB_DEBUG is not set |
@@ -231,14 +237,17 @@ CONFIG_COMPAT_BRK=y | |||
231 | CONFIG_SLUB=y | 237 | CONFIG_SLUB=y |
232 | # CONFIG_SLOB is not set | 238 | # CONFIG_SLOB is not set |
233 | # CONFIG_PROFILING is not set | 239 | # CONFIG_PROFILING is not set |
234 | # CONFIG_MARKERS is not set | ||
235 | CONFIG_HAVE_OPROFILE=y | 240 | CONFIG_HAVE_OPROFILE=y |
241 | |||
242 | # | ||
243 | # GCOV-based kernel profiling | ||
244 | # | ||
236 | # CONFIG_SLOW_WORK is not set | 245 | # CONFIG_SLOW_WORK is not set |
237 | # CONFIG_HAVE_GENERIC_DMA_COHERENT is not set | 246 | CONFIG_HAVE_GENERIC_DMA_COHERENT=y |
238 | CONFIG_BASE_SMALL=0 | 247 | CONFIG_BASE_SMALL=0 |
239 | # CONFIG_MODULES is not set | 248 | # CONFIG_MODULES is not set |
240 | CONFIG_BLOCK=y | 249 | CONFIG_BLOCK=y |
241 | # CONFIG_LBD is not set | 250 | CONFIG_LBDAF=y |
242 | # CONFIG_BLK_DEV_BSG is not set | 251 | # CONFIG_BLK_DEV_BSG is not set |
243 | # CONFIG_BLK_DEV_INTEGRITY is not set | 252 | # CONFIG_BLK_DEV_INTEGRITY is not set |
244 | 253 | ||
@@ -246,14 +255,41 @@ CONFIG_BLOCK=y | |||
246 | # IO Schedulers | 255 | # IO Schedulers |
247 | # | 256 | # |
248 | CONFIG_IOSCHED_NOOP=y | 257 | CONFIG_IOSCHED_NOOP=y |
249 | # CONFIG_IOSCHED_AS is not set | ||
250 | # CONFIG_IOSCHED_DEADLINE is not set | 258 | # CONFIG_IOSCHED_DEADLINE is not set |
251 | # CONFIG_IOSCHED_CFQ is not set | 259 | # CONFIG_IOSCHED_CFQ is not set |
252 | # CONFIG_DEFAULT_AS is not set | ||
253 | # CONFIG_DEFAULT_DEADLINE is not set | 260 | # CONFIG_DEFAULT_DEADLINE is not set |
254 | # CONFIG_DEFAULT_CFQ is not set | 261 | # CONFIG_DEFAULT_CFQ is not set |
255 | CONFIG_DEFAULT_NOOP=y | 262 | CONFIG_DEFAULT_NOOP=y |
256 | CONFIG_DEFAULT_IOSCHED="noop" | 263 | CONFIG_DEFAULT_IOSCHED="noop" |
264 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
265 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
266 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
267 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
268 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
269 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
270 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
271 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
272 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
273 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
274 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
275 | # CONFIG_INLINE_READ_LOCK is not set | ||
276 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
277 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
278 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
279 | CONFIG_INLINE_READ_UNLOCK=y | ||
280 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
281 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
282 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
283 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
284 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
285 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
286 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
287 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
288 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
289 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
290 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
291 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
292 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
257 | # CONFIG_FREEZER is not set | 293 | # CONFIG_FREEZER is not set |
258 | 294 | ||
259 | # | 295 | # |
@@ -263,15 +299,12 @@ CONFIG_HW_HAS_PCI=y | |||
263 | CONFIG_PCI=y | 299 | CONFIG_PCI=y |
264 | CONFIG_PCI_DOMAINS=y | 300 | CONFIG_PCI_DOMAINS=y |
265 | # CONFIG_ARCH_SUPPORTS_MSI is not set | 301 | # CONFIG_ARCH_SUPPORTS_MSI is not set |
266 | # CONFIG_PCI_LEGACY is not set | ||
267 | # CONFIG_PCI_STUB is not set | 302 | # CONFIG_PCI_STUB is not set |
268 | # CONFIG_PCI_IOV is not set | 303 | # CONFIG_PCI_IOV is not set |
269 | CONFIG_MMU=y | 304 | CONFIG_MMU=y |
270 | CONFIG_PCCARD=y | 305 | CONFIG_PCCARD=y |
271 | # CONFIG_PCMCIA_DEBUG is not set | ||
272 | CONFIG_PCMCIA=y | 306 | CONFIG_PCMCIA=y |
273 | CONFIG_PCMCIA_LOAD_CIS=y | 307 | CONFIG_PCMCIA_LOAD_CIS=y |
274 | CONFIG_PCMCIA_IOCTL=y | ||
275 | CONFIG_CARDBUS=y | 308 | CONFIG_CARDBUS=y |
276 | 309 | ||
277 | # | 310 | # |
@@ -295,6 +328,7 @@ CONFIG_TRAD_SIGNALS=y | |||
295 | # | 328 | # |
296 | # Power management options | 329 | # Power management options |
297 | # | 330 | # |
331 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | ||
298 | CONFIG_ARCH_SUSPEND_POSSIBLE=y | 332 | CONFIG_ARCH_SUSPEND_POSSIBLE=y |
299 | # CONFIG_PM is not set | 333 | # CONFIG_PM is not set |
300 | CONFIG_NET=y | 334 | CONFIG_NET=y |
@@ -333,6 +367,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
333 | # CONFIG_NETFILTER is not set | 367 | # CONFIG_NETFILTER is not set |
334 | # CONFIG_IP_DCCP is not set | 368 | # CONFIG_IP_DCCP is not set |
335 | # CONFIG_IP_SCTP is not set | 369 | # CONFIG_IP_SCTP is not set |
370 | # CONFIG_RDS is not set | ||
336 | # CONFIG_TIPC is not set | 371 | # CONFIG_TIPC is not set |
337 | # CONFIG_ATM is not set | 372 | # CONFIG_ATM is not set |
338 | # CONFIG_BRIDGE is not set | 373 | # CONFIG_BRIDGE is not set |
@@ -347,6 +382,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
347 | # CONFIG_ECONET is not set | 382 | # CONFIG_ECONET is not set |
348 | # CONFIG_WAN_ROUTER is not set | 383 | # CONFIG_WAN_ROUTER is not set |
349 | # CONFIG_PHONET is not set | 384 | # CONFIG_PHONET is not set |
385 | # CONFIG_IEEE802154 is not set | ||
350 | # CONFIG_NET_SCHED is not set | 386 | # CONFIG_NET_SCHED is not set |
351 | # CONFIG_DCB is not set | 387 | # CONFIG_DCB is not set |
352 | 388 | ||
@@ -359,7 +395,27 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
359 | # CONFIG_IRDA is not set | 395 | # CONFIG_IRDA is not set |
360 | # CONFIG_BT is not set | 396 | # CONFIG_BT is not set |
361 | # CONFIG_AF_RXRPC is not set | 397 | # CONFIG_AF_RXRPC is not set |
362 | # CONFIG_WIRELESS is not set | 398 | CONFIG_WIRELESS=y |
399 | CONFIG_WEXT_CORE=y | ||
400 | CONFIG_WEXT_PROC=y | ||
401 | CONFIG_CFG80211=y | ||
402 | CONFIG_NL80211_TESTMODE=y | ||
403 | # CONFIG_CFG80211_DEVELOPER_WARNINGS is not set | ||
404 | # CONFIG_CFG80211_REG_DEBUG is not set | ||
405 | CONFIG_CFG80211_DEFAULT_PS=y | ||
406 | # CONFIG_CFG80211_INTERNAL_REGDB is not set | ||
407 | CONFIG_CFG80211_WEXT=y | ||
408 | CONFIG_WIRELESS_EXT_SYSFS=y | ||
409 | # CONFIG_LIB80211 is not set | ||
410 | CONFIG_MAC80211=y | ||
411 | # CONFIG_MAC80211_RC_PID is not set | ||
412 | CONFIG_MAC80211_RC_MINSTREL=y | ||
413 | # CONFIG_MAC80211_RC_DEFAULT_PID is not set | ||
414 | CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y | ||
415 | CONFIG_MAC80211_RC_DEFAULT="minstrel" | ||
416 | # CONFIG_MAC80211_MESH is not set | ||
417 | CONFIG_MAC80211_LEDS=y | ||
418 | # CONFIG_MAC80211_DEBUG_MENU is not set | ||
363 | # CONFIG_WIMAX is not set | 419 | # CONFIG_WIMAX is not set |
364 | # CONFIG_RFKILL is not set | 420 | # CONFIG_RFKILL is not set |
365 | # CONFIG_NET_9P is not set | 421 | # CONFIG_NET_9P is not set |
@@ -471,6 +527,7 @@ CONFIG_HAVE_IDE=y | |||
471 | # | 527 | # |
472 | # SCSI device support | 528 | # SCSI device support |
473 | # | 529 | # |
530 | CONFIG_SCSI_MOD=y | ||
474 | # CONFIG_RAID_ATTRS is not set | 531 | # CONFIG_RAID_ATTRS is not set |
475 | # CONFIG_SCSI is not set | 532 | # CONFIG_SCSI is not set |
476 | # CONFIG_SCSI_DMA is not set | 533 | # CONFIG_SCSI_DMA is not set |
@@ -484,13 +541,16 @@ CONFIG_HAVE_IDE=y | |||
484 | # | 541 | # |
485 | 542 | ||
486 | # | 543 | # |
487 | # Enable only one of the two stacks, unless you know what you are doing | 544 | # You can enable one or both FireWire driver stacks. |
545 | # | ||
546 | |||
547 | # | ||
548 | # The newer stack is recommended. | ||
488 | # | 549 | # |
489 | # CONFIG_FIREWIRE is not set | 550 | # CONFIG_FIREWIRE is not set |
490 | # CONFIG_IEEE1394 is not set | 551 | # CONFIG_IEEE1394 is not set |
491 | # CONFIG_I2O is not set | 552 | # CONFIG_I2O is not set |
492 | CONFIG_NETDEVICES=y | 553 | CONFIG_NETDEVICES=y |
493 | CONFIG_COMPAT_NET_DEV_OPS=y | ||
494 | # CONFIG_DUMMY is not set | 554 | # CONFIG_DUMMY is not set |
495 | # CONFIG_BONDING is not set | 555 | # CONFIG_BONDING is not set |
496 | # CONFIG_MACVLAN is not set | 556 | # CONFIG_MACVLAN is not set |
@@ -529,6 +589,7 @@ CONFIG_MII=y | |||
529 | # CONFIG_SMC91X is not set | 589 | # CONFIG_SMC91X is not set |
530 | # CONFIG_DM9000 is not set | 590 | # CONFIG_DM9000 is not set |
531 | # CONFIG_ETHOC is not set | 591 | # CONFIG_ETHOC is not set |
592 | # CONFIG_SMSC911X is not set | ||
532 | # CONFIG_DNET is not set | 593 | # CONFIG_DNET is not set |
533 | # CONFIG_NET_TULIP is not set | 594 | # CONFIG_NET_TULIP is not set |
534 | # CONFIG_HP100 is not set | 595 | # CONFIG_HP100 is not set |
@@ -541,17 +602,48 @@ CONFIG_MII=y | |||
541 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set | 602 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set |
542 | # CONFIG_NET_PCI is not set | 603 | # CONFIG_NET_PCI is not set |
543 | # CONFIG_B44 is not set | 604 | # CONFIG_B44 is not set |
605 | # CONFIG_KS8842 is not set | ||
606 | # CONFIG_KS8851_MLL is not set | ||
544 | # CONFIG_ATL2 is not set | 607 | # CONFIG_ATL2 is not set |
545 | CONFIG_BCM63XX_ENET=y | 608 | CONFIG_BCM63XX_ENET=y |
546 | # CONFIG_NETDEV_1000 is not set | 609 | # CONFIG_NETDEV_1000 is not set |
547 | # CONFIG_NETDEV_10000 is not set | 610 | # CONFIG_NETDEV_10000 is not set |
548 | # CONFIG_TR is not set | 611 | # CONFIG_TR is not set |
549 | 612 | CONFIG_WLAN=y | |
550 | # | 613 | # CONFIG_PCMCIA_RAYCS is not set |
551 | # Wireless LAN | 614 | # CONFIG_LIBERTAS_THINFIRM is not set |
552 | # | 615 | # CONFIG_ATMEL is not set |
553 | # CONFIG_WLAN_PRE80211 is not set | 616 | # CONFIG_AT76C50X_USB is not set |
554 | # CONFIG_WLAN_80211 is not set | 617 | # CONFIG_AIRO_CS is not set |
618 | # CONFIG_PCMCIA_WL3501 is not set | ||
619 | # CONFIG_PRISM54 is not set | ||
620 | # CONFIG_USB_ZD1201 is not set | ||
621 | # CONFIG_USB_NET_RNDIS_WLAN is not set | ||
622 | # CONFIG_RTL8180 is not set | ||
623 | # CONFIG_RTL8187 is not set | ||
624 | # CONFIG_ADM8211 is not set | ||
625 | # CONFIG_MAC80211_HWSIM is not set | ||
626 | # CONFIG_MWL8K is not set | ||
627 | # CONFIG_ATH_COMMON is not set | ||
628 | CONFIG_B43=y | ||
629 | CONFIG_B43_PCI_AUTOSELECT=y | ||
630 | CONFIG_B43_PCICORE_AUTOSELECT=y | ||
631 | # CONFIG_B43_PCMCIA is not set | ||
632 | CONFIG_B43_PIO=y | ||
633 | # CONFIG_B43_PHY_LP is not set | ||
634 | CONFIG_B43_LEDS=y | ||
635 | # CONFIG_B43_DEBUG is not set | ||
636 | # CONFIG_B43LEGACY is not set | ||
637 | # CONFIG_HOSTAP is not set | ||
638 | # CONFIG_IPW2100 is not set | ||
639 | # CONFIG_IPW2200 is not set | ||
640 | # CONFIG_IWLWIFI is not set | ||
641 | # CONFIG_LIBERTAS is not set | ||
642 | # CONFIG_HERMES is not set | ||
643 | # CONFIG_P54_COMMON is not set | ||
644 | # CONFIG_RT2X00 is not set | ||
645 | # CONFIG_WL12XX is not set | ||
646 | # CONFIG_ZD1211RW is not set | ||
555 | 647 | ||
556 | # | 648 | # |
557 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 649 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -574,6 +666,7 @@ CONFIG_BCM63XX_ENET=y | |||
574 | # CONFIG_NETCONSOLE is not set | 666 | # CONFIG_NETCONSOLE is not set |
575 | # CONFIG_NETPOLL is not set | 667 | # CONFIG_NETPOLL is not set |
576 | # CONFIG_NET_POLL_CONTROLLER is not set | 668 | # CONFIG_NET_POLL_CONTROLLER is not set |
669 | # CONFIG_VMXNET3 is not set | ||
577 | # CONFIG_ISDN is not set | 670 | # CONFIG_ISDN is not set |
578 | # CONFIG_PHONE is not set | 671 | # CONFIG_PHONE is not set |
579 | 672 | ||
@@ -607,6 +700,7 @@ CONFIG_BCM63XX_ENET=y | |||
607 | CONFIG_SERIAL_CORE=y | 700 | CONFIG_SERIAL_CORE=y |
608 | CONFIG_SERIAL_CORE_CONSOLE=y | 701 | CONFIG_SERIAL_CORE_CONSOLE=y |
609 | # CONFIG_SERIAL_JSM is not set | 702 | # CONFIG_SERIAL_JSM is not set |
703 | # CONFIG_SERIAL_TIMBERDALE is not set | ||
610 | CONFIG_SERIAL_BCM63XX=y | 704 | CONFIG_SERIAL_BCM63XX=y |
611 | CONFIG_SERIAL_BCM63XX_CONSOLE=y | 705 | CONFIG_SERIAL_BCM63XX_CONSOLE=y |
612 | # CONFIG_UNIX98_PTYS is not set | 706 | # CONFIG_UNIX98_PTYS is not set |
@@ -629,6 +723,11 @@ CONFIG_LEGACY_PTY_COUNT=256 | |||
629 | CONFIG_DEVPORT=y | 723 | CONFIG_DEVPORT=y |
630 | # CONFIG_I2C is not set | 724 | # CONFIG_I2C is not set |
631 | # CONFIG_SPI is not set | 725 | # CONFIG_SPI is not set |
726 | |||
727 | # | ||
728 | # PPS support | ||
729 | # | ||
730 | # CONFIG_PPS is not set | ||
632 | CONFIG_ARCH_REQUIRE_GPIOLIB=y | 731 | CONFIG_ARCH_REQUIRE_GPIOLIB=y |
633 | CONFIG_GPIOLIB=y | 732 | CONFIG_GPIOLIB=y |
634 | # CONFIG_GPIO_SYSFS is not set | 733 | # CONFIG_GPIO_SYSFS is not set |
@@ -636,6 +735,8 @@ CONFIG_GPIOLIB=y | |||
636 | # | 735 | # |
637 | # Memory mapped GPIO expanders: | 736 | # Memory mapped GPIO expanders: |
638 | # | 737 | # |
738 | # CONFIG_GPIO_IT8761E is not set | ||
739 | # CONFIG_GPIO_SCH is not set | ||
639 | 740 | ||
640 | # | 741 | # |
641 | # I2C GPIO expanders: | 742 | # I2C GPIO expanders: |
@@ -644,16 +745,21 @@ CONFIG_GPIOLIB=y | |||
644 | # | 745 | # |
645 | # PCI GPIO expanders: | 746 | # PCI GPIO expanders: |
646 | # | 747 | # |
748 | # CONFIG_GPIO_CS5535 is not set | ||
647 | # CONFIG_GPIO_BT8XX is not set | 749 | # CONFIG_GPIO_BT8XX is not set |
750 | # CONFIG_GPIO_LANGWELL is not set | ||
648 | 751 | ||
649 | # | 752 | # |
650 | # SPI GPIO expanders: | 753 | # SPI GPIO expanders: |
651 | # | 754 | # |
755 | |||
756 | # | ||
757 | # AC97 GPIO expanders: | ||
758 | # | ||
652 | # CONFIG_W1 is not set | 759 | # CONFIG_W1 is not set |
653 | # CONFIG_POWER_SUPPLY is not set | 760 | # CONFIG_POWER_SUPPLY is not set |
654 | # CONFIG_HWMON is not set | 761 | # CONFIG_HWMON is not set |
655 | # CONFIG_THERMAL is not set | 762 | # CONFIG_THERMAL is not set |
656 | # CONFIG_THERMAL_HWMON is not set | ||
657 | # CONFIG_WATCHDOG is not set | 763 | # CONFIG_WATCHDOG is not set |
658 | CONFIG_SSB_POSSIBLE=y | 764 | CONFIG_SSB_POSSIBLE=y |
659 | 765 | ||
@@ -662,15 +768,16 @@ CONFIG_SSB_POSSIBLE=y | |||
662 | # | 768 | # |
663 | CONFIG_SSB=y | 769 | CONFIG_SSB=y |
664 | CONFIG_SSB_SPROM=y | 770 | CONFIG_SSB_SPROM=y |
771 | CONFIG_SSB_BLOCKIO=y | ||
665 | CONFIG_SSB_PCIHOST_POSSIBLE=y | 772 | CONFIG_SSB_PCIHOST_POSSIBLE=y |
666 | CONFIG_SSB_PCIHOST=y | 773 | CONFIG_SSB_PCIHOST=y |
667 | # CONFIG_SSB_B43_PCI_BRIDGE is not set | 774 | CONFIG_SSB_B43_PCI_BRIDGE=y |
668 | CONFIG_SSB_PCMCIAHOST_POSSIBLE=y | 775 | CONFIG_SSB_PCMCIAHOST_POSSIBLE=y |
669 | # CONFIG_SSB_PCMCIAHOST is not set | 776 | # CONFIG_SSB_PCMCIAHOST is not set |
670 | # CONFIG_SSB_SILENT is not set | 777 | # CONFIG_SSB_SILENT is not set |
671 | # CONFIG_SSB_DEBUG is not set | 778 | # CONFIG_SSB_DEBUG is not set |
672 | CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y | 779 | CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y |
673 | # CONFIG_SSB_DRIVER_PCICORE is not set | 780 | CONFIG_SSB_DRIVER_PCICORE=y |
674 | # CONFIG_SSB_DRIVER_MIPS is not set | 781 | # CONFIG_SSB_DRIVER_MIPS is not set |
675 | 782 | ||
676 | # | 783 | # |
@@ -680,27 +787,15 @@ CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y | |||
680 | # CONFIG_MFD_SM501 is not set | 787 | # CONFIG_MFD_SM501 is not set |
681 | # CONFIG_HTC_PASIC3 is not set | 788 | # CONFIG_HTC_PASIC3 is not set |
682 | # CONFIG_MFD_TMIO is not set | 789 | # CONFIG_MFD_TMIO is not set |
790 | # CONFIG_MFD_TIMBERDALE is not set | ||
791 | # CONFIG_LPC_SCH is not set | ||
683 | # CONFIG_REGULATOR is not set | 792 | # CONFIG_REGULATOR is not set |
684 | 793 | # CONFIG_MEDIA_SUPPORT is not set | |
685 | # | ||
686 | # Multimedia devices | ||
687 | # | ||
688 | |||
689 | # | ||
690 | # Multimedia core support | ||
691 | # | ||
692 | # CONFIG_VIDEO_DEV is not set | ||
693 | # CONFIG_DVB_CORE is not set | ||
694 | # CONFIG_VIDEO_MEDIA is not set | ||
695 | |||
696 | # | ||
697 | # Multimedia drivers | ||
698 | # | ||
699 | # CONFIG_DAB is not set | ||
700 | 794 | ||
701 | # | 795 | # |
702 | # Graphics support | 796 | # Graphics support |
703 | # | 797 | # |
798 | # CONFIG_VGA_ARB is not set | ||
704 | # CONFIG_DRM is not set | 799 | # CONFIG_DRM is not set |
705 | # CONFIG_VGASTATE is not set | 800 | # CONFIG_VGASTATE is not set |
706 | # CONFIG_VIDEO_OUTPUT_CONTROL is not set | 801 | # CONFIG_VIDEO_OUTPUT_CONTROL is not set |
@@ -710,11 +805,7 @@ CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y | |||
710 | # | 805 | # |
711 | # Display device support | 806 | # Display device support |
712 | # | 807 | # |
713 | CONFIG_DISPLAY_SUPPORT=y | 808 | # CONFIG_DISPLAY_SUPPORT is not set |
714 | |||
715 | # | ||
716 | # Display hardware drivers | ||
717 | # | ||
718 | # CONFIG_SOUND is not set | 809 | # CONFIG_SOUND is not set |
719 | CONFIG_USB_SUPPORT=y | 810 | CONFIG_USB_SUPPORT=y |
720 | CONFIG_USB_ARCH_HAS_HCD=y | 811 | CONFIG_USB_ARCH_HAS_HCD=y |
@@ -741,13 +832,14 @@ CONFIG_USB=y | |||
741 | # USB Host Controller Drivers | 832 | # USB Host Controller Drivers |
742 | # | 833 | # |
743 | # CONFIG_USB_C67X00_HCD is not set | 834 | # CONFIG_USB_C67X00_HCD is not set |
835 | # CONFIG_USB_XHCI_HCD is not set | ||
744 | CONFIG_USB_EHCI_HCD=y | 836 | CONFIG_USB_EHCI_HCD=y |
745 | # CONFIG_USB_EHCI_ROOT_HUB_TT is not set | 837 | # CONFIG_USB_EHCI_ROOT_HUB_TT is not set |
746 | # CONFIG_USB_EHCI_TT_NEWSCHED is not set | 838 | # CONFIG_USB_EHCI_TT_NEWSCHED is not set |
747 | CONFIG_USB_EHCI_BIG_ENDIAN_MMIO=y | ||
748 | # CONFIG_USB_OXU210HP_HCD is not set | 839 | # CONFIG_USB_OXU210HP_HCD is not set |
749 | # CONFIG_USB_ISP116X_HCD is not set | 840 | # CONFIG_USB_ISP116X_HCD is not set |
750 | # CONFIG_USB_ISP1760_HCD is not set | 841 | # CONFIG_USB_ISP1760_HCD is not set |
842 | # CONFIG_USB_ISP1362_HCD is not set | ||
751 | CONFIG_USB_OHCI_HCD=y | 843 | CONFIG_USB_OHCI_HCD=y |
752 | # CONFIG_USB_OHCI_HCD_SSB is not set | 844 | # CONFIG_USB_OHCI_HCD_SSB is not set |
753 | CONFIG_USB_OHCI_BIG_ENDIAN_DESC=y | 845 | CONFIG_USB_OHCI_BIG_ENDIAN_DESC=y |
@@ -796,7 +888,6 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y | |||
796 | # CONFIG_USB_RIO500 is not set | 888 | # CONFIG_USB_RIO500 is not set |
797 | # CONFIG_USB_LEGOTOWER is not set | 889 | # CONFIG_USB_LEGOTOWER is not set |
798 | # CONFIG_USB_LCD is not set | 890 | # CONFIG_USB_LCD is not set |
799 | # CONFIG_USB_BERRY_CHARGE is not set | ||
800 | # CONFIG_USB_LED is not set | 891 | # CONFIG_USB_LED is not set |
801 | # CONFIG_USB_CYPRESS_CY7C63 is not set | 892 | # CONFIG_USB_CYPRESS_CY7C63 is not set |
802 | # CONFIG_USB_CYTHERM is not set | 893 | # CONFIG_USB_CYTHERM is not set |
@@ -807,8 +898,8 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y | |||
807 | # CONFIG_USB_LD is not set | 898 | # CONFIG_USB_LD is not set |
808 | # CONFIG_USB_TRANCEVIBRATOR is not set | 899 | # CONFIG_USB_TRANCEVIBRATOR is not set |
809 | # CONFIG_USB_IOWARRIOR is not set | 900 | # CONFIG_USB_IOWARRIOR is not set |
901 | # CONFIG_USB_TEST is not set | ||
810 | # CONFIG_USB_ISIGHTFW is not set | 902 | # CONFIG_USB_ISIGHTFW is not set |
811 | # CONFIG_USB_VST is not set | ||
812 | # CONFIG_USB_GADGET is not set | 903 | # CONFIG_USB_GADGET is not set |
813 | 904 | ||
814 | # | 905 | # |
@@ -819,7 +910,29 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y | |||
819 | # CONFIG_UWB is not set | 910 | # CONFIG_UWB is not set |
820 | # CONFIG_MMC is not set | 911 | # CONFIG_MMC is not set |
821 | # CONFIG_MEMSTICK is not set | 912 | # CONFIG_MEMSTICK is not set |
822 | # CONFIG_NEW_LEDS is not set | 913 | CONFIG_NEW_LEDS=y |
914 | CONFIG_LEDS_CLASS=y | ||
915 | |||
916 | # | ||
917 | # LED drivers | ||
918 | # | ||
919 | CONFIG_LEDS_GPIO=y | ||
920 | CONFIG_LEDS_GPIO_PLATFORM=y | ||
921 | # CONFIG_LEDS_LT3593 is not set | ||
922 | CONFIG_LEDS_TRIGGERS=y | ||
923 | |||
924 | # | ||
925 | # LED Triggers | ||
926 | # | ||
927 | CONFIG_LEDS_TRIGGER_TIMER=y | ||
928 | # CONFIG_LEDS_TRIGGER_HEARTBEAT is not set | ||
929 | # CONFIG_LEDS_TRIGGER_BACKLIGHT is not set | ||
930 | CONFIG_LEDS_TRIGGER_GPIO=y | ||
931 | CONFIG_LEDS_TRIGGER_DEFAULT_ON=y | ||
932 | |||
933 | # | ||
934 | # iptables trigger is under Netfilter config (LED target) | ||
935 | # | ||
823 | # CONFIG_ACCESSIBILITY is not set | 936 | # CONFIG_ACCESSIBILITY is not set |
824 | # CONFIG_INFINIBAND is not set | 937 | # CONFIG_INFINIBAND is not set |
825 | CONFIG_RTC_LIB=y | 938 | CONFIG_RTC_LIB=y |
@@ -827,6 +940,10 @@ CONFIG_RTC_LIB=y | |||
827 | # CONFIG_DMADEVICES is not set | 940 | # CONFIG_DMADEVICES is not set |
828 | # CONFIG_AUXDISPLAY is not set | 941 | # CONFIG_AUXDISPLAY is not set |
829 | # CONFIG_UIO is not set | 942 | # CONFIG_UIO is not set |
943 | |||
944 | # | ||
945 | # TI VLYNQ | ||
946 | # | ||
830 | # CONFIG_STAGING is not set | 947 | # CONFIG_STAGING is not set |
831 | 948 | ||
832 | # | 949 | # |
@@ -838,12 +955,16 @@ CONFIG_RTC_LIB=y | |||
838 | # CONFIG_REISERFS_FS is not set | 955 | # CONFIG_REISERFS_FS is not set |
839 | # CONFIG_JFS_FS is not set | 956 | # CONFIG_JFS_FS is not set |
840 | # CONFIG_FS_POSIX_ACL is not set | 957 | # CONFIG_FS_POSIX_ACL is not set |
841 | # CONFIG_FILE_LOCKING is not set | ||
842 | # CONFIG_XFS_FS is not set | 958 | # CONFIG_XFS_FS is not set |
959 | # CONFIG_GFS2_FS is not set | ||
843 | # CONFIG_OCFS2_FS is not set | 960 | # CONFIG_OCFS2_FS is not set |
844 | # CONFIG_BTRFS_FS is not set | 961 | # CONFIG_BTRFS_FS is not set |
962 | # CONFIG_NILFS2_FS is not set | ||
963 | # CONFIG_FILE_LOCKING is not set | ||
964 | CONFIG_FSNOTIFY=y | ||
845 | # CONFIG_DNOTIFY is not set | 965 | # CONFIG_DNOTIFY is not set |
846 | # CONFIG_INOTIFY is not set | 966 | # CONFIG_INOTIFY is not set |
967 | CONFIG_INOTIFY_USER=y | ||
847 | # CONFIG_QUOTA is not set | 968 | # CONFIG_QUOTA is not set |
848 | # CONFIG_AUTOFS_FS is not set | 969 | # CONFIG_AUTOFS_FS is not set |
849 | # CONFIG_AUTOFS4_FS is not set | 970 | # CONFIG_AUTOFS4_FS is not set |
@@ -875,8 +996,6 @@ CONFIG_PROC_KCORE=y | |||
875 | CONFIG_PROC_SYSCTL=y | 996 | CONFIG_PROC_SYSCTL=y |
876 | CONFIG_PROC_PAGE_MONITOR=y | 997 | CONFIG_PROC_PAGE_MONITOR=y |
877 | CONFIG_SYSFS=y | 998 | CONFIG_SYSFS=y |
878 | CONFIG_TMPFS=y | ||
879 | # CONFIG_TMPFS_POSIX_ACL is not set | ||
880 | # CONFIG_HUGETLB_PAGE is not set | 999 | # CONFIG_HUGETLB_PAGE is not set |
881 | # CONFIG_CONFIGFS_FS is not set | 1000 | # CONFIG_CONFIGFS_FS is not set |
882 | CONFIG_MISC_FILESYSTEMS=y | 1001 | CONFIG_MISC_FILESYSTEMS=y |
@@ -888,6 +1007,7 @@ CONFIG_MISC_FILESYSTEMS=y | |||
888 | # CONFIG_BFS_FS is not set | 1007 | # CONFIG_BFS_FS is not set |
889 | # CONFIG_EFS_FS is not set | 1008 | # CONFIG_EFS_FS is not set |
890 | # CONFIG_JFFS2_FS is not set | 1009 | # CONFIG_JFFS2_FS is not set |
1010 | # CONFIG_LOGFS is not set | ||
891 | # CONFIG_CRAMFS is not set | 1011 | # CONFIG_CRAMFS is not set |
892 | # CONFIG_SQUASHFS is not set | 1012 | # CONFIG_SQUASHFS is not set |
893 | # CONFIG_VXFS_FS is not set | 1013 | # CONFIG_VXFS_FS is not set |
@@ -898,7 +1018,6 @@ CONFIG_MISC_FILESYSTEMS=y | |||
898 | # CONFIG_ROMFS_FS is not set | 1018 | # CONFIG_ROMFS_FS is not set |
899 | # CONFIG_SYSV_FS is not set | 1019 | # CONFIG_SYSV_FS is not set |
900 | # CONFIG_UFS_FS is not set | 1020 | # CONFIG_UFS_FS is not set |
901 | # CONFIG_NILFS2_FS is not set | ||
902 | # CONFIG_NETWORK_FILESYSTEMS is not set | 1021 | # CONFIG_NETWORK_FILESYSTEMS is not set |
903 | 1022 | ||
904 | # | 1023 | # |
@@ -906,7 +1025,46 @@ CONFIG_MISC_FILESYSTEMS=y | |||
906 | # | 1025 | # |
907 | # CONFIG_PARTITION_ADVANCED is not set | 1026 | # CONFIG_PARTITION_ADVANCED is not set |
908 | CONFIG_MSDOS_PARTITION=y | 1027 | CONFIG_MSDOS_PARTITION=y |
909 | # CONFIG_NLS is not set | 1028 | CONFIG_NLS=y |
1029 | CONFIG_NLS_DEFAULT="iso8859-1" | ||
1030 | # CONFIG_NLS_CODEPAGE_437 is not set | ||
1031 | # CONFIG_NLS_CODEPAGE_737 is not set | ||
1032 | # CONFIG_NLS_CODEPAGE_775 is not set | ||
1033 | # CONFIG_NLS_CODEPAGE_850 is not set | ||
1034 | # CONFIG_NLS_CODEPAGE_852 is not set | ||
1035 | # CONFIG_NLS_CODEPAGE_855 is not set | ||
1036 | # CONFIG_NLS_CODEPAGE_857 is not set | ||
1037 | # CONFIG_NLS_CODEPAGE_860 is not set | ||
1038 | # CONFIG_NLS_CODEPAGE_861 is not set | ||
1039 | # CONFIG_NLS_CODEPAGE_862 is not set | ||
1040 | # CONFIG_NLS_CODEPAGE_863 is not set | ||
1041 | # CONFIG_NLS_CODEPAGE_864 is not set | ||
1042 | # CONFIG_NLS_CODEPAGE_865 is not set | ||
1043 | # CONFIG_NLS_CODEPAGE_866 is not set | ||
1044 | # CONFIG_NLS_CODEPAGE_869 is not set | ||
1045 | # CONFIG_NLS_CODEPAGE_936 is not set | ||
1046 | # CONFIG_NLS_CODEPAGE_950 is not set | ||
1047 | # CONFIG_NLS_CODEPAGE_932 is not set | ||
1048 | # CONFIG_NLS_CODEPAGE_949 is not set | ||
1049 | # CONFIG_NLS_CODEPAGE_874 is not set | ||
1050 | # CONFIG_NLS_ISO8859_8 is not set | ||
1051 | # CONFIG_NLS_CODEPAGE_1250 is not set | ||
1052 | # CONFIG_NLS_CODEPAGE_1251 is not set | ||
1053 | # CONFIG_NLS_ASCII is not set | ||
1054 | # CONFIG_NLS_ISO8859_1 is not set | ||
1055 | # CONFIG_NLS_ISO8859_2 is not set | ||
1056 | # CONFIG_NLS_ISO8859_3 is not set | ||
1057 | # CONFIG_NLS_ISO8859_4 is not set | ||
1058 | # CONFIG_NLS_ISO8859_5 is not set | ||
1059 | # CONFIG_NLS_ISO8859_6 is not set | ||
1060 | # CONFIG_NLS_ISO8859_7 is not set | ||
1061 | # CONFIG_NLS_ISO8859_9 is not set | ||
1062 | # CONFIG_NLS_ISO8859_13 is not set | ||
1063 | # CONFIG_NLS_ISO8859_14 is not set | ||
1064 | # CONFIG_NLS_ISO8859_15 is not set | ||
1065 | # CONFIG_NLS_KOI8_R is not set | ||
1066 | # CONFIG_NLS_KOI8_U is not set | ||
1067 | # CONFIG_NLS_UTF8 is not set | ||
910 | # CONFIG_DLM is not set | 1068 | # CONFIG_DLM is not set |
911 | 1069 | ||
912 | # | 1070 | # |
@@ -918,29 +1076,23 @@ CONFIG_ENABLE_WARN_DEPRECATED=y | |||
918 | CONFIG_ENABLE_MUST_CHECK=y | 1076 | CONFIG_ENABLE_MUST_CHECK=y |
919 | CONFIG_FRAME_WARN=1024 | 1077 | CONFIG_FRAME_WARN=1024 |
920 | CONFIG_MAGIC_SYSRQ=y | 1078 | CONFIG_MAGIC_SYSRQ=y |
1079 | # CONFIG_STRIP_ASM_SYMS is not set | ||
921 | # CONFIG_UNUSED_SYMBOLS is not set | 1080 | # CONFIG_UNUSED_SYMBOLS is not set |
922 | # CONFIG_DEBUG_FS is not set | 1081 | # CONFIG_DEBUG_FS is not set |
923 | # CONFIG_HEADERS_CHECK is not set | 1082 | # CONFIG_HEADERS_CHECK is not set |
924 | # CONFIG_DEBUG_KERNEL is not set | 1083 | # CONFIG_DEBUG_KERNEL is not set |
925 | # CONFIG_DEBUG_MEMORY_INIT is not set | 1084 | # CONFIG_DEBUG_MEMORY_INIT is not set |
926 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | ||
927 | CONFIG_SYSCTL_SYSCALL_CHECK=y | 1085 | CONFIG_SYSCTL_SYSCALL_CHECK=y |
1086 | CONFIG_HAVE_FUNCTION_TRACER=y | ||
1087 | CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y | ||
1088 | CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y | ||
1089 | CONFIG_HAVE_DYNAMIC_FTRACE=y | ||
1090 | CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y | ||
928 | CONFIG_TRACING_SUPPORT=y | 1091 | CONFIG_TRACING_SUPPORT=y |
929 | 1092 | # CONFIG_FTRACE is not set | |
930 | # | ||
931 | # Tracers | ||
932 | # | ||
933 | # CONFIG_IRQSOFF_TRACER is not set | ||
934 | # CONFIG_SCHED_TRACER is not set | ||
935 | # CONFIG_CONTEXT_SWITCH_TRACER is not set | ||
936 | # CONFIG_EVENT_TRACER is not set | ||
937 | # CONFIG_BOOT_TRACER is not set | ||
938 | # CONFIG_TRACE_BRANCH_PROFILING is not set | ||
939 | # CONFIG_KMEMTRACE is not set | ||
940 | # CONFIG_WORKQUEUE_TRACER is not set | ||
941 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
942 | # CONFIG_SAMPLES is not set | 1093 | # CONFIG_SAMPLES is not set |
943 | CONFIG_HAVE_ARCH_KGDB=y | 1094 | CONFIG_HAVE_ARCH_KGDB=y |
1095 | CONFIG_EARLY_PRINTK=y | ||
944 | CONFIG_CMDLINE_BOOL=y | 1096 | CONFIG_CMDLINE_BOOL=y |
945 | CONFIG_CMDLINE="console=ttyS0,115200" | 1097 | CONFIG_CMDLINE="console=ttyS0,115200" |
946 | # CONFIG_CMDLINE_OVERRIDE is not set | 1098 | # CONFIG_CMDLINE_OVERRIDE is not set |
@@ -951,8 +1103,108 @@ CONFIG_CMDLINE="console=ttyS0,115200" | |||
951 | # CONFIG_KEYS is not set | 1103 | # CONFIG_KEYS is not set |
952 | # CONFIG_SECURITY is not set | 1104 | # CONFIG_SECURITY is not set |
953 | # CONFIG_SECURITYFS is not set | 1105 | # CONFIG_SECURITYFS is not set |
954 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1106 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
955 | # CONFIG_CRYPTO is not set | 1107 | # CONFIG_DEFAULT_SECURITY_SMACK is not set |
1108 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1109 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1110 | CONFIG_DEFAULT_SECURITY="" | ||
1111 | CONFIG_CRYPTO=y | ||
1112 | |||
1113 | # | ||
1114 | # Crypto core or helper | ||
1115 | # | ||
1116 | # CONFIG_CRYPTO_FIPS is not set | ||
1117 | CONFIG_CRYPTO_ALGAPI=y | ||
1118 | CONFIG_CRYPTO_ALGAPI2=y | ||
1119 | CONFIG_CRYPTO_AEAD2=y | ||
1120 | CONFIG_CRYPTO_BLKCIPHER=y | ||
1121 | CONFIG_CRYPTO_BLKCIPHER2=y | ||
1122 | CONFIG_CRYPTO_HASH2=y | ||
1123 | CONFIG_CRYPTO_RNG=y | ||
1124 | CONFIG_CRYPTO_RNG2=y | ||
1125 | CONFIG_CRYPTO_PCOMP=y | ||
1126 | CONFIG_CRYPTO_MANAGER=y | ||
1127 | CONFIG_CRYPTO_MANAGER2=y | ||
1128 | # CONFIG_CRYPTO_GF128MUL is not set | ||
1129 | # CONFIG_CRYPTO_NULL is not set | ||
1130 | CONFIG_CRYPTO_WORKQUEUE=y | ||
1131 | # CONFIG_CRYPTO_CRYPTD is not set | ||
1132 | # CONFIG_CRYPTO_AUTHENC is not set | ||
1133 | |||
1134 | # | ||
1135 | # Authenticated Encryption with Associated Data | ||
1136 | # | ||
1137 | # CONFIG_CRYPTO_CCM is not set | ||
1138 | # CONFIG_CRYPTO_GCM is not set | ||
1139 | # CONFIG_CRYPTO_SEQIV is not set | ||
1140 | |||
1141 | # | ||
1142 | # Block modes | ||
1143 | # | ||
1144 | # CONFIG_CRYPTO_CBC is not set | ||
1145 | # CONFIG_CRYPTO_CTR is not set | ||
1146 | # CONFIG_CRYPTO_CTS is not set | ||
1147 | CONFIG_CRYPTO_ECB=y | ||
1148 | # CONFIG_CRYPTO_LRW is not set | ||
1149 | # CONFIG_CRYPTO_PCBC is not set | ||
1150 | # CONFIG_CRYPTO_XTS is not set | ||
1151 | |||
1152 | # | ||
1153 | # Hash modes | ||
1154 | # | ||
1155 | # CONFIG_CRYPTO_HMAC is not set | ||
1156 | # CONFIG_CRYPTO_XCBC is not set | ||
1157 | # CONFIG_CRYPTO_VMAC is not set | ||
1158 | |||
1159 | # | ||
1160 | # Digest | ||
1161 | # | ||
1162 | # CONFIG_CRYPTO_CRC32C is not set | ||
1163 | # CONFIG_CRYPTO_GHASH is not set | ||
1164 | # CONFIG_CRYPTO_MD4 is not set | ||
1165 | # CONFIG_CRYPTO_MD5 is not set | ||
1166 | # CONFIG_CRYPTO_MICHAEL_MIC is not set | ||
1167 | # CONFIG_CRYPTO_RMD128 is not set | ||
1168 | # CONFIG_CRYPTO_RMD160 is not set | ||
1169 | # CONFIG_CRYPTO_RMD256 is not set | ||
1170 | # CONFIG_CRYPTO_RMD320 is not set | ||
1171 | # CONFIG_CRYPTO_SHA1 is not set | ||
1172 | # CONFIG_CRYPTO_SHA256 is not set | ||
1173 | # CONFIG_CRYPTO_SHA512 is not set | ||
1174 | # CONFIG_CRYPTO_TGR192 is not set | ||
1175 | # CONFIG_CRYPTO_WP512 is not set | ||
1176 | |||
1177 | # | ||
1178 | # Ciphers | ||
1179 | # | ||
1180 | CONFIG_CRYPTO_AES=y | ||
1181 | # CONFIG_CRYPTO_ANUBIS is not set | ||
1182 | CONFIG_CRYPTO_ARC4=y | ||
1183 | # CONFIG_CRYPTO_BLOWFISH is not set | ||
1184 | # CONFIG_CRYPTO_CAMELLIA is not set | ||
1185 | # CONFIG_CRYPTO_CAST5 is not set | ||
1186 | # CONFIG_CRYPTO_CAST6 is not set | ||
1187 | # CONFIG_CRYPTO_DES is not set | ||
1188 | # CONFIG_CRYPTO_FCRYPT is not set | ||
1189 | # CONFIG_CRYPTO_KHAZAD is not set | ||
1190 | # CONFIG_CRYPTO_SALSA20 is not set | ||
1191 | # CONFIG_CRYPTO_SEED is not set | ||
1192 | # CONFIG_CRYPTO_SERPENT is not set | ||
1193 | # CONFIG_CRYPTO_TEA is not set | ||
1194 | # CONFIG_CRYPTO_TWOFISH is not set | ||
1195 | |||
1196 | # | ||
1197 | # Compression | ||
1198 | # | ||
1199 | # CONFIG_CRYPTO_DEFLATE is not set | ||
1200 | # CONFIG_CRYPTO_ZLIB is not set | ||
1201 | # CONFIG_CRYPTO_LZO is not set | ||
1202 | |||
1203 | # | ||
1204 | # Random Number Generation | ||
1205 | # | ||
1206 | CONFIG_CRYPTO_ANSI_CPRNG=y | ||
1207 | # CONFIG_CRYPTO_HW is not set | ||
956 | # CONFIG_BINARY_PRINTF is not set | 1208 | # CONFIG_BINARY_PRINTF is not set |
957 | 1209 | ||
958 | # | 1210 | # |
diff --git a/arch/mips/include/asm/cmpxchg.h b/arch/mips/include/asm/cmpxchg.h index ed9aaaaf0749..2d28017e95d0 100644 --- a/arch/mips/include/asm/cmpxchg.h +++ b/arch/mips/include/asm/cmpxchg.h | |||
@@ -16,7 +16,7 @@ | |||
16 | ({ \ | 16 | ({ \ |
17 | __typeof(*(m)) __ret; \ | 17 | __typeof(*(m)) __ret; \ |
18 | \ | 18 | \ |
19 | if (kernel_uses_llsc && R10000_LLSC_WAR) { \ | 19 | if (kernel_uses_llsc && R10000_LLSC_WAR) { \ |
20 | __asm__ __volatile__( \ | 20 | __asm__ __volatile__( \ |
21 | " .set push \n" \ | 21 | " .set push \n" \ |
22 | " .set noat \n" \ | 22 | " .set noat \n" \ |
diff --git a/arch/mips/include/asm/mach-loongson/loongson.h b/arch/mips/include/asm/mach-loongson/loongson.h index 1cf7b1401ee4..fcdbe3a4ce1f 100644 --- a/arch/mips/include/asm/mach-loongson/loongson.h +++ b/arch/mips/include/asm/mach-loongson/loongson.h | |||
@@ -307,7 +307,7 @@ extern unsigned long _loongson_addrwincfg_base; | |||
307 | */ | 307 | */ |
308 | #define LOONGSON_ADDRWIN_CFG(s, d, w, src, dst, size) do {\ | 308 | #define LOONGSON_ADDRWIN_CFG(s, d, w, src, dst, size) do {\ |
309 | s##_WIN##w##_BASE = (src); \ | 309 | s##_WIN##w##_BASE = (src); \ |
310 | s##_WIN##w##_MMAP = (src) | ADDRWIN_MAP_DST_##d; \ | 310 | s##_WIN##w##_MMAP = (dst) | ADDRWIN_MAP_DST_##d; \ |
311 | s##_WIN##w##_MASK = ~(size-1); \ | 311 | s##_WIN##w##_MASK = ~(size-1); \ |
312 | } while (0) | 312 | } while (0) |
313 | 313 | ||
diff --git a/arch/mips/include/asm/pgtable-64.h b/arch/mips/include/asm/pgtable-64.h index 26dc69d792a6..1be4b0fa30da 100644 --- a/arch/mips/include/asm/pgtable-64.h +++ b/arch/mips/include/asm/pgtable-64.h | |||
@@ -120,9 +120,14 @@ | |||
120 | #endif | 120 | #endif |
121 | #define FIRST_USER_ADDRESS 0UL | 121 | #define FIRST_USER_ADDRESS 0UL |
122 | 122 | ||
123 | #define VMALLOC_START MAP_BASE | 123 | /* |
124 | * TLB refill handlers also map the vmalloc area into xuseg. Avoid | ||
125 | * the first couple of pages so NULL pointer dereferences will still | ||
126 | * reliably trap. | ||
127 | */ | ||
128 | #define VMALLOC_START (MAP_BASE + (2 * PAGE_SIZE)) | ||
124 | #define VMALLOC_END \ | 129 | #define VMALLOC_END \ |
125 | (VMALLOC_START + \ | 130 | (MAP_BASE + \ |
126 | min(PTRS_PER_PGD * PTRS_PER_PMD * PTRS_PER_PTE * PAGE_SIZE, \ | 131 | min(PTRS_PER_PGD * PTRS_PER_PMD * PTRS_PER_PTE * PAGE_SIZE, \ |
127 | (1UL << cpu_vmbits)) - (1UL << 32)) | 132 | (1UL << cpu_vmbits)) - (1UL << 32)) |
128 | 133 | ||
diff --git a/arch/mips/include/asm/ptrace.h b/arch/mips/include/asm/ptrace.h index ce47118e52b7..cdc6a46efd98 100644 --- a/arch/mips/include/asm/ptrace.h +++ b/arch/mips/include/asm/ptrace.h | |||
@@ -142,9 +142,9 @@ extern int ptrace_set_watch_regs(struct task_struct *child, | |||
142 | 142 | ||
143 | extern asmlinkage void do_syscall_trace(struct pt_regs *regs, int entryexit); | 143 | extern asmlinkage void do_syscall_trace(struct pt_regs *regs, int entryexit); |
144 | 144 | ||
145 | extern NORET_TYPE void die(const char *, const struct pt_regs *) ATTRIB_NORET; | 145 | extern NORET_TYPE void die(const char *, struct pt_regs *) ATTRIB_NORET; |
146 | 146 | ||
147 | static inline void die_if_kernel(const char *str, const struct pt_regs *regs) | 147 | static inline void die_if_kernel(const char *str, struct pt_regs *regs) |
148 | { | 148 | { |
149 | if (unlikely(!user_mode(regs))) | 149 | if (unlikely(!user_mode(regs))) |
150 | die(str, regs); | 150 | die(str, regs); |
diff --git a/arch/mips/include/asm/stackframe.h b/arch/mips/include/asm/stackframe.h index c8419129e770..58730c5ce4bf 100644 --- a/arch/mips/include/asm/stackframe.h +++ b/arch/mips/include/asm/stackframe.h | |||
@@ -121,7 +121,7 @@ | |||
121 | .endm | 121 | .endm |
122 | #else | 122 | #else |
123 | .macro get_saved_sp /* Uniprocessor variation */ | 123 | .macro get_saved_sp /* Uniprocessor variation */ |
124 | #ifdef CONFIG_CPU_LOONGSON2F | 124 | #ifdef CONFIG_CPU_JUMP_WORKAROUNDS |
125 | /* | 125 | /* |
126 | * Clear BTB (branch target buffer), forbid RAS (return address | 126 | * Clear BTB (branch target buffer), forbid RAS (return address |
127 | * stack) to workaround the Out-of-order Issue in Loongson2F | 127 | * stack) to workaround the Out-of-order Issue in Loongson2F |
diff --git a/arch/mips/include/asm/uasm.h b/arch/mips/include/asm/uasm.h index 11a8b5252549..697e40c06497 100644 --- a/arch/mips/include/asm/uasm.h +++ b/arch/mips/include/asm/uasm.h | |||
@@ -167,6 +167,24 @@ static inline void __cpuinit uasm_l##lb(struct uasm_label **lab, u32 *addr) \ | |||
167 | #define uasm_i_ssnop(buf) uasm_i_sll(buf, 0, 0, 1) | 167 | #define uasm_i_ssnop(buf) uasm_i_sll(buf, 0, 0, 1) |
168 | #define uasm_i_ehb(buf) uasm_i_sll(buf, 0, 0, 3) | 168 | #define uasm_i_ehb(buf) uasm_i_sll(buf, 0, 0, 3) |
169 | 169 | ||
170 | static inline void uasm_i_dsrl_safe(u32 **p, unsigned int a1, | ||
171 | unsigned int a2, unsigned int a3) | ||
172 | { | ||
173 | if (a3 < 32) | ||
174 | uasm_i_dsrl(p, a1, a2, a3); | ||
175 | else | ||
176 | uasm_i_dsrl32(p, a1, a2, a3 - 32); | ||
177 | } | ||
178 | |||
179 | static inline void uasm_i_dsll_safe(u32 **p, unsigned int a1, | ||
180 | unsigned int a2, unsigned int a3) | ||
181 | { | ||
182 | if (a3 < 32) | ||
183 | uasm_i_dsll(p, a1, a2, a3); | ||
184 | else | ||
185 | uasm_i_dsll32(p, a1, a2, a3 - 32); | ||
186 | } | ||
187 | |||
170 | /* Handle relocations. */ | 188 | /* Handle relocations. */ |
171 | struct uasm_reloc { | 189 | struct uasm_reloc { |
172 | u32 *addr; | 190 | u32 *addr; |
diff --git a/arch/mips/jazz/setup.c b/arch/mips/jazz/setup.c index 7043f6b9ff3c..0d0f054a02f4 100644 --- a/arch/mips/jazz/setup.c +++ b/arch/mips/jazz/setup.c | |||
@@ -76,15 +76,9 @@ void __init plat_mem_setup(void) | |||
76 | 76 | ||
77 | #ifdef CONFIG_VT | 77 | #ifdef CONFIG_VT |
78 | screen_info = (struct screen_info) { | 78 | screen_info = (struct screen_info) { |
79 | 0, 0, /* orig-x, orig-y */ | 79 | .orig_video_cols = 160, |
80 | 0, /* unused */ | 80 | .orig_video_lines = 64, |
81 | 0, /* orig_video_page */ | 81 | .orig_video_points = 16, |
82 | 0, /* orig_video_mode */ | ||
83 | 160, /* orig_video_cols */ | ||
84 | 0, 0, 0, /* unused, ega_bx, unused */ | ||
85 | 64, /* orig_video_lines */ | ||
86 | 0, /* orig_video_isVGA */ | ||
87 | 16 /* orig_video_points */ | ||
88 | }; | 82 | }; |
89 | #endif | 83 | #endif |
90 | 84 | ||
diff --git a/arch/mips/kernel/traps.c b/arch/mips/kernel/traps.c index 1a4dd657ccb9..d612c6dcb746 100644 --- a/arch/mips/kernel/traps.c +++ b/arch/mips/kernel/traps.c | |||
@@ -352,9 +352,10 @@ void show_registers(const struct pt_regs *regs) | |||
352 | 352 | ||
353 | static DEFINE_SPINLOCK(die_lock); | 353 | static DEFINE_SPINLOCK(die_lock); |
354 | 354 | ||
355 | void __noreturn die(const char * str, const struct pt_regs * regs) | 355 | void __noreturn die(const char * str, struct pt_regs * regs) |
356 | { | 356 | { |
357 | static int die_counter; | 357 | static int die_counter; |
358 | int sig = SIGSEGV; | ||
358 | #ifdef CONFIG_MIPS_MT_SMTC | 359 | #ifdef CONFIG_MIPS_MT_SMTC |
359 | unsigned long dvpret = dvpe(); | 360 | unsigned long dvpret = dvpe(); |
360 | #endif /* CONFIG_MIPS_MT_SMTC */ | 361 | #endif /* CONFIG_MIPS_MT_SMTC */ |
@@ -365,6 +366,10 @@ void __noreturn die(const char * str, const struct pt_regs * regs) | |||
365 | #ifdef CONFIG_MIPS_MT_SMTC | 366 | #ifdef CONFIG_MIPS_MT_SMTC |
366 | mips_mt_regdump(dvpret); | 367 | mips_mt_regdump(dvpret); |
367 | #endif /* CONFIG_MIPS_MT_SMTC */ | 368 | #endif /* CONFIG_MIPS_MT_SMTC */ |
369 | |||
370 | if (notify_die(DIE_OOPS, str, regs, 0, current->thread.trap_no, SIGSEGV) == NOTIFY_STOP) | ||
371 | sig = 0; | ||
372 | |||
368 | printk("%s[#%d]:\n", str, ++die_counter); | 373 | printk("%s[#%d]:\n", str, ++die_counter); |
369 | show_registers(regs); | 374 | show_registers(regs); |
370 | add_taint(TAINT_DIE); | 375 | add_taint(TAINT_DIE); |
@@ -379,7 +384,7 @@ void __noreturn die(const char * str, const struct pt_regs * regs) | |||
379 | panic("Fatal exception"); | 384 | panic("Fatal exception"); |
380 | } | 385 | } |
381 | 386 | ||
382 | do_exit(SIGSEGV); | 387 | do_exit(sig); |
383 | } | 388 | } |
384 | 389 | ||
385 | extern struct exception_table_entry __start___dbe_table[]; | 390 | extern struct exception_table_entry __start___dbe_table[]; |
@@ -1557,12 +1562,7 @@ static char panic_null_cerr[] __cpuinitdata = | |||
1557 | void __cpuinit set_uncached_handler(unsigned long offset, void *addr, | 1562 | void __cpuinit set_uncached_handler(unsigned long offset, void *addr, |
1558 | unsigned long size) | 1563 | unsigned long size) |
1559 | { | 1564 | { |
1560 | #ifdef CONFIG_32BIT | 1565 | unsigned long uncached_ebase = CKSEG1ADDR(ebase); |
1561 | unsigned long uncached_ebase = KSEG1ADDR(ebase); | ||
1562 | #endif | ||
1563 | #ifdef CONFIG_64BIT | ||
1564 | unsigned long uncached_ebase = TO_UNCAC(ebase); | ||
1565 | #endif | ||
1566 | 1566 | ||
1567 | if (!addr) | 1567 | if (!addr) |
1568 | panic(panic_null_cerr); | 1568 | panic(panic_null_cerr); |
diff --git a/arch/mips/loongson/common/machtype.c b/arch/mips/loongson/common/machtype.c index 853f184b793e..81fbe6b73f91 100644 --- a/arch/mips/loongson/common/machtype.c +++ b/arch/mips/loongson/common/machtype.c | |||
@@ -24,7 +24,7 @@ static const char *system_types[] = { | |||
24 | [MACH_LEMOTE_FL2F] "lemote-fuloong-2f-box", | 24 | [MACH_LEMOTE_FL2F] "lemote-fuloong-2f-box", |
25 | [MACH_LEMOTE_ML2F7] "lemote-mengloong-2f-7inches", | 25 | [MACH_LEMOTE_ML2F7] "lemote-mengloong-2f-7inches", |
26 | [MACH_LEMOTE_YL2F89] "lemote-yeeloong-2f-8.9inches", | 26 | [MACH_LEMOTE_YL2F89] "lemote-yeeloong-2f-8.9inches", |
27 | [MACH_DEXXON_GDIUM2F10] "dexxon-gidum-2f-10inches", | 27 | [MACH_DEXXON_GDIUM2F10] "dexxon-gdium-2f", |
28 | [MACH_LEMOTE_NAS] "lemote-nas-2f", | 28 | [MACH_LEMOTE_NAS] "lemote-nas-2f", |
29 | [MACH_LEMOTE_LL2F] "lemote-lynloong-2f", | 29 | [MACH_LEMOTE_LL2F] "lemote-lynloong-2f", |
30 | [MACH_LOONGSON_END] NULL, | 30 | [MACH_LOONGSON_END] NULL, |
diff --git a/arch/mips/loongson/common/mem.c b/arch/mips/loongson/common/mem.c index ec2f7964a0b0..30eba6001205 100644 --- a/arch/mips/loongson/common/mem.c +++ b/arch/mips/loongson/common/mem.c | |||
@@ -75,7 +75,7 @@ pgprot_t phys_mem_access_prot(struct file *file, unsigned long pfn, | |||
75 | unsigned long end = offset + size; | 75 | unsigned long end = offset + size; |
76 | 76 | ||
77 | if (__uncached_access(file, offset)) { | 77 | if (__uncached_access(file, offset)) { |
78 | if (((uca_start && offset) >= uca_start) && | 78 | if (uca_start && (offset >= uca_start) && |
79 | (end <= uca_end)) | 79 | (end <= uca_end)) |
80 | return __pgprot((pgprot_val(vma_prot) & | 80 | return __pgprot((pgprot_val(vma_prot) & |
81 | ~_CACHE_MASK) | | 81 | ~_CACHE_MASK) | |
@@ -96,7 +96,7 @@ static int __init find_vga_mem_init(void) | |||
96 | return 0; | 96 | return 0; |
97 | 97 | ||
98 | for_each_pci_dev(dev) { | 98 | for_each_pci_dev(dev) { |
99 | if ((dev->class >> 8) == PCI_CLASS_DISPLAY_VGA) { | 99 | if ((dev->class >> 16) == PCI_BASE_CLASS_DISPLAY) { |
100 | for (idx = 0; idx < PCI_NUM_RESOURCES; idx++) { | 100 | for (idx = 0; idx < PCI_NUM_RESOURCES; idx++) { |
101 | r = &dev->resource[idx]; | 101 | r = &dev->resource[idx]; |
102 | if (!r->start && r->end) | 102 | if (!r->start && r->end) |
diff --git a/arch/mips/loongson/common/reset.c b/arch/mips/loongson/common/reset.c index 4bd9c18b07a5..9e10d6225d9b 100644 --- a/arch/mips/loongson/common/reset.c +++ b/arch/mips/loongson/common/reset.c | |||
@@ -16,13 +16,31 @@ | |||
16 | 16 | ||
17 | #include <loongson.h> | 17 | #include <loongson.h> |
18 | 18 | ||
19 | static inline void loongson_reboot(void) | ||
20 | { | ||
21 | #ifndef CONFIG_CPU_JUMP_WORKAROUNDS | ||
22 | ((void (*)(void))ioremap_nocache(LOONGSON_BOOT_BASE, 4)) (); | ||
23 | #else | ||
24 | void (*func)(void); | ||
25 | |||
26 | func = (void *)ioremap_nocache(LOONGSON_BOOT_BASE, 4); | ||
27 | |||
28 | __asm__ __volatile__( | ||
29 | " .set noat \n" | ||
30 | " jr %[func] \n" | ||
31 | " .set at \n" | ||
32 | : /* No outputs */ | ||
33 | : [func] "r" (func)); | ||
34 | #endif | ||
35 | } | ||
36 | |||
19 | static void loongson_restart(char *command) | 37 | static void loongson_restart(char *command) |
20 | { | 38 | { |
21 | /* do preparation for reboot */ | 39 | /* do preparation for reboot */ |
22 | mach_prepare_reboot(); | 40 | mach_prepare_reboot(); |
23 | 41 | ||
24 | /* reboot via jumping to boot base address */ | 42 | /* reboot via jumping to boot base address */ |
25 | ((void (*)(void))ioremap_nocache(LOONGSON_BOOT_BASE, 4)) (); | 43 | loongson_reboot(); |
26 | } | 44 | } |
27 | 45 | ||
28 | static void loongson_poweroff(void) | 46 | static void loongson_poweroff(void) |
diff --git a/arch/mips/loongson/common/setup.c b/arch/mips/loongson/common/setup.c index 4cd2aa9a342c..27d826bc7103 100644 --- a/arch/mips/loongson/common/setup.c +++ b/arch/mips/loongson/common/setup.c | |||
@@ -41,15 +41,12 @@ void __init plat_mem_setup(void) | |||
41 | conswitchp = &vga_con; | 41 | conswitchp = &vga_con; |
42 | 42 | ||
43 | screen_info = (struct screen_info) { | 43 | screen_info = (struct screen_info) { |
44 | 0, 25, /* orig-x, orig-y */ | 44 | .orig_x = 0, |
45 | 0, /* unused */ | 45 | .orig_y = 25, |
46 | 0, /* orig-video-page */ | 46 | .orig_video_cols = 80, |
47 | 0, /* orig-video-mode */ | 47 | .orig_video_lines = 25, |
48 | 80, /* orig-video-cols */ | 48 | .orig_video_isVGA = VIDEO_TYPE_VGAC, |
49 | 0, 0, 0, /* ega_ax, ega_bx, ega_cx */ | 49 | .orig_video_points = 16, |
50 | 25, /* orig-video-lines */ | ||
51 | VIDEO_TYPE_VGAC, /* orig-video-isVGA */ | ||
52 | 16 /* orig-video-points */ | ||
53 | }; | 50 | }; |
54 | #elif defined(CONFIG_DUMMY_CONSOLE) | 51 | #elif defined(CONFIG_DUMMY_CONSOLE) |
55 | conswitchp = &dummy_con; | 52 | conswitchp = &dummy_con; |
diff --git a/arch/mips/loongson/lemote-2f/irq.c b/arch/mips/loongson/lemote-2f/irq.c index 882dfcd42c00..1d8b4d28a058 100644 --- a/arch/mips/loongson/lemote-2f/irq.c +++ b/arch/mips/loongson/lemote-2f/irq.c | |||
@@ -79,7 +79,7 @@ void mach_irq_dispatch(unsigned int pending) | |||
79 | if (pending & CAUSEF_IP7) | 79 | if (pending & CAUSEF_IP7) |
80 | do_IRQ(LOONGSON_TIMER_IRQ); | 80 | do_IRQ(LOONGSON_TIMER_IRQ); |
81 | else if (pending & CAUSEF_IP6) { /* North Bridge, Perf counter */ | 81 | else if (pending & CAUSEF_IP6) { /* North Bridge, Perf counter */ |
82 | #ifdef CONFIG_OPROFILE | 82 | #if defined(CONFIG_OPROFILE) || defined(CONFIG_OPROFILE_MODULE) |
83 | do_IRQ(LOONGSON2_PERFCNT_IRQ); | 83 | do_IRQ(LOONGSON2_PERFCNT_IRQ); |
84 | #endif | 84 | #endif |
85 | bonito_irqdispatch(); | 85 | bonito_irqdispatch(); |
diff --git a/arch/mips/mm/tlbex.c b/arch/mips/mm/tlbex.c index d1f68aadbc4c..86f004dc8355 100644 --- a/arch/mips/mm/tlbex.c +++ b/arch/mips/mm/tlbex.c | |||
@@ -31,6 +31,16 @@ | |||
31 | #include <asm/war.h> | 31 | #include <asm/war.h> |
32 | #include <asm/uasm.h> | 32 | #include <asm/uasm.h> |
33 | 33 | ||
34 | /* | ||
35 | * TLB load/store/modify handlers. | ||
36 | * | ||
37 | * Only the fastpath gets synthesized at runtime, the slowpath for | ||
38 | * do_page_fault remains normal asm. | ||
39 | */ | ||
40 | extern void tlb_do_page_fault_0(void); | ||
41 | extern void tlb_do_page_fault_1(void); | ||
42 | |||
43 | |||
34 | static inline int r45k_bvahwbug(void) | 44 | static inline int r45k_bvahwbug(void) |
35 | { | 45 | { |
36 | /* XXX: We should probe for the presence of this bug, but we don't. */ | 46 | /* XXX: We should probe for the presence of this bug, but we don't. */ |
@@ -83,6 +93,7 @@ enum label_id { | |||
83 | label_nopage_tlbm, | 93 | label_nopage_tlbm, |
84 | label_smp_pgtable_change, | 94 | label_smp_pgtable_change, |
85 | label_r3000_write_probe_fail, | 95 | label_r3000_write_probe_fail, |
96 | label_large_segbits_fault, | ||
86 | #ifdef CONFIG_HUGETLB_PAGE | 97 | #ifdef CONFIG_HUGETLB_PAGE |
87 | label_tlb_huge_update, | 98 | label_tlb_huge_update, |
88 | #endif | 99 | #endif |
@@ -101,6 +112,7 @@ UASM_L_LA(_nopage_tlbs) | |||
101 | UASM_L_LA(_nopage_tlbm) | 112 | UASM_L_LA(_nopage_tlbm) |
102 | UASM_L_LA(_smp_pgtable_change) | 113 | UASM_L_LA(_smp_pgtable_change) |
103 | UASM_L_LA(_r3000_write_probe_fail) | 114 | UASM_L_LA(_r3000_write_probe_fail) |
115 | UASM_L_LA(_large_segbits_fault) | ||
104 | #ifdef CONFIG_HUGETLB_PAGE | 116 | #ifdef CONFIG_HUGETLB_PAGE |
105 | UASM_L_LA(_tlb_huge_update) | 117 | UASM_L_LA(_tlb_huge_update) |
106 | #endif | 118 | #endif |
@@ -157,6 +169,10 @@ static u32 tlb_handler[128] __cpuinitdata; | |||
157 | static struct uasm_label labels[128] __cpuinitdata; | 169 | static struct uasm_label labels[128] __cpuinitdata; |
158 | static struct uasm_reloc relocs[128] __cpuinitdata; | 170 | static struct uasm_reloc relocs[128] __cpuinitdata; |
159 | 171 | ||
172 | #ifdef CONFIG_64BIT | ||
173 | static int check_for_high_segbits __cpuinitdata; | ||
174 | #endif | ||
175 | |||
160 | #ifndef CONFIG_MIPS_PGD_C0_CONTEXT | 176 | #ifndef CONFIG_MIPS_PGD_C0_CONTEXT |
161 | /* | 177 | /* |
162 | * CONFIG_MIPS_PGD_C0_CONTEXT implies 64 bit and lack of pgd_current, | 178 | * CONFIG_MIPS_PGD_C0_CONTEXT implies 64 bit and lack of pgd_current, |
@@ -408,7 +424,7 @@ static __cpuinit __maybe_unused void build_convert_pte_to_entrylo(u32 **p, | |||
408 | UASM_i_ROTR(p, reg, reg, ilog2(_PAGE_GLOBAL) - ilog2(_PAGE_NO_EXEC)); | 424 | UASM_i_ROTR(p, reg, reg, ilog2(_PAGE_GLOBAL) - ilog2(_PAGE_NO_EXEC)); |
409 | } else { | 425 | } else { |
410 | #ifdef CONFIG_64BIT_PHYS_ADDR | 426 | #ifdef CONFIG_64BIT_PHYS_ADDR |
411 | uasm_i_dsrl(p, reg, reg, ilog2(_PAGE_GLOBAL)); | 427 | uasm_i_dsrl_safe(p, reg, reg, ilog2(_PAGE_GLOBAL)); |
412 | #else | 428 | #else |
413 | UASM_i_SRL(p, reg, reg, ilog2(_PAGE_GLOBAL)); | 429 | UASM_i_SRL(p, reg, reg, ilog2(_PAGE_GLOBAL)); |
414 | #endif | 430 | #endif |
@@ -532,7 +548,24 @@ build_get_pmde64(u32 **p, struct uasm_label **l, struct uasm_reloc **r, | |||
532 | * The vmalloc handling is not in the hotpath. | 548 | * The vmalloc handling is not in the hotpath. |
533 | */ | 549 | */ |
534 | uasm_i_dmfc0(p, tmp, C0_BADVADDR); | 550 | uasm_i_dmfc0(p, tmp, C0_BADVADDR); |
535 | uasm_il_bltz(p, r, tmp, label_vmalloc); | 551 | |
552 | if (check_for_high_segbits) { | ||
553 | /* | ||
554 | * The kernel currently implicitely assumes that the | ||
555 | * MIPS SEGBITS parameter for the processor is | ||
556 | * (PGDIR_SHIFT+PGDIR_BITS) or less, and will never | ||
557 | * allocate virtual addresses outside the maximum | ||
558 | * range for SEGBITS = (PGDIR_SHIFT+PGDIR_BITS). But | ||
559 | * that doesn't prevent user code from accessing the | ||
560 | * higher xuseg addresses. Here, we make sure that | ||
561 | * everything but the lower xuseg addresses goes down | ||
562 | * the module_alloc/vmalloc path. | ||
563 | */ | ||
564 | uasm_i_dsrl_safe(p, ptr, tmp, PGDIR_SHIFT + PGD_ORDER + PAGE_SHIFT - 3); | ||
565 | uasm_il_bnez(p, r, ptr, label_vmalloc); | ||
566 | } else { | ||
567 | uasm_il_bltz(p, r, tmp, label_vmalloc); | ||
568 | } | ||
536 | /* No uasm_i_nop needed here, since the next insn doesn't touch TMP. */ | 569 | /* No uasm_i_nop needed here, since the next insn doesn't touch TMP. */ |
537 | 570 | ||
538 | #ifdef CONFIG_MIPS_PGD_C0_CONTEXT | 571 | #ifdef CONFIG_MIPS_PGD_C0_CONTEXT |
@@ -549,14 +582,14 @@ build_get_pmde64(u32 **p, struct uasm_label **l, struct uasm_reloc **r, | |||
549 | * SMTC uses TCBind value as "CPU" index | 582 | * SMTC uses TCBind value as "CPU" index |
550 | */ | 583 | */ |
551 | uasm_i_mfc0(p, ptr, C0_TCBIND); | 584 | uasm_i_mfc0(p, ptr, C0_TCBIND); |
552 | uasm_i_dsrl(p, ptr, ptr, 19); | 585 | uasm_i_dsrl_safe(p, ptr, ptr, 19); |
553 | # else | 586 | # else |
554 | /* | 587 | /* |
555 | * 64 bit SMP running in XKPHYS has smp_processor_id() << 3 | 588 | * 64 bit SMP running in XKPHYS has smp_processor_id() << 3 |
556 | * stored in CONTEXT. | 589 | * stored in CONTEXT. |
557 | */ | 590 | */ |
558 | uasm_i_dmfc0(p, ptr, C0_CONTEXT); | 591 | uasm_i_dmfc0(p, ptr, C0_CONTEXT); |
559 | uasm_i_dsrl(p, ptr, ptr, 23); | 592 | uasm_i_dsrl_safe(p, ptr, ptr, 23); |
560 | # endif | 593 | # endif |
561 | UASM_i_LA_mostly(p, tmp, pgdc); | 594 | UASM_i_LA_mostly(p, tmp, pgdc); |
562 | uasm_i_daddu(p, ptr, ptr, tmp); | 595 | uasm_i_daddu(p, ptr, ptr, tmp); |
@@ -569,44 +602,78 @@ build_get_pmde64(u32 **p, struct uasm_label **l, struct uasm_reloc **r, | |||
569 | 602 | ||
570 | uasm_l_vmalloc_done(l, *p); | 603 | uasm_l_vmalloc_done(l, *p); |
571 | 604 | ||
572 | if (PGDIR_SHIFT - 3 < 32) /* get pgd offset in bytes */ | 605 | /* get pgd offset in bytes */ |
573 | uasm_i_dsrl(p, tmp, tmp, PGDIR_SHIFT-3); | 606 | uasm_i_dsrl_safe(p, tmp, tmp, PGDIR_SHIFT - 3); |
574 | else | ||
575 | uasm_i_dsrl32(p, tmp, tmp, PGDIR_SHIFT - 3 - 32); | ||
576 | 607 | ||
577 | uasm_i_andi(p, tmp, tmp, (PTRS_PER_PGD - 1)<<3); | 608 | uasm_i_andi(p, tmp, tmp, (PTRS_PER_PGD - 1)<<3); |
578 | uasm_i_daddu(p, ptr, ptr, tmp); /* add in pgd offset */ | 609 | uasm_i_daddu(p, ptr, ptr, tmp); /* add in pgd offset */ |
579 | #ifndef __PAGETABLE_PMD_FOLDED | 610 | #ifndef __PAGETABLE_PMD_FOLDED |
580 | uasm_i_dmfc0(p, tmp, C0_BADVADDR); /* get faulting address */ | 611 | uasm_i_dmfc0(p, tmp, C0_BADVADDR); /* get faulting address */ |
581 | uasm_i_ld(p, ptr, 0, ptr); /* get pmd pointer */ | 612 | uasm_i_ld(p, ptr, 0, ptr); /* get pmd pointer */ |
582 | uasm_i_dsrl(p, tmp, tmp, PMD_SHIFT-3); /* get pmd offset in bytes */ | 613 | uasm_i_dsrl_safe(p, tmp, tmp, PMD_SHIFT-3); /* get pmd offset in bytes */ |
583 | uasm_i_andi(p, tmp, tmp, (PTRS_PER_PMD - 1)<<3); | 614 | uasm_i_andi(p, tmp, tmp, (PTRS_PER_PMD - 1)<<3); |
584 | uasm_i_daddu(p, ptr, ptr, tmp); /* add in pmd offset */ | 615 | uasm_i_daddu(p, ptr, ptr, tmp); /* add in pmd offset */ |
585 | #endif | 616 | #endif |
586 | } | 617 | } |
587 | 618 | ||
619 | enum vmalloc64_mode {not_refill, refill}; | ||
588 | /* | 620 | /* |
589 | * BVADDR is the faulting address, PTR is scratch. | 621 | * BVADDR is the faulting address, PTR is scratch. |
590 | * PTR will hold the pgd for vmalloc. | 622 | * PTR will hold the pgd for vmalloc. |
591 | */ | 623 | */ |
592 | static void __cpuinit | 624 | static void __cpuinit |
593 | build_get_pgd_vmalloc64(u32 **p, struct uasm_label **l, struct uasm_reloc **r, | 625 | build_get_pgd_vmalloc64(u32 **p, struct uasm_label **l, struct uasm_reloc **r, |
594 | unsigned int bvaddr, unsigned int ptr) | 626 | unsigned int bvaddr, unsigned int ptr, |
627 | enum vmalloc64_mode mode) | ||
595 | { | 628 | { |
596 | long swpd = (long)swapper_pg_dir; | 629 | long swpd = (long)swapper_pg_dir; |
630 | int single_insn_swpd; | ||
631 | int did_vmalloc_branch = 0; | ||
632 | |||
633 | single_insn_swpd = uasm_in_compat_space_p(swpd) && !uasm_rel_lo(swpd); | ||
597 | 634 | ||
598 | uasm_l_vmalloc(l, *p); | 635 | uasm_l_vmalloc(l, *p); |
599 | 636 | ||
600 | if (uasm_in_compat_space_p(swpd) && !uasm_rel_lo(swpd)) { | 637 | if (mode == refill && check_for_high_segbits) { |
601 | uasm_il_b(p, r, label_vmalloc_done); | 638 | if (single_insn_swpd) { |
602 | uasm_i_lui(p, ptr, uasm_rel_hi(swpd)); | 639 | uasm_il_bltz(p, r, bvaddr, label_vmalloc_done); |
603 | } else { | 640 | uasm_i_lui(p, ptr, uasm_rel_hi(swpd)); |
604 | UASM_i_LA_mostly(p, ptr, swpd); | 641 | did_vmalloc_branch = 1; |
605 | uasm_il_b(p, r, label_vmalloc_done); | 642 | /* fall through */ |
606 | if (uasm_in_compat_space_p(swpd)) | 643 | } else { |
607 | uasm_i_addiu(p, ptr, ptr, uasm_rel_lo(swpd)); | 644 | uasm_il_bgez(p, r, bvaddr, label_large_segbits_fault); |
608 | else | 645 | } |
609 | uasm_i_daddiu(p, ptr, ptr, uasm_rel_lo(swpd)); | 646 | } |
647 | if (!did_vmalloc_branch) { | ||
648 | if (uasm_in_compat_space_p(swpd) && !uasm_rel_lo(swpd)) { | ||
649 | uasm_il_b(p, r, label_vmalloc_done); | ||
650 | uasm_i_lui(p, ptr, uasm_rel_hi(swpd)); | ||
651 | } else { | ||
652 | UASM_i_LA_mostly(p, ptr, swpd); | ||
653 | uasm_il_b(p, r, label_vmalloc_done); | ||
654 | if (uasm_in_compat_space_p(swpd)) | ||
655 | uasm_i_addiu(p, ptr, ptr, uasm_rel_lo(swpd)); | ||
656 | else | ||
657 | uasm_i_daddiu(p, ptr, ptr, uasm_rel_lo(swpd)); | ||
658 | } | ||
659 | } | ||
660 | if (mode == refill && check_for_high_segbits) { | ||
661 | uasm_l_large_segbits_fault(l, *p); | ||
662 | /* | ||
663 | * We get here if we are an xsseg address, or if we are | ||
664 | * an xuseg address above (PGDIR_SHIFT+PGDIR_BITS) boundary. | ||
665 | * | ||
666 | * Ignoring xsseg (assume disabled so would generate | ||
667 | * (address errors?), the only remaining possibility | ||
668 | * is the upper xuseg addresses. On processors with | ||
669 | * TLB_SEGBITS <= PGDIR_SHIFT+PGDIR_BITS, these | ||
670 | * addresses would have taken an address error. We try | ||
671 | * to mimic that here by taking a load/istream page | ||
672 | * fault. | ||
673 | */ | ||
674 | UASM_i_LA(p, ptr, (unsigned long)tlb_do_page_fault_0); | ||
675 | uasm_i_jr(p, ptr); | ||
676 | uasm_i_nop(p); | ||
610 | } | 677 | } |
611 | } | 678 | } |
612 | 679 | ||
@@ -720,9 +787,9 @@ static void __cpuinit build_update_entries(u32 **p, unsigned int tmp, | |||
720 | UASM_i_MTC0(p, tmp, C0_ENTRYLO0); /* load it */ | 787 | UASM_i_MTC0(p, tmp, C0_ENTRYLO0); /* load it */ |
721 | UASM_i_ROTR(p, ptep, ptep, ilog2(_PAGE_GLOBAL) - ilog2(_PAGE_NO_EXEC)); | 788 | UASM_i_ROTR(p, ptep, ptep, ilog2(_PAGE_GLOBAL) - ilog2(_PAGE_NO_EXEC)); |
722 | } else { | 789 | } else { |
723 | uasm_i_dsrl(p, tmp, tmp, ilog2(_PAGE_GLOBAL)); /* convert to entrylo0 */ | 790 | uasm_i_dsrl_safe(p, tmp, tmp, ilog2(_PAGE_GLOBAL)); /* convert to entrylo0 */ |
724 | UASM_i_MTC0(p, tmp, C0_ENTRYLO0); /* load it */ | 791 | UASM_i_MTC0(p, tmp, C0_ENTRYLO0); /* load it */ |
725 | uasm_i_dsrl(p, ptep, ptep, ilog2(_PAGE_GLOBAL)); /* convert to entrylo1 */ | 792 | uasm_i_dsrl_safe(p, ptep, ptep, ilog2(_PAGE_GLOBAL)); /* convert to entrylo1 */ |
726 | } | 793 | } |
727 | UASM_i_MTC0(p, ptep, C0_ENTRYLO1); /* load it */ | 794 | UASM_i_MTC0(p, ptep, C0_ENTRYLO1); /* load it */ |
728 | } else { | 795 | } else { |
@@ -793,9 +860,9 @@ static void __cpuinit build_r4000_tlb_refill_handler(void) | |||
793 | uasm_i_dmfc0(&p, K0, C0_BADVADDR); | 860 | uasm_i_dmfc0(&p, K0, C0_BADVADDR); |
794 | uasm_i_dmfc0(&p, K1, C0_ENTRYHI); | 861 | uasm_i_dmfc0(&p, K1, C0_ENTRYHI); |
795 | uasm_i_xor(&p, K0, K0, K1); | 862 | uasm_i_xor(&p, K0, K0, K1); |
796 | uasm_i_dsrl32(&p, K1, K0, 62 - 32); | 863 | uasm_i_dsrl_safe(&p, K1, K0, 62); |
797 | uasm_i_dsrl(&p, K0, K0, 12 + 1); | 864 | uasm_i_dsrl_safe(&p, K0, K0, 12 + 1); |
798 | uasm_i_dsll32(&p, K0, K0, 64 + 12 + 1 - segbits - 32); | 865 | uasm_i_dsll_safe(&p, K0, K0, 64 + 12 + 1 - segbits); |
799 | uasm_i_or(&p, K0, K0, K1); | 866 | uasm_i_or(&p, K0, K0, K1); |
800 | uasm_il_bnez(&p, &r, K0, label_leave); | 867 | uasm_il_bnez(&p, &r, K0, label_leave); |
801 | /* No need for uasm_i_nop */ | 868 | /* No need for uasm_i_nop */ |
@@ -825,7 +892,7 @@ static void __cpuinit build_r4000_tlb_refill_handler(void) | |||
825 | #endif | 892 | #endif |
826 | 893 | ||
827 | #ifdef CONFIG_64BIT | 894 | #ifdef CONFIG_64BIT |
828 | build_get_pgd_vmalloc64(&p, &l, &r, K0, K1); | 895 | build_get_pgd_vmalloc64(&p, &l, &r, K0, K1, refill); |
829 | #endif | 896 | #endif |
830 | 897 | ||
831 | /* | 898 | /* |
@@ -935,15 +1002,6 @@ static void __cpuinit build_r4000_tlb_refill_handler(void) | |||
935 | } | 1002 | } |
936 | 1003 | ||
937 | /* | 1004 | /* |
938 | * TLB load/store/modify handlers. | ||
939 | * | ||
940 | * Only the fastpath gets synthesized at runtime, the slowpath for | ||
941 | * do_page_fault remains normal asm. | ||
942 | */ | ||
943 | extern void tlb_do_page_fault_0(void); | ||
944 | extern void tlb_do_page_fault_1(void); | ||
945 | |||
946 | /* | ||
947 | * 128 instructions for the fastpath handler is generous and should | 1005 | * 128 instructions for the fastpath handler is generous and should |
948 | * never be exceeded. | 1006 | * never be exceeded. |
949 | */ | 1007 | */ |
@@ -1302,7 +1360,7 @@ build_r4000_tlbchange_handler_tail(u32 **p, struct uasm_label **l, | |||
1302 | uasm_i_eret(p); /* return from trap */ | 1360 | uasm_i_eret(p); /* return from trap */ |
1303 | 1361 | ||
1304 | #ifdef CONFIG_64BIT | 1362 | #ifdef CONFIG_64BIT |
1305 | build_get_pgd_vmalloc64(p, l, r, tmp, ptr); | 1363 | build_get_pgd_vmalloc64(p, l, r, tmp, ptr, not_refill); |
1306 | #endif | 1364 | #endif |
1307 | } | 1365 | } |
1308 | 1366 | ||
@@ -1322,9 +1380,9 @@ static void __cpuinit build_r4000_tlb_load_handler(void) | |||
1322 | uasm_i_dmfc0(&p, K0, C0_BADVADDR); | 1380 | uasm_i_dmfc0(&p, K0, C0_BADVADDR); |
1323 | uasm_i_dmfc0(&p, K1, C0_ENTRYHI); | 1381 | uasm_i_dmfc0(&p, K1, C0_ENTRYHI); |
1324 | uasm_i_xor(&p, K0, K0, K1); | 1382 | uasm_i_xor(&p, K0, K0, K1); |
1325 | uasm_i_dsrl32(&p, K1, K0, 62 - 32); | 1383 | uasm_i_dsrl_safe(&p, K1, K0, 62); |
1326 | uasm_i_dsrl(&p, K0, K0, 12 + 1); | 1384 | uasm_i_dsrl_safe(&p, K0, K0, 12 + 1); |
1327 | uasm_i_dsll32(&p, K0, K0, 64 + 12 + 1 - segbits - 32); | 1385 | uasm_i_dsll_safe(&p, K0, K0, 64 + 12 + 1 - segbits); |
1328 | uasm_i_or(&p, K0, K0, K1); | 1386 | uasm_i_or(&p, K0, K0, K1); |
1329 | uasm_il_bnez(&p, &r, K0, label_leave); | 1387 | uasm_il_bnez(&p, &r, K0, label_leave); |
1330 | /* No need for uasm_i_nop */ | 1388 | /* No need for uasm_i_nop */ |
@@ -1526,6 +1584,10 @@ void __cpuinit build_tlb_refill_handler(void) | |||
1526 | */ | 1584 | */ |
1527 | static int run_once = 0; | 1585 | static int run_once = 0; |
1528 | 1586 | ||
1587 | #ifdef CONFIG_64BIT | ||
1588 | check_for_high_segbits = current_cpu_data.vmbits > (PGDIR_SHIFT + PGD_ORDER + PAGE_SHIFT - 3); | ||
1589 | #endif | ||
1590 | |||
1529 | switch (current_cpu_type()) { | 1591 | switch (current_cpu_type()) { |
1530 | case CPU_R2000: | 1592 | case CPU_R2000: |
1531 | case CPU_R3000: | 1593 | case CPU_R3000: |
diff --git a/arch/mips/nxp/pnx8550/common/reset.c b/arch/mips/nxp/pnx8550/common/reset.c index 76bc3ec634ee..fadd8744a6bc 100644 --- a/arch/mips/nxp/pnx8550/common/reset.c +++ b/arch/mips/nxp/pnx8550/common/reset.c | |||
@@ -20,6 +20,8 @@ | |||
20 | * Reset the PNX8550 board. | 20 | * Reset the PNX8550 board. |
21 | * | 21 | * |
22 | */ | 22 | */ |
23 | #include <linux/kernel.h> | ||
24 | |||
23 | #include <asm/reboot.h> | 25 | #include <asm/reboot.h> |
24 | #include <glb.h> | 26 | #include <glb.h> |
25 | 27 | ||
diff --git a/arch/mips/pci/pci-sb1250.c b/arch/mips/pci/pci-sb1250.c index ada24e6f951f..1711e8e101bc 100644 --- a/arch/mips/pci/pci-sb1250.c +++ b/arch/mips/pci/pci-sb1250.c | |||
@@ -37,6 +37,7 @@ | |||
37 | #include <linux/mm.h> | 37 | #include <linux/mm.h> |
38 | #include <linux/console.h> | 38 | #include <linux/console.h> |
39 | #include <linux/tty.h> | 39 | #include <linux/tty.h> |
40 | #include <linux/vt.h> | ||
40 | 41 | ||
41 | #include <asm/io.h> | 42 | #include <asm/io.h> |
42 | 43 | ||
@@ -254,7 +255,7 @@ static int __init sb1250_pcibios_init(void) | |||
254 | * XXX ehs: Should this happen in PCI Device mode? | 255 | * XXX ehs: Should this happen in PCI Device mode? |
255 | */ | 256 | */ |
256 | io_map_base = ioremap(A_PHYS_LDTPCI_IO_MATCH_BYTES, 1024 * 1024); | 257 | io_map_base = ioremap(A_PHYS_LDTPCI_IO_MATCH_BYTES, 1024 * 1024); |
257 | sb1250_controller.io_map_base = io_map_base; | 258 | sb1250_controller.io_map_base = (unsigned long)io_map_base; |
258 | set_io_port_base((unsigned long)io_map_base); | 259 | set_io_port_base((unsigned long)io_map_base); |
259 | 260 | ||
260 | #ifdef CONFIG_SIBYTE_HAS_LDT | 261 | #ifdef CONFIG_SIBYTE_HAS_LDT |
diff --git a/arch/mips/sgi-ip22/ip22-berr.c b/arch/mips/sgi-ip22/ip22-berr.c index de6a0cc32fea..911d3999c0c7 100644 --- a/arch/mips/sgi-ip22/ip22-berr.c +++ b/arch/mips/sgi-ip22/ip22-berr.c | |||
@@ -89,7 +89,7 @@ static void print_buserr(void) | |||
89 | void ip22_be_interrupt(int irq) | 89 | void ip22_be_interrupt(int irq) |
90 | { | 90 | { |
91 | const int field = 2 * sizeof(unsigned long); | 91 | const int field = 2 * sizeof(unsigned long); |
92 | const struct pt_regs *regs = get_irq_regs(); | 92 | struct pt_regs *regs = get_irq_regs(); |
93 | 93 | ||
94 | save_and_clear_buserr(); | 94 | save_and_clear_buserr(); |
95 | print_buserr(); | 95 | print_buserr(); |
diff --git a/arch/mips/sgi-ip22/ip28-berr.c b/arch/mips/sgi-ip22/ip28-berr.c index 30e12e2ec4b5..88c684e05a3d 100644 --- a/arch/mips/sgi-ip22/ip28-berr.c +++ b/arch/mips/sgi-ip22/ip28-berr.c | |||
@@ -453,7 +453,7 @@ mips_be_fatal: | |||
453 | 453 | ||
454 | void ip22_be_interrupt(int irq) | 454 | void ip22_be_interrupt(int irq) |
455 | { | 455 | { |
456 | const struct pt_regs *regs = get_irq_regs(); | 456 | struct pt_regs *regs = get_irq_regs(); |
457 | 457 | ||
458 | count_be_interrupt++; | 458 | count_be_interrupt++; |
459 | 459 | ||
diff --git a/arch/mips/sibyte/swarm/setup.c b/arch/mips/sibyte/swarm/setup.c index 5277aac96b0f..c308989fc464 100644 --- a/arch/mips/sibyte/swarm/setup.c +++ b/arch/mips/sibyte/swarm/setup.c | |||
@@ -145,15 +145,14 @@ void __init plat_mem_setup(void) | |||
145 | 145 | ||
146 | #ifdef CONFIG_VT | 146 | #ifdef CONFIG_VT |
147 | screen_info = (struct screen_info) { | 147 | screen_info = (struct screen_info) { |
148 | 0, 0, /* orig-x, orig-y */ | 148 | .orig_video_page = 52, |
149 | 0, /* unused */ | 149 | .orig_video_mode = 3, |
150 | 52, /* orig_video_page */ | 150 | .orig_video_cols = 80, |
151 | 3, /* orig_video_mode */ | 151 | .flags = 12, |
152 | 80, /* orig_video_cols */ | 152 | .orig_video_ega_bx = 3, |
153 | 4626, 3, 9, /* unused, ega_bx, unused */ | 153 | .orig_video_lines = 25, |
154 | 25, /* orig_video_lines */ | 154 | .orig_video_isVGA = 0x22, |
155 | 0x22, /* orig_video_isVGA */ | 155 | .orig_video_points = 16, |
156 | 16 /* orig_video_points */ | ||
157 | }; | 156 | }; |
158 | /* XXXKW for CFE, get lines/cols from environment */ | 157 | /* XXXKW for CFE, get lines/cols from environment */ |
159 | #endif | 158 | #endif |