aboutsummaryrefslogtreecommitdiffstats
path: root/arch/mips
diff options
context:
space:
mode:
Diffstat (limited to 'arch/mips')
-rw-r--r--arch/mips/Kconfig161
-rw-r--r--arch/mips/Kconfig.debug85
-rw-r--r--arch/mips/Makefile83
-rw-r--r--arch/mips/alchemy/Kconfig28
-rw-r--r--arch/mips/alchemy/common/Makefile7
-rw-r--r--arch/mips/alchemy/common/clocks.c7
-rw-r--r--arch/mips/alchemy/common/dbdma.c198
-rw-r--r--arch/mips/alchemy/common/dma.c36
-rw-r--r--arch/mips/alchemy/common/gpiolib-au1000.c10
-rw-r--r--arch/mips/alchemy/common/irq.c436
-rw-r--r--arch/mips/alchemy/common/platform.c153
-rw-r--r--arch/mips/alchemy/common/prom.c28
-rw-r--r--arch/mips/alchemy/common/puts.c68
-rw-r--r--arch/mips/alchemy/common/reset.c188
-rw-r--r--arch/mips/alchemy/common/setup.c40
-rw-r--r--arch/mips/alchemy/common/time.c35
-rw-r--r--arch/mips/alchemy/devboards/Makefile6
-rw-r--r--arch/mips/alchemy/devboards/bcsr.c148
-rw-r--r--arch/mips/alchemy/devboards/db1200/Makefile1
-rw-r--r--arch/mips/alchemy/devboards/db1200/platform.c561
-rw-r--r--arch/mips/alchemy/devboards/db1200/setup.c82
-rw-r--r--arch/mips/alchemy/devboards/db1x00/Makefile2
-rw-r--r--arch/mips/alchemy/devboards/db1x00/board_setup.c204
-rw-r--r--arch/mips/alchemy/devboards/db1x00/irqmap.c90
-rw-r--r--arch/mips/alchemy/devboards/db1x00/platform.c118
-rw-r--r--arch/mips/alchemy/devboards/pb1000/board_setup.c34
-rw-r--r--arch/mips/alchemy/devboards/pb1100/Makefile2
-rw-r--r--arch/mips/alchemy/devboards/pb1100/board_setup.c55
-rw-r--r--arch/mips/alchemy/devboards/pb1100/platform.c50
-rw-r--r--arch/mips/alchemy/devboards/pb1200/Makefile2
-rw-r--r--arch/mips/alchemy/devboards/pb1200/board_setup.c96
-rw-r--r--arch/mips/alchemy/devboards/pb1200/irqmap.c134
-rw-r--r--arch/mips/alchemy/devboards/pb1200/platform.c63
-rw-r--r--arch/mips/alchemy/devboards/pb1500/Makefile2
-rw-r--r--arch/mips/alchemy/devboards/pb1500/board_setup.c54
-rw-r--r--arch/mips/alchemy/devboards/pb1500/platform.c49
-rw-r--r--arch/mips/alchemy/devboards/pb1550/Makefile2
-rw-r--r--arch/mips/alchemy/devboards/pb1550/board_setup.c49
-rw-r--r--arch/mips/alchemy/devboards/pb1550/platform.c69
-rw-r--r--arch/mips/alchemy/devboards/platform.c222
-rw-r--r--arch/mips/alchemy/devboards/platform.h21
-rw-r--r--arch/mips/alchemy/devboards/pm.c32
-rw-r--r--arch/mips/alchemy/devboards/prom.c5
-rw-r--r--arch/mips/alchemy/mtx-1/Makefile2
-rw-r--r--arch/mips/alchemy/mtx-1/board_setup.c49
-rw-r--r--arch/mips/alchemy/mtx-1/init.c6
-rw-r--r--arch/mips/alchemy/mtx-1/irqmap.c56
-rw-r--r--arch/mips/alchemy/xxs1500/Makefile4
-rw-r--r--arch/mips/alchemy/xxs1500/board_setup.c60
-rw-r--r--arch/mips/alchemy/xxs1500/init.c6
-rw-r--r--arch/mips/alchemy/xxs1500/irqmap.c52
-rw-r--r--arch/mips/alchemy/xxs1500/platform.c63
-rw-r--r--arch/mips/ar7/clock.c109
-rw-r--r--arch/mips/ar7/gpio.c113
-rw-r--r--arch/mips/ar7/memory.c3
-rw-r--r--arch/mips/ar7/platform.c712
-rw-r--r--arch/mips/ar7/prom.c93
-rw-r--r--arch/mips/ar7/setup.c15
-rw-r--r--arch/mips/ar7/time.c12
-rw-r--r--arch/mips/basler/excite/Kconfig9
-rw-r--r--arch/mips/basler/excite/Makefile8
-rw-r--r--arch/mips/basler/excite/excite_device.c403
-rw-r--r--arch/mips/basler/excite/excite_iodev.c178
-rw-r--r--arch/mips/basler/excite/excite_iodev.h10
-rw-r--r--arch/mips/basler/excite/excite_irq.c122
-rw-r--r--arch/mips/basler/excite/excite_procfs.c92
-rw-r--r--arch/mips/basler/excite/excite_prom.c144
-rw-r--r--arch/mips/basler/excite/excite_setup.c302
-rw-r--r--arch/mips/bcm47xx/gpio.c1
-rw-r--r--arch/mips/bcm47xx/prom.c19
-rw-r--r--arch/mips/bcm47xx/setup.c1
-rw-r--r--arch/mips/bcm47xx/wgt634u.c1
-rw-r--r--arch/mips/bcm63xx/boards/board_bcm963xx.c257
-rw-r--r--arch/mips/bcm63xx/cpu.c5
-rw-r--r--arch/mips/bcm63xx/dev-uart.c66
-rw-r--r--arch/mips/bcm63xx/gpio.c4
-rw-r--r--arch/mips/bcm63xx/prom.c3
-rw-r--r--arch/mips/bcm63xx/timer.c34
-rw-r--r--arch/mips/boot/.gitignore1
-rw-r--r--arch/mips/boot/Makefile10
-rw-r--r--arch/mips/boot/addinitrd.c131
-rw-r--r--arch/mips/boot/compressed/Makefile105
-rw-r--r--arch/mips/boot/compressed/dbg.c37
-rw-r--r--arch/mips/boot/compressed/decompress.c120
-rw-r--r--arch/mips/boot/compressed/dummy.c4
-rw-r--r--arch/mips/boot/compressed/head.S56
-rw-r--r--arch/mips/boot/compressed/ld.script67
-rw-r--r--arch/mips/boot/compressed/uart-16550.c43
-rw-r--r--arch/mips/boot/compressed/uart-alchemy.c7
-rw-r--r--arch/mips/cavium-octeon/Makefile2
-rw-r--r--arch/mips/cavium-octeon/cpu.c52
-rw-r--r--arch/mips/cavium-octeon/csrc-octeon.c32
-rw-r--r--arch/mips/cavium-octeon/dma-octeon.c10
-rw-r--r--arch/mips/cavium-octeon/executive/cvmx-bootmem.c6
-rw-r--r--arch/mips/cavium-octeon/executive/cvmx-sysinfo.c1
-rw-r--r--arch/mips/cavium-octeon/octeon-irq.c160
-rw-r--r--arch/mips/cavium-octeon/octeon-platform.c173
-rw-r--r--arch/mips/cavium-octeon/setup.c82
-rw-r--r--arch/mips/cavium-octeon/smp.c10
-rw-r--r--arch/mips/cobalt/pci.c2
-rw-r--r--arch/mips/cobalt/setup.c24
-rw-r--r--arch/mips/configs/ar7_defconfig4
-rw-r--r--arch/mips/configs/bcm47xx_defconfig3
-rw-r--r--arch/mips/configs/bcm63xx_defconfig421
-rw-r--r--arch/mips/configs/bigsur_defconfig683
-rw-r--r--arch/mips/configs/capcella_defconfig3
-rw-r--r--arch/mips/configs/cavium-octeon_defconfig4
-rw-r--r--arch/mips/configs/cobalt_defconfig3
-rw-r--r--arch/mips/configs/db1000_defconfig1153
-rw-r--r--arch/mips/configs/db1100_defconfig1140
-rw-r--r--arch/mips/configs/db1200_defconfig1581
-rw-r--r--arch/mips/configs/db1500_defconfig1375
-rw-r--r--arch/mips/configs/db1550_defconfig1383
-rw-r--r--arch/mips/configs/decstation_defconfig3
-rw-r--r--arch/mips/configs/e55_defconfig3
-rw-r--r--arch/mips/configs/excite_defconfig1335
-rw-r--r--arch/mips/configs/fuloong2e_defconfig96
-rw-r--r--arch/mips/configs/ip22_defconfig3
-rw-r--r--arch/mips/configs/ip27_defconfig920
-rw-r--r--arch/mips/configs/ip28_defconfig3
-rw-r--r--arch/mips/configs/ip32_defconfig3
-rw-r--r--arch/mips/configs/jazz_defconfig3
-rw-r--r--arch/mips/configs/jmr3927_defconfig3
-rw-r--r--arch/mips/configs/lasat_defconfig3
-rw-r--r--arch/mips/configs/lemote2f_defconfig2211
-rw-r--r--arch/mips/configs/malta_defconfig3
-rw-r--r--arch/mips/configs/markeins_defconfig3
-rw-r--r--arch/mips/configs/mipssim_defconfig3
-rw-r--r--arch/mips/configs/mpc30x_defconfig3
-rw-r--r--arch/mips/configs/msp71xx_defconfig3
-rw-r--r--arch/mips/configs/mtx1_defconfig3
-rw-r--r--arch/mips/configs/pb1100_defconfig1162
-rw-r--r--arch/mips/configs/pb1200_defconfig1568
-rw-r--r--arch/mips/configs/pb1500_defconfig1327
-rw-r--r--arch/mips/configs/pb1550_defconfig1357
-rw-r--r--arch/mips/configs/pnx8335-stb225_defconfig3
-rw-r--r--arch/mips/configs/pnx8550-jbs_defconfig3
-rw-r--r--arch/mips/configs/pnx8550-stb810_defconfig3
-rw-r--r--arch/mips/configs/powertv_defconfig1550
-rw-r--r--arch/mips/configs/rb532_defconfig3
-rw-r--r--arch/mips/configs/rbtx49xx_defconfig4
-rw-r--r--arch/mips/configs/rm200_defconfig3
-rw-r--r--arch/mips/configs/sb1250-swarm_defconfig3
-rw-r--r--arch/mips/configs/tb0219_defconfig3
-rw-r--r--arch/mips/configs/tb0226_defconfig3
-rw-r--r--arch/mips/configs/tb0287_defconfig3
-rw-r--r--arch/mips/configs/workpad_defconfig3
-rw-r--r--arch/mips/configs/wrppmc_defconfig3
-rw-r--r--arch/mips/configs/yosemite_defconfig3
-rw-r--r--arch/mips/dec/kn01-berr.c10
-rw-r--r--arch/mips/dec/prom/locore.S1
-rw-r--r--arch/mips/fw/arc/cmdline.c5
-rw-r--r--arch/mips/include/asm/abi.h6
-rw-r--r--arch/mips/include/asm/asm-offsets.h1
-rw-r--r--arch/mips/include/asm/atomic.h16
-rw-r--r--arch/mips/include/asm/barrier.h60
-rw-r--r--arch/mips/include/asm/bitops.h8
-rw-r--r--arch/mips/include/asm/bootinfo.h8
-rw-r--r--arch/mips/include/asm/bug.h4
-rw-r--r--arch/mips/include/asm/cacheflush.h1
-rw-r--r--arch/mips/include/asm/clock.h64
-rw-r--r--arch/mips/include/asm/cmpxchg.h12
-rw-r--r--arch/mips/include/asm/compat.h3
-rw-r--r--arch/mips/include/asm/cop2.h23
-rw-r--r--arch/mips/include/asm/cpu-features.h10
-rw-r--r--arch/mips/include/asm/cpu-info.h3
-rw-r--r--arch/mips/include/asm/cpu.h4
-rw-r--r--arch/mips/include/asm/current.h24
-rw-r--r--arch/mips/include/asm/dec/kn01.h1
-rw-r--r--arch/mips/include/asm/device.h1
-rw-r--r--arch/mips/include/asm/elf.h20
-rw-r--r--arch/mips/include/asm/fcntl.h17
-rw-r--r--arch/mips/include/asm/fpu.h8
-rw-r--r--arch/mips/include/asm/fpu_emulator.h28
-rw-r--r--arch/mips/include/asm/ftrace.h91
-rw-r--r--arch/mips/include/asm/i8259.h6
-rw-r--r--arch/mips/include/asm/io.h18
-rw-r--r--arch/mips/include/asm/irq.h30
-rw-r--r--arch/mips/include/asm/local.h25
-rw-r--r--arch/mips/include/asm/mach-ar7/ar7.h23
-rw-r--r--arch/mips/include/asm/mach-ar7/gpio.h86
-rw-r--r--arch/mips/include/asm/mach-au1x00/au1000.h876
-rw-r--r--arch/mips/include/asm/mach-au1x00/au1100_mmc.h2
-rw-r--r--arch/mips/include/asm/mach-au1x00/au1xxx_dbdma.h24
-rw-r--r--arch/mips/include/asm/mach-au1x00/au1xxx_eth.h17
-rw-r--r--arch/mips/include/asm/mach-au1x00/gpio-au1000.h164
-rw-r--r--arch/mips/include/asm/mach-au1x00/gpio.h2
-rw-r--r--arch/mips/include/asm/mach-au1x00/ioremap.h2
-rw-r--r--arch/mips/include/asm/mach-au1x00/prom.h1
-rw-r--r--arch/mips/include/asm/mach-bcm63xx/bcm63xx_cpu.h15
-rw-r--r--arch/mips/include/asm/mach-bcm63xx/bcm63xx_dev_uart.h6
-rw-r--r--arch/mips/include/asm/mach-bcm63xx/bcm63xx_gpio.h4
-rw-r--r--arch/mips/include/asm/mach-bcm63xx/bcm63xx_regs.h1
-rw-r--r--arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h2
-rw-r--r--arch/mips/include/asm/mach-bcm63xx/cpu-feature-overrides.h2
-rw-r--r--arch/mips/include/asm/mach-cavium-octeon/cpu-feature-overrides.h3
-rw-r--r--arch/mips/include/asm/mach-db1x00/bcsr.h238
-rw-r--r--arch/mips/include/asm/mach-db1x00/db1200.h156
-rw-r--r--arch/mips/include/asm/mach-db1x00/db1x00.h100
-rw-r--r--arch/mips/include/asm/mach-excite/cpu-feature-overrides.h48
-rw-r--r--arch/mips/include/asm/mach-excite/excite.h154
-rw-r--r--arch/mips/include/asm/mach-excite/excite_fpga.h80
-rw-r--r--arch/mips/include/asm/mach-excite/excite_nandflash.h7
-rw-r--r--arch/mips/include/asm/mach-excite/rm9k_eth.h23
-rw-r--r--arch/mips/include/asm/mach-excite/rm9k_wdt.h12
-rw-r--r--arch/mips/include/asm/mach-excite/rm9k_xicap.h16
-rw-r--r--arch/mips/include/asm/mach-ip27/topology.h4
-rw-r--r--arch/mips/include/asm/mach-loongson/cpu-feature-overrides.h2
-rw-r--r--arch/mips/include/asm/mach-loongson/cs5536/cs5536.h305
-rw-r--r--arch/mips/include/asm/mach-loongson/cs5536/cs5536_mfgpt.h35
-rw-r--r--arch/mips/include/asm/mach-loongson/cs5536/cs5536_pci.h153
-rw-r--r--arch/mips/include/asm/mach-loongson/cs5536/cs5536_vsm.h31
-rw-r--r--arch/mips/include/asm/mach-loongson/dma-coherence.h4
-rw-r--r--arch/mips/include/asm/mach-loongson/loongson.h295
-rw-r--r--arch/mips/include/asm/mach-loongson/machine.h13
-rw-r--r--arch/mips/include/asm/mach-loongson/mem.h29
-rw-r--r--arch/mips/include/asm/mach-loongson/pci.h45
-rw-r--r--arch/mips/include/asm/mach-pb1x00/pb1100.h85
-rw-r--r--arch/mips/include/asm/mach-pb1x00/pb1200.h122
-rw-r--r--arch/mips/include/asm/mach-pb1x00/pb1500.h49
-rw-r--r--arch/mips/include/asm/mach-pb1x00/pb1550.h96
-rw-r--r--arch/mips/include/asm/mach-pnx833x/gpio.h2
-rw-r--r--arch/mips/include/asm/mach-pnx833x/irq-mapping.h1
-rw-r--r--arch/mips/include/asm/mach-powertv/asic.h107
-rw-r--r--arch/mips/include/asm/mach-powertv/asic_reg_map.h90
-rw-r--r--arch/mips/include/asm/mach-powertv/asic_regs.h122
-rw-r--r--arch/mips/include/asm/mach-powertv/dma-coherence.h119
-rw-r--r--arch/mips/include/asm/mach-powertv/interrupts.h253
-rw-r--r--arch/mips/include/asm/mach-powertv/ioremap.h90
-rw-r--r--arch/mips/include/asm/mach-powertv/irq.h25
-rw-r--r--arch/mips/include/asm/mach-powertv/powertv-clock.h29
-rw-r--r--arch/mips/include/asm/mach-powertv/war.h (renamed from arch/mips/include/asm/mach-excite/war.h)19
-rw-r--r--arch/mips/include/asm/mach-sibyte/war.h6
-rw-r--r--arch/mips/include/asm/mips-boards/bonito64.h5
-rw-r--r--arch/mips/include/asm/mipsregs.h36
-rw-r--r--arch/mips/include/asm/mmu.h5
-rw-r--r--arch/mips/include/asm/mmu_context.h31
-rw-r--r--arch/mips/include/asm/msc01_ic.h1
-rw-r--r--arch/mips/include/asm/nile4.h1
-rw-r--r--arch/mips/include/asm/octeon/cvmx-agl-defs.h1194
-rw-r--r--arch/mips/include/asm/octeon/cvmx-mixx-defs.h248
-rw-r--r--arch/mips/include/asm/octeon/cvmx-smix-defs.h178
-rw-r--r--arch/mips/include/asm/octeon/octeon-feature.h8
-rw-r--r--arch/mips/include/asm/octeon/octeon.h6
-rw-r--r--arch/mips/include/asm/page.h18
-rw-r--r--arch/mips/include/asm/param.h17
-rw-r--r--arch/mips/include/asm/parport.h16
-rw-r--r--arch/mips/include/asm/pci.h22
-rw-r--r--arch/mips/include/asm/pgalloc.h4
-rw-r--r--arch/mips/include/asm/pgtable-32.h4
-rw-r--r--arch/mips/include/asm/pgtable-64.h53
-rw-r--r--arch/mips/include/asm/pgtable-bits.h120
-rw-r--r--arch/mips/include/asm/pgtable.h44
-rw-r--r--arch/mips/include/asm/pmc-sierra/msp71xx/msp_prom.h1
-rw-r--r--arch/mips/include/asm/processor.h11
-rw-r--r--arch/mips/include/asm/ptrace.h4
-rw-r--r--arch/mips/include/asm/serial.h23
-rw-r--r--arch/mips/include/asm/sgi/ioc.h2
-rw-r--r--arch/mips/include/asm/sgialib.h48
-rw-r--r--arch/mips/include/asm/sibyte/bigsur.h1
-rw-r--r--arch/mips/include/asm/sibyte/sb1250_ldt.h1
-rw-r--r--arch/mips/include/asm/sibyte/sb1250_mac.h2
-rw-r--r--arch/mips/include/asm/sn/klkernvars.h1
-rw-r--r--arch/mips/include/asm/sn/sn0/hubio.h2
-rw-r--r--arch/mips/include/asm/socket.h2
-rw-r--r--arch/mips/include/asm/sparsemem.h1
-rw-r--r--arch/mips/include/asm/spinlock.h194
-rw-r--r--arch/mips/include/asm/spinlock_types.h30
-rw-r--r--arch/mips/include/asm/stackframe.h59
-rw-r--r--arch/mips/include/asm/system.h4
-rw-r--r--arch/mips/include/asm/time.h14
-rw-r--r--arch/mips/include/asm/txx9/generic.h1
-rw-r--r--arch/mips/include/asm/uasm.h (renamed from arch/mips/mm/uasm.h)31
-rw-r--r--arch/mips/include/asm/ucontext.h22
-rw-r--r--arch/mips/include/asm/unistd.h17
-rw-r--r--arch/mips/include/asm/vdso.h29
-rw-r--r--arch/mips/jazz/irq.c10
-rw-r--r--arch/mips/jazz/jazzdma.c1
-rw-r--r--arch/mips/jazz/setup.c12
-rw-r--r--arch/mips/kernel/Makefile17
-rw-r--r--arch/mips/kernel/asm-offsets.c4
-rw-r--r--arch/mips/kernel/cevt-gt641xx.c10
-rw-r--r--arch/mips/kernel/cevt-r4k.c2
-rw-r--r--arch/mips/kernel/cpu-probe.c43
-rw-r--r--arch/mips/kernel/cpufreq/Kconfig41
-rw-r--r--arch/mips/kernel/cpufreq/Makefile5
-rw-r--r--arch/mips/kernel/cpufreq/loongson2_clock.c170
-rw-r--r--arch/mips/kernel/cpufreq/loongson2_cpufreq.c227
-rw-r--r--arch/mips/kernel/csrc-powertv.c180
-rw-r--r--arch/mips/kernel/ftrace.c275
-rw-r--r--arch/mips/kernel/i8259.c22
-rw-r--r--arch/mips/kernel/irq-gt641xx.c18
-rw-r--r--arch/mips/kernel/irq.c35
-rw-r--r--arch/mips/kernel/kspd.c1
-rw-r--r--arch/mips/kernel/linux32.c99
-rw-r--r--arch/mips/kernel/mcount.S189
-rw-r--r--arch/mips/kernel/mips_ksyms.c5
-rw-r--r--arch/mips/kernel/octeon_switch.S1
-rw-r--r--arch/mips/kernel/process.c8
-rw-r--r--arch/mips/kernel/ptrace.c30
-rw-r--r--arch/mips/kernel/rtlx.c2
-rw-r--r--arch/mips/kernel/scall32-o32.S1
-rw-r--r--arch/mips/kernel/scall64-64.S1
-rw-r--r--arch/mips/kernel/scall64-n32.S7
-rw-r--r--arch/mips/kernel/scall64-o32.S5
-rw-r--r--arch/mips/kernel/setup.c44
-rw-r--r--arch/mips/kernel/signal-common.h5
-rw-r--r--arch/mips/kernel/signal.c130
-rw-r--r--arch/mips/kernel/signal32.c79
-rw-r--r--arch/mips/kernel/signal_n32.c26
-rw-r--r--arch/mips/kernel/smp.c3
-rw-r--r--arch/mips/kernel/smtc.c26
-rw-r--r--arch/mips/kernel/spinlock_test.c141
-rw-r--r--arch/mips/kernel/syscall.c170
-rw-r--r--arch/mips/kernel/time.c33
-rw-r--r--arch/mips/kernel/traps.c184
-rw-r--r--arch/mips/kernel/unaligned.c25
-rw-r--r--arch/mips/kernel/vdso.c112
-rw-r--r--arch/mips/kernel/vmlinux.lds.S1
-rw-r--r--arch/mips/kernel/vpe.c1
-rw-r--r--arch/mips/lasat/picvue.h1
-rw-r--r--arch/mips/lasat/picvue_proc.c113
-rw-r--r--arch/mips/lasat/prom.c4
-rw-r--r--arch/mips/lasat/sysctl.c119
-rw-r--r--arch/mips/lib/delay.c4
-rw-r--r--arch/mips/lib/libgcc.h3
-rw-r--r--arch/mips/loongson/Kconfig108
-rw-r--r--arch/mips/loongson/Makefile6
-rw-r--r--arch/mips/loongson/common/Makefile18
-rw-r--r--arch/mips/loongson/common/bonito-irq.c13
-rw-r--r--arch/mips/loongson/common/cmdline.c13
-rw-r--r--arch/mips/loongson/common/cs5536/Makefile13
-rw-r--r--arch/mips/loongson/common/cs5536/cs5536_acc.c140
-rw-r--r--arch/mips/loongson/common/cs5536/cs5536_ehci.c158
-rw-r--r--arch/mips/loongson/common/cs5536/cs5536_ide.c179
-rw-r--r--arch/mips/loongson/common/cs5536/cs5536_isa.c316
-rw-r--r--arch/mips/loongson/common/cs5536/cs5536_mfgpt.c217
-rw-r--r--arch/mips/loongson/common/cs5536/cs5536_ohci.c147
-rw-r--r--arch/mips/loongson/common/cs5536/cs5536_pci.c87
-rw-r--r--arch/mips/loongson/common/early_printk.c19
-rw-r--r--arch/mips/loongson/common/env.c32
-rw-r--r--arch/mips/loongson/common/init.c21
-rw-r--r--arch/mips/loongson/common/irq.c12
-rw-r--r--arch/mips/loongson/common/machtype.c37
-rw-r--r--arch/mips/loongson/common/mem.c96
-rw-r--r--arch/mips/loongson/common/pci.c20
-rw-r--r--arch/mips/loongson/common/platform.c30
-rw-r--r--arch/mips/loongson/common/pm.c161
-rw-r--r--arch/mips/loongson/common/reset.c40
-rw-r--r--arch/mips/loongson/common/serial.c76
-rw-r--r--arch/mips/loongson/common/setup.c15
-rw-r--r--arch/mips/loongson/common/time.c7
-rw-r--r--arch/mips/loongson/common/uart_base.c45
-rw-r--r--arch/mips/loongson/fuloong-2e/irq.c4
-rw-r--r--arch/mips/loongson/fuloong-2e/reset.c8
-rw-r--r--arch/mips/loongson/lemote-2f/Makefile11
-rw-r--r--arch/mips/loongson/lemote-2f/ec_kb3310b.c130
-rw-r--r--arch/mips/loongson/lemote-2f/ec_kb3310b.h188
-rw-r--r--arch/mips/loongson/lemote-2f/irq.c134
-rw-r--r--arch/mips/loongson/lemote-2f/machtype.c45
-rw-r--r--arch/mips/loongson/lemote-2f/pm.c149
-rw-r--r--arch/mips/loongson/lemote-2f/reset.c159
-rw-r--r--arch/mips/math-emu/cp1emu.c117
-rw-r--r--arch/mips/math-emu/dp_sub.c2
-rw-r--r--arch/mips/math-emu/dsemul.c4
-rw-r--r--arch/mips/math-emu/ieee754d.c1
-rw-r--r--arch/mips/math-emu/ieee754dp.c1
-rw-r--r--arch/mips/math-emu/ieee754sp.c1
-rw-r--r--arch/mips/math-emu/ieee754xcpt.c1
-rw-r--r--arch/mips/mipssim/Makefile3
-rw-r--r--arch/mips/mipssim/sim_int.c1
-rw-r--r--arch/mips/mipssim/sim_setup.c5
-rw-r--r--arch/mips/mm/c-octeon.c12
-rw-r--r--arch/mips/mm/cache.c59
-rw-r--r--arch/mips/mm/cerr-sb1.c7
-rw-r--r--arch/mips/mm/dma-default.c1
-rw-r--r--arch/mips/mm/fault.c27
-rw-r--r--arch/mips/mm/highmem.c1
-rw-r--r--arch/mips/mm/hugetlbpage.c2
-rw-r--r--arch/mips/mm/init.c11
-rw-r--r--arch/mips/mm/ioremap.c1
-rw-r--r--arch/mips/mm/page.c2
-rw-r--r--arch/mips/mm/pgtable-64.c44
-rw-r--r--arch/mips/mm/tlb-r4k.c84
-rw-r--r--arch/mips/mm/tlbex.c366
-rw-r--r--arch/mips/mm/uasm.c47
-rw-r--r--arch/mips/mti-malta/malta-init.c1
-rw-r--r--arch/mips/mti-malta/malta-int.c7
-rw-r--r--arch/mips/mti-malta/malta-memory.c2
-rw-r--r--arch/mips/nxp/pnx833x/common/interrupts.c41
-rw-r--r--arch/mips/nxp/pnx833x/common/prom.c6
-rw-r--r--arch/mips/nxp/pnx833x/common/reset.c1
-rw-r--r--arch/mips/nxp/pnx8550/common/int.c1
-rw-r--r--arch/mips/nxp/pnx8550/common/proc.c1
-rw-r--r--arch/mips/nxp/pnx8550/common/prom.c1
-rw-r--r--arch/mips/nxp/pnx8550/common/reset.c3
-rw-r--r--arch/mips/oprofile/common.c7
-rw-r--r--arch/mips/oprofile/op_model_loongson2.c14
-rw-r--r--arch/mips/pci/Makefile4
-rw-r--r--arch/mips/pci/fixup-cobalt.c61
-rw-r--r--arch/mips/pci/fixup-excite.c36
-rw-r--r--arch/mips/pci/fixup-fuloong2e.c5
-rw-r--r--arch/mips/pci/fixup-lemote2f.c160
-rw-r--r--arch/mips/pci/ops-bonito64.c7
-rw-r--r--arch/mips/pci/ops-loongson2.c216
-rw-r--r--arch/mips/pci/ops-pmcmsp.c2
-rw-r--r--arch/mips/pci/ops-titan-ht.c1
-rw-r--r--arch/mips/pci/pci-bcm47xx.c1
-rw-r--r--arch/mips/pci/pci-excite.c149
-rw-r--r--arch/mips/pci/pci-octeon.c6
-rw-r--r--arch/mips/pci/pci-sb1250.c3
-rw-r--r--arch/mips/pci/pci.c8
-rw-r--r--arch/mips/pmc-sierra/msp71xx/msp_irq_cic.c1
-rw-r--r--arch/mips/pmc-sierra/msp71xx/msp_prom.c7
-rw-r--r--arch/mips/pmc-sierra/yosemite/atmel_read_eeprom.c2
-rw-r--r--arch/mips/pmc-sierra/yosemite/atmel_read_eeprom.h1
-rw-r--r--arch/mips/pmc-sierra/yosemite/ht.c11
-rw-r--r--arch/mips/pmc-sierra/yosemite/irq.c1
-rw-r--r--arch/mips/pmc-sierra/yosemite/smp.c8
-rw-r--r--arch/mips/power/cpu.c4
-rw-r--r--arch/mips/power/hibernate.S4
-rw-r--r--arch/mips/powertv/Kconfig21
-rw-r--r--arch/mips/powertv/Makefile28
-rw-r--r--arch/mips/powertv/asic/Kconfig28
-rw-r--r--arch/mips/powertv/asic/Makefile23
-rw-r--r--arch/mips/powertv/asic/asic-calliope.c101
-rw-r--r--arch/mips/powertv/asic/asic-cronus.c101
-rw-r--r--arch/mips/powertv/asic/asic-zeus.c101
-rw-r--r--arch/mips/powertv/asic/asic_devices.c776
-rw-r--r--arch/mips/powertv/asic/asic_int.c124
-rw-r--r--arch/mips/powertv/asic/irq_asic.c116
-rw-r--r--arch/mips/powertv/asic/prealloc-calliope.c620
-rw-r--r--arch/mips/powertv/asic/prealloc-cronus.c608
-rw-r--r--arch/mips/powertv/asic/prealloc-cronuslite.c290
-rw-r--r--arch/mips/powertv/asic/prealloc-zeus.c459
-rw-r--r--arch/mips/powertv/init.c129
-rw-r--r--arch/mips/powertv/init.h26
-rw-r--r--arch/mips/powertv/memory.c181
-rw-r--r--arch/mips/powertv/pci/Makefile21
-rw-r--r--arch/mips/powertv/pci/fixup-powertv.c36
-rw-r--r--arch/mips/powertv/pci/powertv-pci.h31
-rw-r--r--arch/mips/powertv/powertv-clock.h26
-rw-r--r--arch/mips/powertv/powertv_setup.c326
-rw-r--r--arch/mips/powertv/reset.c47
-rw-r--r--arch/mips/powertv/reset.h26
-rw-r--r--arch/mips/powertv/time.c (renamed from arch/mips/mipssim/sim_cmdline.c)20
-rw-r--r--arch/mips/rb532/irq.c1
-rw-r--r--arch/mips/rb532/prom.c4
-rw-r--r--arch/mips/sgi-ip22/ip22-berr.c2
-rw-r--r--arch/mips/sgi-ip22/ip22-eisa.c4
-rw-r--r--arch/mips/sgi-ip22/ip22-int.c3
-rw-r--r--arch/mips/sgi-ip22/ip22-setup.c2
-rw-r--r--arch/mips/sgi-ip22/ip22-time.c3
-rw-r--r--arch/mips/sgi-ip22/ip28-berr.c2
-rw-r--r--arch/mips/sgi-ip27/ip27-irq.c1
-rw-r--r--arch/mips/sgi-ip27/ip27-klnuma.c1
-rw-r--r--arch/mips/sgi-ip27/ip27-memory.c2
-rw-r--r--arch/mips/sgi-ip27/ip27-nmi.c7
-rw-r--r--arch/mips/sgi-ip32/ip32-irq.c10
-rw-r--r--arch/mips/sgi-ip32/ip32-setup.c2
-rw-r--r--arch/mips/sibyte/bcm1480/irq.c15
-rw-r--r--arch/mips/sibyte/common/cfe.c4
-rw-r--r--arch/mips/sibyte/common/sb_tbprof.c2
-rw-r--r--arch/mips/sibyte/sb1250/irq.c15
-rw-r--r--arch/mips/sibyte/sb1250/setup.c15
-rw-r--r--arch/mips/sibyte/swarm/setup.c17
-rw-r--r--arch/mips/sni/a20r.c2
-rw-r--r--arch/mips/sni/pcimt.c2
-rw-r--r--arch/mips/sni/pcit.c2
-rw-r--r--arch/mips/sni/rm200.c26
-rw-r--r--arch/mips/sni/setup.c2
-rw-r--r--arch/mips/txx9/generic/7segled.c5
-rw-r--r--arch/mips/txx9/generic/pci.c1
-rw-r--r--arch/mips/txx9/generic/setup.c30
-rw-r--r--arch/mips/txx9/generic/smsc_fdc37m81x.c2
-rw-r--r--arch/mips/txx9/generic/spi_eeprom.c1
-rw-r--r--arch/mips/txx9/jmr3927/setup.c7
-rw-r--r--arch/mips/txx9/rbtx4927/setup.c7
-rw-r--r--arch/mips/txx9/rbtx4938/setup.c6
-rw-r--r--arch/mips/txx9/rbtx4939/setup.c1
-rw-r--r--arch/mips/vr41xx/common/icu.c92
-rw-r--r--arch/mips/vr41xx/common/init.c6
482 files changed, 31893 insertions, 14198 deletions
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
index fd7620f025fa..7e6fd1cbd3f8 100644
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -5,9 +5,12 @@ config MIPS
5 select HAVE_IDE 5 select HAVE_IDE
6 select HAVE_OPROFILE 6 select HAVE_OPROFILE
7 select HAVE_ARCH_KGDB 7 select HAVE_ARCH_KGDB
8 # Horrible source of confusion. Die, die, die ... 8 select HAVE_FUNCTION_TRACER
9 select EMBEDDED 9 select HAVE_FUNCTION_TRACE_MCOUNT_TEST
10 select RTC_LIB if !LEMOTE_FULOONG2E 10 select HAVE_DYNAMIC_FTRACE
11 select HAVE_FTRACE_MCOUNT_RECORD
12 select HAVE_FUNCTION_GRAPH_TRACER
13 select RTC_LIB if !MACH_LOONGSON
11 14
12mainmenu "Linux/MIPS Kernel Configuration" 15mainmenu "Linux/MIPS Kernel Configuration"
13 16
@@ -22,6 +25,7 @@ choice
22 25
23config MACH_ALCHEMY 26config MACH_ALCHEMY
24 bool "Alchemy processor based machines" 27 bool "Alchemy processor based machines"
28 select SYS_SUPPORTS_ZBOOT
25 29
26config AR7 30config AR7
27 bool "Texas Instruments AR7" 31 bool "Texas Instruments AR7"
@@ -36,32 +40,16 @@ config AR7
36 select SYS_HAS_EARLY_PRINTK 40 select SYS_HAS_EARLY_PRINTK
37 select SYS_SUPPORTS_32BIT_KERNEL 41 select SYS_SUPPORTS_32BIT_KERNEL
38 select SYS_SUPPORTS_LITTLE_ENDIAN 42 select SYS_SUPPORTS_LITTLE_ENDIAN
39 select GENERIC_GPIO 43 select SYS_SUPPORTS_ZBOOT_UART16550
44 select ARCH_REQUIRE_GPIOLIB
40 select GCD 45 select GCD
41 select VLYNQ 46 select VLYNQ
42 help 47 help
43 Support for the Texas Instruments AR7 System-on-a-Chip 48 Support for the Texas Instruments AR7 System-on-a-Chip
44 family: TNETD7100, 7200 and 7300. 49 family: TNETD7100, 7200 and 7300.
45 50
46config BASLER_EXCITE
47 bool "Basler eXcite smart camera"
48 select CEVT_R4K
49 select CSRC_R4K
50 select DMA_COHERENT
51 select HW_HAS_PCI
52 select IRQ_CPU
53 select IRQ_CPU_RM7K
54 select IRQ_CPU_RM9K
55 select MIPS_RM9122
56 select SYS_HAS_CPU_RM9000
57 select SYS_SUPPORTS_32BIT_KERNEL
58 select SYS_SUPPORTS_BIG_ENDIAN
59 help
60 The eXcite is a smart camera platform manufactured by
61 Basler Vision Technologies AG.
62
63config BCM47XX 51config BCM47XX
64 bool "BCM47XX based boards" 52 bool "Broadcom BCM47XX based boards"
65 select CEVT_R4K 53 select CEVT_R4K
66 select CSRC_R4K 54 select CSRC_R4K
67 select DMA_NONCOHERENT 55 select DMA_NONCOHERENT
@@ -192,6 +180,7 @@ config LASAT
192 180
193config MACH_LOONGSON 181config MACH_LOONGSON
194 bool "Loongson family of machines" 182 bool "Loongson family of machines"
183 select SYS_SUPPORTS_ZBOOT
195 help 184 help
196 This enables the support of Loongson family of machines. 185 This enables the support of Loongson family of machines.
197 186
@@ -233,6 +222,7 @@ config MIPS_MALTA
233 select SYS_SUPPORTS_MIPS_CMP 222 select SYS_SUPPORTS_MIPS_CMP
234 select SYS_SUPPORTS_MULTITHREADING 223 select SYS_SUPPORTS_MULTITHREADING
235 select SYS_SUPPORTS_SMARTMIPS 224 select SYS_SUPPORTS_SMARTMIPS
225 select SYS_SUPPORTS_ZBOOT
236 help 226 help
237 This enables support for the MIPS Technologies Malta evaluation 227 This enables support for the MIPS Technologies Malta evaluation
238 board. 228 board.
@@ -334,6 +324,24 @@ config PMC_YOSEMITE
334 Yosemite is an evaluation board for the RM9000x2 processor 324 Yosemite is an evaluation board for the RM9000x2 processor
335 manufactured by PMC-Sierra. 325 manufactured by PMC-Sierra.
336 326
327config POWERTV
328 bool "Cisco PowerTV"
329 select BOOT_ELF32
330 select CEVT_R4K
331 select CPU_MIPSR2_IRQ_VI
332 select CPU_MIPSR2_IRQ_EI
333 select CSRC_POWERTV
334 select DMA_NONCOHERENT
335 select HW_HAS_PCI
336 select SYS_HAS_EARLY_PRINTK
337 select SYS_HAS_CPU_MIPS32_R2
338 select SYS_SUPPORTS_32BIT_KERNEL
339 select SYS_SUPPORTS_BIG_ENDIAN
340 select SYS_SUPPORTS_HIGHMEM
341 select USB_OHCI_LITTLE_ENDIAN
342 help
343 This enables support for the Cisco PowerTV Platform.
344
337config SGI_IP22 345config SGI_IP22
338 bool "SGI IP22 (Indy/Indigo2)" 346 bool "SGI IP22 (Indy/Indigo2)"
339 select ARC 347 select ARC
@@ -501,6 +509,7 @@ config SIBYTE_SWARM
501 bool "Sibyte BCM91250A-SWARM" 509 bool "Sibyte BCM91250A-SWARM"
502 select BOOT_ELF32 510 select BOOT_ELF32
503 select DMA_COHERENT 511 select DMA_COHERENT
512 select HAVE_PATA_PLATFORM
504 select NR_CPUS_DEFAULT_2 513 select NR_CPUS_DEFAULT_2
505 select SIBYTE_SB1250 514 select SIBYTE_SB1250
506 select SWAP_IO_SPACE 515 select SWAP_IO_SPACE
@@ -515,6 +524,7 @@ config SIBYTE_LITTLESUR
515 depends on EXPERIMENTAL 524 depends on EXPERIMENTAL
516 select BOOT_ELF32 525 select BOOT_ELF32
517 select DMA_COHERENT 526 select DMA_COHERENT
527 select HAVE_PATA_PLATFORM
518 select NR_CPUS_DEFAULT_2 528 select NR_CPUS_DEFAULT_2
519 select SIBYTE_SB1250 529 select SIBYTE_SB1250
520 select SWAP_IO_SPACE 530 select SWAP_IO_SPACE
@@ -674,11 +684,11 @@ config CAVIUM_OCTEON_REFERENCE_BOARD
674endchoice 684endchoice
675 685
676source "arch/mips/alchemy/Kconfig" 686source "arch/mips/alchemy/Kconfig"
677source "arch/mips/basler/excite/Kconfig"
678source "arch/mips/bcm63xx/Kconfig" 687source "arch/mips/bcm63xx/Kconfig"
679source "arch/mips/jazz/Kconfig" 688source "arch/mips/jazz/Kconfig"
680source "arch/mips/lasat/Kconfig" 689source "arch/mips/lasat/Kconfig"
681source "arch/mips/pmc-sierra/Kconfig" 690source "arch/mips/pmc-sierra/Kconfig"
691source "arch/mips/powertv/Kconfig"
682source "arch/mips/sgi-ip27/Kconfig" 692source "arch/mips/sgi-ip27/Kconfig"
683source "arch/mips/sibyte/Kconfig" 693source "arch/mips/sibyte/Kconfig"
684source "arch/mips/txx9/Kconfig" 694source "arch/mips/txx9/Kconfig"
@@ -778,6 +788,9 @@ config CSRC_BCM1480
778config CSRC_IOASIC 788config CSRC_IOASIC
779 bool 789 bool
780 790
791config CSRC_POWERTV
792 bool
793
781config CSRC_R4K_LIB 794config CSRC_R4K_LIB
782 bool 795 bool
783 796
@@ -801,25 +814,11 @@ config DMA_COHERENT
801 814
802config DMA_NONCOHERENT 815config DMA_NONCOHERENT
803 bool 816 bool
804 select DMA_NEED_PCI_MAP_STATE 817 select NEED_DMA_MAP_STATE
805 818
806config DMA_NEED_PCI_MAP_STATE 819config NEED_DMA_MAP_STATE
807 bool 820 bool
808 821
809config EARLY_PRINTK
810 bool "Early printk" if EMBEDDED && DEBUG_KERNEL
811 depends on SYS_HAS_EARLY_PRINTK
812 default y
813 help
814 This option enables special console drivers which allow the kernel
815 to print messages very early in the bootup process.
816
817 This is useful for kernel debugging when your machine crashes very
818 early before the console code is initialized. For normal operation,
819 it is not recommended because it looks ugly on some machines and
820 doesn't cooperate with an X server. You should normally say N here,
821 unless you want to debug such a crash.
822
823config SYS_HAS_EARLY_PRINTK 822config SYS_HAS_EARLY_PRINTK
824 bool 823 bool
825 824
@@ -1069,6 +1068,21 @@ config CPU_LOONGSON2E
1069 The Loongson 2E processor implements the MIPS III instruction set 1068 The Loongson 2E processor implements the MIPS III instruction set
1070 with many extensions. 1069 with many extensions.
1071 1070
1071 It has an internal FPGA northbridge, which is compatiable to
1072 bonito64.
1073
1074config CPU_LOONGSON2F
1075 bool "Loongson 2F"
1076 depends on SYS_HAS_CPU_LOONGSON2F
1077 select CPU_LOONGSON2
1078 help
1079 The Loongson 2F processor implements the MIPS III instruction set
1080 with many extensions.
1081
1082 Loongson2F have built-in DDR2 and PCIX controller. The PCIX controller
1083 have a similar programming interface with FPGA northbridge used in
1084 Loongson2E.
1085
1072config CPU_MIPS32_R1 1086config CPU_MIPS32_R1
1073 bool "MIPS32 Release 1" 1087 bool "MIPS32 Release 1"
1074 depends on SYS_HAS_CPU_MIPS32_R1 1088 depends on SYS_HAS_CPU_MIPS32_R1
@@ -1283,7 +1297,6 @@ config CPU_CAVIUM_OCTEON
1283 select SYS_SUPPORTS_SMP 1297 select SYS_SUPPORTS_SMP
1284 select NR_CPUS_DEFAULT_16 1298 select NR_CPUS_DEFAULT_16
1285 select WEAK_ORDERING 1299 select WEAK_ORDERING
1286 select WEAK_REORDERING_BEYOND_LLSC
1287 select CPU_SUPPORTS_HIGHMEM 1300 select CPU_SUPPORTS_HIGHMEM
1288 select CPU_SUPPORTS_HUGEPAGES 1301 select CPU_SUPPORTS_HUGEPAGES
1289 help 1302 help
@@ -1294,6 +1307,44 @@ config CPU_CAVIUM_OCTEON
1294 1307
1295endchoice 1308endchoice
1296 1309
1310if CPU_LOONGSON2F
1311config CPU_NOP_WORKAROUNDS
1312 bool
1313
1314config CPU_JUMP_WORKAROUNDS
1315 bool
1316
1317config 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.
1335endif # CPU_LOONGSON2F
1336
1337config SYS_SUPPORTS_ZBOOT
1338 bool
1339 select HAVE_KERNEL_GZIP
1340 select HAVE_KERNEL_BZIP2
1341 select HAVE_KERNEL_LZMA
1342 select HAVE_KERNEL_LZO
1343
1344config SYS_SUPPORTS_ZBOOT_UART16550
1345 bool
1346 select SYS_SUPPORTS_ZBOOT
1347
1297config CPU_LOONGSON2 1348config CPU_LOONGSON2
1298 bool 1349 bool
1299 select CPU_SUPPORTS_32BIT_KERNEL 1350 select CPU_SUPPORTS_32BIT_KERNEL
@@ -1303,6 +1354,12 @@ config CPU_LOONGSON2
1303config SYS_HAS_CPU_LOONGSON2E 1354config SYS_HAS_CPU_LOONGSON2E
1304 bool 1355 bool
1305 1356
1357config SYS_HAS_CPU_LOONGSON2F
1358 bool
1359 select CPU_SUPPORTS_CPUFREQ
1360 select CPU_SUPPORTS_ADDRWINCFG if 64BIT
1361 select CPU_SUPPORTS_UNCACHED_ACCELERATED
1362
1306config SYS_HAS_CPU_MIPS32_R1 1363config SYS_HAS_CPU_MIPS32_R1
1307 bool 1364 bool
1308 1365
@@ -1411,8 +1468,17 @@ config CPU_SUPPORTS_32BIT_KERNEL
1411 bool 1468 bool
1412config CPU_SUPPORTS_64BIT_KERNEL 1469config CPU_SUPPORTS_64BIT_KERNEL
1413 bool 1470 bool
1471config CPU_SUPPORTS_CPUFREQ
1472 bool
1473config CPU_SUPPORTS_ADDRWINCFG
1474 bool
1414config CPU_SUPPORTS_HUGEPAGES 1475config CPU_SUPPORTS_HUGEPAGES
1415 bool 1476 bool
1477config CPU_SUPPORTS_UNCACHED_ACCELERATED
1478 bool
1479config MIPS_PGD_C0_CONTEXT
1480 bool
1481 default y if 64BIT && CPU_MIPSR2
1416 1482
1417# 1483#
1418# Set to y for ptrace access to watch registers. 1484# Set to y for ptrace access to watch registers.
@@ -1688,6 +1754,9 @@ config SB1_PASS_2_1_WORKAROUNDS
1688config 64BIT_PHYS_ADDR 1754config 64BIT_PHYS_ADDR
1689 bool 1755 bool
1690 1756
1757config ARCH_PHYS_ADDR_T_64BIT
1758 def_bool 64BIT_PHYS_ADDR
1759
1691config CPU_HAS_SMARTMIPS 1760config CPU_HAS_SMARTMIPS
1692 depends on SYS_SUPPORTS_SMARTMIPS 1761 depends on SYS_SUPPORTS_SMARTMIPS
1693 bool "Support for the SmartMIPS ASE" 1762 bool "Support for the SmartMIPS ASE"
@@ -2024,15 +2093,6 @@ config STACKTRACE_SUPPORT
2024 2093
2025source "init/Kconfig" 2094source "init/Kconfig"
2026 2095
2027config PROBE_INITRD_HEADER
2028 bool "Probe initrd header created by addinitrd"
2029 depends on BLK_DEV_INITRD
2030 help
2031 Probe initrd header at the last page of kernel image.
2032 Say Y here if you are using arch/mips/boot/addinitrd.c to
2033 add initrd or initramfs image to the kernel image.
2034 Otherwise, say N.
2035
2036source "kernel/Kconfig.freezer" 2096source "kernel/Kconfig.freezer"
2037 2097
2038menu "Bus options (PCI, PCMCIA, EISA, ISA, TC)" 2098menu "Bus options (PCI, PCMCIA, EISA, ISA, TC)"
@@ -2104,6 +2164,7 @@ config MMU
2104 2164
2105config I8253 2165config I8253
2106 bool 2166 bool
2167 select MIPS_EXTERNAL_TIMER
2107 2168
2108config ZONE_DMA32 2169config ZONE_DMA32
2109 bool 2170 bool
@@ -2180,6 +2241,8 @@ source "kernel/power/Kconfig"
2180 2241
2181endmenu 2242endmenu
2182 2243
2244source "arch/mips/kernel/cpufreq/Kconfig"
2245
2183source "net/Kconfig" 2246source "net/Kconfig"
2184 2247
2185source "drivers/Kconfig" 2248source "drivers/Kconfig"
diff --git a/arch/mips/Kconfig.debug b/arch/mips/Kconfig.debug
index 364ca8938807..43dc27997730 100644
--- a/arch/mips/Kconfig.debug
+++ b/arch/mips/Kconfig.debug
@@ -6,15 +6,66 @@ config TRACE_IRQFLAGS_SUPPORT
6 6
7source "lib/Kconfig.debug" 7source "lib/Kconfig.debug"
8 8
9config EARLY_PRINTK
10 bool "Early printk" if EMBEDDED
11 depends on SYS_HAS_EARLY_PRINTK
12 default y
13 help
14 This option enables special console drivers which allow the kernel
15 to print messages very early in the bootup process.
16
17 This is useful for kernel debugging when your machine crashes very
18 early before the console code is initialized. For normal operation,
19 it is not recommended because it looks ugly on some machines and
20 doesn't cooperate with an X server. You should normally say N here,
21 unless you want to debug such a crash.
22
23config CMDLINE_BOOL
24 bool "Built-in kernel command line"
25 default n
26 help
27 For most systems, it is firmware or second stage bootloader that
28 by default specifies the kernel command line options. However,
29 it might be necessary or advantageous to either override the
30 default kernel command line or add a few extra options to it.
31 For such cases, this option allows you to hardcode your own
32 command line options directly into the kernel. For that, you
33 should choose 'Y' here, and fill in the extra boot arguments
34 in CONFIG_CMDLINE.
35
36 The built-in options will be concatenated to the default command
37 line if CMDLINE_OVERRIDE is set to 'N'. Otherwise, the default
38 command line will be ignored and replaced by the built-in string.
39
40 Most MIPS systems will normally expect 'N' here and rely upon
41 the command line from the firmware or the second-stage bootloader.
42
9config CMDLINE 43config CMDLINE
10 string "Default kernel command string" 44 string "Default kernel command string"
45 depends on CMDLINE_BOOL
11 default "" 46 default ""
12 help 47 help
13 On some platforms, there is currently no way for the boot loader to 48 On some platforms, there is currently no way for the boot loader to
14 pass arguments to the kernel. For these platforms, you can supply 49 pass arguments to the kernel. For these platforms, and for the cases
15 some command-line options at build time by entering them here. In 50 when you want to add some extra options to the command line or ignore
16 other cases you can specify kernel args so that you don't have 51 the default command line, you can supply some command-line options at
17 to set them up in board prom initialization routines. 52 build time by entering them here. In other cases you can specify
53 kernel args so that you don't have to set them up in board prom
54 initialization routines.
55
56 For more information, see the CMDLINE_BOOL and CMDLINE_OVERRIDE
57 options.
58
59config CMDLINE_OVERRIDE
60 bool "Built-in command line overrides firware arguments"
61 default n
62 depends on CMDLINE_BOOL
63 help
64 By setting this option to 'Y' you will have your kernel ignore
65 command line arguments from firmware or second stage bootloader.
66 Instead, the built-in command line will be used exclusively.
67
68 Normally, you will choose 'N' here.
18 69
19config DEBUG_STACK_USAGE 70config DEBUG_STACK_USAGE
20 bool "Enable stack utilization instrumentation" 71 bool "Enable stack utilization instrumentation"
@@ -51,4 +102,30 @@ config RUNTIME_DEBUG
51 arch/mips/include/asm/debug.h for debugging macros. 102 arch/mips/include/asm/debug.h for debugging macros.
52 If unsure, say N. 103 If unsure, say N.
53 104
105config DEBUG_ZBOOT
106 bool "Enable compressed kernel support debugging"
107 depends on DEBUG_KERNEL && SYS_SUPPORTS_ZBOOT
108 default n
109 help
110 If you want to add compressed kernel support to a new board, and the
111 board supports uart16550 compatible serial port, please select
112 SYS_SUPPORTS_ZBOOT_UART16550 for your board and enable this option to
113 debug it.
114
115 If your board doesn't support uart16550 compatible serial port, you
116 can try to select SYS_SUPPORTS_ZBOOT and use the other methods to
117 debug it. for example, add a new serial port support just as
118 arch/mips/boot/compressed/uart-16550.c does.
119
120 After the compressed kernel support works, please disable this option
121 to reduce the kernel image size and speed up the booting procedure a
122 little.
123
124config SPINLOCK_TEST
125 bool "Enable spinlock timing tests in debugfs"
126 depends on DEBUG_FS
127 default n
128 help
129 Add several files to the debugfs to test spinlock speed.
130
54endmenu 131endmenu
diff --git a/arch/mips/Makefile b/arch/mips/Makefile
index 77f5021218d3..0b9c01add0a0 100644
--- a/arch/mips/Makefile
+++ b/arch/mips/Makefile
@@ -48,7 +48,16 @@ ifneq ($(SUBARCH),$(ARCH))
48 endif 48 endif
49endif 49endif
50 50
51ifndef CONFIG_FUNCTION_TRACER
51cflags-y := -ffunction-sections 52cflags-y := -ffunction-sections
53endif
54ifdef CONFIG_FUNCTION_GRAPH_TRACER
55 ifndef KBUILD_MCOUNT_RA_ADDRESS
56 ifeq ($(call cc-option-yn,-mmcount-ra-address), y)
57 cflags-y += -mmcount-ra-address -DKBUILD_MCOUNT_RA_ADDRESS
58 endif
59 endif
60endif
52cflags-y += $(call cc-option, -mno-check-zero-division) 61cflags-y += $(call cc-option, -mno-check-zero-division)
53 62
54ifdef CONFIG_32BIT 63ifdef CONFIG_32BIT
@@ -69,6 +78,7 @@ endif
69 78
70all-$(CONFIG_BOOT_ELF32) := $(vmlinux-32) 79all-$(CONFIG_BOOT_ELF32) := $(vmlinux-32)
71all-$(CONFIG_BOOT_ELF64) := $(vmlinux-64) 80all-$(CONFIG_BOOT_ELF64) := $(vmlinux-64)
81all-$(CONFIG_SYS_SUPPORTS_ZBOOT)+= vmlinuz
72 82
73# 83#
74# GCC uses -G 0 -mabicalls -fpic as default. We don't want PIC in the kernel 84# GCC uses -G 0 -mabicalls -fpic as default. We don't want PIC in the kernel
@@ -124,6 +134,21 @@ cflags-$(CONFIG_CPU_TX49XX) += -march=r4600 -Wa,--trap
124cflags-$(CONFIG_CPU_LOONGSON2) += -Wa,--trap 134cflags-$(CONFIG_CPU_LOONGSON2) += -Wa,--trap
125cflags-$(CONFIG_CPU_LOONGSON2E) += \ 135cflags-$(CONFIG_CPU_LOONGSON2E) += \
126 $(call cc-option,-march=loongson2e,-march=r4600) 136 $(call cc-option,-march=loongson2e,-march=r4600)
137cflags-$(CONFIG_CPU_LOONGSON2F) += \
138 $(call cc-option,-march=loongson2f,-march=r4600)
139# enable the workarounds for loongson2f
140ifdef 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
151endif
127 152
128cflags-$(CONFIG_CPU_MIPS32_R1) += $(call cc-option,-march=mips32,-mips32 -U_MIPS_ISA -D_MIPS_ISA=_MIPS_ISA_MIPS32) \ 153cflags-$(CONFIG_CPU_MIPS32_R1) += $(call cc-option,-march=mips32,-mips32 -U_MIPS_ISA -D_MIPS_ISA=_MIPS_ISA_MIPS32) \
129 -Wa,-mips32 -Wa,--trap 154 -Wa,-mips32 -Wa,--trap
@@ -173,6 +198,15 @@ libs-$(CONFIG_SNIPROM) += arch/mips/fw/sni/
173libs-y += arch/mips/fw/lib/ 198libs-y += arch/mips/fw/lib/
174 199
175# 200#
201# Kernel compression
202#
203ifdef SYS_SUPPORTS_ZBOOT
204COMPRESSION_FNAME = vmlinuz
205else
206COMPRESSION_FNAME = vmlinux
207endif
208
209#
176# Board-dependent options and extra files 210# Board-dependent options and extra files
177# 211#
178 212
@@ -320,10 +354,11 @@ load-$(CONFIG_WR_PPMC) += 0xffffffff80100000
320# 354#
321# Loongson family 355# Loongson family
322# 356#
323core-$(CONFIG_MACH_LOONGSON) +=arch/mips/loongson/ 357core-$(CONFIG_MACH_LOONGSON) += arch/mips/loongson/
324cflags-$(CONFIG_MACH_LOONGSON) += -I$(srctree)/arch/mips/include/asm/mach-loongson \ 358cflags-$(CONFIG_MACH_LOONGSON) += -I$(srctree)/arch/mips/include/asm/mach-loongson \
325 -mno-branch-likely 359 -mno-branch-likely
326load-$(CONFIG_LEMOTE_FULOONG2E) +=0xffffffff80100000 360load-$(CONFIG_LEMOTE_FULOONG2E) += 0xffffffff80100000
361load-$(CONFIG_LEMOTE_MACH2F) += 0xffffffff80200000
327 362
328# 363#
329# MIPS Malta board 364# MIPS Malta board
@@ -331,7 +366,7 @@ load-$(CONFIG_LEMOTE_FULOONG2E) +=0xffffffff80100000
331core-$(CONFIG_MIPS_MALTA) += arch/mips/mti-malta/ 366core-$(CONFIG_MIPS_MALTA) += arch/mips/mti-malta/
332cflags-$(CONFIG_MIPS_MALTA) += -I$(srctree)/arch/mips/include/asm/mach-malta 367cflags-$(CONFIG_MIPS_MALTA) += -I$(srctree)/arch/mips/include/asm/mach-malta
333load-$(CONFIG_MIPS_MALTA) += 0xffffffff80100000 368load-$(CONFIG_MIPS_MALTA) += 0xffffffff80100000
334all-$(CONFIG_MIPS_MALTA) := vmlinux.bin 369all-$(CONFIG_MIPS_MALTA) := $(COMPRESSION_FNAME).bin
335 370
336# 371#
337# MIPS SIM 372# MIPS SIM
@@ -356,13 +391,6 @@ cflags-$(CONFIG_PMC_YOSEMITE) += -I$(srctree)/arch/mips/include/asm/mach-yosemit
356load-$(CONFIG_PMC_YOSEMITE) += 0xffffffff80100000 391load-$(CONFIG_PMC_YOSEMITE) += 0xffffffff80100000
357 392
358# 393#
359# Basler eXcite
360#
361core-$(CONFIG_BASLER_EXCITE) += arch/mips/basler/excite/
362cflags-$(CONFIG_BASLER_EXCITE) += -I$(srctree)/arch/mips/include/asm/mach-excite
363load-$(CONFIG_BASLER_EXCITE) += 0x80100000
364
365#
366# LASAT platforms 394# LASAT platforms
367# 395#
368core-$(CONFIG_LASAT) += arch/mips/lasat/ 396core-$(CONFIG_LASAT) += arch/mips/lasat/
@@ -441,6 +469,13 @@ core-$(CONFIG_NEC_MARKEINS) += arch/mips/emma/markeins/
441load-$(CONFIG_NEC_MARKEINS) += 0xffffffff88100000 469load-$(CONFIG_NEC_MARKEINS) += 0xffffffff88100000
442 470
443# 471#
472# Cisco PowerTV Platform
473#
474core-$(CONFIG_POWERTV) += arch/mips/powertv/
475cflags-$(CONFIG_POWERTV) += -I$(srctree)/arch/mips/include/asm/mach-powertv
476load-$(CONFIG_POWERTV) += 0xffffffff90800000
477
478#
444# SGI IP22 (Indy/Indigo2) 479# SGI IP22 (Indy/Indigo2)
445# 480#
446# Set the load address to >= 0xffffffff88069000 if you want to leave space for 481# Set the load address to >= 0xffffffff88069000 if you want to leave space for
@@ -581,7 +616,7 @@ load-$(CONFIG_SNI_RM) += 0xffffffff80600000
581else 616else
582load-$(CONFIG_SNI_RM) += 0xffffffff80030000 617load-$(CONFIG_SNI_RM) += 0xffffffff80030000
583endif 618endif
584all-$(CONFIG_SNI_RM) := vmlinux.ecoff 619all-$(CONFIG_SNI_RM) := $(COMPRESSION_FNAME).ecoff
585 620
586# 621#
587# Common TXx9 622# Common TXx9
@@ -699,9 +734,23 @@ vmlinux.64: vmlinux
699 $(OBJCOPY) -O $(64bit-bfd) $(OBJCOPYFLAGS) $< $@ 734 $(OBJCOPY) -O $(64bit-bfd) $(OBJCOPYFLAGS) $< $@
700 735
701makeboot =$(Q)$(MAKE) $(build)=arch/mips/boot VMLINUX=$(vmlinux-32) $(1) 736makeboot =$(Q)$(MAKE) $(build)=arch/mips/boot VMLINUX=$(vmlinux-32) $(1)
737makezboot =$(Q)$(MAKE) $(build)=arch/mips/boot/compressed \
738 VMLINUX_LOAD_ADDRESS=$(load-y) 32bit-bfd=$(32bit-bfd) $(1)
702 739
703all: $(all-y) 740all: $(all-y)
704 741
742vmlinuz: vmlinux FORCE
743 +@$(call makezboot,$@)
744
745vmlinuz.bin: vmlinux
746 +@$(call makezboot,$@)
747
748vmlinuz.ecoff: vmlinux
749 +@$(call makezboot,$@)
750
751vmlinuz.srec: vmlinux
752 +@$(call makezboot,$@)
753
705vmlinux.bin: $(vmlinux-32) 754vmlinux.bin: $(vmlinux-32)
706 +@$(call makeboot,$@) 755 +@$(call makeboot,$@)
707 756
@@ -726,11 +775,13 @@ endif
726 775
727install: 776install:
728 $(Q)install -D -m 755 vmlinux $(INSTALL_PATH)/vmlinux-$(KERNELRELEASE) 777 $(Q)install -D -m 755 vmlinux $(INSTALL_PATH)/vmlinux-$(KERNELRELEASE)
778 $(Q)install -D -m 755 vmlinuz $(INSTALL_PATH)/vmlinuz-$(KERNELRELEASE)
729 $(Q)install -D -m 644 .config $(INSTALL_PATH)/config-$(KERNELRELEASE) 779 $(Q)install -D -m 644 .config $(INSTALL_PATH)/config-$(KERNELRELEASE)
730 $(Q)install -D -m 644 System.map $(INSTALL_PATH)/System.map-$(KERNELRELEASE) 780 $(Q)install -D -m 644 System.map $(INSTALL_PATH)/System.map-$(KERNELRELEASE)
731 781
732archclean: 782archclean:
733 @$(MAKE) $(clean)=arch/mips/boot 783 @$(MAKE) $(clean)=arch/mips/boot
784 @$(MAKE) $(clean)=arch/mips/boot/compressed
734 @$(MAKE) $(clean)=arch/mips/lasat 785 @$(MAKE) $(clean)=arch/mips/lasat
735 786
736define archhelp 787define archhelp
@@ -738,10 +789,18 @@ define archhelp
738 echo ' vmlinux.ecoff - ECOFF boot image' 789 echo ' vmlinux.ecoff - ECOFF boot image'
739 echo ' vmlinux.bin - Raw binary boot image' 790 echo ' vmlinux.bin - Raw binary boot image'
740 echo ' vmlinux.srec - SREC boot image' 791 echo ' vmlinux.srec - SREC boot image'
792 echo ' vmlinuz - Compressed boot(zboot) image'
793 echo ' vmlinuz.ecoff - ECOFF zboot image'
794 echo ' vmlinuz.bin - Raw binary zboot image'
795 echo ' vmlinuz.srec - SREC zboot image'
741 echo 796 echo
742 echo ' These will be default as apropriate for a configured platform.' 797 echo ' These will be default as apropriate for a configured platform.'
743endef 798endef
744 799
745CLEAN_FILES += vmlinux.32 \ 800CLEAN_FILES += vmlinux.32 \
746 vmlinux.64 \ 801 vmlinux.64 \
747 vmlinux.ecoff 802 vmlinux.ecoff \
803 vmlinuz \
804 vmlinuz.ecoff \
805 vmlinuz.bin \
806 vmlinuz.srec
diff --git a/arch/mips/alchemy/Kconfig b/arch/mips/alchemy/Kconfig
index 00b498e97c83..df3b1a7eb15d 100644
--- a/arch/mips/alchemy/Kconfig
+++ b/arch/mips/alchemy/Kconfig
@@ -1,5 +1,5 @@
1# au1000-style gpio 1# au1000-style gpio and interrupt controllers
2config ALCHEMY_GPIO_AU1000 2config ALCHEMY_GPIOINT_AU1000
3 bool 3 bool
4 4
5# select this in your board config if you don't want to use the gpio 5# select this in your board config if you don't want to use the gpio
@@ -20,12 +20,14 @@ config MIPS_MTX1
20 select HW_HAS_PCI 20 select HW_HAS_PCI
21 select SOC_AU1500 21 select SOC_AU1500
22 select SYS_SUPPORTS_LITTLE_ENDIAN 22 select SYS_SUPPORTS_LITTLE_ENDIAN
23 select SYS_HAS_EARLY_PRINTK
23 24
24config MIPS_BOSPORUS 25config MIPS_BOSPORUS
25 bool "Alchemy Bosporus board" 26 bool "Alchemy Bosporus board"
26 select SOC_AU1500 27 select SOC_AU1500
27 select DMA_NONCOHERENT 28 select DMA_NONCOHERENT
28 select SYS_SUPPORTS_LITTLE_ENDIAN 29 select SYS_SUPPORTS_LITTLE_ENDIAN
30 select SYS_HAS_EARLY_PRINTK
29 31
30config MIPS_DB1000 32config MIPS_DB1000
31 bool "Alchemy DB1000 board" 33 bool "Alchemy DB1000 board"
@@ -33,12 +35,14 @@ config MIPS_DB1000
33 select DMA_NONCOHERENT 35 select DMA_NONCOHERENT
34 select HW_HAS_PCI 36 select HW_HAS_PCI
35 select SYS_SUPPORTS_LITTLE_ENDIAN 37 select SYS_SUPPORTS_LITTLE_ENDIAN
38 select SYS_HAS_EARLY_PRINTK
36 39
37config MIPS_DB1100 40config MIPS_DB1100
38 bool "Alchemy DB1100 board" 41 bool "Alchemy DB1100 board"
39 select SOC_AU1100 42 select SOC_AU1100
40 select DMA_NONCOHERENT 43 select DMA_NONCOHERENT
41 select SYS_SUPPORTS_LITTLE_ENDIAN 44 select SYS_SUPPORTS_LITTLE_ENDIAN
45 select SYS_HAS_EARLY_PRINTK
42 46
43config MIPS_DB1200 47config MIPS_DB1200
44 bool "Alchemy DB1200 board" 48 bool "Alchemy DB1200 board"
@@ -46,6 +50,7 @@ config MIPS_DB1200
46 select DMA_COHERENT 50 select DMA_COHERENT
47 select MIPS_DISABLE_OBSOLETE_IDE 51 select MIPS_DISABLE_OBSOLETE_IDE
48 select SYS_SUPPORTS_LITTLE_ENDIAN 52 select SYS_SUPPORTS_LITTLE_ENDIAN
53 select SYS_HAS_EARLY_PRINTK
49 54
50config MIPS_DB1500 55config MIPS_DB1500
51 bool "Alchemy DB1500 board" 56 bool "Alchemy DB1500 board"
@@ -55,6 +60,7 @@ config MIPS_DB1500
55 select MIPS_DISABLE_OBSOLETE_IDE 60 select MIPS_DISABLE_OBSOLETE_IDE
56 select SYS_SUPPORTS_BIG_ENDIAN 61 select SYS_SUPPORTS_BIG_ENDIAN
57 select SYS_SUPPORTS_LITTLE_ENDIAN 62 select SYS_SUPPORTS_LITTLE_ENDIAN
63 select SYS_HAS_EARLY_PRINTK
58 64
59config MIPS_DB1550 65config MIPS_DB1550
60 bool "Alchemy DB1550 board" 66 bool "Alchemy DB1550 board"
@@ -63,12 +69,14 @@ config MIPS_DB1550
63 select DMA_NONCOHERENT 69 select DMA_NONCOHERENT
64 select MIPS_DISABLE_OBSOLETE_IDE 70 select MIPS_DISABLE_OBSOLETE_IDE
65 select SYS_SUPPORTS_LITTLE_ENDIAN 71 select SYS_SUPPORTS_LITTLE_ENDIAN
72 select SYS_HAS_EARLY_PRINTK
66 73
67config MIPS_MIRAGE 74config MIPS_MIRAGE
68 bool "Alchemy Mirage board" 75 bool "Alchemy Mirage board"
69 select DMA_NONCOHERENT 76 select DMA_NONCOHERENT
70 select SOC_AU1500 77 select SOC_AU1500
71 select SYS_SUPPORTS_LITTLE_ENDIAN 78 select SYS_SUPPORTS_LITTLE_ENDIAN
79 select SYS_HAS_EARLY_PRINTK
72 80
73config MIPS_PB1000 81config MIPS_PB1000
74 bool "Alchemy PB1000 board" 82 bool "Alchemy PB1000 board"
@@ -77,6 +85,7 @@ config MIPS_PB1000
77 select HW_HAS_PCI 85 select HW_HAS_PCI
78 select SWAP_IO_SPACE 86 select SWAP_IO_SPACE
79 select SYS_SUPPORTS_LITTLE_ENDIAN 87 select SYS_SUPPORTS_LITTLE_ENDIAN
88 select SYS_HAS_EARLY_PRINTK
80 89
81config MIPS_PB1100 90config MIPS_PB1100
82 bool "Alchemy PB1100 board" 91 bool "Alchemy PB1100 board"
@@ -85,6 +94,7 @@ config MIPS_PB1100
85 select HW_HAS_PCI 94 select HW_HAS_PCI
86 select SWAP_IO_SPACE 95 select SWAP_IO_SPACE
87 select SYS_SUPPORTS_LITTLE_ENDIAN 96 select SYS_SUPPORTS_LITTLE_ENDIAN
97 select SYS_HAS_EARLY_PRINTK
88 98
89config MIPS_PB1200 99config MIPS_PB1200
90 bool "Alchemy PB1200 board" 100 bool "Alchemy PB1200 board"
@@ -92,6 +102,7 @@ config MIPS_PB1200
92 select DMA_NONCOHERENT 102 select DMA_NONCOHERENT
93 select MIPS_DISABLE_OBSOLETE_IDE 103 select MIPS_DISABLE_OBSOLETE_IDE
94 select SYS_SUPPORTS_LITTLE_ENDIAN 104 select SYS_SUPPORTS_LITTLE_ENDIAN
105 select SYS_HAS_EARLY_PRINTK
95 106
96config MIPS_PB1500 107config MIPS_PB1500
97 bool "Alchemy PB1500 board" 108 bool "Alchemy PB1500 board"
@@ -99,6 +110,7 @@ config MIPS_PB1500
99 select DMA_NONCOHERENT 110 select DMA_NONCOHERENT
100 select HW_HAS_PCI 111 select HW_HAS_PCI
101 select SYS_SUPPORTS_LITTLE_ENDIAN 112 select SYS_SUPPORTS_LITTLE_ENDIAN
113 select SYS_HAS_EARLY_PRINTK
102 114
103config MIPS_PB1550 115config MIPS_PB1550
104 bool "Alchemy PB1550 board" 116 bool "Alchemy PB1550 board"
@@ -107,39 +119,41 @@ config MIPS_PB1550
107 select HW_HAS_PCI 119 select HW_HAS_PCI
108 select MIPS_DISABLE_OBSOLETE_IDE 120 select MIPS_DISABLE_OBSOLETE_IDE
109 select SYS_SUPPORTS_LITTLE_ENDIAN 121 select SYS_SUPPORTS_LITTLE_ENDIAN
122 select SYS_HAS_EARLY_PRINTK
110 123
111config MIPS_XXS1500 124config MIPS_XXS1500
112 bool "MyCable XXS1500 board" 125 bool "MyCable XXS1500 board"
113 select DMA_NONCOHERENT 126 select DMA_NONCOHERENT
114 select SOC_AU1500 127 select SOC_AU1500
115 select SYS_SUPPORTS_LITTLE_ENDIAN 128 select SYS_SUPPORTS_LITTLE_ENDIAN
129 select SYS_HAS_EARLY_PRINTK
116 130
117endchoice 131endchoice
118 132
119config SOC_AU1000 133config SOC_AU1000
120 bool 134 bool
121 select SOC_AU1X00 135 select SOC_AU1X00
122 select ALCHEMY_GPIO_AU1000 136 select ALCHEMY_GPIOINT_AU1000
123 137
124config SOC_AU1100 138config SOC_AU1100
125 bool 139 bool
126 select SOC_AU1X00 140 select SOC_AU1X00
127 select ALCHEMY_GPIO_AU1000 141 select ALCHEMY_GPIOINT_AU1000
128 142
129config SOC_AU1500 143config SOC_AU1500
130 bool 144 bool
131 select SOC_AU1X00 145 select SOC_AU1X00
132 select ALCHEMY_GPIO_AU1000 146 select ALCHEMY_GPIOINT_AU1000
133 147
134config SOC_AU1550 148config SOC_AU1550
135 bool 149 bool
136 select SOC_AU1X00 150 select SOC_AU1X00
137 select ALCHEMY_GPIO_AU1000 151 select ALCHEMY_GPIOINT_AU1000
138 152
139config SOC_AU1200 153config SOC_AU1200
140 bool 154 bool
141 select SOC_AU1X00 155 select SOC_AU1X00
142 select ALCHEMY_GPIO_AU1000 156 select ALCHEMY_GPIOINT_AU1000
143 157
144config SOC_AU1X00 158config SOC_AU1X00
145 bool 159 bool
diff --git a/arch/mips/alchemy/common/Makefile b/arch/mips/alchemy/common/Makefile
index b67fb512529d..06c0e65a54b5 100644
--- a/arch/mips/alchemy/common/Makefile
+++ b/arch/mips/alchemy/common/Makefile
@@ -5,14 +5,15 @@
5# Makefile for the Alchemy Au1xx0 CPUs, generic files. 5# Makefile for the Alchemy Au1xx0 CPUs, generic files.
6# 6#
7 7
8obj-y += prom.o irq.o puts.o time.o reset.o \ 8obj-y += prom.o time.o clocks.o platform.o power.o setup.o \
9 clocks.o platform.o power.o setup.o \
10 sleeper.o dma.o dbdma.o 9 sleeper.o dma.o dbdma.o
11 10
11obj-$(CONFIG_ALCHEMY_GPIOINT_AU1000) += irq.o
12
12# optional gpiolib support 13# optional gpiolib support
13ifeq ($(CONFIG_ALCHEMY_GPIO_INDIRECT),) 14ifeq ($(CONFIG_ALCHEMY_GPIO_INDIRECT),)
14 ifeq ($(CONFIG_GPIOLIB),y) 15 ifeq ($(CONFIG_GPIOLIB),y)
15 obj-$(CONFIG_ALCHEMY_GPIO_AU1000) += gpiolib-au1000.o 16 obj-$(CONFIG_ALCHEMY_GPIOINT_AU1000) += gpiolib-au1000.o
16 endif 17 endif
17endif 18endif
18 19
diff --git a/arch/mips/alchemy/common/clocks.c b/arch/mips/alchemy/common/clocks.c
index d8991854530e..460c6285c1bb 100644
--- a/arch/mips/alchemy/common/clocks.c
+++ b/arch/mips/alchemy/common/clocks.c
@@ -40,8 +40,6 @@
40static unsigned int au1x00_clock; /* Hz */ 40static unsigned int au1x00_clock; /* Hz */
41static unsigned long uart_baud_base; 41static unsigned long uart_baud_base;
42 42
43static DEFINE_SPINLOCK(time_lock);
44
45/* 43/*
46 * Set the au1000_clock 44 * Set the au1000_clock
47 */ 45 */
@@ -84,9 +82,6 @@ void set_au1x00_uart_baud_base(unsigned long new_baud_base)
84unsigned long au1xxx_calc_clock(void) 82unsigned long au1xxx_calc_clock(void)
85{ 83{
86 unsigned long cpu_speed; 84 unsigned long cpu_speed;
87 unsigned long flags;
88
89 spin_lock_irqsave(&time_lock, flags);
90 85
91 /* 86 /*
92 * On early Au1000, sys_cpupll was write-only. Since these 87 * On early Au1000, sys_cpupll was write-only. Since these
@@ -108,8 +103,6 @@ unsigned long au1xxx_calc_clock(void)
108 set_au1x00_uart_baud_base(cpu_speed / (2 * ((int)(au_readl(SYS_POWERCTRL) 103 set_au1x00_uart_baud_base(cpu_speed / (2 * ((int)(au_readl(SYS_POWERCTRL)
109 & 0x03) + 2) * 16)); 104 & 0x03) + 2) * 16));
110 105
111 spin_unlock_irqrestore(&time_lock, flags);
112
113 set_au1x00_speed(cpu_speed); 106 set_au1x00_speed(cpu_speed);
114 107
115 return cpu_speed; 108 return cpu_speed;
diff --git a/arch/mips/alchemy/common/dbdma.c b/arch/mips/alchemy/common/dbdma.c
index 19c1c82849ff..99ae84ce5af3 100644
--- a/arch/mips/alchemy/common/dbdma.c
+++ b/arch/mips/alchemy/common/dbdma.c
@@ -30,6 +30,7 @@
30 * 30 *
31 */ 31 */
32 32
33#include <linux/init.h>
33#include <linux/kernel.h> 34#include <linux/kernel.h>
34#include <linux/slab.h> 35#include <linux/slab.h>
35#include <linux/spinlock.h> 36#include <linux/spinlock.h>
@@ -58,7 +59,6 @@ static DEFINE_SPINLOCK(au1xxx_dbdma_spin_lock);
58 59
59static dbdma_global_t *dbdma_gptr = (dbdma_global_t *)DDMA_GLOBAL_BASE; 60static dbdma_global_t *dbdma_gptr = (dbdma_global_t *)DDMA_GLOBAL_BASE;
60static int dbdma_initialized; 61static int dbdma_initialized;
61static void au1xxx_dbdma_init(void);
62 62
63static dbdev_tab_t dbdev_tab[] = { 63static dbdev_tab_t dbdev_tab[] = {
64#ifdef CONFIG_SOC_AU1550 64#ifdef CONFIG_SOC_AU1550
@@ -237,7 +237,7 @@ u32 au1xxx_dbdma_chan_alloc(u32 srcid, u32 destid,
237 void (*callback)(int, void *), void *callparam) 237 void (*callback)(int, void *), void *callparam)
238{ 238{
239 unsigned long flags; 239 unsigned long flags;
240 u32 used, chan, rv; 240 u32 used, chan;
241 u32 dcp; 241 u32 dcp;
242 int i; 242 int i;
243 dbdev_tab_t *stp, *dtp; 243 dbdev_tab_t *stp, *dtp;
@@ -250,8 +250,7 @@ u32 au1xxx_dbdma_chan_alloc(u32 srcid, u32 destid,
250 * which can't be done successfully during board set up. 250 * which can't be done successfully during board set up.
251 */ 251 */
252 if (!dbdma_initialized) 252 if (!dbdma_initialized)
253 au1xxx_dbdma_init(); 253 return 0;
254 dbdma_initialized = 1;
255 254
256 stp = find_dbdev_id(srcid); 255 stp = find_dbdev_id(srcid);
257 if (stp == NULL) 256 if (stp == NULL)
@@ -261,7 +260,6 @@ u32 au1xxx_dbdma_chan_alloc(u32 srcid, u32 destid,
261 return 0; 260 return 0;
262 261
263 used = 0; 262 used = 0;
264 rv = 0;
265 263
266 /* Check to see if we can get both channels. */ 264 /* Check to see if we can get both channels. */
267 spin_lock_irqsave(&au1xxx_dbdma_spin_lock, flags); 265 spin_lock_irqsave(&au1xxx_dbdma_spin_lock, flags);
@@ -282,63 +280,65 @@ u32 au1xxx_dbdma_chan_alloc(u32 srcid, u32 destid,
282 used++; 280 used++;
283 spin_unlock_irqrestore(&au1xxx_dbdma_spin_lock, flags); 281 spin_unlock_irqrestore(&au1xxx_dbdma_spin_lock, flags);
284 282
285 if (!used) { 283 if (used)
286 /* Let's see if we can allocate a channel for it. */ 284 return 0;
287 ctp = NULL;
288 chan = 0;
289 spin_lock_irqsave(&au1xxx_dbdma_spin_lock, flags);
290 for (i = 0; i < NUM_DBDMA_CHANS; i++)
291 if (chan_tab_ptr[i] == NULL) {
292 /*
293 * If kmalloc fails, it is caught below same
294 * as a channel not available.
295 */
296 ctp = kmalloc(sizeof(chan_tab_t), GFP_ATOMIC);
297 chan_tab_ptr[i] = ctp;
298 break;
299 }
300 spin_unlock_irqrestore(&au1xxx_dbdma_spin_lock, flags);
301
302 if (ctp != NULL) {
303 memset(ctp, 0, sizeof(chan_tab_t));
304 ctp->chan_index = chan = i;
305 dcp = DDMA_CHANNEL_BASE;
306 dcp += (0x0100 * chan);
307 ctp->chan_ptr = (au1x_dma_chan_t *)dcp;
308 cp = (au1x_dma_chan_t *)dcp;
309 ctp->chan_src = stp;
310 ctp->chan_dest = dtp;
311 ctp->chan_callback = callback;
312 ctp->chan_callparam = callparam;
313
314 /* Initialize channel configuration. */
315 i = 0;
316 if (stp->dev_intlevel)
317 i |= DDMA_CFG_SED;
318 if (stp->dev_intpolarity)
319 i |= DDMA_CFG_SP;
320 if (dtp->dev_intlevel)
321 i |= DDMA_CFG_DED;
322 if (dtp->dev_intpolarity)
323 i |= DDMA_CFG_DP;
324 if ((stp->dev_flags & DEV_FLAGS_SYNC) ||
325 (dtp->dev_flags & DEV_FLAGS_SYNC))
326 i |= DDMA_CFG_SYNC;
327 cp->ddma_cfg = i;
328 au_sync();
329 285
330 /* Return a non-zero value that can be used to 286 /* Let's see if we can allocate a channel for it. */
331 * find the channel information in subsequent 287 ctp = NULL;
332 * operations. 288 chan = 0;
289 spin_lock_irqsave(&au1xxx_dbdma_spin_lock, flags);
290 for (i = 0; i < NUM_DBDMA_CHANS; i++)
291 if (chan_tab_ptr[i] == NULL) {
292 /*
293 * If kmalloc fails, it is caught below same
294 * as a channel not available.
333 */ 295 */
334 rv = (u32)(&chan_tab_ptr[chan]); 296 ctp = kmalloc(sizeof(chan_tab_t), GFP_ATOMIC);
335 } else { 297 chan_tab_ptr[i] = ctp;
336 /* Release devices */ 298 break;
337 stp->dev_flags &= ~DEV_FLAGS_INUSE;
338 dtp->dev_flags &= ~DEV_FLAGS_INUSE;
339 } 299 }
300 spin_unlock_irqrestore(&au1xxx_dbdma_spin_lock, flags);
301
302 if (ctp != NULL) {
303 memset(ctp, 0, sizeof(chan_tab_t));
304 ctp->chan_index = chan = i;
305 dcp = DDMA_CHANNEL_BASE;
306 dcp += (0x0100 * chan);
307 ctp->chan_ptr = (au1x_dma_chan_t *)dcp;
308 cp = (au1x_dma_chan_t *)dcp;
309 ctp->chan_src = stp;
310 ctp->chan_dest = dtp;
311 ctp->chan_callback = callback;
312 ctp->chan_callparam = callparam;
313
314 /* Initialize channel configuration. */
315 i = 0;
316 if (stp->dev_intlevel)
317 i |= DDMA_CFG_SED;
318 if (stp->dev_intpolarity)
319 i |= DDMA_CFG_SP;
320 if (dtp->dev_intlevel)
321 i |= DDMA_CFG_DED;
322 if (dtp->dev_intpolarity)
323 i |= DDMA_CFG_DP;
324 if ((stp->dev_flags & DEV_FLAGS_SYNC) ||
325 (dtp->dev_flags & DEV_FLAGS_SYNC))
326 i |= DDMA_CFG_SYNC;
327 cp->ddma_cfg = i;
328 au_sync();
329
330 /*
331 * Return a non-zero value that can be used to find the channel
332 * information in subsequent operations.
333 */
334 return (u32)(&chan_tab_ptr[chan]);
340 } 335 }
341 return rv; 336
337 /* Release devices */
338 stp->dev_flags &= ~DEV_FLAGS_INUSE;
339 dtp->dev_flags &= ~DEV_FLAGS_INUSE;
340
341 return 0;
342} 342}
343EXPORT_SYMBOL(au1xxx_dbdma_chan_alloc); 343EXPORT_SYMBOL(au1xxx_dbdma_chan_alloc);
344 344
@@ -412,8 +412,11 @@ u32 au1xxx_dbdma_ring_alloc(u32 chanid, int entries)
412 if (desc_base == 0) 412 if (desc_base == 0)
413 return 0; 413 return 0;
414 414
415 ctp->cdb_membase = desc_base;
415 desc_base = ALIGN_ADDR(desc_base, sizeof(au1x_ddma_desc_t)); 416 desc_base = ALIGN_ADDR(desc_base, sizeof(au1x_ddma_desc_t));
416 } 417 } else
418 ctp->cdb_membase = desc_base;
419
417 dp = (au1x_ddma_desc_t *)desc_base; 420 dp = (au1x_ddma_desc_t *)desc_base;
418 421
419 /* Keep track of the base descriptor. */ 422 /* Keep track of the base descriptor. */
@@ -569,7 +572,7 @@ EXPORT_SYMBOL(au1xxx_dbdma_ring_alloc);
569 * This updates the source pointer and byte count. Normally used 572 * This updates the source pointer and byte count. Normally used
570 * for memory to fifo transfers. 573 * for memory to fifo transfers.
571 */ 574 */
572u32 _au1xxx_dbdma_put_source(u32 chanid, void *buf, int nbytes, u32 flags) 575u32 au1xxx_dbdma_put_source(u32 chanid, dma_addr_t buf, int nbytes, u32 flags)
573{ 576{
574 chan_tab_t *ctp; 577 chan_tab_t *ctp;
575 au1x_ddma_desc_t *dp; 578 au1x_ddma_desc_t *dp;
@@ -595,7 +598,7 @@ u32 _au1xxx_dbdma_put_source(u32 chanid, void *buf, int nbytes, u32 flags)
595 return 0; 598 return 0;
596 599
597 /* Load up buffer address and byte count. */ 600 /* Load up buffer address and byte count. */
598 dp->dscr_source0 = virt_to_phys(buf); 601 dp->dscr_source0 = buf & ~0UL;
599 dp->dscr_cmd1 = nbytes; 602 dp->dscr_cmd1 = nbytes;
600 /* Check flags */ 603 /* Check flags */
601 if (flags & DDMA_FLAGS_IE) 604 if (flags & DDMA_FLAGS_IE)
@@ -613,7 +616,7 @@ u32 _au1xxx_dbdma_put_source(u32 chanid, void *buf, int nbytes, u32 flags)
613 dma_cache_wback_inv((unsigned long)buf, nbytes); 616 dma_cache_wback_inv((unsigned long)buf, nbytes);
614 dp->dscr_cmd0 |= DSCR_CMD0_V; /* Let it rip */ 617 dp->dscr_cmd0 |= DSCR_CMD0_V; /* Let it rip */
615 au_sync(); 618 au_sync();
616 dma_cache_wback_inv((unsigned long)dp, sizeof(dp)); 619 dma_cache_wback_inv((unsigned long)dp, sizeof(*dp));
617 ctp->chan_ptr->ddma_dbell = 0; 620 ctp->chan_ptr->ddma_dbell = 0;
618 621
619 /* Get next descriptor pointer. */ 622 /* Get next descriptor pointer. */
@@ -622,14 +625,13 @@ u32 _au1xxx_dbdma_put_source(u32 chanid, void *buf, int nbytes, u32 flags)
622 /* Return something non-zero. */ 625 /* Return something non-zero. */
623 return nbytes; 626 return nbytes;
624} 627}
625EXPORT_SYMBOL(_au1xxx_dbdma_put_source); 628EXPORT_SYMBOL(au1xxx_dbdma_put_source);
626 629
627/* Put a destination buffer into the DMA ring. 630/* Put a destination buffer into the DMA ring.
628 * This updates the destination pointer and byte count. Normally used 631 * This updates the destination pointer and byte count. Normally used
629 * to place an empty buffer into the ring for fifo to memory transfers. 632 * to place an empty buffer into the ring for fifo to memory transfers.
630 */ 633 */
631u32 634u32 au1xxx_dbdma_put_dest(u32 chanid, dma_addr_t buf, int nbytes, u32 flags)
632_au1xxx_dbdma_put_dest(u32 chanid, void *buf, int nbytes, u32 flags)
633{ 635{
634 chan_tab_t *ctp; 636 chan_tab_t *ctp;
635 au1x_ddma_desc_t *dp; 637 au1x_ddma_desc_t *dp;
@@ -659,7 +661,7 @@ _au1xxx_dbdma_put_dest(u32 chanid, void *buf, int nbytes, u32 flags)
659 if (flags & DDMA_FLAGS_NOIE) 661 if (flags & DDMA_FLAGS_NOIE)
660 dp->dscr_cmd0 &= ~DSCR_CMD0_IE; 662 dp->dscr_cmd0 &= ~DSCR_CMD0_IE;
661 663
662 dp->dscr_dest0 = virt_to_phys(buf); 664 dp->dscr_dest0 = buf & ~0UL;
663 dp->dscr_cmd1 = nbytes; 665 dp->dscr_cmd1 = nbytes;
664#if 0 666#if 0
665 printk(KERN_DEBUG "cmd0:%x cmd1:%x source0:%x source1:%x dest0:%x dest1:%x\n", 667 printk(KERN_DEBUG "cmd0:%x cmd1:%x source0:%x source1:%x dest0:%x dest1:%x\n",
@@ -676,7 +678,7 @@ _au1xxx_dbdma_put_dest(u32 chanid, void *buf, int nbytes, u32 flags)
676 dma_cache_inv((unsigned long)buf, nbytes); 678 dma_cache_inv((unsigned long)buf, nbytes);
677 dp->dscr_cmd0 |= DSCR_CMD0_V; /* Let it rip */ 679 dp->dscr_cmd0 |= DSCR_CMD0_V; /* Let it rip */
678 au_sync(); 680 au_sync();
679 dma_cache_wback_inv((unsigned long)dp, sizeof(dp)); 681 dma_cache_wback_inv((unsigned long)dp, sizeof(*dp));
680 ctp->chan_ptr->ddma_dbell = 0; 682 ctp->chan_ptr->ddma_dbell = 0;
681 683
682 /* Get next descriptor pointer. */ 684 /* Get next descriptor pointer. */
@@ -685,7 +687,7 @@ _au1xxx_dbdma_put_dest(u32 chanid, void *buf, int nbytes, u32 flags)
685 /* Return something non-zero. */ 687 /* Return something non-zero. */
686 return nbytes; 688 return nbytes;
687} 689}
688EXPORT_SYMBOL(_au1xxx_dbdma_put_dest); 690EXPORT_SYMBOL(au1xxx_dbdma_put_dest);
689 691
690/* 692/*
691 * Get a destination buffer into the DMA ring. 693 * Get a destination buffer into the DMA ring.
@@ -831,7 +833,7 @@ void au1xxx_dbdma_chan_free(u32 chanid)
831 833
832 au1xxx_dbdma_stop(chanid); 834 au1xxx_dbdma_stop(chanid);
833 835
834 kfree((void *)ctp->chan_desc_base); 836 kfree((void *)ctp->cdb_membase);
835 837
836 stp->dev_flags &= ~DEV_FLAGS_INUSE; 838 stp->dev_flags &= ~DEV_FLAGS_INUSE;
837 dtp->dev_flags &= ~DEV_FLAGS_INUSE; 839 dtp->dev_flags &= ~DEV_FLAGS_INUSE;
@@ -868,28 +870,6 @@ static irqreturn_t dbdma_interrupt(int irq, void *dev_id)
868 return IRQ_RETVAL(1); 870 return IRQ_RETVAL(1);
869} 871}
870 872
871static void au1xxx_dbdma_init(void)
872{
873 int irq_nr;
874
875 dbdma_gptr->ddma_config = 0;
876 dbdma_gptr->ddma_throttle = 0;
877 dbdma_gptr->ddma_inten = 0xffff;
878 au_sync();
879
880#if defined(CONFIG_SOC_AU1550)
881 irq_nr = AU1550_DDMA_INT;
882#elif defined(CONFIG_SOC_AU1200)
883 irq_nr = AU1200_DDMA_INT;
884#else
885 #error Unknown Au1x00 SOC
886#endif
887
888 if (request_irq(irq_nr, dbdma_interrupt, IRQF_DISABLED,
889 "Au1xxx dbdma", (void *)dbdma_gptr))
890 printk(KERN_ERR "Can't get 1550 dbdma irq");
891}
892
893void au1xxx_dbdma_dump(u32 chanid) 873void au1xxx_dbdma_dump(u32 chanid)
894{ 874{
895 chan_tab_t *ctp; 875 chan_tab_t *ctp;
@@ -903,7 +883,7 @@ void au1xxx_dbdma_dump(u32 chanid)
903 dtp = ctp->chan_dest; 883 dtp = ctp->chan_dest;
904 cp = ctp->chan_ptr; 884 cp = ctp->chan_ptr;
905 885
906 printk(KERN_DEBUG "Chan %x, stp %x (dev %d) dtp %x (dev %d) \n", 886 printk(KERN_DEBUG "Chan %x, stp %x (dev %d) dtp %x (dev %d)\n",
907 (u32)ctp, (u32)stp, stp - dbdev_tab, (u32)dtp, 887 (u32)ctp, (u32)stp, stp - dbdev_tab, (u32)dtp,
908 dtp - dbdev_tab); 888 dtp - dbdev_tab);
909 printk(KERN_DEBUG "desc base %x, get %x, put %x, cur %x\n", 889 printk(KERN_DEBUG "desc base %x, get %x, put %x, cur %x\n",
@@ -1038,4 +1018,38 @@ void au1xxx_dbdma_resume(void)
1038 } 1018 }
1039} 1019}
1040#endif /* CONFIG_PM */ 1020#endif /* CONFIG_PM */
1021
1022static int __init au1xxx_dbdma_init(void)
1023{
1024 int irq_nr, ret;
1025
1026 dbdma_gptr->ddma_config = 0;
1027 dbdma_gptr->ddma_throttle = 0;
1028 dbdma_gptr->ddma_inten = 0xffff;
1029 au_sync();
1030
1031 switch (alchemy_get_cputype()) {
1032 case ALCHEMY_CPU_AU1550:
1033 irq_nr = AU1550_DDMA_INT;
1034 break;
1035 case ALCHEMY_CPU_AU1200:
1036 irq_nr = AU1200_DDMA_INT;
1037 break;
1038 default:
1039 return -ENODEV;
1040 }
1041
1042 ret = request_irq(irq_nr, dbdma_interrupt, IRQF_DISABLED,
1043 "Au1xxx dbdma", (void *)dbdma_gptr);
1044 if (ret)
1045 printk(KERN_ERR "Cannot grab DBDMA interrupt!\n");
1046 else {
1047 dbdma_initialized = 1;
1048 printk(KERN_INFO "Alchemy DBDMA initialized\n");
1049 }
1050
1051 return ret;
1052}
1053subsys_initcall(au1xxx_dbdma_init);
1054
1041#endif /* defined(CONFIG_SOC_AU1550) || defined(CONFIG_SOC_AU1200) */ 1055#endif /* defined(CONFIG_SOC_AU1550) || defined(CONFIG_SOC_AU1200) */
diff --git a/arch/mips/alchemy/common/dma.c b/arch/mips/alchemy/common/dma.c
index d6fbda232e6a..d5278877891d 100644
--- a/arch/mips/alchemy/common/dma.c
+++ b/arch/mips/alchemy/common/dma.c
@@ -29,6 +29,8 @@
29 * 675 Mass Ave, Cambridge, MA 02139, USA. 29 * 675 Mass Ave, Cambridge, MA 02139, USA.
30 * 30 *
31 */ 31 */
32
33#include <linux/init.h>
32#include <linux/module.h> 34#include <linux/module.h>
33#include <linux/kernel.h> 35#include <linux/kernel.h>
34#include <linux/errno.h> 36#include <linux/errno.h>
@@ -188,17 +190,14 @@ int request_au1000_dma(int dev_id, const char *dev_str,
188 dev = &dma_dev_table[dev_id]; 190 dev = &dma_dev_table[dev_id];
189 191
190 if (irqhandler) { 192 if (irqhandler) {
191 chan->irq = AU1000_DMA_INT_BASE + i;
192 chan->irq_dev = irq_dev_id; 193 chan->irq_dev = irq_dev_id;
193 ret = request_irq(chan->irq, irqhandler, irqflags, dev_str, 194 ret = request_irq(chan->irq, irqhandler, irqflags, dev_str,
194 chan->irq_dev); 195 chan->irq_dev);
195 if (ret) { 196 if (ret) {
196 chan->irq = 0;
197 chan->irq_dev = NULL; 197 chan->irq_dev = NULL;
198 return ret; 198 return ret;
199 } 199 }
200 } else { 200 } else {
201 chan->irq = 0;
202 chan->irq_dev = NULL; 201 chan->irq_dev = NULL;
203 } 202 }
204 203
@@ -226,13 +225,40 @@ void free_au1000_dma(unsigned int dmanr)
226 } 225 }
227 226
228 disable_dma(dmanr); 227 disable_dma(dmanr);
229 if (chan->irq) 228 if (chan->irq_dev)
230 free_irq(chan->irq, chan->irq_dev); 229 free_irq(chan->irq, chan->irq_dev);
231 230
232 chan->irq = 0;
233 chan->irq_dev = NULL; 231 chan->irq_dev = NULL;
234 chan->dev_id = -1; 232 chan->dev_id = -1;
235} 233}
236EXPORT_SYMBOL(free_au1000_dma); 234EXPORT_SYMBOL(free_au1000_dma);
237 235
236static int __init au1000_dma_init(void)
237{
238 int base, i;
239
240 switch (alchemy_get_cputype()) {
241 case ALCHEMY_CPU_AU1000:
242 base = AU1000_DMA_INT_BASE;
243 break;
244 case ALCHEMY_CPU_AU1500:
245 base = AU1500_DMA_INT_BASE;
246 break;
247 case ALCHEMY_CPU_AU1100:
248 base = AU1100_DMA_INT_BASE;
249 break;
250 default:
251 goto out;
252 }
253
254 for (i = 0; i < NUM_AU1000_DMA_CHANNELS; i++)
255 au1000_dma_table[i].irq = base + i;
256
257 printk(KERN_INFO "Alchemy DMA initialized\n");
258
259out:
260 return 0;
261}
262arch_initcall(au1000_dma_init);
263
238#endif /* AU1000 AU1500 AU1100 */ 264#endif /* AU1000 AU1500 AU1100 */
diff --git a/arch/mips/alchemy/common/gpiolib-au1000.c b/arch/mips/alchemy/common/gpiolib-au1000.c
index 1bfa91f939f4..c8e1a94d4a95 100644
--- a/arch/mips/alchemy/common/gpiolib-au1000.c
+++ b/arch/mips/alchemy/common/gpiolib-au1000.c
@@ -36,7 +36,6 @@
36#include <asm/mach-au1x00/au1000.h> 36#include <asm/mach-au1x00/au1000.h>
37#include <asm/mach-au1x00/gpio.h> 37#include <asm/mach-au1x00/gpio.h>
38 38
39#if !defined(CONFIG_SOC_AU1000)
40static int gpio2_get(struct gpio_chip *chip, unsigned offset) 39static int gpio2_get(struct gpio_chip *chip, unsigned offset)
41{ 40{
42 return alchemy_gpio2_get_value(offset + ALCHEMY_GPIO2_BASE); 41 return alchemy_gpio2_get_value(offset + ALCHEMY_GPIO2_BASE);
@@ -63,7 +62,7 @@ static int gpio2_to_irq(struct gpio_chip *chip, unsigned offset)
63{ 62{
64 return alchemy_gpio2_to_irq(offset + ALCHEMY_GPIO2_BASE); 63 return alchemy_gpio2_to_irq(offset + ALCHEMY_GPIO2_BASE);
65} 64}
66#endif /* !defined(CONFIG_SOC_AU1000) */ 65
67 66
68static int gpio1_get(struct gpio_chip *chip, unsigned offset) 67static int gpio1_get(struct gpio_chip *chip, unsigned offset)
69{ 68{
@@ -104,7 +103,6 @@ struct gpio_chip alchemy_gpio_chip[] = {
104 .base = ALCHEMY_GPIO1_BASE, 103 .base = ALCHEMY_GPIO1_BASE,
105 .ngpio = ALCHEMY_GPIO1_NUM, 104 .ngpio = ALCHEMY_GPIO1_NUM,
106 }, 105 },
107#if !defined(CONFIG_SOC_AU1000)
108 [1] = { 106 [1] = {
109 .label = "alchemy-gpio2", 107 .label = "alchemy-gpio2",
110 .direction_input = gpio2_direction_input, 108 .direction_input = gpio2_direction_input,
@@ -115,15 +113,13 @@ struct gpio_chip alchemy_gpio_chip[] = {
115 .base = ALCHEMY_GPIO2_BASE, 113 .base = ALCHEMY_GPIO2_BASE,
116 .ngpio = ALCHEMY_GPIO2_NUM, 114 .ngpio = ALCHEMY_GPIO2_NUM,
117 }, 115 },
118#endif
119}; 116};
120 117
121static int __init alchemy_gpiolib_init(void) 118static int __init alchemy_gpiolib_init(void)
122{ 119{
123 gpiochip_add(&alchemy_gpio_chip[0]); 120 gpiochip_add(&alchemy_gpio_chip[0]);
124#if !defined(CONFIG_SOC_AU1000) 121 if (alchemy_get_cputype() != ALCHEMY_CPU_AU1000)
125 gpiochip_add(&alchemy_gpio_chip[1]); 122 gpiochip_add(&alchemy_gpio_chip[1]);
126#endif
127 123
128 return 0; 124 return 0;
129} 125}
diff --git a/arch/mips/alchemy/common/irq.c b/arch/mips/alchemy/common/irq.c
index d670928afcfd..b2821ace4d00 100644
--- a/arch/mips/alchemy/common/irq.c
+++ b/arch/mips/alchemy/common/irq.c
@@ -39,168 +39,180 @@
39 39
40static int au1x_ic_settype(unsigned int irq, unsigned int flow_type); 40static int au1x_ic_settype(unsigned int irq, unsigned int flow_type);
41 41
42/* NOTE on interrupt priorities: The original writers of this code said:
43 *
44 * Because of the tight timing of SETUP token to reply transactions,
45 * the USB devices-side packet complete interrupt (USB_DEV_REQ_INT)
46 * needs the highest priority.
47 */
48
42/* per-processor fixed function irqs */ 49/* per-processor fixed function irqs */
43struct au1xxx_irqmap au1xxx_ic0_map[] __initdata = { 50struct au1xxx_irqmap {
44 51 int im_irq;
45#if defined(CONFIG_SOC_AU1000) 52 int im_type;
46 { AU1000_UART0_INT, IRQ_TYPE_LEVEL_HIGH, 0 }, 53 int im_request; /* set 1 to get higher priority */
47 { AU1000_UART1_INT, IRQ_TYPE_LEVEL_HIGH, 0 }, 54};
48 { AU1000_UART2_INT, IRQ_TYPE_LEVEL_HIGH, 0 }, 55
49 { AU1000_UART3_INT, IRQ_TYPE_LEVEL_HIGH, 0 }, 56struct au1xxx_irqmap au1000_irqmap[] __initdata = {
50 { AU1000_SSI0_INT, IRQ_TYPE_LEVEL_HIGH, 0 }, 57 { AU1000_UART0_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
51 { AU1000_SSI1_INT, IRQ_TYPE_LEVEL_HIGH, 0 }, 58 { AU1000_UART1_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
52 { AU1000_DMA_INT_BASE, IRQ_TYPE_LEVEL_HIGH, 0 }, 59 { AU1000_UART2_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
53 { AU1000_DMA_INT_BASE+1, IRQ_TYPE_LEVEL_HIGH, 0 }, 60 { AU1000_UART3_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
54 { AU1000_DMA_INT_BASE+2, IRQ_TYPE_LEVEL_HIGH, 0 }, 61 { AU1000_SSI0_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
55 { AU1000_DMA_INT_BASE+3, IRQ_TYPE_LEVEL_HIGH, 0 }, 62 { AU1000_SSI1_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
56 { AU1000_DMA_INT_BASE+4, IRQ_TYPE_LEVEL_HIGH, 0 }, 63 { AU1000_DMA_INT_BASE, IRQ_TYPE_LEVEL_HIGH, 0 },
57 { AU1000_DMA_INT_BASE+5, IRQ_TYPE_LEVEL_HIGH, 0 }, 64 { AU1000_DMA_INT_BASE+1, IRQ_TYPE_LEVEL_HIGH, 0 },
58 { AU1000_DMA_INT_BASE+6, IRQ_TYPE_LEVEL_HIGH, 0 }, 65 { AU1000_DMA_INT_BASE+2, IRQ_TYPE_LEVEL_HIGH, 0 },
59 { AU1000_DMA_INT_BASE+7, IRQ_TYPE_LEVEL_HIGH, 0 }, 66 { AU1000_DMA_INT_BASE+3, IRQ_TYPE_LEVEL_HIGH, 0 },
60 { AU1000_TOY_INT, IRQ_TYPE_EDGE_RISING, 0 }, 67 { AU1000_DMA_INT_BASE+4, IRQ_TYPE_LEVEL_HIGH, 0 },
61 { AU1000_TOY_MATCH0_INT, IRQ_TYPE_EDGE_RISING, 0 }, 68 { AU1000_DMA_INT_BASE+5, IRQ_TYPE_LEVEL_HIGH, 0 },
62 { AU1000_TOY_MATCH1_INT, IRQ_TYPE_EDGE_RISING, 0 }, 69 { AU1000_DMA_INT_BASE+6, IRQ_TYPE_LEVEL_HIGH, 0 },
63 { AU1000_TOY_MATCH2_INT, IRQ_TYPE_EDGE_RISING, 1 }, 70 { AU1000_DMA_INT_BASE+7, IRQ_TYPE_LEVEL_HIGH, 0 },
64 { AU1000_RTC_INT, IRQ_TYPE_EDGE_RISING, 0 }, 71 { AU1000_TOY_INT, IRQ_TYPE_EDGE_RISING, 0 },
65 { AU1000_RTC_MATCH0_INT, IRQ_TYPE_EDGE_RISING, 0 }, 72 { AU1000_TOY_MATCH0_INT, IRQ_TYPE_EDGE_RISING, 0 },
66 { AU1000_RTC_MATCH1_INT, IRQ_TYPE_EDGE_RISING, 0 }, 73 { AU1000_TOY_MATCH1_INT, IRQ_TYPE_EDGE_RISING, 0 },
67 { AU1000_RTC_MATCH2_INT, IRQ_TYPE_EDGE_RISING, 0 }, 74 { AU1000_TOY_MATCH2_INT, IRQ_TYPE_EDGE_RISING, 0 },
68 { AU1000_IRDA_TX_INT, IRQ_TYPE_LEVEL_HIGH, 0 }, 75 { AU1000_RTC_INT, IRQ_TYPE_EDGE_RISING, 0 },
69 { AU1000_IRDA_RX_INT, IRQ_TYPE_LEVEL_HIGH, 0 }, 76 { AU1000_RTC_MATCH0_INT, IRQ_TYPE_EDGE_RISING, 0 },
70 { AU1000_USB_DEV_REQ_INT, IRQ_TYPE_LEVEL_HIGH, 0 }, 77 { AU1000_RTC_MATCH1_INT, IRQ_TYPE_EDGE_RISING, 0 },
71 { AU1000_USB_DEV_SUS_INT, IRQ_TYPE_EDGE_RISING, 0 }, 78 { AU1000_RTC_MATCH2_INT, IRQ_TYPE_EDGE_RISING, 1 },
72 { AU1000_USB_HOST_INT, IRQ_TYPE_LEVEL_LOW, 0 }, 79 { AU1000_IRDA_TX_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
73 { AU1000_ACSYNC_INT, IRQ_TYPE_EDGE_RISING, 0 }, 80 { AU1000_IRDA_RX_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
74 { AU1000_MAC0_DMA_INT, IRQ_TYPE_LEVEL_HIGH, 0 }, 81 { AU1000_USB_DEV_REQ_INT, IRQ_TYPE_LEVEL_HIGH, 1 },
75 { AU1000_MAC1_DMA_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
76 { AU1000_AC97C_INT, IRQ_TYPE_EDGE_RISING, 0 },
77
78#elif defined(CONFIG_SOC_AU1500)
79
80 { AU1500_UART0_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
81 { AU1000_PCI_INTA, IRQ_TYPE_LEVEL_LOW, 0 },
82 { AU1000_PCI_INTB, IRQ_TYPE_LEVEL_LOW, 0 },
83 { AU1500_UART3_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
84 { AU1000_PCI_INTC, IRQ_TYPE_LEVEL_LOW, 0 },
85 { AU1000_PCI_INTD, IRQ_TYPE_LEVEL_LOW, 0 },
86 { AU1000_DMA_INT_BASE, IRQ_TYPE_LEVEL_HIGH, 0 },
87 { AU1000_DMA_INT_BASE+1, IRQ_TYPE_LEVEL_HIGH, 0 },
88 { AU1000_DMA_INT_BASE+2, IRQ_TYPE_LEVEL_HIGH, 0 },
89 { AU1000_DMA_INT_BASE+3, IRQ_TYPE_LEVEL_HIGH, 0 },
90 { AU1000_DMA_INT_BASE+4, IRQ_TYPE_LEVEL_HIGH, 0 },
91 { AU1000_DMA_INT_BASE+5, IRQ_TYPE_LEVEL_HIGH, 0 },
92 { AU1000_DMA_INT_BASE+6, IRQ_TYPE_LEVEL_HIGH, 0 },
93 { AU1000_DMA_INT_BASE+7, IRQ_TYPE_LEVEL_HIGH, 0 },
94 { AU1000_TOY_INT, IRQ_TYPE_EDGE_RISING, 0 },
95 { AU1000_TOY_MATCH0_INT, IRQ_TYPE_EDGE_RISING, 0 },
96 { AU1000_TOY_MATCH1_INT, IRQ_TYPE_EDGE_RISING, 0 },
97 { AU1000_TOY_MATCH2_INT, IRQ_TYPE_EDGE_RISING, 1 },
98 { AU1000_RTC_INT, IRQ_TYPE_EDGE_RISING, 0 },
99 { AU1000_RTC_MATCH0_INT, IRQ_TYPE_EDGE_RISING, 0 },
100 { AU1000_RTC_MATCH1_INT, IRQ_TYPE_EDGE_RISING, 0 },
101 { AU1000_RTC_MATCH2_INT, IRQ_TYPE_EDGE_RISING, 0 },
102 { AU1000_USB_DEV_REQ_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
103 { AU1000_USB_DEV_SUS_INT, IRQ_TYPE_EDGE_RISING, 0 },
104 { AU1000_USB_HOST_INT, IRQ_TYPE_LEVEL_LOW, 0 },
105 { AU1000_ACSYNC_INT, IRQ_TYPE_EDGE_RISING, 0 },
106 { AU1500_MAC0_DMA_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
107 { AU1500_MAC1_DMA_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
108 { AU1000_AC97C_INT, IRQ_TYPE_EDGE_RISING, 0 },
109
110#elif defined(CONFIG_SOC_AU1100)
111
112 { AU1100_UART0_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
113 { AU1100_UART1_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
114 { AU1100_SD_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
115 { AU1100_UART3_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
116 { AU1000_SSI0_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
117 { AU1000_SSI1_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
118 { AU1000_DMA_INT_BASE, IRQ_TYPE_LEVEL_HIGH, 0 },
119 { AU1000_DMA_INT_BASE+1, IRQ_TYPE_LEVEL_HIGH, 0 },
120 { AU1000_DMA_INT_BASE+2, IRQ_TYPE_LEVEL_HIGH, 0 },
121 { AU1000_DMA_INT_BASE+3, IRQ_TYPE_LEVEL_HIGH, 0 },
122 { AU1000_DMA_INT_BASE+4, IRQ_TYPE_LEVEL_HIGH, 0 },
123 { AU1000_DMA_INT_BASE+5, IRQ_TYPE_LEVEL_HIGH, 0 },
124 { AU1000_DMA_INT_BASE+6, IRQ_TYPE_LEVEL_HIGH, 0 },
125 { AU1000_DMA_INT_BASE+7, IRQ_TYPE_LEVEL_HIGH, 0 },
126 { AU1000_TOY_INT, IRQ_TYPE_EDGE_RISING, 0 },
127 { AU1000_TOY_MATCH0_INT, IRQ_TYPE_EDGE_RISING, 0 },
128 { AU1000_TOY_MATCH1_INT, IRQ_TYPE_EDGE_RISING, 0 },
129 { AU1000_TOY_MATCH2_INT, IRQ_TYPE_EDGE_RISING, 1 },
130 { AU1000_RTC_INT, IRQ_TYPE_EDGE_RISING, 0 },
131 { AU1000_RTC_MATCH0_INT, IRQ_TYPE_EDGE_RISING, 0 },
132 { AU1000_RTC_MATCH1_INT, IRQ_TYPE_EDGE_RISING, 0 },
133 { AU1000_RTC_MATCH2_INT, IRQ_TYPE_EDGE_RISING, 0 },
134 { AU1000_IRDA_TX_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
135 { AU1000_IRDA_RX_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
136 { AU1000_USB_DEV_REQ_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
137 { AU1000_USB_DEV_SUS_INT, IRQ_TYPE_EDGE_RISING, 0 }, 82 { AU1000_USB_DEV_SUS_INT, IRQ_TYPE_EDGE_RISING, 0 },
138 { AU1000_USB_HOST_INT, IRQ_TYPE_LEVEL_LOW, 0 }, 83 { AU1000_USB_HOST_INT, IRQ_TYPE_LEVEL_LOW, 0 },
139 { AU1000_ACSYNC_INT, IRQ_TYPE_EDGE_RISING, 0 }, 84 { AU1000_ACSYNC_INT, IRQ_TYPE_EDGE_RISING, 0 },
140 { AU1100_MAC0_DMA_INT, IRQ_TYPE_LEVEL_HIGH, 0 }, 85 { AU1000_MAC0_DMA_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
141 { AU1100_LCD_INT, IRQ_TYPE_LEVEL_HIGH, 0 }, 86 { AU1000_MAC1_DMA_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
142 { AU1000_AC97C_INT, IRQ_TYPE_EDGE_RISING, 0 }, 87 { AU1000_AC97C_INT, IRQ_TYPE_EDGE_RISING, 0 },
143 88 { -1, },
144#elif defined(CONFIG_SOC_AU1550) 89};
145 90
146 { AU1550_UART0_INT, IRQ_TYPE_LEVEL_HIGH, 0 }, 91struct au1xxx_irqmap au1500_irqmap[] __initdata = {
147 { AU1550_PCI_INTA, IRQ_TYPE_LEVEL_LOW, 0 }, 92 { AU1500_UART0_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
148 { AU1550_PCI_INTB, IRQ_TYPE_LEVEL_LOW, 0 }, 93 { AU1500_PCI_INTA, IRQ_TYPE_LEVEL_LOW, 0 },
149 { AU1550_DDMA_INT, IRQ_TYPE_LEVEL_HIGH, 0 }, 94 { AU1500_PCI_INTB, IRQ_TYPE_LEVEL_LOW, 0 },
150 { AU1550_CRYPTO_INT, IRQ_TYPE_LEVEL_HIGH, 0 }, 95 { AU1500_UART3_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
151 { AU1550_PCI_INTC, IRQ_TYPE_LEVEL_LOW, 0 }, 96 { AU1500_PCI_INTC, IRQ_TYPE_LEVEL_LOW, 0 },
152 { AU1550_PCI_INTD, IRQ_TYPE_LEVEL_LOW, 0 }, 97 { AU1500_PCI_INTD, IRQ_TYPE_LEVEL_LOW, 0 },
153 { AU1550_PCI_RST_INT, IRQ_TYPE_LEVEL_LOW, 0 }, 98 { AU1500_DMA_INT_BASE, IRQ_TYPE_LEVEL_HIGH, 0 },
154 { AU1550_UART1_INT, IRQ_TYPE_LEVEL_HIGH, 0 }, 99 { AU1500_DMA_INT_BASE+1, IRQ_TYPE_LEVEL_HIGH, 0 },
155 { AU1550_UART3_INT, IRQ_TYPE_LEVEL_HIGH, 0 }, 100 { AU1500_DMA_INT_BASE+2, IRQ_TYPE_LEVEL_HIGH, 0 },
156 { AU1550_PSC0_INT, IRQ_TYPE_LEVEL_HIGH, 0 }, 101 { AU1500_DMA_INT_BASE+3, IRQ_TYPE_LEVEL_HIGH, 0 },
157 { AU1550_PSC1_INT, IRQ_TYPE_LEVEL_HIGH, 0 }, 102 { AU1500_DMA_INT_BASE+4, IRQ_TYPE_LEVEL_HIGH, 0 },
158 { AU1550_PSC2_INT, IRQ_TYPE_LEVEL_HIGH, 0 }, 103 { AU1500_DMA_INT_BASE+5, IRQ_TYPE_LEVEL_HIGH, 0 },
159 { AU1550_PSC3_INT, IRQ_TYPE_LEVEL_HIGH, 0 }, 104 { AU1500_DMA_INT_BASE+6, IRQ_TYPE_LEVEL_HIGH, 0 },
160 { AU1000_TOY_INT, IRQ_TYPE_EDGE_RISING, 0 }, 105 { AU1500_DMA_INT_BASE+7, IRQ_TYPE_LEVEL_HIGH, 0 },
161 { AU1000_TOY_MATCH0_INT, IRQ_TYPE_EDGE_RISING, 0 }, 106 { AU1500_TOY_INT, IRQ_TYPE_EDGE_RISING, 0 },
162 { AU1000_TOY_MATCH1_INT, IRQ_TYPE_EDGE_RISING, 0 }, 107 { AU1500_TOY_MATCH0_INT, IRQ_TYPE_EDGE_RISING, 0 },
163 { AU1000_TOY_MATCH2_INT, IRQ_TYPE_EDGE_RISING, 1 }, 108 { AU1500_TOY_MATCH1_INT, IRQ_TYPE_EDGE_RISING, 0 },
164 { AU1000_RTC_INT, IRQ_TYPE_EDGE_RISING, 0 }, 109 { AU1500_TOY_MATCH2_INT, IRQ_TYPE_EDGE_RISING, 0 },
165 { AU1000_RTC_MATCH0_INT, IRQ_TYPE_EDGE_RISING, 0 }, 110 { AU1500_RTC_INT, IRQ_TYPE_EDGE_RISING, 0 },
166 { AU1000_RTC_MATCH1_INT, IRQ_TYPE_EDGE_RISING, 0 }, 111 { AU1500_RTC_MATCH0_INT, IRQ_TYPE_EDGE_RISING, 0 },
167 { AU1000_RTC_MATCH2_INT, IRQ_TYPE_EDGE_RISING, 0 }, 112 { AU1500_RTC_MATCH1_INT, IRQ_TYPE_EDGE_RISING, 0 },
168 { AU1550_NAND_INT, IRQ_TYPE_EDGE_RISING, 0 }, 113 { AU1500_RTC_MATCH2_INT, IRQ_TYPE_EDGE_RISING, 1 },
169 { AU1550_USB_DEV_REQ_INT, IRQ_TYPE_LEVEL_HIGH, 0 }, 114 { AU1500_USB_DEV_REQ_INT, IRQ_TYPE_LEVEL_HIGH, 1 },
115 { AU1500_USB_DEV_SUS_INT, IRQ_TYPE_EDGE_RISING, 0 },
116 { AU1500_USB_HOST_INT, IRQ_TYPE_LEVEL_LOW, 0 },
117 { AU1500_ACSYNC_INT, IRQ_TYPE_EDGE_RISING, 0 },
118 { AU1500_MAC0_DMA_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
119 { AU1500_MAC1_DMA_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
120 { AU1500_AC97C_INT, IRQ_TYPE_EDGE_RISING, 0 },
121 { -1, },
122};
123
124struct au1xxx_irqmap au1100_irqmap[] __initdata = {
125 { AU1100_UART0_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
126 { AU1100_UART1_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
127 { AU1100_SD_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
128 { AU1100_UART3_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
129 { AU1100_SSI0_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
130 { AU1100_SSI1_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
131 { AU1100_DMA_INT_BASE, IRQ_TYPE_LEVEL_HIGH, 0 },
132 { AU1100_DMA_INT_BASE+1, IRQ_TYPE_LEVEL_HIGH, 0 },
133 { AU1100_DMA_INT_BASE+2, IRQ_TYPE_LEVEL_HIGH, 0 },
134 { AU1100_DMA_INT_BASE+3, IRQ_TYPE_LEVEL_HIGH, 0 },
135 { AU1100_DMA_INT_BASE+4, IRQ_TYPE_LEVEL_HIGH, 0 },
136 { AU1100_DMA_INT_BASE+5, IRQ_TYPE_LEVEL_HIGH, 0 },
137 { AU1100_DMA_INT_BASE+6, IRQ_TYPE_LEVEL_HIGH, 0 },
138 { AU1100_DMA_INT_BASE+7, IRQ_TYPE_LEVEL_HIGH, 0 },
139 { AU1100_TOY_INT, IRQ_TYPE_EDGE_RISING, 0 },
140 { AU1100_TOY_MATCH0_INT, IRQ_TYPE_EDGE_RISING, 0 },
141 { AU1100_TOY_MATCH1_INT, IRQ_TYPE_EDGE_RISING, 0 },
142 { AU1100_TOY_MATCH2_INT, IRQ_TYPE_EDGE_RISING, 0 },
143 { AU1100_RTC_INT, IRQ_TYPE_EDGE_RISING, 0 },
144 { AU1100_RTC_MATCH0_INT, IRQ_TYPE_EDGE_RISING, 0 },
145 { AU1100_RTC_MATCH1_INT, IRQ_TYPE_EDGE_RISING, 0 },
146 { AU1100_RTC_MATCH2_INT, IRQ_TYPE_EDGE_RISING, 1 },
147 { AU1100_IRDA_TX_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
148 { AU1100_IRDA_RX_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
149 { AU1100_USB_DEV_REQ_INT, IRQ_TYPE_LEVEL_HIGH, 1 },
150 { AU1100_USB_DEV_SUS_INT, IRQ_TYPE_EDGE_RISING, 0 },
151 { AU1100_USB_HOST_INT, IRQ_TYPE_LEVEL_LOW, 0 },
152 { AU1100_ACSYNC_INT, IRQ_TYPE_EDGE_RISING, 0 },
153 { AU1100_MAC0_DMA_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
154 { AU1100_LCD_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
155 { AU1100_AC97C_INT, IRQ_TYPE_EDGE_RISING, 0 },
156 { -1, },
157};
158
159struct au1xxx_irqmap au1550_irqmap[] __initdata = {
160 { AU1550_UART0_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
161 { AU1550_PCI_INTA, IRQ_TYPE_LEVEL_LOW, 0 },
162 { AU1550_PCI_INTB, IRQ_TYPE_LEVEL_LOW, 0 },
163 { AU1550_DDMA_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
164 { AU1550_CRYPTO_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
165 { AU1550_PCI_INTC, IRQ_TYPE_LEVEL_LOW, 0 },
166 { AU1550_PCI_INTD, IRQ_TYPE_LEVEL_LOW, 0 },
167 { AU1550_PCI_RST_INT, IRQ_TYPE_LEVEL_LOW, 0 },
168 { AU1550_UART1_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
169 { AU1550_UART3_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
170 { AU1550_PSC0_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
171 { AU1550_PSC1_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
172 { AU1550_PSC2_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
173 { AU1550_PSC3_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
174 { AU1550_TOY_INT, IRQ_TYPE_EDGE_RISING, 0 },
175 { AU1550_TOY_MATCH0_INT, IRQ_TYPE_EDGE_RISING, 0 },
176 { AU1550_TOY_MATCH1_INT, IRQ_TYPE_EDGE_RISING, 0 },
177 { AU1550_TOY_MATCH2_INT, IRQ_TYPE_EDGE_RISING, 0 },
178 { AU1550_RTC_INT, IRQ_TYPE_EDGE_RISING, 0 },
179 { AU1550_RTC_MATCH0_INT, IRQ_TYPE_EDGE_RISING, 0 },
180 { AU1550_RTC_MATCH1_INT, IRQ_TYPE_EDGE_RISING, 0 },
181 { AU1550_RTC_MATCH2_INT, IRQ_TYPE_EDGE_RISING, 1 },
182 { AU1550_NAND_INT, IRQ_TYPE_EDGE_RISING, 0 },
183 { AU1550_USB_DEV_REQ_INT, IRQ_TYPE_LEVEL_HIGH, 1 },
170 { AU1550_USB_DEV_SUS_INT, IRQ_TYPE_EDGE_RISING, 0 }, 184 { AU1550_USB_DEV_SUS_INT, IRQ_TYPE_EDGE_RISING, 0 },
171 { AU1550_USB_HOST_INT, IRQ_TYPE_LEVEL_LOW, 0 }, 185 { AU1550_USB_HOST_INT, IRQ_TYPE_LEVEL_LOW, 0 },
172 { AU1550_MAC0_DMA_INT, IRQ_TYPE_LEVEL_HIGH, 0 }, 186 { AU1550_MAC0_DMA_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
173 { AU1550_MAC1_DMA_INT, IRQ_TYPE_LEVEL_HIGH, 0 }, 187 { AU1550_MAC1_DMA_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
174 188 { -1, },
175#elif defined(CONFIG_SOC_AU1200) 189};
176 190
177 { AU1200_UART0_INT, IRQ_TYPE_LEVEL_HIGH, 0 }, 191struct au1xxx_irqmap au1200_irqmap[] __initdata = {
178 { AU1200_SWT_INT, IRQ_TYPE_EDGE_RISING, 0 }, 192 { AU1200_UART0_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
179 { AU1200_SD_INT, IRQ_TYPE_LEVEL_HIGH, 0 }, 193 { AU1200_SWT_INT, IRQ_TYPE_EDGE_RISING, 0 },
180 { AU1200_DDMA_INT, IRQ_TYPE_LEVEL_HIGH, 0 }, 194 { AU1200_SD_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
181 { AU1200_MAE_BE_INT, IRQ_TYPE_LEVEL_HIGH, 0 }, 195 { AU1200_DDMA_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
182 { AU1200_UART1_INT, IRQ_TYPE_LEVEL_HIGH, 0 }, 196 { AU1200_MAE_BE_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
183 { AU1200_MAE_FE_INT, IRQ_TYPE_LEVEL_HIGH, 0 }, 197 { AU1200_UART1_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
184 { AU1200_PSC0_INT, IRQ_TYPE_LEVEL_HIGH, 0 }, 198 { AU1200_MAE_FE_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
185 { AU1200_PSC1_INT, IRQ_TYPE_LEVEL_HIGH, 0 }, 199 { AU1200_PSC0_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
186 { AU1200_AES_INT, IRQ_TYPE_LEVEL_HIGH, 0 }, 200 { AU1200_PSC1_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
187 { AU1200_CAMERA_INT, IRQ_TYPE_LEVEL_HIGH, 0 }, 201 { AU1200_AES_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
188 { AU1000_TOY_INT, IRQ_TYPE_EDGE_RISING, 0 }, 202 { AU1200_CAMERA_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
189 { AU1000_TOY_MATCH0_INT, IRQ_TYPE_EDGE_RISING, 0 }, 203 { AU1200_TOY_INT, IRQ_TYPE_EDGE_RISING, 0 },
190 { AU1000_TOY_MATCH1_INT, IRQ_TYPE_EDGE_RISING, 0 }, 204 { AU1200_TOY_MATCH0_INT, IRQ_TYPE_EDGE_RISING, 0 },
191 { AU1000_TOY_MATCH2_INT, IRQ_TYPE_EDGE_RISING, 1 }, 205 { AU1200_TOY_MATCH1_INT, IRQ_TYPE_EDGE_RISING, 0 },
192 { AU1000_RTC_INT, IRQ_TYPE_EDGE_RISING, 0 }, 206 { AU1200_TOY_MATCH2_INT, IRQ_TYPE_EDGE_RISING, 0 },
193 { AU1000_RTC_MATCH0_INT, IRQ_TYPE_EDGE_RISING, 0 }, 207 { AU1200_RTC_INT, IRQ_TYPE_EDGE_RISING, 0 },
194 { AU1000_RTC_MATCH1_INT, IRQ_TYPE_EDGE_RISING, 0 }, 208 { AU1200_RTC_MATCH0_INT, IRQ_TYPE_EDGE_RISING, 0 },
195 { AU1000_RTC_MATCH2_INT, IRQ_TYPE_EDGE_RISING, 0 }, 209 { AU1200_RTC_MATCH1_INT, IRQ_TYPE_EDGE_RISING, 0 },
196 { AU1200_NAND_INT, IRQ_TYPE_EDGE_RISING, 0 }, 210 { AU1200_RTC_MATCH2_INT, IRQ_TYPE_EDGE_RISING, 1 },
197 { AU1200_USB_INT, IRQ_TYPE_LEVEL_HIGH, 0 }, 211 { AU1200_NAND_INT, IRQ_TYPE_EDGE_RISING, 0 },
198 { AU1200_LCD_INT, IRQ_TYPE_LEVEL_HIGH, 0 }, 212 { AU1200_USB_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
199 { AU1200_MAE_BOTH_INT, IRQ_TYPE_LEVEL_HIGH, 0 }, 213 { AU1200_LCD_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
200 214 { AU1200_MAE_BOTH_INT, IRQ_TYPE_LEVEL_HIGH, 0 },
201#else 215 { -1, },
202#error "Error: Unknown Alchemy SOC"
203#endif
204}; 216};
205 217
206 218
@@ -306,7 +318,7 @@ static void au1x_ic1_unmask(unsigned int irq_nr)
306 * nowhere in the current kernel sources is it disabled. --mlau 318 * nowhere in the current kernel sources is it disabled. --mlau
307 */ 319 */
308#if defined(CONFIG_MIPS_PB1000) 320#if defined(CONFIG_MIPS_PB1000)
309 if (irq_nr == AU1000_GPIO_15) 321 if (irq_nr == AU1000_GPIO15_INT)
310 au_writel(0x4000, PB1000_MDR); /* enable int */ 322 au_writel(0x4000, PB1000_MDR); /* enable int */
311#endif 323#endif
312 au_sync(); 324 au_sync();
@@ -378,11 +390,13 @@ static void au1x_ic1_maskack(unsigned int irq_nr)
378 390
379static int au1x_ic1_setwake(unsigned int irq, unsigned int on) 391static int au1x_ic1_setwake(unsigned int irq, unsigned int on)
380{ 392{
381 unsigned int bit = irq - AU1000_INTC1_INT_BASE; 393 int bit = irq - AU1000_INTC1_INT_BASE;
382 unsigned long wakemsk, flags; 394 unsigned long wakemsk, flags;
383 395
384 /* only GPIO 0-7 can act as wakeup source: */ 396 /* only GPIO 0-7 can act as wakeup source. Fortunately these
385 if ((irq < AU1000_GPIO_0) || (irq > AU1000_GPIO_7)) 397 * are wired up identically on all supported variants.
398 */
399 if ((bit < 0) || (bit > 7))
386 return -EINVAL; 400 return -EINVAL;
387 401
388 local_irq_save(flags); 402 local_irq_save(flags);
@@ -504,11 +518,11 @@ static int au1x_ic_settype(unsigned int irq, unsigned int flow_type)
504asmlinkage void plat_irq_dispatch(void) 518asmlinkage void plat_irq_dispatch(void)
505{ 519{
506 unsigned int pending = read_c0_status() & read_c0_cause(); 520 unsigned int pending = read_c0_status() & read_c0_cause();
507 unsigned long s, off, bit; 521 unsigned long s, off;
508 522
509 if (pending & CAUSEF_IP7) { 523 if (pending & CAUSEF_IP7) {
510 do_IRQ(MIPS_CPU_IRQ_BASE + 7); 524 off = MIPS_CPU_IRQ_BASE + 7;
511 return; 525 goto handle;
512 } else if (pending & CAUSEF_IP2) { 526 } else if (pending & CAUSEF_IP2) {
513 s = IC0_REQ0INT; 527 s = IC0_REQ0INT;
514 off = AU1000_INTC0_INT_BASE; 528 off = AU1000_INTC0_INT_BASE;
@@ -524,58 +538,20 @@ asmlinkage void plat_irq_dispatch(void)
524 } else 538 } else
525 goto spurious; 539 goto spurious;
526 540
527 bit = 0;
528 s = au_readl(s); 541 s = au_readl(s);
529 if (unlikely(!s)) { 542 if (unlikely(!s)) {
530spurious: 543spurious:
531 spurious_interrupt(); 544 spurious_interrupt();
532 return; 545 return;
533 } 546 }
534#ifdef AU1000_USB_DEV_REQ_INT 547 off += __ffs(s);
535 /* 548handle:
536 * Because of the tight timing of SETUP token to reply 549 do_IRQ(off);
537 * transactions, the USB devices-side packet complete
538 * interrupt needs the highest priority.
539 */
540 bit = 1 << (AU1000_USB_DEV_REQ_INT - AU1000_INTC0_INT_BASE);
541 if ((pending & CAUSEF_IP2) && (s & bit)) {
542 do_IRQ(AU1000_USB_DEV_REQ_INT);
543 return;
544 }
545#endif
546 do_IRQ(__ffs(s) + off);
547} 550}
548 551
549/* setup edge/level and assign request 0/1 */ 552static void __init au1000_init_irq(struct au1xxx_irqmap *map)
550void __init au1xxx_setup_irqmap(struct au1xxx_irqmap *map, int count)
551{ 553{
552 unsigned int bit, irq_nr; 554 unsigned int bit, irq_nr;
553
554 while (count--) {
555 irq_nr = map[count].im_irq;
556
557 if (((irq_nr < AU1000_INTC0_INT_BASE) ||
558 (irq_nr >= AU1000_INTC0_INT_BASE + 32)) &&
559 ((irq_nr < AU1000_INTC1_INT_BASE) ||
560 (irq_nr >= AU1000_INTC1_INT_BASE + 32)))
561 continue;
562
563 if (irq_nr >= AU1000_INTC1_INT_BASE) {
564 bit = irq_nr - AU1000_INTC1_INT_BASE;
565 if (map[count].im_request)
566 au_writel(1 << bit, IC1_ASSIGNCLR);
567 } else {
568 bit = irq_nr - AU1000_INTC0_INT_BASE;
569 if (map[count].im_request)
570 au_writel(1 << bit, IC0_ASSIGNCLR);
571 }
572
573 au1x_ic_settype(irq_nr, map[count].im_type);
574 }
575}
576
577void __init arch_init_irq(void)
578{
579 int i; 555 int i;
580 556
581 /* 557 /*
@@ -585,7 +561,7 @@ void __init arch_init_irq(void)
585 au_writel(0xffffffff, IC0_CFG1CLR); 561 au_writel(0xffffffff, IC0_CFG1CLR);
586 au_writel(0xffffffff, IC0_CFG2CLR); 562 au_writel(0xffffffff, IC0_CFG2CLR);
587 au_writel(0xffffffff, IC0_MASKCLR); 563 au_writel(0xffffffff, IC0_MASKCLR);
588 au_writel(0xffffffff, IC0_ASSIGNSET); 564 au_writel(0xffffffff, IC0_ASSIGNCLR);
589 au_writel(0xffffffff, IC0_WAKECLR); 565 au_writel(0xffffffff, IC0_WAKECLR);
590 au_writel(0xffffffff, IC0_SRCSET); 566 au_writel(0xffffffff, IC0_SRCSET);
591 au_writel(0xffffffff, IC0_FALLINGCLR); 567 au_writel(0xffffffff, IC0_FALLINGCLR);
@@ -596,7 +572,7 @@ void __init arch_init_irq(void)
596 au_writel(0xffffffff, IC1_CFG1CLR); 572 au_writel(0xffffffff, IC1_CFG1CLR);
597 au_writel(0xffffffff, IC1_CFG2CLR); 573 au_writel(0xffffffff, IC1_CFG2CLR);
598 au_writel(0xffffffff, IC1_MASKCLR); 574 au_writel(0xffffffff, IC1_MASKCLR);
599 au_writel(0xffffffff, IC1_ASSIGNSET); 575 au_writel(0xffffffff, IC1_ASSIGNCLR);
600 au_writel(0xffffffff, IC1_WAKECLR); 576 au_writel(0xffffffff, IC1_WAKECLR);
601 au_writel(0xffffffff, IC1_SRCSET); 577 au_writel(0xffffffff, IC1_SRCSET);
602 au_writel(0xffffffff, IC1_FALLINGCLR); 578 au_writel(0xffffffff, IC1_FALLINGCLR);
@@ -619,11 +595,43 @@ void __init arch_init_irq(void)
619 /* 595 /*
620 * Initialize IC0, which is fixed per processor. 596 * Initialize IC0, which is fixed per processor.
621 */ 597 */
622 au1xxx_setup_irqmap(au1xxx_ic0_map, ARRAY_SIZE(au1xxx_ic0_map)); 598 while (map->im_irq != -1) {
599 irq_nr = map->im_irq;
623 600
624 /* Boards can register additional (GPIO-based) IRQs. 601 if (irq_nr >= AU1000_INTC1_INT_BASE) {
625 */ 602 bit = irq_nr - AU1000_INTC1_INT_BASE;
626 board_init_irq(); 603 if (map->im_request)
604 au_writel(1 << bit, IC1_ASSIGNSET);
605 } else {
606 bit = irq_nr - AU1000_INTC0_INT_BASE;
607 if (map->im_request)
608 au_writel(1 << bit, IC0_ASSIGNSET);
609 }
610
611 au1x_ic_settype(irq_nr, map->im_type);
612 ++map;
613 }
627 614
628 set_c0_status(IE_IRQ0 | IE_IRQ1 | IE_IRQ2 | IE_IRQ3); 615 set_c0_status(IE_IRQ0 | IE_IRQ1 | IE_IRQ2 | IE_IRQ3);
629} 616}
617
618void __init arch_init_irq(void)
619{
620 switch (alchemy_get_cputype()) {
621 case ALCHEMY_CPU_AU1000:
622 au1000_init_irq(au1000_irqmap);
623 break;
624 case ALCHEMY_CPU_AU1500:
625 au1000_init_irq(au1500_irqmap);
626 break;
627 case ALCHEMY_CPU_AU1100:
628 au1000_init_irq(au1100_irqmap);
629 break;
630 case ALCHEMY_CPU_AU1550:
631 au1000_init_irq(au1550_irqmap);
632 break;
633 case ALCHEMY_CPU_AU1200:
634 au1000_init_irq(au1200_irqmap);
635 break;
636 }
637}
diff --git a/arch/mips/alchemy/common/platform.c b/arch/mips/alchemy/common/platform.c
index 117f99f70649..2580e77624d2 100644
--- a/arch/mips/alchemy/common/platform.c
+++ b/arch/mips/alchemy/common/platform.c
@@ -19,39 +19,40 @@
19#include <asm/mach-au1x00/au1xxx.h> 19#include <asm/mach-au1x00/au1xxx.h>
20#include <asm/mach-au1x00/au1xxx_dbdma.h> 20#include <asm/mach-au1x00/au1xxx_dbdma.h>
21#include <asm/mach-au1x00/au1100_mmc.h> 21#include <asm/mach-au1x00/au1100_mmc.h>
22 22#include <asm/mach-au1x00/au1xxx_eth.h>
23#define PORT(_base, _irq) \ 23
24 { \ 24#define PORT(_base, _irq) \
25 .iobase = _base, \ 25 { \
26 .membase = (void __iomem *)_base,\ 26 .mapbase = _base, \
27 .mapbase = CPHYSADDR(_base), \ 27 .irq = _irq, \
28 .irq = _irq, \ 28 .regshift = 2, \
29 .regshift = 2, \ 29 .iotype = UPIO_AU, \
30 .iotype = UPIO_AU, \ 30 .flags = UPF_SKIP_TEST | UPF_IOREMAP | \
31 .flags = UPF_SKIP_TEST \ 31 UPF_FIXED_TYPE, \
32 .type = PORT_16550A, \
32 } 33 }
33 34
34static struct plat_serial8250_port au1x00_uart_data[] = { 35static struct plat_serial8250_port au1x00_uart_data[] = {
35#if defined(CONFIG_SERIAL_8250_AU1X00) 36#if defined(CONFIG_SERIAL_8250_AU1X00)
36#if defined(CONFIG_SOC_AU1000) 37#if defined(CONFIG_SOC_AU1000)
37 PORT(UART0_ADDR, AU1000_UART0_INT), 38 PORT(UART0_PHYS_ADDR, AU1000_UART0_INT),
38 PORT(UART1_ADDR, AU1000_UART1_INT), 39 PORT(UART1_PHYS_ADDR, AU1000_UART1_INT),
39 PORT(UART2_ADDR, AU1000_UART2_INT), 40 PORT(UART2_PHYS_ADDR, AU1000_UART2_INT),
40 PORT(UART3_ADDR, AU1000_UART3_INT), 41 PORT(UART3_PHYS_ADDR, AU1000_UART3_INT),
41#elif defined(CONFIG_SOC_AU1500) 42#elif defined(CONFIG_SOC_AU1500)
42 PORT(UART0_ADDR, AU1500_UART0_INT), 43 PORT(UART0_PHYS_ADDR, AU1500_UART0_INT),
43 PORT(UART3_ADDR, AU1500_UART3_INT), 44 PORT(UART3_PHYS_ADDR, AU1500_UART3_INT),
44#elif defined(CONFIG_SOC_AU1100) 45#elif defined(CONFIG_SOC_AU1100)
45 PORT(UART0_ADDR, AU1100_UART0_INT), 46 PORT(UART0_PHYS_ADDR, AU1100_UART0_INT),
46 PORT(UART1_ADDR, AU1100_UART1_INT), 47 PORT(UART1_PHYS_ADDR, AU1100_UART1_INT),
47 PORT(UART3_ADDR, AU1100_UART3_INT), 48 PORT(UART3_PHYS_ADDR, AU1100_UART3_INT),
48#elif defined(CONFIG_SOC_AU1550) 49#elif defined(CONFIG_SOC_AU1550)
49 PORT(UART0_ADDR, AU1550_UART0_INT), 50 PORT(UART0_PHYS_ADDR, AU1550_UART0_INT),
50 PORT(UART1_ADDR, AU1550_UART1_INT), 51 PORT(UART1_PHYS_ADDR, AU1550_UART1_INT),
51 PORT(UART3_ADDR, AU1550_UART3_INT), 52 PORT(UART3_PHYS_ADDR, AU1550_UART3_INT),
52#elif defined(CONFIG_SOC_AU1200) 53#elif defined(CONFIG_SOC_AU1200)
53 PORT(UART0_ADDR, AU1200_UART0_INT), 54 PORT(UART0_PHYS_ADDR, AU1200_UART0_INT),
54 PORT(UART1_ADDR, AU1200_UART1_INT), 55 PORT(UART1_PHYS_ADDR, AU1200_UART1_INT),
55#endif 56#endif
56#endif /* CONFIG_SERIAL_8250_AU1X00 */ 57#endif /* CONFIG_SERIAL_8250_AU1X00 */
57 { }, 58 { },
@@ -73,8 +74,8 @@ static struct resource au1xxx_usb_ohci_resources[] = {
73 .flags = IORESOURCE_MEM, 74 .flags = IORESOURCE_MEM,
74 }, 75 },
75 [1] = { 76 [1] = {
76 .start = AU1000_USB_HOST_INT, 77 .start = FOR_PLATFORM_C_USB_HOST_INT,
77 .end = AU1000_USB_HOST_INT, 78 .end = FOR_PLATFORM_C_USB_HOST_INT,
78 .flags = IORESOURCE_IRQ, 79 .flags = IORESOURCE_IRQ,
79 }, 80 },
80}; 81};
@@ -132,8 +133,8 @@ static struct resource au1xxx_usb_ehci_resources[] = {
132 .flags = IORESOURCE_MEM, 133 .flags = IORESOURCE_MEM,
133 }, 134 },
134 [1] = { 135 [1] = {
135 .start = AU1000_USB_HOST_INT, 136 .start = AU1200_USB_INT,
136 .end = AU1000_USB_HOST_INT, 137 .end = AU1200_USB_INT,
137 .flags = IORESOURCE_IRQ, 138 .flags = IORESOURCE_IRQ,
138 }, 139 },
139}; 140};
@@ -308,11 +309,6 @@ static struct platform_device au1200_mmc1_device = {
308#endif /* #ifndef CONFIG_MIPS_DB1200 */ 309#endif /* #ifndef CONFIG_MIPS_DB1200 */
309#endif /* #ifdef CONFIG_SOC_AU1200 */ 310#endif /* #ifdef CONFIG_SOC_AU1200 */
310 311
311static struct platform_device au1x00_pcmcia_device = {
312 .name = "au1x00-pcmcia",
313 .id = 0,
314};
315
316/* All Alchemy demoboards with I2C have this #define in their headers */ 312/* All Alchemy demoboards with I2C have this #define in their headers */
317#ifdef SMBUS_PSC_BASE 313#ifdef SMBUS_PSC_BASE
318static struct resource pbdb_smbus_resources[] = { 314static struct resource pbdb_smbus_resources[] = {
@@ -331,10 +327,92 @@ static struct platform_device pbdb_smbus_device = {
331}; 327};
332#endif 328#endif
333 329
330/* Macro to help defining the Ethernet MAC resources */
331#define MAC_RES(_base, _enable, _irq) \
332 { \
333 .start = CPHYSADDR(_base), \
334 .end = CPHYSADDR(_base + 0xffff), \
335 .flags = IORESOURCE_MEM, \
336 }, \
337 { \
338 .start = CPHYSADDR(_enable), \
339 .end = CPHYSADDR(_enable + 0x3), \
340 .flags = IORESOURCE_MEM, \
341 }, \
342 { \
343 .start = _irq, \
344 .end = _irq, \
345 .flags = IORESOURCE_IRQ \
346 }
347
348static struct resource au1xxx_eth0_resources[] = {
349#if defined(CONFIG_SOC_AU1000)
350 MAC_RES(AU1000_ETH0_BASE, AU1000_MAC0_ENABLE, AU1000_MAC0_DMA_INT),
351#elif defined(CONFIG_SOC_AU1100)
352 MAC_RES(AU1100_ETH0_BASE, AU1100_MAC0_ENABLE, AU1100_MAC0_DMA_INT),
353#elif defined(CONFIG_SOC_AU1550)
354 MAC_RES(AU1550_ETH0_BASE, AU1550_MAC0_ENABLE, AU1550_MAC0_DMA_INT),
355#elif defined(CONFIG_SOC_AU1500)
356 MAC_RES(AU1500_ETH0_BASE, AU1500_MAC0_ENABLE, AU1500_MAC0_DMA_INT),
357#endif
358};
359
360
361static struct au1000_eth_platform_data au1xxx_eth0_platform_data = {
362 .phy1_search_mac0 = 1,
363};
364
365static struct platform_device au1xxx_eth0_device = {
366 .name = "au1000-eth",
367 .id = 0,
368 .num_resources = ARRAY_SIZE(au1xxx_eth0_resources),
369 .resource = au1xxx_eth0_resources,
370 .dev.platform_data = &au1xxx_eth0_platform_data,
371};
372
373#ifndef CONFIG_SOC_AU1100
374static struct resource au1xxx_eth1_resources[] = {
375#if defined(CONFIG_SOC_AU1000)
376 MAC_RES(AU1000_ETH1_BASE, AU1000_MAC1_ENABLE, AU1000_MAC1_DMA_INT),
377#elif defined(CONFIG_SOC_AU1550)
378 MAC_RES(AU1550_ETH1_BASE, AU1550_MAC1_ENABLE, AU1550_MAC1_DMA_INT),
379#elif defined(CONFIG_SOC_AU1500)
380 MAC_RES(AU1500_ETH1_BASE, AU1500_MAC1_ENABLE, AU1500_MAC1_DMA_INT),
381#endif
382};
383
384static struct au1000_eth_platform_data au1xxx_eth1_platform_data = {
385 .phy1_search_mac0 = 1,
386};
387
388static struct platform_device au1xxx_eth1_device = {
389 .name = "au1000-eth",
390 .id = 1,
391 .num_resources = ARRAY_SIZE(au1xxx_eth1_resources),
392 .resource = au1xxx_eth1_resources,
393 .dev.platform_data = &au1xxx_eth1_platform_data,
394};
395#endif
396
397void __init au1xxx_override_eth_cfg(unsigned int port,
398 struct au1000_eth_platform_data *eth_data)
399{
400 if (!eth_data || port > 1)
401 return;
402
403 if (port == 0)
404 memcpy(&au1xxx_eth0_platform_data, eth_data,
405 sizeof(struct au1000_eth_platform_data));
406#ifndef CONFIG_SOC_AU1100
407 else
408 memcpy(&au1xxx_eth1_platform_data, eth_data,
409 sizeof(struct au1000_eth_platform_data));
410#endif
411}
412
334static struct platform_device *au1xxx_platform_devices[] __initdata = { 413static struct platform_device *au1xxx_platform_devices[] __initdata = {
335 &au1xx0_uart_device, 414 &au1xx0_uart_device,
336 &au1xxx_usb_ohci_device, 415 &au1xxx_usb_ohci_device,
337 &au1x00_pcmcia_device,
338#ifdef CONFIG_FB_AU1100 416#ifdef CONFIG_FB_AU1100
339 &au1100_lcd_device, 417 &au1100_lcd_device,
340#endif 418#endif
@@ -351,6 +429,7 @@ static struct platform_device *au1xxx_platform_devices[] __initdata = {
351#ifdef SMBUS_PSC_BASE 429#ifdef SMBUS_PSC_BASE
352 &pbdb_smbus_device, 430 &pbdb_smbus_device,
353#endif 431#endif
432 &au1xxx_eth0_device,
354}; 433};
355 434
356static int __init au1xxx_platform_init(void) 435static int __init au1xxx_platform_init(void)
@@ -362,6 +441,12 @@ static int __init au1xxx_platform_init(void)
362 for (i = 0; au1x00_uart_data[i].flags; i++) 441 for (i = 0; au1x00_uart_data[i].flags; i++)
363 au1x00_uart_data[i].uartclk = uartclk; 442 au1x00_uart_data[i].uartclk = uartclk;
364 443
444#ifndef CONFIG_SOC_AU1100
445 /* Register second MAC if enabled in pinfunc */
446 if (!(au_readl(SYS_PINFUNC) & (u32)SYS_PF_NI2))
447 platform_device_register(&au1xxx_eth1_device);
448#endif
449
365 return platform_add_devices(au1xxx_platform_devices, 450 return platform_add_devices(au1xxx_platform_devices,
366 ARRAY_SIZE(au1xxx_platform_devices)); 451 ARRAY_SIZE(au1xxx_platform_devices));
367} 452}
diff --git a/arch/mips/alchemy/common/prom.c b/arch/mips/alchemy/common/prom.c
index 18b310b475ca..c29511b11d44 100644
--- a/arch/mips/alchemy/common/prom.c
+++ b/arch/mips/alchemy/common/prom.c
@@ -43,29 +43,15 @@ int prom_argc;
43char **prom_argv; 43char **prom_argv;
44char **prom_envp; 44char **prom_envp;
45 45
46char * __init_or_module prom_getcmdline(void)
47{
48 return &(arcs_cmdline[0]);
49}
50
51void prom_init_cmdline(void) 46void prom_init_cmdline(void)
52{ 47{
53 char *cp; 48 int i;
54 int actr;
55
56 actr = 1; /* Always ignore argv[0] */
57 49
58 cp = &(arcs_cmdline[0]); 50 for (i = 1; i < prom_argc; i++) {
59 while (actr < prom_argc) { 51 strlcat(arcs_cmdline, prom_argv[i], COMMAND_LINE_SIZE);
60 strcpy(cp, prom_argv[actr]); 52 if (i < (prom_argc - 1))
61 cp += strlen(prom_argv[actr]); 53 strlcat(arcs_cmdline, " ", COMMAND_LINE_SIZE);
62 *cp++ = ' ';
63 actr++;
64 } 54 }
65 if (cp != &(arcs_cmdline[0])) /* get rid of trailing space */
66 --cp;
67 if (prom_argc > 1)
68 *cp = '\0';
69} 55}
70 56
71char *prom_getenv(char *envname) 57char *prom_getenv(char *envname)
@@ -121,14 +107,12 @@ static inline void str2eaddr(unsigned char *ea, unsigned char *str)
121int prom_get_ethernet_addr(char *ethernet_addr) 107int prom_get_ethernet_addr(char *ethernet_addr)
122{ 108{
123 char *ethaddr_str; 109 char *ethaddr_str;
124 char *argptr;
125 110
126 /* Check the environment variables first */ 111 /* Check the environment variables first */
127 ethaddr_str = prom_getenv("ethaddr"); 112 ethaddr_str = prom_getenv("ethaddr");
128 if (!ethaddr_str) { 113 if (!ethaddr_str) {
129 /* Check command line */ 114 /* Check command line */
130 argptr = prom_getcmdline(); 115 ethaddr_str = strstr(arcs_cmdline, "ethaddr=");
131 ethaddr_str = strstr(argptr, "ethaddr=");
132 if (!ethaddr_str) 116 if (!ethaddr_str)
133 return -1; 117 return -1;
134 118
diff --git a/arch/mips/alchemy/common/puts.c b/arch/mips/alchemy/common/puts.c
deleted file mode 100644
index 55bbe24d45b6..000000000000
--- a/arch/mips/alchemy/common/puts.c
+++ /dev/null
@@ -1,68 +0,0 @@
1/*
2 *
3 * BRIEF MODULE DESCRIPTION
4 * Low level UART routines to directly access Alchemy UART.
5 *
6 * Copyright 2001, 2008 MontaVista Software Inc.
7 * Author: MontaVista Software, Inc. <source@mvista.com>
8 *
9 * This program is free software; you can redistribute it and/or modify it
10 * under the terms of the GNU General Public License as published by the
11 * Free Software Foundation; either version 2 of the License, or (at your
12 * option) any later version.
13 *
14 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
15 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
16 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
17 * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
18 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
19 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
20 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
21 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
23 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24 *
25 * You should have received a copy of the GNU General Public License along
26 * with this program; if not, write to the Free Software Foundation, Inc.,
27 * 675 Mass Ave, Cambridge, MA 02139, USA.
28 */
29
30#include <asm/mach-au1x00/au1000.h>
31
32#define SERIAL_BASE UART_BASE
33#define SER_CMD 0x7
34#define SER_DATA 0x1
35#define TX_BUSY 0x20
36
37#define TIMEOUT 0xffffff
38#define SLOW_DOWN
39
40static volatile unsigned long * const com1 = (unsigned long *)SERIAL_BASE;
41
42#ifdef SLOW_DOWN
43static inline void slow_down(void)
44{
45 int k;
46
47 for (k = 0; k < 10000; k++);
48}
49#else
50#define slow_down()
51#endif
52
53void
54prom_putchar(const unsigned char c)
55{
56 unsigned char ch;
57 int i = 0;
58
59 do {
60 ch = com1[SER_CMD];
61 slow_down();
62 i++;
63 if (i > TIMEOUT)
64 break;
65 } while (0 == (ch & TX_BUSY));
66
67 com1[SER_DATA] = c;
68}
diff --git a/arch/mips/alchemy/common/reset.c b/arch/mips/alchemy/common/reset.c
deleted file mode 100644
index 4791011e8f92..000000000000
--- a/arch/mips/alchemy/common/reset.c
+++ /dev/null
@@ -1,188 +0,0 @@
1/*
2 *
3 * BRIEF MODULE DESCRIPTION
4 * Au1xx0 reset routines.
5 *
6 * Copyright 2001, 2006, 2008 MontaVista Software Inc.
7 * Author: MontaVista Software, Inc. <source@mvista.com>
8 *
9 * This program is free software; you can redistribute it and/or modify it
10 * under the terms of the GNU General Public License as published by the
11 * Free Software Foundation; either version 2 of the License, or (at your
12 * option) any later version.
13 *
14 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
15 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
16 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
17 * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
18 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
19 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
20 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
21 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
23 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24 *
25 * You should have received a copy of the GNU General Public License along
26 * with this program; if not, write to the Free Software Foundation, Inc.,
27 * 675 Mass Ave, Cambridge, MA 02139, USA.
28 */
29
30#include <linux/gpio.h>
31
32#include <asm/cacheflush.h>
33#include <asm/mach-au1x00/au1000.h>
34
35void au1000_restart(char *command)
36{
37 /* Set all integrated peripherals to disabled states */
38 extern void board_reset(void);
39 u32 prid = read_c0_prid();
40
41 printk(KERN_NOTICE "\n** Resetting Integrated Peripherals\n");
42
43 switch (prid & 0xFF000000) {
44 case 0x00000000: /* Au1000 */
45 au_writel(0x02, 0xb0000010); /* ac97_enable */
46 au_writel(0x08, 0xb017fffc); /* usbh_enable - early errata */
47 asm("sync");
48 au_writel(0x00, 0xb017fffc); /* usbh_enable */
49 au_writel(0x00, 0xb0200058); /* usbd_enable */
50 au_writel(0x00, 0xb0300040); /* ir_enable */
51 au_writel(0x00, 0xb4004104); /* mac dma */
52 au_writel(0x00, 0xb4004114); /* mac dma */
53 au_writel(0x00, 0xb4004124); /* mac dma */
54 au_writel(0x00, 0xb4004134); /* mac dma */
55 au_writel(0x00, 0xb0520000); /* macen0 */
56 au_writel(0x00, 0xb0520004); /* macen1 */
57 au_writel(0x00, 0xb1000008); /* i2s_enable */
58 au_writel(0x00, 0xb1100100); /* uart0_enable */
59 au_writel(0x00, 0xb1200100); /* uart1_enable */
60 au_writel(0x00, 0xb1300100); /* uart2_enable */
61 au_writel(0x00, 0xb1400100); /* uart3_enable */
62 au_writel(0x02, 0xb1600100); /* ssi0_enable */
63 au_writel(0x02, 0xb1680100); /* ssi1_enable */
64 au_writel(0x00, 0xb1900020); /* sys_freqctrl0 */
65 au_writel(0x00, 0xb1900024); /* sys_freqctrl1 */
66 au_writel(0x00, 0xb1900028); /* sys_clksrc */
67 au_writel(0x10, 0xb1900060); /* sys_cpupll */
68 au_writel(0x00, 0xb1900064); /* sys_auxpll */
69 au_writel(0x00, 0xb1900100); /* sys_pininputen */
70 break;
71 case 0x01000000: /* Au1500 */
72 au_writel(0x02, 0xb0000010); /* ac97_enable */
73 au_writel(0x08, 0xb017fffc); /* usbh_enable - early errata */
74 asm("sync");
75 au_writel(0x00, 0xb017fffc); /* usbh_enable */
76 au_writel(0x00, 0xb0200058); /* usbd_enable */
77 au_writel(0x00, 0xb4004104); /* mac dma */
78 au_writel(0x00, 0xb4004114); /* mac dma */
79 au_writel(0x00, 0xb4004124); /* mac dma */
80 au_writel(0x00, 0xb4004134); /* mac dma */
81 au_writel(0x00, 0xb1520000); /* macen0 */
82 au_writel(0x00, 0xb1520004); /* macen1 */
83 au_writel(0x00, 0xb1100100); /* uart0_enable */
84 au_writel(0x00, 0xb1400100); /* uart3_enable */
85 au_writel(0x00, 0xb1900020); /* sys_freqctrl0 */
86 au_writel(0x00, 0xb1900024); /* sys_freqctrl1 */
87 au_writel(0x00, 0xb1900028); /* sys_clksrc */
88 au_writel(0x10, 0xb1900060); /* sys_cpupll */
89 au_writel(0x00, 0xb1900064); /* sys_auxpll */
90 au_writel(0x00, 0xb1900100); /* sys_pininputen */
91 break;
92 case 0x02000000: /* Au1100 */
93 au_writel(0x02, 0xb0000010); /* ac97_enable */
94 au_writel(0x08, 0xb017fffc); /* usbh_enable - early errata */
95 asm("sync");
96 au_writel(0x00, 0xb017fffc); /* usbh_enable */
97 au_writel(0x00, 0xb0200058); /* usbd_enable */
98 au_writel(0x00, 0xb0300040); /* ir_enable */
99 au_writel(0x00, 0xb4004104); /* mac dma */
100 au_writel(0x00, 0xb4004114); /* mac dma */
101 au_writel(0x00, 0xb4004124); /* mac dma */
102 au_writel(0x00, 0xb4004134); /* mac dma */
103 au_writel(0x00, 0xb0520000); /* macen0 */
104 au_writel(0x00, 0xb1000008); /* i2s_enable */
105 au_writel(0x00, 0xb1100100); /* uart0_enable */
106 au_writel(0x00, 0xb1200100); /* uart1_enable */
107 au_writel(0x00, 0xb1400100); /* uart3_enable */
108 au_writel(0x02, 0xb1600100); /* ssi0_enable */
109 au_writel(0x02, 0xb1680100); /* ssi1_enable */
110 au_writel(0x00, 0xb1900020); /* sys_freqctrl0 */
111 au_writel(0x00, 0xb1900024); /* sys_freqctrl1 */
112 au_writel(0x00, 0xb1900028); /* sys_clksrc */
113 au_writel(0x10, 0xb1900060); /* sys_cpupll */
114 au_writel(0x00, 0xb1900064); /* sys_auxpll */
115 au_writel(0x00, 0xb1900100); /* sys_pininputen */
116 break;
117 case 0x03000000: /* Au1550 */
118 au_writel(0x00, 0xb1a00004); /* psc 0 */
119 au_writel(0x00, 0xb1b00004); /* psc 1 */
120 au_writel(0x00, 0xb0a00004); /* psc 2 */
121 au_writel(0x00, 0xb0b00004); /* psc 3 */
122 au_writel(0x00, 0xb017fffc); /* usbh_enable */
123 au_writel(0x00, 0xb0200058); /* usbd_enable */
124 au_writel(0x00, 0xb4004104); /* mac dma */
125 au_writel(0x00, 0xb4004114); /* mac dma */
126 au_writel(0x00, 0xb4004124); /* mac dma */
127 au_writel(0x00, 0xb4004134); /* mac dma */
128 au_writel(0x00, 0xb1520000); /* macen0 */
129 au_writel(0x00, 0xb1520004); /* macen1 */
130 au_writel(0x00, 0xb1100100); /* uart0_enable */
131 au_writel(0x00, 0xb1200100); /* uart1_enable */
132 au_writel(0x00, 0xb1400100); /* uart3_enable */
133 au_writel(0x00, 0xb1900020); /* sys_freqctrl0 */
134 au_writel(0x00, 0xb1900024); /* sys_freqctrl1 */
135 au_writel(0x00, 0xb1900028); /* sys_clksrc */
136 au_writel(0x10, 0xb1900060); /* sys_cpupll */
137 au_writel(0x00, 0xb1900064); /* sys_auxpll */
138 au_writel(0x00, 0xb1900100); /* sys_pininputen */
139 break;
140 }
141
142 set_c0_status(ST0_BEV | ST0_ERL);
143 change_c0_config(CONF_CM_CMASK, CONF_CM_UNCACHED);
144 flush_cache_all();
145 write_c0_wired(0);
146
147 /* Give board a chance to do a hardware reset */
148 board_reset();
149
150 /* Jump to the beggining in case board_reset() is empty */
151 __asm__ __volatile__("jr\t%0"::"r"(0xbfc00000));
152}
153
154void au1000_halt(void)
155{
156#if defined(CONFIG_MIPS_PB1550) || defined(CONFIG_MIPS_DB1550)
157 /* Power off system */
158 printk(KERN_NOTICE "\n** Powering off...\n");
159 au_writew(au_readw(0xAF00001C) | (3 << 14), 0xAF00001C);
160 au_sync();
161 while (1); /* should not get here */
162#else
163 printk(KERN_NOTICE "\n** You can safely turn off the power\n");
164#ifdef CONFIG_MIPS_MIRAGE
165 gpio_direction_output(210, 1);
166#endif
167#ifdef CONFIG_MIPS_DB1200
168 au_writew(au_readw(0xB980001C) | (1 << 14), 0xB980001C);
169#endif
170#ifdef CONFIG_PM
171 au_sleep();
172
173 /* Should not get here */
174 printk(KERN_ERR "Unable to put CPU in sleep mode\n");
175 while (1);
176#else
177 while (1)
178 __asm__(".set\tmips3\n\t"
179 "wait\n\t"
180 ".set\tmips0");
181#endif
182#endif /* defined(CONFIG_MIPS_PB1550) || defined(CONFIG_MIPS_DB1550) */
183}
184
185void au1000_power_off(void)
186{
187 au1000_halt();
188}
diff --git a/arch/mips/alchemy/common/setup.c b/arch/mips/alchemy/common/setup.c
index 6184baa56786..561e5da2658b 100644
--- a/arch/mips/alchemy/common/setup.c
+++ b/arch/mips/alchemy/common/setup.c
@@ -29,18 +29,13 @@
29#include <linux/ioport.h> 29#include <linux/ioport.h>
30#include <linux/jiffies.h> 30#include <linux/jiffies.h>
31#include <linux/module.h> 31#include <linux/module.h>
32#include <linux/pm.h>
33 32
34#include <asm/mipsregs.h> 33#include <asm/mipsregs.h>
35#include <asm/reboot.h>
36#include <asm/time.h> 34#include <asm/time.h>
37 35
38#include <au1000.h> 36#include <au1000.h>
39 37
40extern void __init board_setup(void); 38extern void __init board_setup(void);
41extern void au1000_restart(char *);
42extern void au1000_halt(void);
43extern void au1000_power_off(void);
44extern void set_cpuspec(void); 39extern void set_cpuspec(void);
45 40
46void __init plat_mem_setup(void) 41void __init plat_mem_setup(void)
@@ -57,10 +52,6 @@ void __init plat_mem_setup(void)
57 /* this is faster than wasting cycles trying to approximate it */ 52 /* this is faster than wasting cycles trying to approximate it */
58 preset_lpj = (est_freq >> 1) / HZ; 53 preset_lpj = (est_freq >> 1) / HZ;
59 54
60 _machine_restart = au1000_restart;
61 _machine_halt = au1000_halt;
62 pm_power_off = au1000_power_off;
63
64 board_setup(); /* board specific setup */ 55 board_setup(); /* board specific setup */
65 56
66 if (au1xxx_cpu_needs_config_od()) 57 if (au1xxx_cpu_needs_config_od())
@@ -78,37 +69,20 @@ void __init plat_mem_setup(void)
78 iomem_resource.end = IOMEM_RESOURCE_END; 69 iomem_resource.end = IOMEM_RESOURCE_END;
79} 70}
80 71
81#if defined(CONFIG_64BIT_PHYS_ADDR) 72#if defined(CONFIG_64BIT_PHYS_ADDR) && defined(CONFIG_PCI)
82/* This routine should be valid for all Au1x based boards */ 73/* This routine should be valid for all Au1x based boards */
83phys_t __fixup_bigphys_addr(phys_t phys_addr, phys_t size) 74phys_t __fixup_bigphys_addr(phys_t phys_addr, phys_t size)
84{ 75{
76 u32 start = (u32)Au1500_PCI_MEM_START;
77 u32 end = (u32)Au1500_PCI_MEM_END;
78
85 /* Don't fixup 36-bit addresses */ 79 /* Don't fixup 36-bit addresses */
86 if ((phys_addr >> 32) != 0) 80 if ((phys_addr >> 32) != 0)
87 return phys_addr; 81 return phys_addr;
88 82
89#ifdef CONFIG_PCI 83 /* Check for PCI memory window */
90 { 84 if (phys_addr >= start && (phys_addr + size - 1) <= end)
91 u32 start = (u32)Au1500_PCI_MEM_START; 85 return (phys_t)((phys_addr - start) + Au1500_PCI_MEM_START);
92 u32 end = (u32)Au1500_PCI_MEM_END;
93
94 /* Check for PCI memory window */
95 if (phys_addr >= start && (phys_addr + size - 1) <= end)
96 return (phys_t)
97 ((phys_addr - start) + Au1500_PCI_MEM_START);
98 }
99#endif
100
101 /*
102 * All Au1xx0 SOCs have a PCMCIA controller.
103 * We setup our 32-bit pseudo addresses to be equal to the
104 * 36-bit addr >> 4, to make it easier to check the address
105 * and fix it.
106 * The PCMCIA socket 0 physical attribute address is 0xF 4000 0000.
107 * The pseudo address we use is 0xF400 0000. Any address over
108 * 0xF400 0000 is a PCMCIA pseudo address.
109 */
110 if ((phys_addr >= 0xF4000000) && (phys_addr < 0xFFFFFFFF))
111 return (phys_t)(phys_addr << 4);
112 86
113 /* default nop */ 87 /* default nop */
114 return phys_addr; 88 return phys_addr;
diff --git a/arch/mips/alchemy/common/time.c b/arch/mips/alchemy/common/time.c
index 379a664809b0..2aecb2fdf982 100644
--- a/arch/mips/alchemy/common/time.c
+++ b/arch/mips/alchemy/common/time.c
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2008 Manuel Lauss <mano@roarinelk.homelinux.net> 2 * Copyright (C) 2008-2009 Manuel Lauss <manuel.lauss@gmail.com>
3 * 3 *
4 * Previous incarnations were: 4 * Previous incarnations were:
5 * Copyright (C) 2001, 2006, 2008 MontaVista Software, <source@mvista.com> 5 * Copyright (C) 2001, 2006, 2008 MontaVista Software, <source@mvista.com>
@@ -85,7 +85,6 @@ static struct clock_event_device au1x_rtcmatch2_clockdev = {
85 .name = "rtcmatch2", 85 .name = "rtcmatch2",
86 .features = CLOCK_EVT_FEAT_ONESHOT, 86 .features = CLOCK_EVT_FEAT_ONESHOT,
87 .rating = 100, 87 .rating = 100,
88 .irq = AU1000_RTC_MATCH2_INT,
89 .set_next_event = au1x_rtcmatch2_set_next_event, 88 .set_next_event = au1x_rtcmatch2_set_next_event,
90 .set_mode = au1x_rtcmatch2_set_mode, 89 .set_mode = au1x_rtcmatch2_set_mode,
91 .cpumask = cpu_all_mask, 90 .cpumask = cpu_all_mask,
@@ -98,11 +97,13 @@ static struct irqaction au1x_rtcmatch2_irqaction = {
98 .dev_id = &au1x_rtcmatch2_clockdev, 97 .dev_id = &au1x_rtcmatch2_clockdev,
99}; 98};
100 99
101void __init plat_time_init(void) 100static int __init alchemy_time_init(unsigned int m2int)
102{ 101{
103 struct clock_event_device *cd = &au1x_rtcmatch2_clockdev; 102 struct clock_event_device *cd = &au1x_rtcmatch2_clockdev;
104 unsigned long t; 103 unsigned long t;
105 104
105 au1x_rtcmatch2_clockdev.irq = m2int;
106
106 /* Check if firmware (YAMON, ...) has enabled 32kHz and clock 107 /* Check if firmware (YAMON, ...) has enabled 32kHz and clock
107 * has been detected. If so install the rtcmatch2 clocksource, 108 * has been detected. If so install the rtcmatch2 clocksource,
108 * otherwise don't bother. Note that both bits being set is by 109 * otherwise don't bother. Note that both bits being set is by
@@ -148,13 +149,18 @@ void __init plat_time_init(void)
148 cd->max_delta_ns = clockevent_delta2ns(0xffffffff, cd); 149 cd->max_delta_ns = clockevent_delta2ns(0xffffffff, cd);
149 cd->min_delta_ns = clockevent_delta2ns(8, cd); /* ~0.25ms */ 150 cd->min_delta_ns = clockevent_delta2ns(8, cd); /* ~0.25ms */
150 clockevents_register_device(cd); 151 clockevents_register_device(cd);
151 setup_irq(AU1000_RTC_MATCH2_INT, &au1x_rtcmatch2_irqaction); 152 setup_irq(m2int, &au1x_rtcmatch2_irqaction);
152 153
153 printk(KERN_INFO "Alchemy clocksource installed\n"); 154 printk(KERN_INFO "Alchemy clocksource installed\n");
154 155
155 return; 156 return 0;
156 157
157cntr_err: 158cntr_err:
159 return -1;
160}
161
162static void __init alchemy_setup_c0timer(void)
163{
158 /* 164 /*
159 * MIPS kernel assigns 'au1k_wait' to 'cpu_wait' before this 165 * MIPS kernel assigns 'au1k_wait' to 'cpu_wait' before this
160 * function is called. Because the Alchemy counters are unusable 166 * function is called. Because the Alchemy counters are unusable
@@ -166,3 +172,22 @@ cntr_err:
166 r4k_clockevent_init(); 172 r4k_clockevent_init();
167 init_r4k_clocksource(); 173 init_r4k_clocksource();
168} 174}
175
176static int alchemy_m2inttab[] __initdata = {
177 AU1000_RTC_MATCH2_INT,
178 AU1500_RTC_MATCH2_INT,
179 AU1100_RTC_MATCH2_INT,
180 AU1550_RTC_MATCH2_INT,
181 AU1200_RTC_MATCH2_INT,
182};
183
184void __init plat_time_init(void)
185{
186 int t;
187
188 t = alchemy_get_cputype();
189 if (t == ALCHEMY_CPU_UNKNOWN)
190 alchemy_setup_c0timer();
191 else if (alchemy_time_init(alchemy_m2inttab[t]))
192 alchemy_setup_c0timer();
193}
diff --git a/arch/mips/alchemy/devboards/Makefile b/arch/mips/alchemy/devboards/Makefile
index 730f9f2b30e8..ecbd37f9ee87 100644
--- a/arch/mips/alchemy/devboards/Makefile
+++ b/arch/mips/alchemy/devboards/Makefile
@@ -2,7 +2,7 @@
2# Alchemy Develboards 2# Alchemy Develboards
3# 3#
4 4
5obj-y += prom.o 5obj-y += prom.o bcsr.o platform.o
6obj-$(CONFIG_PM) += pm.o 6obj-$(CONFIG_PM) += pm.o
7obj-$(CONFIG_MIPS_PB1000) += pb1000/ 7obj-$(CONFIG_MIPS_PB1000) += pb1000/
8obj-$(CONFIG_MIPS_PB1100) += pb1100/ 8obj-$(CONFIG_MIPS_PB1100) += pb1100/
@@ -11,8 +11,10 @@ obj-$(CONFIG_MIPS_PB1500) += pb1500/
11obj-$(CONFIG_MIPS_PB1550) += pb1550/ 11obj-$(CONFIG_MIPS_PB1550) += pb1550/
12obj-$(CONFIG_MIPS_DB1000) += db1x00/ 12obj-$(CONFIG_MIPS_DB1000) += db1x00/
13obj-$(CONFIG_MIPS_DB1100) += db1x00/ 13obj-$(CONFIG_MIPS_DB1100) += db1x00/
14obj-$(CONFIG_MIPS_DB1200) += pb1200/ 14obj-$(CONFIG_MIPS_DB1200) += db1200/
15obj-$(CONFIG_MIPS_DB1500) += db1x00/ 15obj-$(CONFIG_MIPS_DB1500) += db1x00/
16obj-$(CONFIG_MIPS_DB1550) += db1x00/ 16obj-$(CONFIG_MIPS_DB1550) += db1x00/
17obj-$(CONFIG_MIPS_BOSPORUS) += db1x00/ 17obj-$(CONFIG_MIPS_BOSPORUS) += db1x00/
18obj-$(CONFIG_MIPS_MIRAGE) += db1x00/ 18obj-$(CONFIG_MIPS_MIRAGE) += db1x00/
19
20EXTRA_CFLAGS += -Werror
diff --git a/arch/mips/alchemy/devboards/bcsr.c b/arch/mips/alchemy/devboards/bcsr.c
new file mode 100644
index 000000000000..3bc4fd2155d7
--- /dev/null
+++ b/arch/mips/alchemy/devboards/bcsr.c
@@ -0,0 +1,148 @@
1/*
2 * bcsr.h -- Db1xxx/Pb1xxx Devboard CPLD registers ("BCSR") abstraction.
3 *
4 * All Alchemy development boards (except, of course, the weird PB1000)
5 * have a few registers in a CPLD with standardised layout; they mostly
6 * only differ in base address.
7 * All registers are 16bits wide with 32bit spacing.
8 */
9
10#include <linux/interrupt.h>
11#include <linux/module.h>
12#include <linux/spinlock.h>
13#include <asm/addrspace.h>
14#include <asm/io.h>
15#include <asm/mach-db1x00/bcsr.h>
16
17static struct bcsr_reg {
18 void __iomem *raddr;
19 spinlock_t lock;
20} bcsr_regs[BCSR_CNT];
21
22static void __iomem *bcsr_virt; /* KSEG1 addr of BCSR base */
23static int bcsr_csc_base; /* linux-irq of first cascaded irq */
24
25void __init bcsr_init(unsigned long bcsr1_phys, unsigned long bcsr2_phys)
26{
27 int i;
28
29 bcsr1_phys = KSEG1ADDR(CPHYSADDR(bcsr1_phys));
30 bcsr2_phys = KSEG1ADDR(CPHYSADDR(bcsr2_phys));
31
32 bcsr_virt = (void __iomem *)bcsr1_phys;
33
34 for (i = 0; i < BCSR_CNT; i++) {
35 if (i >= BCSR_HEXLEDS)
36 bcsr_regs[i].raddr = (void __iomem *)bcsr2_phys +
37 (0x04 * (i - BCSR_HEXLEDS));
38 else
39 bcsr_regs[i].raddr = (void __iomem *)bcsr1_phys +
40 (0x04 * i);
41
42 spin_lock_init(&bcsr_regs[i].lock);
43 }
44}
45
46unsigned short bcsr_read(enum bcsr_id reg)
47{
48 unsigned short r;
49 unsigned long flags;
50
51 spin_lock_irqsave(&bcsr_regs[reg].lock, flags);
52 r = __raw_readw(bcsr_regs[reg].raddr);
53 spin_unlock_irqrestore(&bcsr_regs[reg].lock, flags);
54 return r;
55}
56EXPORT_SYMBOL_GPL(bcsr_read);
57
58void bcsr_write(enum bcsr_id reg, unsigned short val)
59{
60 unsigned long flags;
61
62 spin_lock_irqsave(&bcsr_regs[reg].lock, flags);
63 __raw_writew(val, bcsr_regs[reg].raddr);
64 wmb();
65 spin_unlock_irqrestore(&bcsr_regs[reg].lock, flags);
66}
67EXPORT_SYMBOL_GPL(bcsr_write);
68
69void bcsr_mod(enum bcsr_id reg, unsigned short clr, unsigned short set)
70{
71 unsigned short r;
72 unsigned long flags;
73
74 spin_lock_irqsave(&bcsr_regs[reg].lock, flags);
75 r = __raw_readw(bcsr_regs[reg].raddr);
76 r &= ~clr;
77 r |= set;
78 __raw_writew(r, bcsr_regs[reg].raddr);
79 wmb();
80 spin_unlock_irqrestore(&bcsr_regs[reg].lock, flags);
81}
82EXPORT_SYMBOL_GPL(bcsr_mod);
83
84/*
85 * DB1200/PB1200 CPLD IRQ muxer
86 */
87static void bcsr_csc_handler(unsigned int irq, struct irq_desc *d)
88{
89 unsigned short bisr = __raw_readw(bcsr_virt + BCSR_REG_INTSTAT);
90
91 for ( ; bisr; bisr &= bisr - 1)
92 generic_handle_irq(bcsr_csc_base + __ffs(bisr));
93}
94
95/* NOTE: both the enable and mask bits must be cleared, otherwise the
96 * CPLD generates tons of spurious interrupts (at least on my DB1200).
97 * -- mlau
98 */
99static void bcsr_irq_mask(unsigned int irq_nr)
100{
101 unsigned short v = 1 << (irq_nr - bcsr_csc_base);
102 __raw_writew(v, bcsr_virt + BCSR_REG_INTCLR);
103 __raw_writew(v, bcsr_virt + BCSR_REG_MASKCLR);
104 wmb();
105}
106
107static void bcsr_irq_maskack(unsigned int irq_nr)
108{
109 unsigned short v = 1 << (irq_nr - bcsr_csc_base);
110 __raw_writew(v, bcsr_virt + BCSR_REG_INTCLR);
111 __raw_writew(v, bcsr_virt + BCSR_REG_MASKCLR);
112 __raw_writew(v, bcsr_virt + BCSR_REG_INTSTAT); /* ack */
113 wmb();
114}
115
116static void bcsr_irq_unmask(unsigned int irq_nr)
117{
118 unsigned short v = 1 << (irq_nr - bcsr_csc_base);
119 __raw_writew(v, bcsr_virt + BCSR_REG_INTSET);
120 __raw_writew(v, bcsr_virt + BCSR_REG_MASKSET);
121 wmb();
122}
123
124static struct irq_chip bcsr_irq_type = {
125 .name = "CPLD",
126 .mask = bcsr_irq_mask,
127 .mask_ack = bcsr_irq_maskack,
128 .unmask = bcsr_irq_unmask,
129};
130
131void __init bcsr_init_irq(int csc_start, int csc_end, int hook_irq)
132{
133 unsigned int irq;
134
135 /* mask & disable & ack all */
136 __raw_writew(0xffff, bcsr_virt + BCSR_REG_INTCLR);
137 __raw_writew(0xffff, bcsr_virt + BCSR_REG_MASKCLR);
138 __raw_writew(0xffff, bcsr_virt + BCSR_REG_INTSTAT);
139 wmb();
140
141 bcsr_csc_base = csc_start;
142
143 for (irq = csc_start; irq <= csc_end; irq++)
144 set_irq_chip_and_handler_name(irq, &bcsr_irq_type,
145 handle_level_irq, "level");
146
147 set_irq_chained_handler(hook_irq, bcsr_csc_handler);
148}
diff --git a/arch/mips/alchemy/devboards/db1200/Makefile b/arch/mips/alchemy/devboards/db1200/Makefile
new file mode 100644
index 000000000000..17840a5e2738
--- /dev/null
+++ b/arch/mips/alchemy/devboards/db1200/Makefile
@@ -0,0 +1 @@
obj-y += setup.o platform.o
diff --git a/arch/mips/alchemy/devboards/db1200/platform.c b/arch/mips/alchemy/devboards/db1200/platform.c
new file mode 100644
index 000000000000..3cb95a98ab31
--- /dev/null
+++ b/arch/mips/alchemy/devboards/db1200/platform.c
@@ -0,0 +1,561 @@
1/*
2 * DBAu1200 board platform device registration
3 *
4 * Copyright (C) 2008-2009 Manuel Lauss
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
19 */
20
21#include <linux/dma-mapping.h>
22#include <linux/gpio.h>
23#include <linux/i2c.h>
24#include <linux/init.h>
25#include <linux/io.h>
26#include <linux/leds.h>
27#include <linux/mmc/host.h>
28#include <linux/mtd/mtd.h>
29#include <linux/mtd/nand.h>
30#include <linux/mtd/partitions.h>
31#include <linux/platform_device.h>
32#include <linux/serial_8250.h>
33#include <linux/spi/spi.h>
34#include <linux/spi/flash.h>
35#include <linux/smc91x.h>
36
37#include <asm/mach-au1x00/au1100_mmc.h>
38#include <asm/mach-au1x00/au1xxx_dbdma.h>
39#include <asm/mach-au1x00/au1550_spi.h>
40#include <asm/mach-db1x00/bcsr.h>
41#include <asm/mach-db1x00/db1200.h>
42
43#include "../platform.h"
44
45static struct mtd_partition db1200_spiflash_parts[] = {
46 {
47 .name = "DB1200 SPI flash",
48 .offset = 0,
49 .size = MTDPART_SIZ_FULL,
50 },
51};
52
53static struct flash_platform_data db1200_spiflash_data = {
54 .name = "s25fl001",
55 .parts = db1200_spiflash_parts,
56 .nr_parts = ARRAY_SIZE(db1200_spiflash_parts),
57 .type = "m25p10",
58};
59
60static struct spi_board_info db1200_spi_devs[] __initdata = {
61 {
62 /* TI TMP121AIDBVR temp sensor */
63 .modalias = "tmp121",
64 .max_speed_hz = 2000000,
65 .bus_num = 0,
66 .chip_select = 0,
67 .mode = 0,
68 },
69 {
70 /* Spansion S25FL001D0FMA SPI flash */
71 .modalias = "m25p80",
72 .max_speed_hz = 50000000,
73 .bus_num = 0,
74 .chip_select = 1,
75 .mode = 0,
76 .platform_data = &db1200_spiflash_data,
77 },
78};
79
80static struct i2c_board_info db1200_i2c_devs[] __initdata = {
81 {
82 /* AT24C04-10 I2C eeprom */
83 I2C_BOARD_INFO("24c04", 0x52),
84 },
85 {
86 /* Philips NE1619 temp/voltage sensor (adm1025 drv) */
87 I2C_BOARD_INFO("ne1619", 0x2d),
88 },
89 {
90 /* I2S audio codec WM8731 */
91 I2C_BOARD_INFO("wm8731", 0x1b),
92 },
93};
94
95/**********************************************************************/
96
97static void au1200_nand_cmd_ctrl(struct mtd_info *mtd, int cmd,
98 unsigned int ctrl)
99{
100 struct nand_chip *this = mtd->priv;
101 unsigned long ioaddr = (unsigned long)this->IO_ADDR_W;
102
103 ioaddr &= 0xffffff00;
104
105 if (ctrl & NAND_CLE) {
106 ioaddr += MEM_STNAND_CMD;
107 } else if (ctrl & NAND_ALE) {
108 ioaddr += MEM_STNAND_ADDR;
109 } else {
110 /* assume we want to r/w real data by default */
111 ioaddr += MEM_STNAND_DATA;
112 }
113 this->IO_ADDR_R = this->IO_ADDR_W = (void __iomem *)ioaddr;
114 if (cmd != NAND_CMD_NONE) {
115 __raw_writeb(cmd, this->IO_ADDR_W);
116 wmb();
117 }
118}
119
120static int au1200_nand_device_ready(struct mtd_info *mtd)
121{
122 return __raw_readl((void __iomem *)MEM_STSTAT) & 1;
123}
124
125static const char *db1200_part_probes[] = { "cmdlinepart", NULL };
126
127static struct mtd_partition db1200_nand_parts[] = {
128 {
129 .name = "NAND FS 0",
130 .offset = 0,
131 .size = 8 * 1024 * 1024,
132 },
133 {
134 .name = "NAND FS 1",
135 .offset = MTDPART_OFS_APPEND,
136 .size = MTDPART_SIZ_FULL
137 },
138};
139
140struct platform_nand_data db1200_nand_platdata = {
141 .chip = {
142 .nr_chips = 1,
143 .chip_offset = 0,
144 .nr_partitions = ARRAY_SIZE(db1200_nand_parts),
145 .partitions = db1200_nand_parts,
146 .chip_delay = 20,
147 .part_probe_types = db1200_part_probes,
148 },
149 .ctrl = {
150 .dev_ready = au1200_nand_device_ready,
151 .cmd_ctrl = au1200_nand_cmd_ctrl,
152 },
153};
154
155static struct resource db1200_nand_res[] = {
156 [0] = {
157 .start = DB1200_NAND_PHYS_ADDR,
158 .end = DB1200_NAND_PHYS_ADDR + 0xff,
159 .flags = IORESOURCE_MEM,
160 },
161};
162
163static struct platform_device db1200_nand_dev = {
164 .name = "gen_nand",
165 .num_resources = ARRAY_SIZE(db1200_nand_res),
166 .resource = db1200_nand_res,
167 .id = -1,
168 .dev = {
169 .platform_data = &db1200_nand_platdata,
170 }
171};
172
173/**********************************************************************/
174
175static struct smc91x_platdata db1200_eth_data = {
176 .flags = SMC91X_NOWAIT | SMC91X_USE_16BIT,
177 .leda = RPC_LED_100_10,
178 .ledb = RPC_LED_TX_RX,
179};
180
181static struct resource db1200_eth_res[] = {
182 [0] = {
183 .start = DB1200_ETH_PHYS_ADDR,
184 .end = DB1200_ETH_PHYS_ADDR + 0xf,
185 .flags = IORESOURCE_MEM,
186 },
187 [1] = {
188 .start = DB1200_ETH_INT,
189 .end = DB1200_ETH_INT,
190 .flags = IORESOURCE_IRQ,
191 },
192};
193
194static struct platform_device db1200_eth_dev = {
195 .dev = {
196 .platform_data = &db1200_eth_data,
197 },
198 .name = "smc91x",
199 .id = -1,
200 .num_resources = ARRAY_SIZE(db1200_eth_res),
201 .resource = db1200_eth_res,
202};
203
204/**********************************************************************/
205
206static struct resource db1200_ide_res[] = {
207 [0] = {
208 .start = DB1200_IDE_PHYS_ADDR,
209 .end = DB1200_IDE_PHYS_ADDR + DB1200_IDE_PHYS_LEN - 1,
210 .flags = IORESOURCE_MEM,
211 },
212 [1] = {
213 .start = DB1200_IDE_INT,
214 .end = DB1200_IDE_INT,
215 .flags = IORESOURCE_IRQ,
216 }
217};
218
219static u64 ide_dmamask = DMA_32BIT_MASK;
220
221static struct platform_device db1200_ide_dev = {
222 .name = "au1200-ide",
223 .id = 0,
224 .dev = {
225 .dma_mask = &ide_dmamask,
226 .coherent_dma_mask = DMA_32BIT_MASK,
227 },
228 .num_resources = ARRAY_SIZE(db1200_ide_res),
229 .resource = db1200_ide_res,
230};
231
232/**********************************************************************/
233
234static struct platform_device db1200_rtc_dev = {
235 .name = "rtc-au1xxx",
236 .id = -1,
237};
238
239/**********************************************************************/
240
241/* SD carddetects: they're supposed to be edge-triggered, but ack
242 * doesn't seem to work (CPLD Rev 2). Instead, the screaming one
243 * is disabled and its counterpart enabled. The 500ms timeout is
244 * because the carddetect isn't debounced in hardware.
245 */
246static irqreturn_t db1200_mmc_cd(int irq, void *ptr)
247{
248 void(*mmc_cd)(struct mmc_host *, unsigned long);
249
250 if (irq == DB1200_SD0_INSERT_INT) {
251 disable_irq_nosync(DB1200_SD0_INSERT_INT);
252 enable_irq(DB1200_SD0_EJECT_INT);
253 } else {
254 disable_irq_nosync(DB1200_SD0_EJECT_INT);
255 enable_irq(DB1200_SD0_INSERT_INT);
256 }
257
258 /* link against CONFIG_MMC=m */
259 mmc_cd = symbol_get(mmc_detect_change);
260 if (mmc_cd) {
261 mmc_cd(ptr, msecs_to_jiffies(500));
262 symbol_put(mmc_detect_change);
263 }
264
265 return IRQ_HANDLED;
266}
267
268static int db1200_mmc_cd_setup(void *mmc_host, int en)
269{
270 int ret;
271
272 if (en) {
273 ret = request_irq(DB1200_SD0_INSERT_INT, db1200_mmc_cd,
274 IRQF_DISABLED, "sd_insert", mmc_host);
275 if (ret)
276 goto out;
277
278 ret = request_irq(DB1200_SD0_EJECT_INT, db1200_mmc_cd,
279 IRQF_DISABLED, "sd_eject", mmc_host);
280 if (ret) {
281 free_irq(DB1200_SD0_INSERT_INT, mmc_host);
282 goto out;
283 }
284
285 if (bcsr_read(BCSR_SIGSTAT) & BCSR_INT_SD0INSERT)
286 enable_irq(DB1200_SD0_EJECT_INT);
287 else
288 enable_irq(DB1200_SD0_INSERT_INT);
289
290 } else {
291 free_irq(DB1200_SD0_INSERT_INT, mmc_host);
292 free_irq(DB1200_SD0_EJECT_INT, mmc_host);
293 }
294 ret = 0;
295out:
296 return ret;
297}
298
299static void db1200_mmc_set_power(void *mmc_host, int state)
300{
301 if (state) {
302 bcsr_mod(BCSR_BOARD, 0, BCSR_BOARD_SD0PWR);
303 msleep(400); /* stabilization time */
304 } else
305 bcsr_mod(BCSR_BOARD, BCSR_BOARD_SD0PWR, 0);
306}
307
308static int db1200_mmc_card_readonly(void *mmc_host)
309{
310 return (bcsr_read(BCSR_STATUS) & BCSR_STATUS_SD0WP) ? 1 : 0;
311}
312
313static int db1200_mmc_card_inserted(void *mmc_host)
314{
315 return (bcsr_read(BCSR_SIGSTAT) & BCSR_INT_SD0INSERT) ? 1 : 0;
316}
317
318static void db1200_mmcled_set(struct led_classdev *led,
319 enum led_brightness brightness)
320{
321 if (brightness != LED_OFF)
322 bcsr_mod(BCSR_LEDS, BCSR_LEDS_LED0, 0);
323 else
324 bcsr_mod(BCSR_LEDS, 0, BCSR_LEDS_LED0);
325}
326
327static struct led_classdev db1200_mmc_led = {
328 .brightness_set = db1200_mmcled_set,
329};
330
331/* needed by arch/mips/alchemy/common/platform.c */
332struct au1xmmc_platform_data au1xmmc_platdata[] = {
333 [0] = {
334 .cd_setup = db1200_mmc_cd_setup,
335 .set_power = db1200_mmc_set_power,
336 .card_inserted = db1200_mmc_card_inserted,
337 .card_readonly = db1200_mmc_card_readonly,
338 .led = &db1200_mmc_led,
339 },
340};
341
342/**********************************************************************/
343
344static struct resource au1200_psc0_res[] = {
345 [0] = {
346 .start = PSC0_PHYS_ADDR,
347 .end = PSC0_PHYS_ADDR + 0x000fffff,
348 .flags = IORESOURCE_MEM,
349 },
350 [1] = {
351 .start = AU1200_PSC0_INT,
352 .end = AU1200_PSC0_INT,
353 .flags = IORESOURCE_IRQ,
354 },
355 [2] = {
356 .start = DSCR_CMD0_PSC0_TX,
357 .end = DSCR_CMD0_PSC0_TX,
358 .flags = IORESOURCE_DMA,
359 },
360 [3] = {
361 .start = DSCR_CMD0_PSC0_RX,
362 .end = DSCR_CMD0_PSC0_RX,
363 .flags = IORESOURCE_DMA,
364 },
365};
366
367static struct platform_device db1200_i2c_dev = {
368 .name = "au1xpsc_smbus",
369 .id = 0, /* bus number */
370 .num_resources = ARRAY_SIZE(au1200_psc0_res),
371 .resource = au1200_psc0_res,
372};
373
374static void db1200_spi_cs_en(struct au1550_spi_info *spi, int cs, int pol)
375{
376 if (cs)
377 bcsr_mod(BCSR_RESETS, 0, BCSR_RESETS_SPISEL);
378 else
379 bcsr_mod(BCSR_RESETS, BCSR_RESETS_SPISEL, 0);
380}
381
382static struct au1550_spi_info db1200_spi_platdata = {
383 .mainclk_hz = 50000000, /* PSC0 clock */
384 .num_chipselect = 2,
385 .activate_cs = db1200_spi_cs_en,
386};
387
388static u64 spi_dmamask = DMA_32BIT_MASK;
389
390static struct platform_device db1200_spi_dev = {
391 .dev = {
392 .dma_mask = &spi_dmamask,
393 .coherent_dma_mask = DMA_32BIT_MASK,
394 .platform_data = &db1200_spi_platdata,
395 },
396 .name = "au1550-spi",
397 .id = 0, /* bus number */
398 .num_resources = ARRAY_SIZE(au1200_psc0_res),
399 .resource = au1200_psc0_res,
400};
401
402static struct resource au1200_psc1_res[] = {
403 [0] = {
404 .start = PSC1_PHYS_ADDR,
405 .end = PSC1_PHYS_ADDR + 0x000fffff,
406 .flags = IORESOURCE_MEM,
407 },
408 [1] = {
409 .start = AU1200_PSC1_INT,
410 .end = AU1200_PSC1_INT,
411 .flags = IORESOURCE_IRQ,
412 },
413 [2] = {
414 .start = DSCR_CMD0_PSC1_TX,
415 .end = DSCR_CMD0_PSC1_TX,
416 .flags = IORESOURCE_DMA,
417 },
418 [3] = {
419 .start = DSCR_CMD0_PSC1_RX,
420 .end = DSCR_CMD0_PSC1_RX,
421 .flags = IORESOURCE_DMA,
422 },
423};
424
425static struct platform_device db1200_audio_dev = {
426 /* name assigned later based on switch setting */
427 .id = 1, /* PSC ID */
428 .num_resources = ARRAY_SIZE(au1200_psc1_res),
429 .resource = au1200_psc1_res,
430};
431
432static struct platform_device *db1200_devs[] __initdata = {
433 NULL, /* PSC0, selected by S6.8 */
434 &db1200_ide_dev,
435 &db1200_eth_dev,
436 &db1200_rtc_dev,
437 &db1200_nand_dev,
438 &db1200_audio_dev,
439};
440
441static int __init db1200_dev_init(void)
442{
443 unsigned long pfc;
444 unsigned short sw;
445 int swapped;
446
447 i2c_register_board_info(0, db1200_i2c_devs,
448 ARRAY_SIZE(db1200_i2c_devs));
449 spi_register_board_info(db1200_spi_devs,
450 ARRAY_SIZE(db1200_i2c_devs));
451
452 /* SWITCHES: S6.8 I2C/SPI selector (OFF=I2C ON=SPI)
453 * S6.7 AC97/I2S selector (OFF=AC97 ON=I2S)
454 */
455
456 /* NOTE: GPIO215 controls OTG VBUS supply. In SPI mode however
457 * this pin is claimed by PSC0 (unused though, but pinmux doesn't
458 * allow to free it without crippling the SPI interface).
459 * As a result, in SPI mode, OTG simply won't work (PSC0 uses
460 * it as an input pin which is pulled high on the boards).
461 */
462 pfc = __raw_readl((void __iomem *)SYS_PINFUNC) & ~SYS_PINFUNC_P0A;
463
464 /* switch off OTG VBUS supply */
465 gpio_request(215, "otg-vbus");
466 gpio_direction_output(215, 1);
467
468 printk(KERN_INFO "DB1200 device configuration:\n");
469
470 sw = bcsr_read(BCSR_SWITCHES);
471 if (sw & BCSR_SWITCHES_DIP_8) {
472 db1200_devs[0] = &db1200_i2c_dev;
473 bcsr_mod(BCSR_RESETS, BCSR_RESETS_PSC0MUX, 0);
474
475 pfc |= (2 << 17); /* GPIO2 block owns GPIO215 */
476
477 printk(KERN_INFO " S6.8 OFF: PSC0 mode I2C\n");
478 printk(KERN_INFO " OTG port VBUS supply available!\n");
479 } else {
480 db1200_devs[0] = &db1200_spi_dev;
481 bcsr_mod(BCSR_RESETS, 0, BCSR_RESETS_PSC0MUX);
482
483 pfc |= (1 << 17); /* PSC0 owns GPIO215 */
484
485 printk(KERN_INFO " S6.8 ON : PSC0 mode SPI\n");
486 printk(KERN_INFO " OTG port VBUS supply disabled\n");
487 }
488 __raw_writel(pfc, (void __iomem *)SYS_PINFUNC);
489 wmb();
490
491 /* Audio: DIP7 selects I2S(0)/AC97(1), but need I2C for I2S!
492 * so: DIP7=1 || DIP8=0 => AC97, DIP7=0 && DIP8=1 => I2S
493 */
494 sw &= BCSR_SWITCHES_DIP_8 | BCSR_SWITCHES_DIP_7;
495 if (sw == BCSR_SWITCHES_DIP_8) {
496 bcsr_mod(BCSR_RESETS, 0, BCSR_RESETS_PSC1MUX);
497 db1200_audio_dev.name = "au1xpsc_i2s";
498 printk(KERN_INFO " S6.7 ON : PSC1 mode I2S\n");
499 } else {
500 bcsr_mod(BCSR_RESETS, BCSR_RESETS_PSC1MUX, 0);
501 db1200_audio_dev.name = "au1xpsc_ac97";
502 printk(KERN_INFO " S6.7 OFF: PSC1 mode AC97\n");
503 }
504
505 /* Audio PSC clock is supplied externally. (FIXME: platdata!!) */
506 __raw_writel(PSC_SEL_CLK_SERCLK,
507 (void __iomem *)KSEG1ADDR(PSC1_PHYS_ADDR) + PSC_SEL_OFFSET);
508 wmb();
509
510 db1x_register_pcmcia_socket(PCMCIA_ATTR_PHYS_ADDR,
511 PCMCIA_ATTR_PHYS_ADDR + 0x000400000 - 1,
512 PCMCIA_MEM_PHYS_ADDR,
513 PCMCIA_MEM_PHYS_ADDR + 0x000400000 - 1,
514 PCMCIA_IO_PHYS_ADDR,
515 PCMCIA_IO_PHYS_ADDR + 0x000010000 - 1,
516 DB1200_PC0_INT,
517 DB1200_PC0_INSERT_INT,
518 /*DB1200_PC0_STSCHG_INT*/0,
519 DB1200_PC0_EJECT_INT,
520 0);
521
522 db1x_register_pcmcia_socket(PCMCIA_ATTR_PHYS_ADDR + 0x004000000,
523 PCMCIA_ATTR_PHYS_ADDR + 0x004400000 - 1,
524 PCMCIA_MEM_PHYS_ADDR + 0x004000000,
525 PCMCIA_MEM_PHYS_ADDR + 0x004400000 - 1,
526 PCMCIA_IO_PHYS_ADDR + 0x004000000,
527 PCMCIA_IO_PHYS_ADDR + 0x004010000 - 1,
528 DB1200_PC1_INT,
529 DB1200_PC1_INSERT_INT,
530 /*DB1200_PC1_STSCHG_INT*/0,
531 DB1200_PC1_EJECT_INT,
532 1);
533
534 swapped = bcsr_read(BCSR_STATUS) & BCSR_STATUS_DB1200_SWAPBOOT;
535 db1x_register_norflash(64 << 20, 2, swapped);
536
537 return platform_add_devices(db1200_devs, ARRAY_SIZE(db1200_devs));
538}
539device_initcall(db1200_dev_init);
540
541/* au1200fb calls these: STERBT EINEN TRAGISCHEN TOD!!! */
542int board_au1200fb_panel(void)
543{
544 return (bcsr_read(BCSR_SWITCHES) >> 8) & 0x0f;
545}
546
547int board_au1200fb_panel_init(void)
548{
549 /* Apply power */
550 bcsr_mod(BCSR_BOARD, 0, BCSR_BOARD_LCDVEE | BCSR_BOARD_LCDVDD |
551 BCSR_BOARD_LCDBL);
552 return 0;
553}
554
555int board_au1200fb_panel_shutdown(void)
556{
557 /* Remove power */
558 bcsr_mod(BCSR_BOARD, BCSR_BOARD_LCDVEE | BCSR_BOARD_LCDVDD |
559 BCSR_BOARD_LCDBL, 0);
560 return 0;
561}
diff --git a/arch/mips/alchemy/devboards/db1200/setup.c b/arch/mips/alchemy/devboards/db1200/setup.c
new file mode 100644
index 000000000000..887619547553
--- /dev/null
+++ b/arch/mips/alchemy/devboards/db1200/setup.c
@@ -0,0 +1,82 @@
1/*
2 * Alchemy/AMD/RMI DB1200 board setup.
3 *
4 * Licensed under the terms outlined in the file COPYING in the root of
5 * this source archive.
6 */
7
8#include <linux/init.h>
9#include <linux/interrupt.h>
10#include <linux/io.h>
11#include <linux/kernel.h>
12#include <asm/mach-au1x00/au1000.h>
13#include <asm/mach-db1x00/bcsr.h>
14#include <asm/mach-db1x00/db1200.h>
15
16const char *get_system_type(void)
17{
18 return "Alchemy Db1200";
19}
20
21void __init board_setup(void)
22{
23 unsigned long freq0, clksrc, div, pfc;
24 unsigned short whoami;
25
26 bcsr_init(DB1200_BCSR_PHYS_ADDR,
27 DB1200_BCSR_PHYS_ADDR + DB1200_BCSR_HEXLED_OFS);
28
29 whoami = bcsr_read(BCSR_WHOAMI);
30 printk(KERN_INFO "Alchemy/AMD/RMI DB1200 Board, CPLD Rev %d"
31 " Board-ID %d Daughtercard ID %d\n",
32 (whoami >> 4) & 0xf, (whoami >> 8) & 0xf, whoami & 0xf);
33
34 /* SMBus/SPI on PSC0, Audio on PSC1 */
35 pfc = __raw_readl((void __iomem *)SYS_PINFUNC);
36 pfc &= ~(SYS_PINFUNC_P0A | SYS_PINFUNC_P0B);
37 pfc &= ~(SYS_PINFUNC_P1A | SYS_PINFUNC_P1B | SYS_PINFUNC_FS3);
38 pfc |= SYS_PINFUNC_P1C; /* SPI is configured later */
39 __raw_writel(pfc, (void __iomem *)SYS_PINFUNC);
40 wmb();
41
42 /* Clock configurations: PSC0: ~50MHz via Clkgen0, derived from
43 * CPU clock; all other clock generators off/unused.
44 */
45 div = (get_au1x00_speed() + 25000000) / 50000000;
46 if (div & 1)
47 div++;
48 div = ((div >> 1) - 1) & 0xff;
49
50 freq0 = div << SYS_FC_FRDIV0_BIT;
51 __raw_writel(freq0, (void __iomem *)SYS_FREQCTRL0);
52 wmb();
53 freq0 |= SYS_FC_FE0; /* enable F0 */
54 __raw_writel(freq0, (void __iomem *)SYS_FREQCTRL0);
55 wmb();
56
57 /* psc0_intclk comes 1:1 from F0 */
58 clksrc = SYS_CS_MUX_FQ0 << SYS_CS_ME0_BIT;
59 __raw_writel(clksrc, (void __iomem *)SYS_CLKSRC);
60 wmb();
61}
62
63static int __init db1200_arch_init(void)
64{
65 /* GPIO7 is low-level triggered CPLD cascade */
66 set_irq_type(AU1200_GPIO7_INT, IRQF_TRIGGER_LOW);
67 bcsr_init_irq(DB1200_INT_BEGIN, DB1200_INT_END, AU1200_GPIO7_INT);
68
69 /* insert/eject pairs: one of both is always screaming. To avoid
70 * issues they must not be automatically enabled when initially
71 * requested.
72 */
73 irq_to_desc(DB1200_SD0_INSERT_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;
79
80 return 0;
81}
82arch_initcall(db1200_arch_init);
diff --git a/arch/mips/alchemy/devboards/db1x00/Makefile b/arch/mips/alchemy/devboards/db1x00/Makefile
index 432241ab8677..613c0c0c8be9 100644
--- a/arch/mips/alchemy/devboards/db1x00/Makefile
+++ b/arch/mips/alchemy/devboards/db1x00/Makefile
@@ -5,4 +5,4 @@
5# Makefile for the Alchemy Semiconductor DBAu1xx0 boards. 5# Makefile for the Alchemy Semiconductor DBAu1xx0 boards.
6# 6#
7 7
8obj-y := board_setup.o irqmap.o 8obj-y := board_setup.o platform.o
diff --git a/arch/mips/alchemy/devboards/db1x00/board_setup.c b/arch/mips/alchemy/devboards/db1x00/board_setup.c
index de30d8ea7176..50c9bef99daa 100644
--- a/arch/mips/alchemy/devboards/db1x00/board_setup.c
+++ b/arch/mips/alchemy/devboards/db1x00/board_setup.c
@@ -29,59 +29,139 @@
29 29
30#include <linux/gpio.h> 30#include <linux/gpio.h>
31#include <linux/init.h> 31#include <linux/init.h>
32#include <linux/interrupt.h>
33#include <linux/pm.h>
32 34
33#include <asm/mach-au1x00/au1000.h> 35#include <asm/mach-au1x00/au1000.h>
36#include <asm/mach-au1x00/au1xxx_eth.h>
34#include <asm/mach-db1x00/db1x00.h> 37#include <asm/mach-db1x00/db1x00.h>
38#include <asm/mach-db1x00/bcsr.h>
39#include <asm/reboot.h>
35 40
36#include <prom.h> 41#include <prom.h>
37 42
43#ifdef CONFIG_MIPS_DB1500
44char irq_tab_alchemy[][5] __initdata = {
45 [12] = { -1, AU1500_PCI_INTA, 0xff, 0xff, 0xff }, /* IDSEL 12 - HPT371 */
46 [13] = { -1, AU1500_PCI_INTA, AU1500_PCI_INTB, AU1500_PCI_INTC, AU1500_PCI_INTD }, /* IDSEL 13 - PCI slot */
47};
48
49#endif
38 50
39static BCSR * const bcsr = (BCSR *)BCSR_KSEG1_ADDR; 51
52#ifdef CONFIG_MIPS_DB1550
53char irq_tab_alchemy[][5] __initdata = {
54 [11] = { -1, AU1550_PCI_INTC, 0xff, 0xff, 0xff }, /* IDSEL 11 - on-board HPT371 */
55 [12] = { -1, AU1550_PCI_INTB, AU1550_PCI_INTC, AU1550_PCI_INTD, AU1550_PCI_INTA }, /* IDSEL 12 - PCI slot 2 (left) */
56 [13] = { -1, AU1550_PCI_INTA, AU1550_PCI_INTB, AU1550_PCI_INTC, AU1550_PCI_INTD }, /* IDSEL 13 - PCI slot 1 (right) */
57};
58#endif
59
60
61#ifdef CONFIG_MIPS_BOSPORUS
62char irq_tab_alchemy[][5] __initdata = {
63 [11] = { -1, AU1500_PCI_INTA, AU1500_PCI_INTB, 0xff, 0xff }, /* IDSEL 11 - miniPCI */
64 [12] = { -1, AU1500_PCI_INTA, 0xff, 0xff, 0xff }, /* IDSEL 12 - SN1741 */
65 [13] = { -1, AU1500_PCI_INTA, AU1500_PCI_INTB, AU1500_PCI_INTC, AU1500_PCI_INTD }, /* IDSEL 13 - PCI slot */
66};
67
68/*
69 * Micrel/Kendin 5 port switch attached to MAC0,
70 * MAC0 is associated with PHY address 5 (== WAN port)
71 * MAC1 is not associated with any PHY, since it's connected directly
72 * to the switch.
73 * no interrupts are used
74 */
75static struct au1000_eth_platform_data eth0_pdata = {
76 .phy_static_config = 1,
77 .phy_addr = 5,
78};
79
80static void bosporus_power_off(void)
81{
82 printk(KERN_INFO "It's now safe to turn off power\n");
83 while (1)
84 asm volatile (".set mips3 ; wait ; .set mips0");
85}
40 86
41const char *get_system_type(void) 87const char *get_system_type(void)
42{ 88{
43#ifdef CONFIG_MIPS_BOSPORUS
44 return "Alchemy Bosporus Gateway Reference"; 89 return "Alchemy Bosporus Gateway Reference";
45#else 90}
46 return "Alchemy Db1x00";
47#endif 91#endif
92
93
94#ifdef CONFIG_MIPS_MIRAGE
95char irq_tab_alchemy[][5] __initdata = {
96 [11] = { -1, AU1500_PCI_INTD, 0xff, 0xff, 0xff }, /* IDSEL 11 - SMI VGX */
97 [12] = { -1, 0xff, 0xff, AU1500_PCI_INTC, 0xff }, /* IDSEL 12 - PNX1300 */
98 [13] = { -1, AU1500_PCI_INTA, AU1500_PCI_INTB, 0xff, 0xff }, /* IDSEL 13 - miniPCI */
99};
100
101static void mirage_power_off(void)
102{
103 alchemy_gpio_direction_output(210, 1);
104}
105
106const char *get_system_type(void)
107{
108 return "Alchemy Mirage";
109}
110#endif
111
112
113#if defined(CONFIG_MIPS_BOSPORUS) || defined(CONFIG_MIPS_MIRAGE)
114static void mips_softreset(void)
115{
116 asm volatile ("jr\t%0" : : "r"(0xbfc00000));
48} 117}
49 118
50void board_reset(void) 119#else
120
121const char *get_system_type(void)
51{ 122{
52 /* Hit BCSR.SW_RESET[RESET] */ 123 return "Alchemy Db1x00";
53 bcsr->swreset = 0x0000;
54} 124}
125#endif
126
55 127
56void __init board_setup(void) 128void __init board_setup(void)
57{ 129{
58 u32 pin_func = 0; 130 unsigned long bcsr1, bcsr2;
59 char *argptr; 131 u32 pin_func;
60 132
61 argptr = prom_getcmdline(); 133 bcsr1 = DB1000_BCSR_PHYS_ADDR;
62#ifdef CONFIG_SERIAL_8250_CONSOLE 134 bcsr2 = DB1000_BCSR_PHYS_ADDR + DB1000_BCSR_HEXLED_OFS;
63 argptr = strstr(argptr, "console="); 135
64 if (argptr == NULL) { 136 pin_func = 0;
65 argptr = prom_getcmdline(); 137
66 strcat(argptr, " console=ttyS0,115200"); 138#ifdef CONFIG_MIPS_DB1000
67 } 139 printk(KERN_INFO "AMD Alchemy Au1000/Db1000 Board\n");
140#endif
141#ifdef CONFIG_MIPS_DB1500
142 printk(KERN_INFO "AMD Alchemy Au1500/Db1500 Board\n");
68#endif 143#endif
144#ifdef CONFIG_MIPS_DB1100
145 printk(KERN_INFO "AMD Alchemy Au1100/Db1100 Board\n");
146#endif
147#ifdef CONFIG_MIPS_BOSPORUS
148 au1xxx_override_eth_cfg(0, &eth0_pdata);
69 149
70#ifdef CONFIG_FB_AU1100 150 printk(KERN_INFO "AMD Alchemy Bosporus Board\n");
71 argptr = strstr(argptr, "video=");
72 if (argptr == NULL) {
73 argptr = prom_getcmdline();
74 /* default panel */
75 /*strcat(argptr, " video=au1100fb:panel:Sharp_320x240_16");*/
76 }
77#endif 151#endif
152#ifdef CONFIG_MIPS_MIRAGE
153 printk(KERN_INFO "AMD Alchemy Mirage Board\n");
154#endif
155#ifdef CONFIG_MIPS_DB1550
156 printk(KERN_INFO "AMD Alchemy Au1550/Db1550 Board\n");
78 157
79#if defined(CONFIG_SOUND_AU1X00) && !defined(CONFIG_SOC_AU1000) 158 bcsr1 = DB1550_BCSR_PHYS_ADDR;
80 /* au1000 does not support vra, au1500 and au1100 do */ 159 bcsr2 = DB1550_BCSR_PHYS_ADDR + DB1550_BCSR_HEXLED_OFS;
81 strcat(argptr, " au1000_audio=vra");
82 argptr = prom_getcmdline();
83#endif 160#endif
84 161
162 /* initialize board register space */
163 bcsr_init(bcsr1, bcsr2);
164
85 /* Not valid for Au1550 */ 165 /* Not valid for Au1550 */
86#if defined(CONFIG_IRDA) && \ 166#if defined(CONFIG_IRDA) && \
87 (defined(CONFIG_SOC_AU1000) || defined(CONFIG_SOC_AU1100)) 167 (defined(CONFIG_SOC_AU1000) || defined(CONFIG_SOC_AU1100))
@@ -89,11 +169,10 @@ void __init board_setup(void)
89 pin_func = au_readl(SYS_PINFUNC) | SYS_PF_IRF; 169 pin_func = au_readl(SYS_PINFUNC) | SYS_PF_IRF;
90 au_writel(pin_func, SYS_PINFUNC); 170 au_writel(pin_func, SYS_PINFUNC);
91 /* Power off until the driver is in use */ 171 /* Power off until the driver is in use */
92 bcsr->resets &= ~BCSR_RESETS_IRDA_MODE_MASK; 172 bcsr_mod(BCSR_RESETS, BCSR_RESETS_IRDA_MODE_MASK,
93 bcsr->resets |= BCSR_RESETS_IRDA_MODE_OFF; 173 BCSR_RESETS_IRDA_MODE_OFF);
94 au_sync();
95#endif 174#endif
96 bcsr->pcmcia = 0x0000; /* turn off PCMCIA power */ 175 bcsr_write(BCSR_PCMCIA, 0); /* turn off PCMCIA power */
97 176
98 /* Enable GPIO[31:0] inputs */ 177 /* Enable GPIO[31:0] inputs */
99 alchemy_gpio1_input_enable(); 178 alchemy_gpio1_input_enable();
@@ -120,26 +199,53 @@ void __init board_setup(void)
120 * be part of the audio driver. 199 * be part of the audio driver.
121 */ 200 */
122 alchemy_gpio_direction_output(209, 1); 201 alchemy_gpio_direction_output(209, 1);
123#endif
124
125 au_sync();
126 202
127#ifdef CONFIG_MIPS_DB1000 203 pm_power_off = mirage_power_off;
128 printk(KERN_INFO "AMD Alchemy Au1000/Db1000 Board\n"); 204 _machine_halt = mirage_power_off;
129#endif 205 _machine_restart = (void(*)(char *))mips_softreset;
130#ifdef CONFIG_MIPS_DB1500
131 printk(KERN_INFO "AMD Alchemy Au1500/Db1500 Board\n");
132#endif
133#ifdef CONFIG_MIPS_DB1100
134 printk(KERN_INFO "AMD Alchemy Au1100/Db1100 Board\n");
135#endif 206#endif
207
136#ifdef CONFIG_MIPS_BOSPORUS 208#ifdef CONFIG_MIPS_BOSPORUS
137 printk(KERN_INFO "AMD Alchemy Bosporus Board\n"); 209 pm_power_off = bosporus_power_off;
210 _machine_halt = bosporus_power_off;
211 _machine_restart = (void(*)(char *))mips_softreset;
138#endif 212#endif
139#ifdef CONFIG_MIPS_MIRAGE 213 au_sync();
140 printk(KERN_INFO "AMD Alchemy Mirage Board\n"); 214}
141#endif 215
142#ifdef CONFIG_MIPS_DB1550 216static int __init db1x00_init_irq(void)
143 printk(KERN_INFO "AMD Alchemy Au1550/Db1550 Board\n"); 217{
218#if defined(CONFIG_MIPS_MIRAGE)
219 set_irq_type(AU1500_GPIO7_INT, IRQF_TRIGGER_RISING); /* TS pendown */
220#elif defined(CONFIG_MIPS_DB1550)
221 set_irq_type(AU1550_GPIO0_INT, IRQF_TRIGGER_LOW); /* CD0# */
222 set_irq_type(AU1550_GPIO1_INT, IRQF_TRIGGER_LOW); /* CD1# */
223 set_irq_type(AU1550_GPIO3_INT, IRQF_TRIGGER_LOW); /* CARD0# */
224 set_irq_type(AU1550_GPIO5_INT, IRQF_TRIGGER_LOW); /* CARD1# */
225 set_irq_type(AU1550_GPIO21_INT, IRQF_TRIGGER_LOW); /* STSCHG0# */
226 set_irq_type(AU1550_GPIO22_INT, IRQF_TRIGGER_LOW); /* STSCHG1# */
227#elif defined(CONFIG_MIPS_DB1500)
228 set_irq_type(AU1500_GPIO0_INT, IRQF_TRIGGER_LOW); /* CD0# */
229 set_irq_type(AU1500_GPIO3_INT, IRQF_TRIGGER_LOW); /* CD1# */
230 set_irq_type(AU1500_GPIO2_INT, IRQF_TRIGGER_LOW); /* CARD0# */
231 set_irq_type(AU1500_GPIO5_INT, IRQF_TRIGGER_LOW); /* CARD1# */
232 set_irq_type(AU1500_GPIO1_INT, IRQF_TRIGGER_LOW); /* STSCHG0# */
233 set_irq_type(AU1500_GPIO4_INT, IRQF_TRIGGER_LOW); /* STSCHG1# */
234#elif defined(CONFIG_MIPS_DB1100)
235 set_irq_type(AU1100_GPIO0_INT, IRQF_TRIGGER_LOW); /* CD0# */
236 set_irq_type(AU1100_GPIO3_INT, IRQF_TRIGGER_LOW); /* CD1# */
237 set_irq_type(AU1100_GPIO2_INT, IRQF_TRIGGER_LOW); /* CARD0# */
238 set_irq_type(AU1100_GPIO5_INT, IRQF_TRIGGER_LOW); /* CARD1# */
239 set_irq_type(AU1100_GPIO1_INT, IRQF_TRIGGER_LOW); /* STSCHG0# */
240 set_irq_type(AU1100_GPIO4_INT, IRQF_TRIGGER_LOW); /* STSCHG1# */
241#elif defined(CONFIG_MIPS_DB1000)
242 set_irq_type(AU1000_GPIO0_INT, IRQF_TRIGGER_LOW); /* CD0# */
243 set_irq_type(AU1000_GPIO3_INT, IRQF_TRIGGER_LOW); /* CD1# */
244 set_irq_type(AU1000_GPIO2_INT, IRQF_TRIGGER_LOW); /* CARD0# */
245 set_irq_type(AU1000_GPIO5_INT, IRQF_TRIGGER_LOW); /* CARD1# */
246 set_irq_type(AU1000_GPIO1_INT, IRQF_TRIGGER_LOW); /* STSCHG0# */
247 set_irq_type(AU1000_GPIO4_INT, IRQF_TRIGGER_LOW); /* STSCHG1# */
144#endif 248#endif
249 return 0;
145} 250}
251arch_initcall(db1x00_init_irq);
diff --git a/arch/mips/alchemy/devboards/db1x00/irqmap.c b/arch/mips/alchemy/devboards/db1x00/irqmap.c
deleted file mode 100644
index 0b09025087c6..000000000000
--- a/arch/mips/alchemy/devboards/db1x00/irqmap.c
+++ /dev/null
@@ -1,90 +0,0 @@
1/*
2 * BRIEF MODULE DESCRIPTION
3 * Au1xxx irq map table
4 *
5 * Copyright 2003 Embedded Edge, LLC
6 * dan@embeddededge.com
7 *
8 * This program is free software; you can redistribute it and/or modify it
9 * under the terms of the GNU General Public License as published by the
10 * Free Software Foundation; either version 2 of the License, or (at your
11 * option) any later version.
12 *
13 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
14 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
15 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
16 * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
17 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
18 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
19 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
20 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
21 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
22 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
23 *
24 * You should have received a copy of the GNU General Public License along
25 * with this program; if not, write to the Free Software Foundation, Inc.,
26 * 675 Mass Ave, Cambridge, MA 02139, USA.
27 */
28
29#include <linux/init.h>
30#include <linux/interrupt.h>
31
32#include <asm/mach-au1x00/au1000.h>
33
34#ifdef CONFIG_MIPS_DB1500
35char irq_tab_alchemy[][5] __initdata = {
36 [12] = { -1, INTA, INTX, INTX, INTX }, /* IDSEL 12 - HPT371 */
37 [13] = { -1, INTA, INTB, INTC, INTD }, /* IDSEL 13 - PCI slot */
38};
39#endif
40
41#ifdef CONFIG_MIPS_BOSPORUS
42char irq_tab_alchemy[][5] __initdata = {
43 [11] = { -1, INTA, INTB, INTX, INTX }, /* IDSEL 11 - miniPCI */
44 [12] = { -1, INTA, INTX, INTX, INTX }, /* IDSEL 12 - SN1741 */
45 [13] = { -1, INTA, INTB, INTC, INTD }, /* IDSEL 13 - PCI slot */
46};
47#endif
48
49#ifdef CONFIG_MIPS_MIRAGE
50char irq_tab_alchemy[][5] __initdata = {
51 [11] = { -1, INTD, INTX, INTX, INTX }, /* IDSEL 11 - SMI VGX */
52 [12] = { -1, INTX, INTX, INTC, INTX }, /* IDSEL 12 - PNX1300 */
53 [13] = { -1, INTA, INTB, INTX, INTX }, /* IDSEL 13 - miniPCI */
54};
55#endif
56
57#ifdef CONFIG_MIPS_DB1550
58char irq_tab_alchemy[][5] __initdata = {
59 [11] = { -1, INTC, INTX, INTX, INTX }, /* IDSEL 11 - on-board HPT371 */
60 [12] = { -1, INTB, INTC, INTD, INTA }, /* IDSEL 12 - PCI slot 2 (left) */
61 [13] = { -1, INTA, INTB, INTC, INTD }, /* IDSEL 13 - PCI slot 1 (right) */
62};
63#endif
64
65
66struct au1xxx_irqmap __initdata au1xxx_irq_map[] = {
67
68#ifndef CONFIG_MIPS_MIRAGE
69#ifdef CONFIG_MIPS_DB1550
70 { AU1000_GPIO_3, IRQF_TRIGGER_LOW, 0 }, /* PCMCIA Card 0 IRQ# */
71 { AU1000_GPIO_5, IRQF_TRIGGER_LOW, 0 }, /* PCMCIA Card 1 IRQ# */
72#else
73 { AU1000_GPIO_0, IRQF_TRIGGER_LOW, 0 }, /* PCMCIA Card 0 Fully_Interted# */
74 { AU1000_GPIO_1, IRQF_TRIGGER_LOW, 0 }, /* PCMCIA Card 0 STSCHG# */
75 { AU1000_GPIO_2, IRQF_TRIGGER_LOW, 0 }, /* PCMCIA Card 0 IRQ# */
76
77 { AU1000_GPIO_3, IRQF_TRIGGER_LOW, 0 }, /* PCMCIA Card 1 Fully_Interted# */
78 { AU1000_GPIO_4, IRQF_TRIGGER_LOW, 0 }, /* PCMCIA Card 1 STSCHG# */
79 { AU1000_GPIO_5, IRQF_TRIGGER_LOW, 0 }, /* PCMCIA Card 1 IRQ# */
80#endif
81#else
82 { AU1000_GPIO_7, IRQF_TRIGGER_RISING, 0 }, /* touchscreen pen down */
83#endif
84
85};
86
87void __init board_init_irq(void)
88{
89 au1xxx_setup_irqmap(au1xxx_irq_map, ARRAY_SIZE(au1xxx_irq_map));
90}
diff --git a/arch/mips/alchemy/devboards/db1x00/platform.c b/arch/mips/alchemy/devboards/db1x00/platform.c
new file mode 100644
index 000000000000..978d5ab3d678
--- /dev/null
+++ b/arch/mips/alchemy/devboards/db1x00/platform.c
@@ -0,0 +1,118 @@
1/*
2 * DBAu1xxx board platform device registration
3 *
4 * Copyright (C) 2009 Manuel Lauss
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
19 */
20
21#include <linux/init.h>
22#include <linux/platform_device.h>
23
24#include <asm/mach-au1x00/au1xxx.h>
25#include <asm/mach-db1x00/bcsr.h>
26#include "../platform.h"
27
28/* DB1xxx PCMCIA interrupt sources:
29 * CD0/1 GPIO0/3
30 * STSCHG0/1 GPIO1/4
31 * CARD0/1 GPIO2/5
32 * Db1550: 0/1, 21/22, 3/5
33 */
34
35#define DB1XXX_HAS_PCMCIA
36#define F_SWAPPED (bcsr_read(BCSR_STATUS) & BCSR_STATUS_DB1000_SWAPBOOT)
37
38#if defined(CONFIG_MIPS_DB1000)
39#define DB1XXX_PCMCIA_CD0 AU1000_GPIO0_INT
40#define DB1XXX_PCMCIA_STSCHG0 AU1000_GPIO1_INT
41#define DB1XXX_PCMCIA_CARD0 AU1000_GPIO2_INT
42#define DB1XXX_PCMCIA_CD1 AU1000_GPIO3_INT
43#define DB1XXX_PCMCIA_STSCHG1 AU1000_GPIO4_INT
44#define DB1XXX_PCMCIA_CARD1 AU1000_GPIO5_INT
45#define BOARD_FLASH_SIZE 0x02000000 /* 32MB */
46#define BOARD_FLASH_WIDTH 4 /* 32-bits */
47#elif defined(CONFIG_MIPS_DB1100)
48#define DB1XXX_PCMCIA_CD0 AU1100_GPIO0_INT
49#define DB1XXX_PCMCIA_STSCHG0 AU1100_GPIO1_INT
50#define DB1XXX_PCMCIA_CARD0 AU1100_GPIO2_INT
51#define DB1XXX_PCMCIA_CD1 AU1100_GPIO3_INT
52#define DB1XXX_PCMCIA_STSCHG1 AU1100_GPIO4_INT
53#define DB1XXX_PCMCIA_CARD1 AU1100_GPIO5_INT
54#define BOARD_FLASH_SIZE 0x02000000 /* 32MB */
55#define BOARD_FLASH_WIDTH 4 /* 32-bits */
56#elif defined(CONFIG_MIPS_DB1500)
57#define DB1XXX_PCMCIA_CD0 AU1500_GPIO0_INT
58#define DB1XXX_PCMCIA_STSCHG0 AU1500_GPIO1_INT
59#define DB1XXX_PCMCIA_CARD0 AU1500_GPIO2_INT
60#define DB1XXX_PCMCIA_CD1 AU1500_GPIO3_INT
61#define DB1XXX_PCMCIA_STSCHG1 AU1500_GPIO4_INT
62#define DB1XXX_PCMCIA_CARD1 AU1500_GPIO5_INT
63#define BOARD_FLASH_SIZE 0x02000000 /* 32MB */
64#define BOARD_FLASH_WIDTH 4 /* 32-bits */
65#elif defined(CONFIG_MIPS_DB1550)
66#define DB1XXX_PCMCIA_CD0 AU1550_GPIO0_INT
67#define DB1XXX_PCMCIA_STSCHG0 AU1550_GPIO21_INT
68#define DB1XXX_PCMCIA_CARD0 AU1550_GPIO3_INT
69#define DB1XXX_PCMCIA_CD1 AU1550_GPIO1_INT
70#define DB1XXX_PCMCIA_STSCHG1 AU1550_GPIO22_INT
71#define DB1XXX_PCMCIA_CARD1 AU1550_GPIO5_INT
72#define BOARD_FLASH_SIZE 0x08000000 /* 128MB */
73#define BOARD_FLASH_WIDTH 4 /* 32-bits */
74#else
75/* other board: no PCMCIA */
76#undef DB1XXX_HAS_PCMCIA
77#undef F_SWAPPED
78#define F_SWAPPED 0
79#if defined(CONFIG_MIPS_BOSPORUS)
80#define BOARD_FLASH_SIZE 0x01000000 /* 16MB */
81#define BOARD_FLASH_WIDTH 2 /* 16-bits */
82#elif defined(CONFIG_MIPS_MIRAGE)
83#define BOARD_FLASH_SIZE 0x04000000 /* 64MB */
84#define BOARD_FLASH_WIDTH 4 /* 32-bits */
85#endif
86#endif
87
88static int __init db1xxx_dev_init(void)
89{
90#ifdef DB1XXX_HAS_PCMCIA
91 db1x_register_pcmcia_socket(PCMCIA_ATTR_PHYS_ADDR,
92 PCMCIA_ATTR_PHYS_ADDR + 0x000400000 - 1,
93 PCMCIA_MEM_PHYS_ADDR,
94 PCMCIA_MEM_PHYS_ADDR + 0x000400000 - 1,
95 PCMCIA_IO_PHYS_ADDR,
96 PCMCIA_IO_PHYS_ADDR + 0x000010000 - 1,
97 DB1XXX_PCMCIA_CARD0,
98 DB1XXX_PCMCIA_CD0,
99 /*DB1XXX_PCMCIA_STSCHG0*/0,
100 0,
101 0);
102
103 db1x_register_pcmcia_socket(PCMCIA_ATTR_PHYS_ADDR + 0x004000000,
104 PCMCIA_ATTR_PHYS_ADDR + 0x004400000 - 1,
105 PCMCIA_MEM_PHYS_ADDR + 0x004000000,
106 PCMCIA_MEM_PHYS_ADDR + 0x004400000 - 1,
107 PCMCIA_IO_PHYS_ADDR + 0x004000000,
108 PCMCIA_IO_PHYS_ADDR + 0x004010000 - 1,
109 DB1XXX_PCMCIA_CARD1,
110 DB1XXX_PCMCIA_CD1,
111 /*DB1XXX_PCMCIA_STSCHG1*/0,
112 0,
113 1);
114#endif
115 db1x_register_norflash(BOARD_FLASH_SIZE, BOARD_FLASH_WIDTH, F_SWAPPED);
116 return 0;
117}
118device_initcall(db1xxx_dev_init);
diff --git a/arch/mips/alchemy/devboards/pb1000/board_setup.c b/arch/mips/alchemy/devboards/pb1000/board_setup.c
index cd273545e810..b5311d8a29ab 100644
--- a/arch/mips/alchemy/devboards/pb1000/board_setup.c
+++ b/arch/mips/alchemy/devboards/pb1000/board_setup.c
@@ -31,11 +31,7 @@
31#include <asm/mach-pb1x00/pb1000.h> 31#include <asm/mach-pb1x00/pb1000.h>
32#include <prom.h> 32#include <prom.h>
33 33
34 34#include "../platform.h"
35struct au1xxx_irqmap __initdata au1xxx_irq_map[] = {
36 { AU1000_GPIO_15, IRQF_TRIGGER_LOW, 0 },
37};
38
39 35
40const char *get_system_type(void) 36const char *get_system_type(void)
41{ 37{
@@ -46,25 +42,14 @@ void board_reset(void)
46{ 42{
47} 43}
48 44
49void __init board_init_irq(void)
50{
51 au1xxx_setup_irqmap(au1xxx_irq_map, ARRAY_SIZE(au1xxx_irq_map));
52}
53
54void __init board_setup(void) 45void __init board_setup(void)
55{ 46{
56 u32 pin_func, static_cfg0; 47 u32 pin_func, static_cfg0;
57 u32 sys_freqctrl, sys_clksrc; 48 u32 sys_freqctrl, sys_clksrc;
58 u32 prid = read_c0_prid(); 49 u32 prid = read_c0_prid();
59 50
60#ifdef CONFIG_SERIAL_8250_CONSOLE 51 sys_freqctrl = 0;
61 char *argptr = prom_getcmdline(); 52 sys_clksrc = 0;
62 argptr = strstr(argptr, "console=");
63 if (argptr == NULL) {
64 argptr = prom_getcmdline();
65 strcat(argptr, " console=ttyS0,115200");
66 }
67#endif
68 53
69 /* Set AUX clock to 12 MHz * 8 = 96 MHz */ 54 /* Set AUX clock to 12 MHz * 8 = 96 MHz */
70 au_writel(8, SYS_AUXPLL); 55 au_writel(8, SYS_AUXPLL);
@@ -193,3 +178,16 @@ void __init board_setup(void)
193 break; 178 break;
194 } 179 }
195} 180}
181
182static int __init pb1000_init_irq(void)
183{
184 set_irq_type(AU1000_GPIO15_INT, IRQF_TRIGGER_LOW);
185 return 0;
186}
187arch_initcall(pb1000_init_irq);
188
189static int __init pb1000_device_init(void)
190{
191 return db1x_register_norflash(8 * 1024 * 1024, 4, 0);
192}
193device_initcall(pb1000_device_init);
diff --git a/arch/mips/alchemy/devboards/pb1100/Makefile b/arch/mips/alchemy/devboards/pb1100/Makefile
index c586dd7e91dc..7e3756c83fe5 100644
--- a/arch/mips/alchemy/devboards/pb1100/Makefile
+++ b/arch/mips/alchemy/devboards/pb1100/Makefile
@@ -5,4 +5,4 @@
5# Makefile for the Alchemy Semiconductor Pb1100 board. 5# Makefile for the Alchemy Semiconductor Pb1100 board.
6# 6#
7 7
8obj-y := board_setup.o 8obj-y := board_setup.o platform.o
diff --git a/arch/mips/alchemy/devboards/pb1100/board_setup.c b/arch/mips/alchemy/devboards/pb1100/board_setup.c
index 61263081ef58..c7b4caa81a35 100644
--- a/arch/mips/alchemy/devboards/pb1100/board_setup.c
+++ b/arch/mips/alchemy/devboards/pb1100/board_setup.c
@@ -29,19 +29,11 @@
29#include <linux/interrupt.h> 29#include <linux/interrupt.h>
30 30
31#include <asm/mach-au1x00/au1000.h> 31#include <asm/mach-au1x00/au1000.h>
32#include <asm/mach-pb1x00/pb1100.h> 32#include <asm/mach-db1x00/bcsr.h>
33 33
34#include <prom.h> 34#include <prom.h>
35 35
36 36
37struct au1xxx_irqmap __initdata au1xxx_irq_map[] = {
38 { AU1000_GPIO_9, IRQF_TRIGGER_LOW, 0 }, /* PCMCIA Card Fully_Inserted# */
39 { AU1000_GPIO_10, IRQF_TRIGGER_LOW, 0 }, /* PCMCIA Card STSCHG# */
40 { AU1000_GPIO_11, IRQF_TRIGGER_LOW, 0 }, /* PCMCIA Card IRQ# */
41 { AU1000_GPIO_13, IRQF_TRIGGER_LOW, 0 }, /* DC_IRQ# */
42};
43
44
45const char *get_system_type(void) 37const char *get_system_type(void)
46{ 38{
47 return "Alchemy Pb1100"; 39 return "Alchemy Pb1100";
@@ -49,43 +41,15 @@ const char *get_system_type(void)
49 41
50void board_reset(void) 42void board_reset(void)
51{ 43{
52 /* Hit BCSR.RST_VDDI[SOFT_RESET] */ 44 bcsr_write(BCSR_SYSTEM, 0);
53 au_writel(0x00000000, PB1100_RST_VDDI);
54}
55
56void __init board_init_irq(void)
57{
58 au1xxx_setup_irqmap(au1xxx_irq_map, ARRAY_SIZE(au1xxx_irq_map));
59} 45}
60 46
61void __init board_setup(void) 47void __init board_setup(void)
62{ 48{
63 volatile void __iomem *base = (volatile void __iomem *)0xac000000UL; 49 volatile void __iomem *base = (volatile void __iomem *)0xac000000UL;
64 char *argptr;
65
66 argptr = prom_getcmdline();
67#ifdef CONFIG_SERIAL_8250_CONSOLE
68 argptr = strstr(argptr, "console=");
69 if (argptr == NULL) {
70 argptr = prom_getcmdline();
71 strcat(argptr, " console=ttyS0,115200");
72 }
73#endif
74
75#ifdef CONFIG_FB_AU1100
76 argptr = strstr(argptr, "video=");
77 if (argptr == NULL) {
78 argptr = prom_getcmdline();
79 /* default panel */
80 /*strcat(argptr, " video=au1100fb:panel:Sharp_320x240_16");*/
81 }
82#endif
83 50
84#if defined(CONFIG_SOUND_AU1X00) && !defined(CONFIG_SOC_AU1000) 51 bcsr_init(DB1000_BCSR_PHYS_ADDR,
85 /* au1000 does not support vra, au1500 and au1100 do */ 52 DB1000_BCSR_PHYS_ADDR + DB1000_BCSR_HEXLED_OFS);
86 strcat(argptr, " au1000_audio=vra");
87 argptr = prom_getcmdline();
88#endif
89 53
90 /* Set AUX clock to 12 MHz * 8 = 96 MHz */ 54 /* Set AUX clock to 12 MHz * 8 = 96 MHz */
91 au_writel(8, SYS_AUXPLL); 55 au_writel(8, SYS_AUXPLL);
@@ -155,3 +119,14 @@ void __init board_setup(void)
155 au_sync(); 119 au_sync();
156 } 120 }
157} 121}
122
123static int __init pb1100_init_irq(void)
124{
125 set_irq_type(AU1100_GPIO9_INT, IRQF_TRIGGER_LOW); /* PCCD# */
126 set_irq_type(AU1100_GPIO10_INT, IRQF_TRIGGER_LOW); /* PCSTSCHG# */
127 set_irq_type(AU1100_GPIO11_INT, IRQF_TRIGGER_LOW); /* PCCard# */
128 set_irq_type(AU1100_GPIO13_INT, IRQF_TRIGGER_LOW); /* DC_IRQ# */
129
130 return 0;
131}
132arch_initcall(pb1100_init_irq);
diff --git a/arch/mips/alchemy/devboards/pb1100/platform.c b/arch/mips/alchemy/devboards/pb1100/platform.c
new file mode 100644
index 000000000000..2c8dc29759fd
--- /dev/null
+++ b/arch/mips/alchemy/devboards/pb1100/platform.c
@@ -0,0 +1,50 @@
1/*
2 * Pb1100 board platform device registration
3 *
4 * Copyright (C) 2009 Manuel Lauss
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
19 */
20
21#include <linux/init.h>
22
23#include <asm/mach-au1x00/au1000.h>
24#include <asm/mach-db1x00/bcsr.h>
25
26#include "../platform.h"
27
28static int __init pb1100_dev_init(void)
29{
30 int swapped;
31
32 /* PCMCIA. single socket, identical to Pb1500 */
33 db1x_register_pcmcia_socket(PCMCIA_ATTR_PHYS_ADDR,
34 PCMCIA_ATTR_PHYS_ADDR + 0x000400000 - 1,
35 PCMCIA_MEM_PHYS_ADDR,
36 PCMCIA_MEM_PHYS_ADDR + 0x000400000 - 1,
37 PCMCIA_IO_PHYS_ADDR,
38 PCMCIA_IO_PHYS_ADDR + 0x000010000 - 1,
39 AU1100_GPIO11_INT, /* card */
40 AU1100_GPIO9_INT, /* insert */
41 /*AU1100_GPIO10_INT*/0, /* stschg */
42 0, /* eject */
43 0); /* id */
44
45 swapped = bcsr_read(BCSR_STATUS) & BCSR_STATUS_DB1000_SWAPBOOT;
46 db1x_register_norflash(64 * 1024 * 1024, 4, swapped);
47
48 return 0;
49}
50device_initcall(pb1100_dev_init);
diff --git a/arch/mips/alchemy/devboards/pb1200/Makefile b/arch/mips/alchemy/devboards/pb1200/Makefile
index c8c3a99fb68a..2ea9b02ef09f 100644
--- a/arch/mips/alchemy/devboards/pb1200/Makefile
+++ b/arch/mips/alchemy/devboards/pb1200/Makefile
@@ -2,6 +2,6 @@
2# Makefile for the Alchemy Semiconductor Pb1200/DBAu1200 boards. 2# Makefile for the Alchemy Semiconductor Pb1200/DBAu1200 boards.
3# 3#
4 4
5obj-y := board_setup.o irqmap.o platform.o 5obj-y := board_setup.o platform.o
6 6
7EXTRA_CFLAGS += -Werror 7EXTRA_CFLAGS += -Werror
diff --git a/arch/mips/alchemy/devboards/pb1200/board_setup.c b/arch/mips/alchemy/devboards/pb1200/board_setup.c
index 94e6b7e7753d..3184063f8042 100644
--- a/arch/mips/alchemy/devboards/pb1200/board_setup.c
+++ b/arch/mips/alchemy/devboards/pb1200/board_setup.c
@@ -25,11 +25,23 @@
25 */ 25 */
26 26
27#include <linux/init.h> 27#include <linux/init.h>
28#include <linux/interrupt.h>
28#include <linux/sched.h> 29#include <linux/sched.h>
29 30
30#include <prom.h> 31#include <asm/mach-au1x00/au1000.h>
31#include <au1xxx.h> 32#include <asm/mach-db1x00/bcsr.h>
33
34#ifdef CONFIG_MIPS_PB1200
35#include <asm/mach-pb1x00/pb1200.h>
36#endif
37
38#ifdef CONFIG_MIPS_DB1200
39#include <asm/mach-db1x00/db1200.h>
40#define PB1200_INT_BEGIN DB1200_INT_BEGIN
41#define PB1200_INT_END DB1200_INT_END
42#endif
32 43
44#include <prom.h>
33 45
34const char *get_system_type(void) 46const char *get_system_type(void)
35{ 47{
@@ -38,25 +50,15 @@ const char *get_system_type(void)
38 50
39void board_reset(void) 51void board_reset(void)
40{ 52{
41 bcsr->resets = 0; 53 bcsr_write(BCSR_RESETS, 0);
42 bcsr->system = 0; 54 bcsr_write(BCSR_SYSTEM, 0);
43} 55}
44 56
45void __init board_setup(void) 57void __init board_setup(void)
46{ 58{
47 char *argptr; 59 printk(KERN_INFO "AMD Alchemy Pb1200 Board\n");
48 60 bcsr_init(PB1200_BCSR_PHYS_ADDR,
49 argptr = prom_getcmdline(); 61 PB1200_BCSR_PHYS_ADDR + PB1200_BCSR_HEXLED_OFS);
50#ifdef CONFIG_SERIAL_8250_CONSOLE
51 argptr = strstr(argptr, "console=");
52 if (argptr == NULL) {
53 argptr = prom_getcmdline();
54 strcat(argptr, " console=ttyS0,115200");
55 }
56#endif
57#ifdef CONFIG_FB_AU1200
58 strcat(argptr, " video=au1200fb:panel:bs");
59#endif
60 62
61#if 0 63#if 0
62 { 64 {
@@ -82,7 +84,7 @@ void __init board_setup(void)
82 u32 pin_func; 84 u32 pin_func;
83 85
84 /* Select SMBus in CPLD */ 86 /* Select SMBus in CPLD */
85 bcsr->resets &= ~BCSR_RESETS_PCS0MUX; 87 bcsr_mod(BCSR_RESETS, BCSR_RESETS_PSC0MUX, 0);
86 88
87 pin_func = au_readl(SYS_PINFUNC); 89 pin_func = au_readl(SYS_PINFUNC);
88 au_sync(); 90 au_sync();
@@ -116,38 +118,54 @@ void __init board_setup(void)
116 118
117 /* 119 /*
118 * The Pb1200 development board uses external MUX for PSC0 to 120 * The Pb1200 development board uses external MUX for PSC0 to
119 * support SMB/SPI. bcsr->resets bit 12: 0=SMB 1=SPI 121 * support SMB/SPI. bcsr_resets bit 12: 0=SMB 1=SPI
120 */ 122 */
121#ifdef CONFIG_I2C_AU1550 123#ifdef CONFIG_I2C_AU1550
122 bcsr->resets &= ~BCSR_RESETS_PCS0MUX; 124 bcsr_mod(BCSR_RESETS, BCSR_RESETS_PSC0MUX, 0);
123#endif 125#endif
124 au_sync(); 126 au_sync();
127}
125 128
126#ifdef CONFIG_MIPS_PB1200 129static int __init pb1200_init_irq(void)
127 printk(KERN_INFO "AMD Alchemy Pb1200 Board\n"); 130{
128#endif 131 /* We have a problem with CPLD rev 3. */
129#ifdef CONFIG_MIPS_DB1200 132 if (BCSR_WHOAMI_CPLD(bcsr_read(BCSR_WHOAMI)) <= 3) {
130 printk(KERN_INFO "AMD Alchemy Db1200 Board\n"); 133 printk(KERN_ERR "WARNING!!!\n");
131#endif 134 printk(KERN_ERR "WARNING!!!\n");
135 printk(KERN_ERR "WARNING!!!\n");
136 printk(KERN_ERR "WARNING!!!\n");
137 printk(KERN_ERR "WARNING!!!\n");
138 printk(KERN_ERR "WARNING!!!\n");
139 printk(KERN_ERR "Pb1200 must be at CPLD rev 4. Please have Pb1200\n");
140 printk(KERN_ERR "updated to latest revision. This software will\n");
141 printk(KERN_ERR "not work on anything less than CPLD rev 4.\n");
142 printk(KERN_ERR "WARNING!!!\n");
143 printk(KERN_ERR "WARNING!!!\n");
144 printk(KERN_ERR "WARNING!!!\n");
145 printk(KERN_ERR "WARNING!!!\n");
146 printk(KERN_ERR "WARNING!!!\n");
147 printk(KERN_ERR "WARNING!!!\n");
148 panic("Game over. Your score is 0.");
149 }
150
151 set_irq_type(AU1200_GPIO7_INT, IRQF_TRIGGER_LOW);
152 bcsr_init_irq(PB1200_INT_BEGIN, PB1200_INT_END, AU1200_GPIO7_INT);
153
154 return 0;
132} 155}
156arch_initcall(pb1200_init_irq);
157
133 158
134int board_au1200fb_panel(void) 159int board_au1200fb_panel(void)
135{ 160{
136 BCSR *bcsr = (BCSR *)BCSR_KSEG1_ADDR; 161 return (bcsr_read(BCSR_SWITCHES) >> 8) & 0x0f;
137 int p;
138
139 p = bcsr->switches;
140 p >>= 8;
141 p &= 0x0F;
142 return p;
143} 162}
144 163
145int board_au1200fb_panel_init(void) 164int board_au1200fb_panel_init(void)
146{ 165{
147 /* Apply power */ 166 /* Apply power */
148 BCSR *bcsr = (BCSR *)BCSR_KSEG1_ADDR; 167 bcsr_mod(BCSR_BOARD, 0, BCSR_BOARD_LCDVEE | BCSR_BOARD_LCDVDD |
149 168 BCSR_BOARD_LCDBL);
150 bcsr->board |= BCSR_BOARD_LCDVEE | BCSR_BOARD_LCDVDD | BCSR_BOARD_LCDBL;
151 /* printk(KERN_DEBUG "board_au1200fb_panel_init()\n"); */ 169 /* printk(KERN_DEBUG "board_au1200fb_panel_init()\n"); */
152 return 0; 170 return 0;
153} 171}
@@ -155,10 +173,8 @@ int board_au1200fb_panel_init(void)
155int board_au1200fb_panel_shutdown(void) 173int board_au1200fb_panel_shutdown(void)
156{ 174{
157 /* Remove power */ 175 /* Remove power */
158 BCSR *bcsr = (BCSR *)BCSR_KSEG1_ADDR; 176 bcsr_mod(BCSR_BOARD, BCSR_BOARD_LCDVEE | BCSR_BOARD_LCDVDD |
159 177 BCSR_BOARD_LCDBL, 0);
160 bcsr->board &= ~(BCSR_BOARD_LCDVEE | BCSR_BOARD_LCDVDD |
161 BCSR_BOARD_LCDBL);
162 /* printk(KERN_DEBUG "board_au1200fb_panel_shutdown()\n"); */ 178 /* printk(KERN_DEBUG "board_au1200fb_panel_shutdown()\n"); */
163 return 0; 179 return 0;
164} 180}
diff --git a/arch/mips/alchemy/devboards/pb1200/irqmap.c b/arch/mips/alchemy/devboards/pb1200/irqmap.c
deleted file mode 100644
index fe47498da280..000000000000
--- a/arch/mips/alchemy/devboards/pb1200/irqmap.c
+++ /dev/null
@@ -1,134 +0,0 @@
1/*
2 * BRIEF MODULE DESCRIPTION
3 * Au1xxx irq map table
4 *
5 * This program is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License as published by the
7 * Free Software Foundation; either version 2 of the License, or (at your
8 * option) any later version.
9 *
10 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
11 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
12 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
13 * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
14 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
15 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
16 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
17 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
18 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
19 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
20 *
21 * You should have received a copy of the GNU General Public License along
22 * with this program; if not, write to the Free Software Foundation, Inc.,
23 * 675 Mass Ave, Cambridge, MA 02139, USA.
24 */
25
26#include <linux/init.h>
27#include <linux/interrupt.h>
28
29#include <asm/mach-au1x00/au1000.h>
30
31#ifdef CONFIG_MIPS_PB1200
32#include <asm/mach-pb1x00/pb1200.h>
33#endif
34
35#ifdef CONFIG_MIPS_DB1200
36#include <asm/mach-db1x00/db1200.h>
37#define PB1200_INT_BEGIN DB1200_INT_BEGIN
38#define PB1200_INT_END DB1200_INT_END
39#endif
40
41struct au1xxx_irqmap __initdata au1xxx_irq_map[] = {
42 /* This is external interrupt cascade */
43 { AU1000_GPIO_7, IRQF_TRIGGER_LOW, 0 },
44};
45
46
47/*
48 * Support for External interrupts on the Pb1200 Development platform.
49 */
50
51static void pb1200_cascade_handler(unsigned int irq, struct irq_desc *d)
52{
53 unsigned short bisr = bcsr->int_status;
54
55 for ( ; bisr; bisr &= bisr - 1)
56 generic_handle_irq(PB1200_INT_BEGIN + __ffs(bisr));
57}
58
59/* NOTE: both the enable and mask bits must be cleared, otherwise the
60 * CPLD generates tons of spurious interrupts (at least on the DB1200).
61 */
62static void pb1200_mask_irq(unsigned int irq_nr)
63{
64 bcsr->intclr_mask = 1 << (irq_nr - PB1200_INT_BEGIN);
65 bcsr->intclr = 1 << (irq_nr - PB1200_INT_BEGIN);
66 au_sync();
67}
68
69static void pb1200_maskack_irq(unsigned int irq_nr)
70{
71 bcsr->intclr_mask = 1 << (irq_nr - PB1200_INT_BEGIN);
72 bcsr->intclr = 1 << (irq_nr - PB1200_INT_BEGIN);
73 bcsr->int_status = 1 << (irq_nr - PB1200_INT_BEGIN); /* ack */
74 au_sync();
75}
76
77static void pb1200_unmask_irq(unsigned int irq_nr)
78{
79 bcsr->intset = 1 << (irq_nr - PB1200_INT_BEGIN);
80 bcsr->intset_mask = 1 << (irq_nr - PB1200_INT_BEGIN);
81 au_sync();
82}
83
84static struct irq_chip pb1200_cpld_irq_type = {
85#ifdef CONFIG_MIPS_PB1200
86 .name = "Pb1200 Ext",
87#endif
88#ifdef CONFIG_MIPS_DB1200
89 .name = "Db1200 Ext",
90#endif
91 .mask = pb1200_mask_irq,
92 .mask_ack = pb1200_maskack_irq,
93 .unmask = pb1200_unmask_irq,
94};
95
96void __init board_init_irq(void)
97{
98 unsigned int irq;
99
100 au1xxx_setup_irqmap(au1xxx_irq_map, ARRAY_SIZE(au1xxx_irq_map));
101
102#ifdef CONFIG_MIPS_PB1200
103 /* We have a problem with CPLD rev 3. */
104 if (((bcsr->whoami & BCSR_WHOAMI_CPLD) >> 4) <= 3) {
105 printk(KERN_ERR "WARNING!!!\n");
106 printk(KERN_ERR "WARNING!!!\n");
107 printk(KERN_ERR "WARNING!!!\n");
108 printk(KERN_ERR "WARNING!!!\n");
109 printk(KERN_ERR "WARNING!!!\n");
110 printk(KERN_ERR "WARNING!!!\n");
111 printk(KERN_ERR "Pb1200 must be at CPLD rev 4. Please have Pb1200\n");
112 printk(KERN_ERR "updated to latest revision. This software will\n");
113 printk(KERN_ERR "not work on anything less than CPLD rev 4.\n");
114 printk(KERN_ERR "WARNING!!!\n");
115 printk(KERN_ERR "WARNING!!!\n");
116 printk(KERN_ERR "WARNING!!!\n");
117 printk(KERN_ERR "WARNING!!!\n");
118 printk(KERN_ERR "WARNING!!!\n");
119 printk(KERN_ERR "WARNING!!!\n");
120 panic("Game over. Your score is 0.");
121 }
122#endif
123 /* mask & disable & ack all */
124 bcsr->intclr_mask = 0xffff;
125 bcsr->intclr = 0xffff;
126 bcsr->int_status = 0xffff;
127 au_sync();
128
129 for (irq = PB1200_INT_BEGIN; irq <= PB1200_INT_END; irq++)
130 set_irq_chip_and_handler_name(irq, &pb1200_cpld_irq_type,
131 handle_level_irq, "level");
132
133 set_irq_chained_handler(AU1000_GPIO_7, pb1200_cascade_handler);
134}
diff --git a/arch/mips/alchemy/devboards/pb1200/platform.c b/arch/mips/alchemy/devboards/pb1200/platform.c
index b93dff4a6789..3ef2dceeb796 100644
--- a/arch/mips/alchemy/devboards/pb1200/platform.c
+++ b/arch/mips/alchemy/devboards/pb1200/platform.c
@@ -26,27 +26,30 @@
26 26
27#include <asm/mach-au1x00/au1xxx.h> 27#include <asm/mach-au1x00/au1xxx.h>
28#include <asm/mach-au1x00/au1100_mmc.h> 28#include <asm/mach-au1x00/au1100_mmc.h>
29#include <asm/mach-db1x00/bcsr.h>
30
31#include "../platform.h"
29 32
30static int mmc_activity; 33static int mmc_activity;
31 34
32static void pb1200mmc0_set_power(void *mmc_host, int state) 35static void pb1200mmc0_set_power(void *mmc_host, int state)
33{ 36{
34 if (state) 37 if (state)
35 bcsr->board |= BCSR_BOARD_SD0PWR; 38 bcsr_mod(BCSR_BOARD, 0, BCSR_BOARD_SD0PWR);
36 else 39 else
37 bcsr->board &= ~BCSR_BOARD_SD0PWR; 40 bcsr_mod(BCSR_BOARD, BCSR_BOARD_SD0PWR, 0);
38 41
39 au_sync_delay(1); 42 msleep(1);
40} 43}
41 44
42static int pb1200mmc0_card_readonly(void *mmc_host) 45static int pb1200mmc0_card_readonly(void *mmc_host)
43{ 46{
44 return (bcsr->status & BCSR_STATUS_SD0WP) ? 1 : 0; 47 return (bcsr_read(BCSR_STATUS) & BCSR_STATUS_SD0WP) ? 1 : 0;
45} 48}
46 49
47static int pb1200mmc0_card_inserted(void *mmc_host) 50static int pb1200mmc0_card_inserted(void *mmc_host)
48{ 51{
49 return (bcsr->sig_status & BCSR_INT_SD0INSERT) ? 1 : 0; 52 return (bcsr_read(BCSR_SIGSTAT) & BCSR_INT_SD0INSERT) ? 1 : 0;
50} 53}
51 54
52static void pb1200_mmcled_set(struct led_classdev *led, 55static void pb1200_mmcled_set(struct led_classdev *led,
@@ -54,10 +57,10 @@ static void pb1200_mmcled_set(struct led_classdev *led,
54{ 57{
55 if (brightness != LED_OFF) { 58 if (brightness != LED_OFF) {
56 if (++mmc_activity == 1) 59 if (++mmc_activity == 1)
57 bcsr->disk_leds &= ~(1 << 8); 60 bcsr_mod(BCSR_LEDS, BCSR_LEDS_LED0, 0);
58 } else { 61 } else {
59 if (--mmc_activity == 0) 62 if (--mmc_activity == 0)
60 bcsr->disk_leds |= (1 << 8); 63 bcsr_mod(BCSR_LEDS, 0, BCSR_LEDS_LED0);
61 } 64 }
62} 65}
63 66
@@ -65,27 +68,25 @@ static struct led_classdev pb1200mmc_led = {
65 .brightness_set = pb1200_mmcled_set, 68 .brightness_set = pb1200_mmcled_set,
66}; 69};
67 70
68#ifndef CONFIG_MIPS_DB1200
69static void pb1200mmc1_set_power(void *mmc_host, int state) 71static void pb1200mmc1_set_power(void *mmc_host, int state)
70{ 72{
71 if (state) 73 if (state)
72 bcsr->board |= BCSR_BOARD_SD1PWR; 74 bcsr_mod(BCSR_BOARD, 0, BCSR_BOARD_SD1PWR);
73 else 75 else
74 bcsr->board &= ~BCSR_BOARD_SD1PWR; 76 bcsr_mod(BCSR_BOARD, BCSR_BOARD_SD1PWR, 0);
75 77
76 au_sync_delay(1); 78 msleep(1);
77} 79}
78 80
79static int pb1200mmc1_card_readonly(void *mmc_host) 81static int pb1200mmc1_card_readonly(void *mmc_host)
80{ 82{
81 return (bcsr->status & BCSR_STATUS_SD1WP) ? 1 : 0; 83 return (bcsr_read(BCSR_STATUS) & BCSR_STATUS_SD1WP) ? 1 : 0;
82} 84}
83 85
84static int pb1200mmc1_card_inserted(void *mmc_host) 86static int pb1200mmc1_card_inserted(void *mmc_host)
85{ 87{
86 return (bcsr->sig_status & BCSR_INT_SD1INSERT) ? 1 : 0; 88 return (bcsr_read(BCSR_SIGSTAT) & BCSR_INT_SD1INSERT) ? 1 : 0;
87} 89}
88#endif
89 90
90const struct au1xmmc_platform_data au1xmmc_platdata[2] = { 91const struct au1xmmc_platform_data au1xmmc_platdata[2] = {
91 [0] = { 92 [0] = {
@@ -95,7 +96,6 @@ const struct au1xmmc_platform_data au1xmmc_platdata[2] = {
95 .cd_setup = NULL, /* use poll-timer in driver */ 96 .cd_setup = NULL, /* use poll-timer in driver */
96 .led = &pb1200mmc_led, 97 .led = &pb1200mmc_led,
97 }, 98 },
98#ifndef CONFIG_MIPS_DB1200
99 [1] = { 99 [1] = {
100 .set_power = pb1200mmc1_set_power, 100 .set_power = pb1200mmc1_set_power,
101 .card_inserted = pb1200mmc1_card_inserted, 101 .card_inserted = pb1200mmc1_card_inserted,
@@ -103,7 +103,6 @@ const struct au1xmmc_platform_data au1xmmc_platdata[2] = {
103 .cd_setup = NULL, /* use poll-timer in driver */ 103 .cd_setup = NULL, /* use poll-timer in driver */
104 .led = &pb1200mmc_led, 104 .led = &pb1200mmc_led,
105 }, 105 },
106#endif
107}; 106};
108 107
109static struct resource ide_resources[] = { 108static struct resource ide_resources[] = {
@@ -169,8 +168,36 @@ static struct platform_device *board_platform_devices[] __initdata = {
169 168
170static int __init board_register_devices(void) 169static int __init board_register_devices(void)
171{ 170{
171 int swapped;
172
173 db1x_register_pcmcia_socket(PCMCIA_ATTR_PHYS_ADDR,
174 PCMCIA_ATTR_PHYS_ADDR + 0x000400000 - 1,
175 PCMCIA_MEM_PHYS_ADDR,
176 PCMCIA_MEM_PHYS_ADDR + 0x000400000 - 1,
177 PCMCIA_IO_PHYS_ADDR,
178 PCMCIA_IO_PHYS_ADDR + 0x000010000 - 1,
179 PB1200_PC0_INT,
180 PB1200_PC0_INSERT_INT,
181 /*PB1200_PC0_STSCHG_INT*/0,
182 PB1200_PC0_EJECT_INT,
183 0);
184
185 db1x_register_pcmcia_socket(PCMCIA_ATTR_PHYS_ADDR + 0x008000000,
186 PCMCIA_ATTR_PHYS_ADDR + 0x008400000 - 1,
187 PCMCIA_MEM_PHYS_ADDR + 0x008000000,
188 PCMCIA_MEM_PHYS_ADDR + 0x008400000 - 1,
189 PCMCIA_IO_PHYS_ADDR + 0x008000000,
190 PCMCIA_IO_PHYS_ADDR + 0x008010000 - 1,
191 PB1200_PC1_INT,
192 PB1200_PC1_INSERT_INT,
193 /*PB1200_PC1_STSCHG_INT*/0,
194 PB1200_PC1_EJECT_INT,
195 1);
196
197 swapped = bcsr_read(BCSR_STATUS) & BCSR_STATUS_DB1200_SWAPBOOT;
198 db1x_register_norflash(128 * 1024 * 1024, 2, swapped);
199
172 return platform_add_devices(board_platform_devices, 200 return platform_add_devices(board_platform_devices,
173 ARRAY_SIZE(board_platform_devices)); 201 ARRAY_SIZE(board_platform_devices));
174} 202}
175 203device_initcall(board_register_devices);
176arch_initcall(board_register_devices);
diff --git a/arch/mips/alchemy/devboards/pb1500/Makefile b/arch/mips/alchemy/devboards/pb1500/Makefile
index 173b419a7479..e83b151b5b63 100644
--- a/arch/mips/alchemy/devboards/pb1500/Makefile
+++ b/arch/mips/alchemy/devboards/pb1500/Makefile
@@ -5,4 +5,4 @@
5# Makefile for the Alchemy Semiconductor Pb1500 board. 5# Makefile for the Alchemy Semiconductor Pb1500 board.
6# 6#
7 7
8obj-y := board_setup.o 8obj-y := board_setup.o platform.o
diff --git a/arch/mips/alchemy/devboards/pb1500/board_setup.c b/arch/mips/alchemy/devboards/pb1500/board_setup.c
index d7a56569e7ed..fa9770ac358a 100644
--- a/arch/mips/alchemy/devboards/pb1500/board_setup.c
+++ b/arch/mips/alchemy/devboards/pb1500/board_setup.c
@@ -29,22 +29,14 @@
29#include <linux/interrupt.h> 29#include <linux/interrupt.h>
30 30
31#include <asm/mach-au1x00/au1000.h> 31#include <asm/mach-au1x00/au1000.h>
32#include <asm/mach-pb1x00/pb1500.h> 32#include <asm/mach-db1x00/bcsr.h>
33 33
34#include <prom.h> 34#include <prom.h>
35 35
36 36
37char irq_tab_alchemy[][5] __initdata = { 37char irq_tab_alchemy[][5] __initdata = {
38 [12] = { -1, INTA, INTX, INTX, INTX }, /* IDSEL 12 - HPT370 */ 38 [12] = { -1, AU1500_PCI_INTA, 0xff, 0xff, 0xff }, /* IDSEL 12 - HPT370 */
39 [13] = { -1, INTA, INTB, INTC, INTD }, /* IDSEL 13 - PCI slot */ 39 [13] = { -1, AU1500_PCI_INTA, AU1500_PCI_INTB, AU1500_PCI_INTC, AU1500_PCI_INTD }, /* IDSEL 13 - PCI slot */
40};
41
42struct au1xxx_irqmap __initdata au1xxx_irq_map[] = {
43 { AU1500_GPIO_204, IRQF_TRIGGER_HIGH, 0 },
44 { AU1500_GPIO_201, IRQF_TRIGGER_LOW, 0 },
45 { AU1500_GPIO_202, IRQF_TRIGGER_LOW, 0 },
46 { AU1500_GPIO_203, IRQF_TRIGGER_LOW, 0 },
47 { AU1500_GPIO_205, IRQF_TRIGGER_LOW, 0 },
48}; 40};
49 41
50 42
@@ -55,35 +47,16 @@ const char *get_system_type(void)
55 47
56void board_reset(void) 48void board_reset(void)
57{ 49{
58 /* Hit BCSR.RST_VDDI[SOFT_RESET] */ 50 bcsr_write(BCSR_SYSTEM, 0);
59 au_writel(0x00000000, PB1500_RST_VDDI);
60}
61
62void __init board_init_irq(void)
63{
64 au1xxx_setup_irqmap(au1xxx_irq_map, ARRAY_SIZE(au1xxx_irq_map));
65} 51}
66 52
67void __init board_setup(void) 53void __init board_setup(void)
68{ 54{
69 u32 pin_func; 55 u32 pin_func;
70 u32 sys_freqctrl, sys_clksrc; 56 u32 sys_freqctrl, sys_clksrc;
71 char *argptr;
72
73 argptr = prom_getcmdline();
74#ifdef CONFIG_SERIAL_8250_CONSOLE
75 argptr = strstr(argptr, "console=");
76 if (argptr == NULL) {
77 argptr = prom_getcmdline();
78 strcat(argptr, " console=ttyS0,115200");
79 }
80#endif
81 57
82#if defined(CONFIG_SOUND_AU1X00) && !defined(CONFIG_SOC_AU1000) 58 bcsr_init(DB1000_BCSR_PHYS_ADDR,
83 /* au1000 does not support vra, au1500 and au1100 do */ 59 DB1000_BCSR_PHYS_ADDR + DB1000_BCSR_HEXLED_OFS);
84 strcat(argptr, " au1000_audio=vra");
85 argptr = prom_getcmdline();
86#endif
87 60
88 sys_clksrc = sys_freqctrl = pin_func = 0; 61 sys_clksrc = sys_freqctrl = pin_func = 0;
89 /* Set AUX clock to 12 MHz * 8 = 96 MHz */ 62 /* Set AUX clock to 12 MHz * 8 = 96 MHz */
@@ -163,3 +136,18 @@ void __init board_setup(void)
163 au_sync(); 136 au_sync();
164 } 137 }
165} 138}
139
140static int __init pb1500_init_irq(void)
141{
142 set_irq_type(AU1500_GPIO9_INT, IRQF_TRIGGER_LOW); /* CD0# */
143 set_irq_type(AU1500_GPIO10_INT, IRQF_TRIGGER_LOW); /* CARD0 */
144 set_irq_type(AU1500_GPIO11_INT, IRQF_TRIGGER_LOW); /* STSCHG0# */
145 set_irq_type(AU1500_GPIO204_INT, IRQF_TRIGGER_HIGH);
146 set_irq_type(AU1500_GPIO201_INT, IRQF_TRIGGER_LOW);
147 set_irq_type(AU1500_GPIO202_INT, IRQF_TRIGGER_LOW);
148 set_irq_type(AU1500_GPIO203_INT, IRQF_TRIGGER_LOW);
149 set_irq_type(AU1500_GPIO205_INT, IRQF_TRIGGER_LOW);
150
151 return 0;
152}
153arch_initcall(pb1500_init_irq);
diff --git a/arch/mips/alchemy/devboards/pb1500/platform.c b/arch/mips/alchemy/devboards/pb1500/platform.c
new file mode 100644
index 000000000000..d443bc7aa76e
--- /dev/null
+++ b/arch/mips/alchemy/devboards/pb1500/platform.c
@@ -0,0 +1,49 @@
1/*
2 * Pb1500 board platform device registration
3 *
4 * Copyright (C) 2009 Manuel Lauss
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
19 */
20
21#include <linux/init.h>
22#include <asm/mach-au1x00/au1000.h>
23#include <asm/mach-db1x00/bcsr.h>
24
25#include "../platform.h"
26
27static int __init pb1500_dev_init(void)
28{
29 int swapped;
30
31 /* PCMCIA. single socket, identical to Pb1500 */
32 db1x_register_pcmcia_socket(PCMCIA_ATTR_PHYS_ADDR,
33 PCMCIA_ATTR_PHYS_ADDR + 0x000400000 - 1,
34 PCMCIA_MEM_PHYS_ADDR,
35 PCMCIA_MEM_PHYS_ADDR + 0x000400000 - 1,
36 PCMCIA_IO_PHYS_ADDR,
37 PCMCIA_IO_PHYS_ADDR + 0x000010000 - 1,
38 AU1500_GPIO11_INT, /* card */
39 AU1500_GPIO9_INT, /* insert */
40 /*AU1500_GPIO10_INT*/0, /* stschg */
41 0, /* eject */
42 0); /* id */
43
44 swapped = bcsr_read(BCSR_STATUS) & BCSR_STATUS_DB1000_SWAPBOOT;
45 db1x_register_norflash(64 * 1024 * 1024, 4, swapped);
46
47 return 0;
48}
49device_initcall(pb1500_dev_init);
diff --git a/arch/mips/alchemy/devboards/pb1550/Makefile b/arch/mips/alchemy/devboards/pb1550/Makefile
index cff95bcdb2ca..9661b6ec5dd3 100644
--- a/arch/mips/alchemy/devboards/pb1550/Makefile
+++ b/arch/mips/alchemy/devboards/pb1550/Makefile
@@ -5,4 +5,4 @@
5# Makefile for the Alchemy Semiconductor Pb1550 board. 5# Makefile for the Alchemy Semiconductor Pb1550 board.
6# 6#
7 7
8obj-y := board_setup.o 8obj-y := board_setup.o platform.o
diff --git a/arch/mips/alchemy/devboards/pb1550/board_setup.c b/arch/mips/alchemy/devboards/pb1550/board_setup.c
index b6e9e7d247a3..1e8fb3ddd726 100644
--- a/arch/mips/alchemy/devboards/pb1550/board_setup.c
+++ b/arch/mips/alchemy/devboards/pb1550/board_setup.c
@@ -32,18 +32,15 @@
32 32
33#include <asm/mach-au1x00/au1000.h> 33#include <asm/mach-au1x00/au1000.h>
34#include <asm/mach-pb1x00/pb1550.h> 34#include <asm/mach-pb1x00/pb1550.h>
35#include <asm/mach-db1x00/bcsr.h>
36#include <asm/mach-au1x00/gpio.h>
35 37
36#include <prom.h> 38#include <prom.h>
37 39
38 40
39char irq_tab_alchemy[][5] __initdata = { 41char irq_tab_alchemy[][5] __initdata = {
40 [12] = { -1, INTB, INTC, INTD, INTA }, /* IDSEL 12 - PCI slot 2 (left) */ 42 [12] = { -1, AU1550_PCI_INTB, AU1550_PCI_INTC, AU1550_PCI_INTD, AU1550_PCI_INTA }, /* IDSEL 12 - PCI slot 2 (left) */
41 [13] = { -1, INTA, INTB, INTC, INTD }, /* IDSEL 13 - PCI slot 1 (right) */ 43 [13] = { -1, AU1550_PCI_INTA, AU1550_PCI_INTB, AU1550_PCI_INTC, AU1550_PCI_INTD }, /* IDSEL 13 - PCI slot 1 (right) */
42};
43
44struct au1xxx_irqmap __initdata au1xxx_irq_map[] = {
45 { AU1000_GPIO_0, IRQF_TRIGGER_LOW, 0 },
46 { AU1000_GPIO_1, IRQF_TRIGGER_LOW, 0 },
47}; 44};
48 45
49const char *get_system_type(void) 46const char *get_system_type(void)
@@ -53,28 +50,17 @@ const char *get_system_type(void)
53 50
54void board_reset(void) 51void board_reset(void)
55{ 52{
56 /* Hit BCSR.SYSTEM[RESET] */ 53 bcsr_write(BCSR_SYSTEM, 0);
57 au_writew(au_readw(0xAF00001C) & ~BCSR_SYSTEM_RESET, 0xAF00001C);
58}
59
60void __init board_init_irq(void)
61{
62 au1xxx_setup_irqmap(au1xxx_irq_map, ARRAY_SIZE(au1xxx_irq_map));
63} 54}
64 55
65void __init board_setup(void) 56void __init board_setup(void)
66{ 57{
67 u32 pin_func; 58 u32 pin_func;
68 59
69#ifdef CONFIG_SERIAL_8250_CONSOLE 60 bcsr_init(PB1550_BCSR_PHYS_ADDR,
70 char *argptr; 61 PB1550_BCSR_PHYS_ADDR + PB1550_BCSR_HEXLED_OFS);
71 argptr = prom_getcmdline(); 62
72 argptr = strstr(argptr, "console="); 63 alchemy_gpio2_enable();
73 if (argptr == NULL) {
74 argptr = prom_getcmdline();
75 strcat(argptr, " console=ttyS0,115200");
76 }
77#endif
78 64
79 /* 65 /*
80 * Enable PSC1 SYNC for AC'97. Normaly done in audio driver, 66 * Enable PSC1 SYNC for AC'97. Normaly done in audio driver,
@@ -85,8 +71,21 @@ void __init board_setup(void)
85 pin_func |= SYS_PF_MUST_BE_SET | SYS_PF_PSC1_S1; 71 pin_func |= SYS_PF_MUST_BE_SET | SYS_PF_PSC1_S1;
86 au_writel(pin_func, SYS_PINFUNC); 72 au_writel(pin_func, SYS_PINFUNC);
87 73
88 au_writel(0, (u32)bcsr | 0x10); /* turn off PCMCIA power */ 74 bcsr_write(BCSR_PCMCIA, 0); /* turn off PCMCIA power */
89 au_sync();
90 75
91 printk(KERN_INFO "AMD Alchemy Pb1550 Board\n"); 76 printk(KERN_INFO "AMD Alchemy Pb1550 Board\n");
92} 77}
78
79static int __init pb1550_init_irq(void)
80{
81 set_irq_type(AU1550_GPIO0_INT, IRQF_TRIGGER_LOW);
82 set_irq_type(AU1550_GPIO1_INT, IRQF_TRIGGER_LOW);
83 set_irq_type(AU1550_GPIO201_205_INT, IRQF_TRIGGER_HIGH);
84
85 /* enable both PCMCIA card irqs in the shared line */
86 alchemy_gpio2_enable_int(201);
87 alchemy_gpio2_enable_int(202);
88
89 return 0;
90}
91arch_initcall(pb1550_init_irq);
diff --git a/arch/mips/alchemy/devboards/pb1550/platform.c b/arch/mips/alchemy/devboards/pb1550/platform.c
new file mode 100644
index 000000000000..d7150d0f49c0
--- /dev/null
+++ b/arch/mips/alchemy/devboards/pb1550/platform.c
@@ -0,0 +1,69 @@
1/*
2 * Pb1550 board platform device registration
3 *
4 * Copyright (C) 2009 Manuel Lauss
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
19 */
20
21#include <linux/init.h>
22
23#include <asm/mach-au1x00/au1000.h>
24#include <asm/mach-pb1x00/pb1550.h>
25#include <asm/mach-db1x00/bcsr.h>
26
27#include "../platform.h"
28
29static int __init pb1550_dev_init(void)
30{
31 int swapped;
32
33 /* Pb1550, like all others, also has statuschange irqs; however they're
34 * wired up on one of the Au1550's shared GPIO201_205 line, which also
35 * services the PCMCIA card interrupts. So we ignore statuschange and
36 * use the GPIO201_205 exclusively for card interrupts, since a) pcmcia
37 * drivers are used to shared irqs and b) statuschange isn't really use-
38 * ful anyway.
39 */
40 db1x_register_pcmcia_socket(PCMCIA_ATTR_PHYS_ADDR,
41 PCMCIA_ATTR_PHYS_ADDR + 0x000400000 - 1,
42 PCMCIA_MEM_PHYS_ADDR,
43 PCMCIA_MEM_PHYS_ADDR + 0x000400000 - 1,
44 PCMCIA_IO_PHYS_ADDR,
45 PCMCIA_IO_PHYS_ADDR + 0x000010000 - 1,
46 AU1550_GPIO201_205_INT,
47 AU1550_GPIO0_INT,
48 0,
49 0,
50 0);
51
52 db1x_register_pcmcia_socket(PCMCIA_ATTR_PHYS_ADDR + 0x008000000,
53 PCMCIA_ATTR_PHYS_ADDR + 0x008400000 - 1,
54 PCMCIA_MEM_PHYS_ADDR + 0x008000000,
55 PCMCIA_MEM_PHYS_ADDR + 0x008400000 - 1,
56 PCMCIA_IO_PHYS_ADDR + 0x008000000,
57 PCMCIA_IO_PHYS_ADDR + 0x008010000 - 1,
58 AU1550_GPIO201_205_INT,
59 AU1550_GPIO1_INT,
60 0,
61 0,
62 1);
63
64 swapped = bcsr_read(BCSR_STATUS) & BCSR_STATUS_PB1550_SWAPBOOT;
65 db1x_register_norflash(128 * 1024 * 1024, 4, swapped);
66
67 return 0;
68}
69device_initcall(pb1550_dev_init);
diff --git a/arch/mips/alchemy/devboards/platform.c b/arch/mips/alchemy/devboards/platform.c
new file mode 100644
index 000000000000..49a4b3244d8e
--- /dev/null
+++ b/arch/mips/alchemy/devboards/platform.c
@@ -0,0 +1,222 @@
1/*
2 * devoard misc stuff.
3 */
4
5#include <linux/init.h>
6#include <linux/mtd/mtd.h>
7#include <linux/mtd/map.h>
8#include <linux/mtd/physmap.h>
9#include <linux/slab.h>
10#include <linux/platform_device.h>
11#include <linux/pm.h>
12
13#include <asm/reboot.h>
14#include <asm/mach-db1x00/bcsr.h>
15
16static void db1x_power_off(void)
17{
18 bcsr_write(BCSR_RESETS, 0);
19 bcsr_write(BCSR_SYSTEM, BCSR_SYSTEM_PWROFF | BCSR_SYSTEM_RESET);
20}
21
22static void db1x_reset(char *c)
23{
24 bcsr_write(BCSR_RESETS, 0);
25 bcsr_write(BCSR_SYSTEM, 0);
26}
27
28static int __init db1x_poweroff_setup(void)
29{
30 if (!pm_power_off)
31 pm_power_off = db1x_power_off;
32 if (!_machine_halt)
33 _machine_halt = db1x_power_off;
34 if (!_machine_restart)
35 _machine_restart = db1x_reset;
36
37 return 0;
38}
39late_initcall(db1x_poweroff_setup);
40
41/* register a pcmcia socket */
42int __init db1x_register_pcmcia_socket(phys_addr_t pcmcia_attr_start,
43 phys_addr_t pcmcia_attr_end,
44 phys_addr_t pcmcia_mem_start,
45 phys_addr_t pcmcia_mem_end,
46 phys_addr_t pcmcia_io_start,
47 phys_addr_t pcmcia_io_end,
48 int card_irq,
49 int cd_irq,
50 int stschg_irq,
51 int eject_irq,
52 int id)
53{
54 int cnt, i, ret;
55 struct resource *sr;
56 struct platform_device *pd;
57
58 cnt = 5;
59 if (eject_irq)
60 cnt++;
61 if (stschg_irq)
62 cnt++;
63
64 sr = kzalloc(sizeof(struct resource) * cnt, GFP_KERNEL);
65 if (!sr)
66 return -ENOMEM;
67
68 pd = platform_device_alloc("db1xxx_pcmcia", id);
69 if (!pd) {
70 ret = -ENOMEM;
71 goto out;
72 }
73
74 sr[0].name = "pcmcia-attr";
75 sr[0].flags = IORESOURCE_MEM;
76 sr[0].start = pcmcia_attr_start;
77 sr[0].end = pcmcia_attr_end;
78
79 sr[1].name = "pcmcia-mem";
80 sr[1].flags = IORESOURCE_MEM;
81 sr[1].start = pcmcia_mem_start;
82 sr[1].end = pcmcia_mem_end;
83
84 sr[2].name = "pcmcia-io";
85 sr[2].flags = IORESOURCE_MEM;
86 sr[2].start = pcmcia_io_start;
87 sr[2].end = pcmcia_io_end;
88
89 sr[3].name = "insert";
90 sr[3].flags = IORESOURCE_IRQ;
91 sr[3].start = sr[3].end = cd_irq;
92
93 sr[4].name = "card";
94 sr[4].flags = IORESOURCE_IRQ;
95 sr[4].start = sr[4].end = card_irq;
96
97 i = 5;
98 if (stschg_irq) {
99 sr[i].name = "stschg";
100 sr[i].flags = IORESOURCE_IRQ;
101 sr[i].start = sr[i].end = stschg_irq;
102 i++;
103 }
104 if (eject_irq) {
105 sr[i].name = "eject";
106 sr[i].flags = IORESOURCE_IRQ;
107 sr[i].start = sr[i].end = eject_irq;
108 }
109
110 pd->resource = sr;
111 pd->num_resources = cnt;
112
113 ret = platform_device_add(pd);
114 if (!ret)
115 return 0;
116
117 platform_device_put(pd);
118out:
119 kfree(sr);
120 return ret;
121}
122
123#define YAMON_SIZE 0x00100000
124#define YAMON_ENV_SIZE 0x00040000
125
126int __init db1x_register_norflash(unsigned long size, int width,
127 int swapped)
128{
129 struct physmap_flash_data *pfd;
130 struct platform_device *pd;
131 struct mtd_partition *parts;
132 struct resource *res;
133 int ret, i;
134
135 if (size < (8 * 1024 * 1024))
136 return -EINVAL;
137
138 ret = -ENOMEM;
139 parts = kzalloc(sizeof(struct mtd_partition) * 5, GFP_KERNEL);
140 if (!parts)
141 goto out;
142
143 res = kzalloc(sizeof(struct resource), GFP_KERNEL);
144 if (!res)
145 goto out1;
146
147 pfd = kzalloc(sizeof(struct physmap_flash_data), GFP_KERNEL);
148 if (!pfd)
149 goto out2;
150
151 pd = platform_device_alloc("physmap-flash", 0);
152 if (!pd)
153 goto out3;
154
155 /* NOR flash ends at 0x20000000, regardless of size */
156 res->start = 0x20000000 - size;
157 res->end = 0x20000000 - 1;
158 res->flags = IORESOURCE_MEM;
159
160 /* partition setup. Most Develboards have a switch which allows
161 * to swap the physical locations of the 2 NOR flash banks.
162 */
163 i = 0;
164 if (!swapped) {
165 /* first NOR chip */
166 parts[i].offset = 0;
167 parts[i].name = "User FS";
168 parts[i].size = size / 2;
169 i++;
170 }
171
172 parts[i].offset = MTDPART_OFS_APPEND;
173 parts[i].name = "User FS 2";
174 parts[i].size = (size / 2) - (0x20000000 - 0x1fc00000);
175 i++;
176
177 parts[i].offset = MTDPART_OFS_APPEND;
178 parts[i].name = "YAMON";
179 parts[i].size = YAMON_SIZE;
180 parts[i].mask_flags = MTD_WRITEABLE;
181 i++;
182
183 parts[i].offset = MTDPART_OFS_APPEND;
184 parts[i].name = "raw kernel";
185 parts[i].size = 0x00400000 - YAMON_SIZE - YAMON_ENV_SIZE;
186 i++;
187
188 parts[i].offset = MTDPART_OFS_APPEND;
189 parts[i].name = "YAMON Env";
190 parts[i].size = YAMON_ENV_SIZE;
191 parts[i].mask_flags = MTD_WRITEABLE;
192 i++;
193
194 if (swapped) {
195 parts[i].offset = MTDPART_OFS_APPEND;
196 parts[i].name = "User FS";
197 parts[i].size = size / 2;
198 i++;
199 }
200
201 pfd->width = width;
202 pfd->parts = parts;
203 pfd->nr_parts = 5;
204
205 pd->dev.platform_data = pfd;
206 pd->resource = res;
207 pd->num_resources = 1;
208
209 ret = platform_device_add(pd);
210 if (!ret)
211 return ret;
212
213 platform_device_put(pd);
214out3:
215 kfree(pfd);
216out2:
217 kfree(res);
218out1:
219 kfree(parts);
220out:
221 return ret;
222}
diff --git a/arch/mips/alchemy/devboards/platform.h b/arch/mips/alchemy/devboards/platform.h
new file mode 100644
index 000000000000..5ac055d2cda9
--- /dev/null
+++ b/arch/mips/alchemy/devboards/platform.h
@@ -0,0 +1,21 @@
1#ifndef _DEVBOARD_PLATFORM_H_
2#define _DEVBOARD_PLATFORM_H_
3
4#include <linux/init.h>
5
6int __init db1x_register_pcmcia_socket(phys_addr_t pcmcia_attr_start,
7 phys_addr_t pcmcia_attr_len,
8 phys_addr_t pcmcia_mem_start,
9 phys_addr_t pcmcia_mem_end,
10 phys_addr_t pcmcia_io_start,
11 phys_addr_t pcmcia_io_end,
12 int card_irq,
13 int cd_irq,
14 int stschg_irq,
15 int eject_irq,
16 int id);
17
18int __init db1x_register_norflash(unsigned long size, int width,
19 int swapped);
20
21#endif
diff --git a/arch/mips/alchemy/devboards/pm.c b/arch/mips/alchemy/devboards/pm.c
index 632f9862a0fb..4bbd3133e451 100644
--- a/arch/mips/alchemy/devboards/pm.c
+++ b/arch/mips/alchemy/devboards/pm.c
@@ -10,6 +10,7 @@
10#include <linux/sysfs.h> 10#include <linux/sysfs.h>
11#include <asm/mach-au1x00/au1000.h> 11#include <asm/mach-au1x00/au1000.h>
12#include <asm/mach-au1x00/gpio.h> 12#include <asm/mach-au1x00/gpio.h>
13#include <asm/mach-db1x00/bcsr.h>
13 14
14/* 15/*
15 * Generic suspend userspace interface for Alchemy development boards. 16 * Generic suspend userspace interface for Alchemy development boards.
@@ -26,6 +27,20 @@ static unsigned long db1x_pm_last_wakesrc;
26 27
27static int db1x_pm_enter(suspend_state_t state) 28static int db1x_pm_enter(suspend_state_t state)
28{ 29{
30 unsigned short bcsrs[16];
31 int i, j, hasint;
32
33 /* save CPLD regs */
34 hasint = bcsr_read(BCSR_WHOAMI);
35 hasint = BCSR_WHOAMI_BOARD(hasint) >= BCSR_WHOAMI_DB1200;
36 j = (hasint) ? BCSR_MASKSET : BCSR_SYSTEM;
37
38 for (i = BCSR_STATUS; i <= j; i++)
39 bcsrs[i] = bcsr_read(i);
40
41 /* shut off hexleds */
42 bcsr_write(BCSR_HEXCLEAR, 3);
43
29 /* enable GPIO based wakeup */ 44 /* enable GPIO based wakeup */
30 alchemy_gpio1_input_enable(); 45 alchemy_gpio1_input_enable();
31 46
@@ -52,6 +67,23 @@ static int db1x_pm_enter(suspend_state_t state)
52 /* ...and now the sandman can come! */ 67 /* ...and now the sandman can come! */
53 au_sleep(); 68 au_sleep();
54 69
70
71 /* restore CPLD regs */
72 for (i = BCSR_STATUS; i <= BCSR_SYSTEM; i++)
73 bcsr_write(i, bcsrs[i]);
74
75 /* restore CPLD int registers */
76 if (hasint) {
77 bcsr_write(BCSR_INTCLR, 0xffff);
78 bcsr_write(BCSR_MASKCLR, 0xffff);
79 bcsr_write(BCSR_INTSTAT, 0xffff);
80 bcsr_write(BCSR_INTSET, bcsrs[BCSR_INTSET]);
81 bcsr_write(BCSR_MASKSET, bcsrs[BCSR_MASKSET]);
82 }
83
84 /* light up hexleds */
85 bcsr_write(BCSR_HEXCLEAR, 0);
86
55 return 0; 87 return 0;
56} 88}
57 89
diff --git a/arch/mips/alchemy/devboards/prom.c b/arch/mips/alchemy/devboards/prom.c
index 0042bd6b1d7d..b30df5c97ad3 100644
--- a/arch/mips/alchemy/devboards/prom.c
+++ b/arch/mips/alchemy/devboards/prom.c
@@ -60,3 +60,8 @@ void __init prom_init(void)
60 strict_strtoul(memsize_str, 0, &memsize); 60 strict_strtoul(memsize_str, 0, &memsize);
61 add_memory_region(0, memsize, BOOT_MEM_RAM); 61 add_memory_region(0, memsize, BOOT_MEM_RAM);
62} 62}
63
64void prom_putchar(unsigned char c)
65{
66 alchemy_uart_putchar(UART0_PHYS_ADDR, c);
67}
diff --git a/arch/mips/alchemy/mtx-1/Makefile b/arch/mips/alchemy/mtx-1/Makefile
index 7c67b3d33bec..4a53815b3c6c 100644
--- a/arch/mips/alchemy/mtx-1/Makefile
+++ b/arch/mips/alchemy/mtx-1/Makefile
@@ -6,7 +6,7 @@
6# Makefile for 4G Systems MTX-1 board. 6# Makefile for 4G Systems MTX-1 board.
7# 7#
8 8
9lib-y := init.o board_setup.o irqmap.o 9lib-y := init.o board_setup.o
10obj-y := platform.o 10obj-y := platform.o
11 11
12EXTRA_CFLAGS += -Werror 12EXTRA_CFLAGS += -Werror
diff --git a/arch/mips/alchemy/mtx-1/board_setup.c b/arch/mips/alchemy/mtx-1/board_setup.c
index 45b61c9b82b9..a9f0336e1f1f 100644
--- a/arch/mips/alchemy/mtx-1/board_setup.c
+++ b/arch/mips/alchemy/mtx-1/board_setup.c
@@ -30,32 +30,43 @@
30 30
31#include <linux/gpio.h> 31#include <linux/gpio.h>
32#include <linux/init.h> 32#include <linux/init.h>
33#include <linux/interrupt.h>
34#include <linux/pm.h>
33 35
36#include <asm/reboot.h>
34#include <asm/mach-au1x00/au1000.h> 37#include <asm/mach-au1x00/au1000.h>
35 38
36#include <prom.h> 39#include <prom.h>
37 40
41char irq_tab_alchemy[][5] __initdata = {
42 [0] = { -1, AU1500_PCI_INTA, AU1500_PCI_INTA, 0xff, 0xff }, /* IDSEL 00 - AdapterA-Slot0 (top) */
43 [1] = { -1, AU1500_PCI_INTB, AU1500_PCI_INTA, 0xff, 0xff }, /* IDSEL 01 - AdapterA-Slot1 (bottom) */
44 [2] = { -1, AU1500_PCI_INTC, AU1500_PCI_INTD, 0xff, 0xff }, /* IDSEL 02 - AdapterB-Slot0 (top) */
45 [3] = { -1, AU1500_PCI_INTD, AU1500_PCI_INTC, 0xff, 0xff }, /* IDSEL 03 - AdapterB-Slot1 (bottom) */
46 [4] = { -1, AU1500_PCI_INTA, AU1500_PCI_INTB, 0xff, 0xff }, /* IDSEL 04 - AdapterC-Slot0 (top) */
47 [5] = { -1, AU1500_PCI_INTB, AU1500_PCI_INTA, 0xff, 0xff }, /* IDSEL 05 - AdapterC-Slot1 (bottom) */
48 [6] = { -1, AU1500_PCI_INTC, AU1500_PCI_INTD, 0xff, 0xff }, /* IDSEL 06 - AdapterD-Slot0 (top) */
49 [7] = { -1, AU1500_PCI_INTD, AU1500_PCI_INTC, 0xff, 0xff }, /* IDSEL 07 - AdapterD-Slot1 (bottom) */
50};
51
38extern int (*board_pci_idsel)(unsigned int devsel, int assert); 52extern int (*board_pci_idsel)(unsigned int devsel, int assert);
39int mtx1_pci_idsel(unsigned int devsel, int assert); 53int mtx1_pci_idsel(unsigned int devsel, int assert);
40 54
41void board_reset(void) 55static void mtx1_reset(char *c)
42{ 56{
43 /* Hit BCSR.SYSTEM_CONTROL[SW_RST] */ 57 /* Hit BCSR.SYSTEM_CONTROL[SW_RST] */
44 au_writel(0x00000000, 0xAE00001C); 58 au_writel(0x00000000, 0xAE00001C);
45} 59}
46 60
47void __init board_setup(void) 61static void mtx1_power_off(void)
48{ 62{
49#ifdef CONFIG_SERIAL_8250_CONSOLE 63 printk(KERN_ALERT "It's now safe to remove power\n");
50 char *argptr; 64 while (1)
51 argptr = prom_getcmdline(); 65 asm volatile (".set mips3 ; wait ; .set mips1");
52 argptr = strstr(argptr, "console="); 66}
53 if (argptr == NULL) {
54 argptr = prom_getcmdline();
55 strcat(argptr, " console=ttyS0,115200");
56 }
57#endif
58 67
68void __init board_setup(void)
69{
59 alchemy_gpio2_enable(); 70 alchemy_gpio2_enable();
60 71
61#if defined(CONFIG_USB_OHCI_HCD) || defined(CONFIG_USB_OHCI_HCD_MODULE) 72#if defined(CONFIG_USB_OHCI_HCD) || defined(CONFIG_USB_OHCI_HCD_MODULE)
@@ -86,6 +97,10 @@ void __init board_setup(void)
86 alchemy_gpio_direction_output(211, 1); /* green on */ 97 alchemy_gpio_direction_output(211, 1); /* green on */
87 alchemy_gpio_direction_output(212, 0); /* red off */ 98 alchemy_gpio_direction_output(212, 0); /* red off */
88 99
100 pm_power_off = mtx1_power_off;
101 _machine_halt = mtx1_power_off;
102 _machine_restart = mtx1_reset;
103
89 printk(KERN_INFO "4G Systems MTX-1 Board\n"); 104 printk(KERN_INFO "4G Systems MTX-1 Board\n");
90} 105}
91 106
@@ -109,3 +124,15 @@ mtx1_pci_idsel(unsigned int devsel, int assert)
109 au_sync_udelay(1); 124 au_sync_udelay(1);
110 return 1; 125 return 1;
111} 126}
127
128static int __init mtx1_init_irq(void)
129{
130 set_irq_type(AU1500_GPIO204_INT, IRQF_TRIGGER_HIGH);
131 set_irq_type(AU1500_GPIO201_INT, IRQF_TRIGGER_LOW);
132 set_irq_type(AU1500_GPIO202_INT, IRQF_TRIGGER_LOW);
133 set_irq_type(AU1500_GPIO203_INT, IRQF_TRIGGER_LOW);
134 set_irq_type(AU1500_GPIO205_INT, IRQF_TRIGGER_LOW);
135
136 return 0;
137}
138arch_initcall(mtx1_init_irq);
diff --git a/arch/mips/alchemy/mtx-1/init.c b/arch/mips/alchemy/mtx-1/init.c
index 5e871c8d9e96..f8d25575fa05 100644
--- a/arch/mips/alchemy/mtx-1/init.c
+++ b/arch/mips/alchemy/mtx-1/init.c
@@ -32,6 +32,7 @@
32#include <linux/init.h> 32#include <linux/init.h>
33 33
34#include <asm/bootinfo.h> 34#include <asm/bootinfo.h>
35#include <asm/mach-au1x00/au1000.h>
35 36
36#include <prom.h> 37#include <prom.h>
37 38
@@ -58,3 +59,8 @@ void __init prom_init(void)
58 strict_strtoul(memsize_str, 0, &memsize); 59 strict_strtoul(memsize_str, 0, &memsize);
59 add_memory_region(0, memsize, BOOT_MEM_RAM); 60 add_memory_region(0, memsize, BOOT_MEM_RAM);
60} 61}
62
63void prom_putchar(unsigned char c)
64{
65 alchemy_uart_putchar(UART0_PHYS_ADDR, c);
66}
diff --git a/arch/mips/alchemy/mtx-1/irqmap.c b/arch/mips/alchemy/mtx-1/irqmap.c
deleted file mode 100644
index f1ab12ab3433..000000000000
--- a/arch/mips/alchemy/mtx-1/irqmap.c
+++ /dev/null
@@ -1,56 +0,0 @@
1/*
2 * BRIEF MODULE DESCRIPTION
3 * Au1xxx irq map table
4 *
5 * Copyright 2003 Embedded Edge, LLC
6 * dan@embeddededge.com
7 *
8 * This program is free software; you can redistribute it and/or modify it
9 * under the terms of the GNU General Public License as published by the
10 * Free Software Foundation; either version 2 of the License, or (at your
11 * option) any later version.
12 *
13 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
14 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
15 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
16 * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
17 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
18 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
19 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
20 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
21 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
22 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
23 *
24 * You should have received a copy of the GNU General Public License along
25 * with this program; if not, write to the Free Software Foundation, Inc.,
26 * 675 Mass Ave, Cambridge, MA 02139, USA.
27 */
28
29#include <linux/init.h>
30#include <linux/interrupt.h>
31#include <asm/mach-au1x00/au1000.h>
32
33char irq_tab_alchemy[][5] __initdata = {
34 [0] = { -1, INTA, INTA, INTX, INTX }, /* IDSEL 00 - AdapterA-Slot0 (top) */
35 [1] = { -1, INTB, INTA, INTX, INTX }, /* IDSEL 01 - AdapterA-Slot1 (bottom) */
36 [2] = { -1, INTC, INTD, INTX, INTX }, /* IDSEL 02 - AdapterB-Slot0 (top) */
37 [3] = { -1, INTD, INTC, INTX, INTX }, /* IDSEL 03 - AdapterB-Slot1 (bottom) */
38 [4] = { -1, INTA, INTB, INTX, INTX }, /* IDSEL 04 - AdapterC-Slot0 (top) */
39 [5] = { -1, INTB, INTA, INTX, INTX }, /* IDSEL 05 - AdapterC-Slot1 (bottom) */
40 [6] = { -1, INTC, INTD, INTX, INTX }, /* IDSEL 06 - AdapterD-Slot0 (top) */
41 [7] = { -1, INTD, INTC, INTX, INTX }, /* IDSEL 07 - AdapterD-Slot1 (bottom) */
42};
43
44struct au1xxx_irqmap __initdata au1xxx_irq_map[] = {
45 { AU1500_GPIO_204, IRQF_TRIGGER_HIGH, 0 },
46 { AU1500_GPIO_201, IRQF_TRIGGER_LOW, 0 },
47 { AU1500_GPIO_202, IRQF_TRIGGER_LOW, 0 },
48 { AU1500_GPIO_203, IRQF_TRIGGER_LOW, 0 },
49 { AU1500_GPIO_205, IRQF_TRIGGER_LOW, 0 },
50};
51
52
53void __init board_init_irq(void)
54{
55 au1xxx_setup_irqmap(au1xxx_irq_map, ARRAY_SIZE(au1xxx_irq_map));
56}
diff --git a/arch/mips/alchemy/xxs1500/Makefile b/arch/mips/alchemy/xxs1500/Makefile
index db3c526f64d8..4dc81d794cb8 100644
--- a/arch/mips/alchemy/xxs1500/Makefile
+++ b/arch/mips/alchemy/xxs1500/Makefile
@@ -5,4 +5,6 @@
5# Makefile for MyCable XXS1500 board. 5# Makefile for MyCable XXS1500 board.
6# 6#
7 7
8lib-y := init.o board_setup.o irqmap.o 8lib-y := init.o board_setup.o platform.o
9
10EXTRA_CFLAGS += -Werror
diff --git a/arch/mips/alchemy/xxs1500/board_setup.c b/arch/mips/alchemy/xxs1500/board_setup.c
index 4de2d48caed8..47b42927607b 100644
--- a/arch/mips/alchemy/xxs1500/board_setup.c
+++ b/arch/mips/alchemy/xxs1500/board_setup.c
@@ -25,31 +25,35 @@
25 25
26#include <linux/gpio.h> 26#include <linux/gpio.h>
27#include <linux/init.h> 27#include <linux/init.h>
28#include <linux/interrupt.h>
28#include <linux/delay.h> 29#include <linux/delay.h>
30#include <linux/pm.h>
29 31
32#include <asm/reboot.h>
30#include <asm/mach-au1x00/au1000.h> 33#include <asm/mach-au1x00/au1000.h>
31 34
32#include <prom.h> 35#include <prom.h>
33 36
34void board_reset(void) 37static void xxs1500_reset(char *c)
35{ 38{
36 /* Hit BCSR.SYSTEM_CONTROL[SW_RST] */ 39 /* Hit BCSR.SYSTEM_CONTROL[SW_RST] */
37 au_writel(0x00000000, 0xAE00001C); 40 au_writel(0x00000000, 0xAE00001C);
38} 41}
39 42
43static void xxs1500_power_off(void)
44{
45 printk(KERN_ALERT "It's now safe to remove power\n");
46 while (1)
47 asm volatile (".set mips3 ; wait ; .set mips1");
48}
49
40void __init board_setup(void) 50void __init board_setup(void)
41{ 51{
42 u32 pin_func; 52 u32 pin_func;
43 53
44#ifdef CONFIG_SERIAL_8250_CONSOLE 54 pm_power_off = xxs1500_power_off;
45 char *argptr; 55 _machine_halt = xxs1500_power_off;
46 argptr = prom_getcmdline(); 56 _machine_restart = xxs1500_reset;
47 argptr = strstr(argptr, "console=");
48 if (argptr == NULL) {
49 argptr = prom_getcmdline();
50 strcat(argptr, " console=ttyS0,115200");
51 }
52#endif
53 57
54 alchemy_gpio1_input_enable(); 58 alchemy_gpio1_input_enable();
55 alchemy_gpio2_enable(); 59 alchemy_gpio2_enable();
@@ -68,22 +72,6 @@ void __init board_setup(void)
68 /* Enable DTR = USB power up */ 72 /* Enable DTR = USB power up */
69 au_writel(0x01, UART3_ADDR + UART_MCR); /* UART_MCR_DTR is 0x01??? */ 73 au_writel(0x01, UART3_ADDR + UART_MCR); /* UART_MCR_DTR is 0x01??? */
70 74
71#ifdef CONFIG_PCMCIA_XXS1500
72 /* GPIO 0, 1, and 4 are inputs */
73 alchemy_gpio_direction_input(0);
74 alchemy_gpio_direction_input(1);
75 alchemy_gpio_direction_input(4);
76
77 /* GPIO2 208/9/10/11 are inputs */
78 alchemy_gpio_direction_input(208);
79 alchemy_gpio_direction_input(209);
80 alchemy_gpio_direction_input(210);
81 alchemy_gpio_direction_input(211);
82
83 /* Turn off power */
84 alchemy_gpio_direction_output(214, 0);
85#endif
86
87#ifdef CONFIG_PCI 75#ifdef CONFIG_PCI
88#if defined(__MIPSEB__) 76#if defined(__MIPSEB__)
89 au_writel(0xf | (2 << 6) | (1 << 4), Au1500_PCI_CFG); 77 au_writel(0xf | (2 << 6) | (1 << 4), Au1500_PCI_CFG);
@@ -92,3 +80,23 @@ void __init board_setup(void)
92#endif 80#endif
93#endif 81#endif
94} 82}
83
84static int __init xxs1500_init_irq(void)
85{
86 set_irq_type(AU1500_GPIO204_INT, IRQF_TRIGGER_HIGH);
87 set_irq_type(AU1500_GPIO201_INT, IRQF_TRIGGER_LOW);
88 set_irq_type(AU1500_GPIO202_INT, IRQF_TRIGGER_LOW);
89 set_irq_type(AU1500_GPIO203_INT, IRQF_TRIGGER_LOW);
90 set_irq_type(AU1500_GPIO205_INT, IRQF_TRIGGER_LOW);
91 set_irq_type(AU1500_GPIO207_INT, IRQF_TRIGGER_LOW);
92
93 set_irq_type(AU1500_GPIO0_INT, IRQF_TRIGGER_LOW);
94 set_irq_type(AU1500_GPIO1_INT, IRQF_TRIGGER_LOW);
95 set_irq_type(AU1500_GPIO2_INT, IRQF_TRIGGER_LOW);
96 set_irq_type(AU1500_GPIO3_INT, IRQF_TRIGGER_LOW);
97 set_irq_type(AU1500_GPIO4_INT, IRQF_TRIGGER_LOW); /* CF irq */
98 set_irq_type(AU1500_GPIO5_INT, IRQF_TRIGGER_LOW);
99
100 return 0;
101}
102arch_initcall(xxs1500_init_irq);
diff --git a/arch/mips/alchemy/xxs1500/init.c b/arch/mips/alchemy/xxs1500/init.c
index 456fa142c093..15125c2fda7d 100644
--- a/arch/mips/alchemy/xxs1500/init.c
+++ b/arch/mips/alchemy/xxs1500/init.c
@@ -30,6 +30,7 @@
30#include <linux/kernel.h> 30#include <linux/kernel.h>
31 31
32#include <asm/bootinfo.h> 32#include <asm/bootinfo.h>
33#include <asm/mach-au1x00/au1000.h>
33 34
34#include <prom.h> 35#include <prom.h>
35 36
@@ -56,3 +57,8 @@ void __init prom_init(void)
56 strict_strtoul(memsize_str, 0, &memsize); 57 strict_strtoul(memsize_str, 0, &memsize);
57 add_memory_region(0, memsize, BOOT_MEM_RAM); 58 add_memory_region(0, memsize, BOOT_MEM_RAM);
58} 59}
60
61void prom_putchar(unsigned char c)
62{
63 alchemy_uart_putchar(UART0_PHYS_ADDR, c);
64}
diff --git a/arch/mips/alchemy/xxs1500/irqmap.c b/arch/mips/alchemy/xxs1500/irqmap.c
deleted file mode 100644
index 0f0f3012e5fd..000000000000
--- a/arch/mips/alchemy/xxs1500/irqmap.c
+++ /dev/null
@@ -1,52 +0,0 @@
1/*
2 * BRIEF MODULE DESCRIPTION
3 * Au1xxx irq map table
4 *
5 * Copyright 2003 Embedded Edge, LLC
6 * dan@embeddededge.com
7 *
8 * This program is free software; you can redistribute it and/or modify it
9 * under the terms of the GNU General Public License as published by the
10 * Free Software Foundation; either version 2 of the License, or (at your
11 * option) any later version.
12 *
13 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
14 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
15 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
16 * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
17 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
18 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
19 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
20 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
21 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
22 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
23 *
24 * You should have received a copy of the GNU General Public License along
25 * with this program; if not, write to the Free Software Foundation, Inc.,
26 * 675 Mass Ave, Cambridge, MA 02139, USA.
27 */
28
29#include <linux/init.h>
30#include <linux/interrupt.h>
31#include <asm/mach-au1x00/au1000.h>
32
33struct au1xxx_irqmap __initdata au1xxx_irq_map[] = {
34 { AU1500_GPIO_204, IRQF_TRIGGER_HIGH, 0 },
35 { AU1500_GPIO_201, IRQF_TRIGGER_LOW, 0 },
36 { AU1500_GPIO_202, IRQF_TRIGGER_LOW, 0 },
37 { AU1500_GPIO_203, IRQF_TRIGGER_LOW, 0 },
38 { AU1500_GPIO_205, IRQF_TRIGGER_LOW, 0 },
39 { AU1500_GPIO_207, IRQF_TRIGGER_LOW, 0 },
40
41 { AU1000_GPIO_0, IRQF_TRIGGER_LOW, 0 },
42 { AU1000_GPIO_1, IRQF_TRIGGER_LOW, 0 },
43 { AU1000_GPIO_2, IRQF_TRIGGER_LOW, 0 },
44 { AU1000_GPIO_3, IRQF_TRIGGER_LOW, 0 },
45 { AU1000_GPIO_4, IRQF_TRIGGER_LOW, 0 }, /* CF interrupt */
46 { AU1000_GPIO_5, IRQF_TRIGGER_LOW, 0 },
47};
48
49void __init board_init_irq(void)
50{
51 au1xxx_setup_irqmap(au1xxx_irq_map, ARRAY_SIZE(au1xxx_irq_map));
52}
diff --git a/arch/mips/alchemy/xxs1500/platform.c b/arch/mips/alchemy/xxs1500/platform.c
new file mode 100644
index 000000000000..e87c45cde61b
--- /dev/null
+++ b/arch/mips/alchemy/xxs1500/platform.c
@@ -0,0 +1,63 @@
1/*
2 * XXS1500 board platform device registration
3 *
4 * Copyright (C) 2009 Manuel Lauss
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
19 */
20
21#include <linux/init.h>
22#include <linux/platform_device.h>
23
24#include <asm/mach-au1x00/au1000.h>
25
26static struct resource xxs1500_pcmcia_res[] = {
27 {
28 .name = "pcmcia-io",
29 .flags = IORESOURCE_MEM,
30 .start = PCMCIA_IO_PHYS_ADDR,
31 .end = PCMCIA_IO_PHYS_ADDR + 0x000400000 - 1,
32 },
33 {
34 .name = "pcmcia-attr",
35 .flags = IORESOURCE_MEM,
36 .start = PCMCIA_ATTR_PHYS_ADDR,
37 .end = PCMCIA_ATTR_PHYS_ADDR + 0x000400000 - 1,
38 },
39 {
40 .name = "pcmcia-mem",
41 .flags = IORESOURCE_MEM,
42 .start = PCMCIA_MEM_PHYS_ADDR,
43 .end = PCMCIA_MEM_PHYS_ADDR + 0x000400000 - 1,
44 },
45};
46
47static struct platform_device xxs1500_pcmcia_dev = {
48 .name = "xxs1500_pcmcia",
49 .id = -1,
50 .num_resources = ARRAY_SIZE(xxs1500_pcmcia_res),
51 .resource = xxs1500_pcmcia_res,
52};
53
54static struct platform_device *xxs1500_devs[] __initdata = {
55 &xxs1500_pcmcia_dev,
56};
57
58static int __init xxs1500_dev_init(void)
59{
60 return platform_add_devices(xxs1500_devs,
61 ARRAY_SIZE(xxs1500_devs));
62}
63device_initcall(xxs1500_dev_init);
diff --git a/arch/mips/ar7/clock.c b/arch/mips/ar7/clock.c
index cc65c8eb391b..fc0e7154e8d6 100644
--- a/arch/mips/ar7/clock.c
+++ b/arch/mips/ar7/clock.c
@@ -1,6 +1,7 @@
1/* 1/*
2 * Copyright (C) 2007 Felix Fietkau <nbd@openwrt.org> 2 * Copyright (C) 2007 Felix Fietkau <nbd@openwrt.org>
3 * Copyright (C) 2007 Eugene Konev <ejka@openwrt.org> 3 * Copyright (C) 2007 Eugene Konev <ejka@openwrt.org>
4 * Copyright (C) 2009 Florian Fainelli <florian@openwrt.org>
4 * 5 *
5 * This program is free software; you can redistribute it and/or modify 6 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by 7 * it under the terms of the GNU General Public License as published by
@@ -24,6 +25,8 @@
24#include <linux/delay.h> 25#include <linux/delay.h>
25#include <linux/gcd.h> 26#include <linux/gcd.h>
26#include <linux/io.h> 27#include <linux/io.h>
28#include <linux/err.h>
29#include <linux/clk.h>
27 30
28#include <asm/addrspace.h> 31#include <asm/addrspace.h>
29#include <asm/mach-ar7/ar7.h> 32#include <asm/mach-ar7/ar7.h>
@@ -94,12 +97,16 @@ struct tnetd7200_clocks {
94 struct tnetd7200_clock usb; 97 struct tnetd7200_clock usb;
95}; 98};
96 99
97int ar7_cpu_clock = 150000000; 100static struct clk bus_clk = {
98EXPORT_SYMBOL(ar7_cpu_clock); 101 .rate = 125000000,
99int ar7_bus_clock = 125000000; 102};
100EXPORT_SYMBOL(ar7_bus_clock); 103
101int ar7_dsp_clock; 104static struct clk cpu_clk = {
102EXPORT_SYMBOL(ar7_dsp_clock); 105 .rate = 150000000,
106};
107
108static struct clk dsp_clk;
109static struct clk vbus_clk;
103 110
104static void approximate(int base, int target, int *prediv, 111static void approximate(int base, int target, int *prediv,
105 int *postdiv, int *mul) 112 int *postdiv, int *mul)
@@ -185,7 +192,7 @@ static int tnetd7300_get_clock(u32 shift, struct tnetd7300_clock *clock,
185 base_clock = AR7_XTAL_CLOCK; 192 base_clock = AR7_XTAL_CLOCK;
186 break; 193 break;
187 case BOOT_PLL_SOURCE_CPU: 194 case BOOT_PLL_SOURCE_CPU:
188 base_clock = ar7_cpu_clock; 195 base_clock = cpu_clk.rate;
189 break; 196 break;
190 } 197 }
191 198
@@ -212,11 +219,11 @@ static void tnetd7300_set_clock(u32 shift, struct tnetd7300_clock *clock,
212 u32 *bootcr, u32 frequency) 219 u32 *bootcr, u32 frequency)
213{ 220{
214 int prediv, postdiv, mul; 221 int prediv, postdiv, mul;
215 int base_clock = ar7_bus_clock; 222 int base_clock = bus_clk.rate;
216 223
217 switch ((*bootcr & (BOOT_PLL_SOURCE_MASK << shift)) >> shift) { 224 switch ((*bootcr & (BOOT_PLL_SOURCE_MASK << shift)) >> shift) {
218 case BOOT_PLL_SOURCE_BUS: 225 case BOOT_PLL_SOURCE_BUS:
219 base_clock = ar7_bus_clock; 226 base_clock = bus_clk.rate;
220 break; 227 break;
221 case BOOT_PLL_SOURCE_REF: 228 case BOOT_PLL_SOURCE_REF:
222 base_clock = AR7_REF_CLOCK; 229 base_clock = AR7_REF_CLOCK;
@@ -225,7 +232,7 @@ static void tnetd7300_set_clock(u32 shift, struct tnetd7300_clock *clock,
225 base_clock = AR7_XTAL_CLOCK; 232 base_clock = AR7_XTAL_CLOCK;
226 break; 233 break;
227 case BOOT_PLL_SOURCE_CPU: 234 case BOOT_PLL_SOURCE_CPU:
228 base_clock = ar7_cpu_clock; 235 base_clock = cpu_clk.rate;
229 break; 236 break;
230 } 237 }
231 238
@@ -247,18 +254,18 @@ static void __init tnetd7300_init_clocks(void)
247 ioremap_nocache(UR8_REGS_CLOCKS, 254 ioremap_nocache(UR8_REGS_CLOCKS,
248 sizeof(struct tnetd7300_clocks)); 255 sizeof(struct tnetd7300_clocks));
249 256
250 ar7_bus_clock = tnetd7300_get_clock(BUS_PLL_SOURCE_SHIFT, 257 bus_clk.rate = tnetd7300_get_clock(BUS_PLL_SOURCE_SHIFT,
251 &clocks->bus, bootcr, AR7_AFE_CLOCK); 258 &clocks->bus, bootcr, AR7_AFE_CLOCK);
252 259
253 if (*bootcr & BOOT_PLL_ASYNC_MODE) 260 if (*bootcr & BOOT_PLL_ASYNC_MODE)
254 ar7_cpu_clock = tnetd7300_get_clock(CPU_PLL_SOURCE_SHIFT, 261 cpu_clk.rate = tnetd7300_get_clock(CPU_PLL_SOURCE_SHIFT,
255 &clocks->cpu, bootcr, AR7_AFE_CLOCK); 262 &clocks->cpu, bootcr, AR7_AFE_CLOCK);
256 else 263 else
257 ar7_cpu_clock = ar7_bus_clock; 264 cpu_clk.rate = bus_clk.rate;
258 265
259 if (ar7_dsp_clock == 250000000) 266 if (dsp_clk.rate == 250000000)
260 tnetd7300_set_clock(DSP_PLL_SOURCE_SHIFT, &clocks->dsp, 267 tnetd7300_set_clock(DSP_PLL_SOURCE_SHIFT, &clocks->dsp,
261 bootcr, ar7_dsp_clock); 268 bootcr, dsp_clk.rate);
262 269
263 iounmap(clocks); 270 iounmap(clocks);
264 iounmap(bootcr); 271 iounmap(bootcr);
@@ -343,20 +350,20 @@ static void __init tnetd7200_init_clocks(void)
343 printk(KERN_INFO "Clocks: Setting DSP clock\n"); 350 printk(KERN_INFO "Clocks: Setting DSP clock\n");
344 calculate(dsp_base, TNETD7200_DEF_DSP_CLK, 351 calculate(dsp_base, TNETD7200_DEF_DSP_CLK,
345 &dsp_prediv, &dsp_postdiv, &dsp_mul); 352 &dsp_prediv, &dsp_postdiv, &dsp_mul);
346 ar7_bus_clock = 353 bus_clk.rate =
347 ((dsp_base / dsp_prediv) * dsp_mul) / dsp_postdiv; 354 ((dsp_base / dsp_prediv) * dsp_mul) / dsp_postdiv;
348 tnetd7200_set_clock(dsp_base, &clocks->dsp, 355 tnetd7200_set_clock(dsp_base, &clocks->dsp,
349 dsp_prediv, dsp_postdiv * 2, dsp_postdiv, dsp_mul * 2, 356 dsp_prediv, dsp_postdiv * 2, dsp_postdiv, dsp_mul * 2,
350 ar7_bus_clock); 357 bus_clk.rate);
351 358
352 printk(KERN_INFO "Clocks: Setting CPU clock\n"); 359 printk(KERN_INFO "Clocks: Setting CPU clock\n");
353 calculate(cpu_base, TNETD7200_DEF_CPU_CLK, &cpu_prediv, 360 calculate(cpu_base, TNETD7200_DEF_CPU_CLK, &cpu_prediv,
354 &cpu_postdiv, &cpu_mul); 361 &cpu_postdiv, &cpu_mul);
355 ar7_cpu_clock = 362 cpu_clk.rate =
356 ((cpu_base / cpu_prediv) * cpu_mul) / cpu_postdiv; 363 ((cpu_base / cpu_prediv) * cpu_mul) / cpu_postdiv;
357 tnetd7200_set_clock(cpu_base, &clocks->cpu, 364 tnetd7200_set_clock(cpu_base, &clocks->cpu,
358 cpu_prediv, cpu_postdiv, -1, cpu_mul, 365 cpu_prediv, cpu_postdiv, -1, cpu_mul,
359 ar7_cpu_clock); 366 cpu_clk.rate);
360 367
361 } else 368 } else
362 if (*bootcr & BOOT_PLL_2TO1_MODE) { 369 if (*bootcr & BOOT_PLL_2TO1_MODE) {
@@ -365,48 +372,90 @@ static void __init tnetd7200_init_clocks(void)
365 printk(KERN_INFO "Clocks: Setting CPU clock\n"); 372 printk(KERN_INFO "Clocks: Setting CPU clock\n");
366 calculate(cpu_base, TNETD7200_DEF_CPU_CLK, &cpu_prediv, 373 calculate(cpu_base, TNETD7200_DEF_CPU_CLK, &cpu_prediv,
367 &cpu_postdiv, &cpu_mul); 374 &cpu_postdiv, &cpu_mul);
368 ar7_cpu_clock = ((cpu_base / cpu_prediv) * cpu_mul) 375 cpu_clk.rate = ((cpu_base / cpu_prediv) * cpu_mul)
369 / cpu_postdiv; 376 / cpu_postdiv;
370 tnetd7200_set_clock(cpu_base, &clocks->cpu, 377 tnetd7200_set_clock(cpu_base, &clocks->cpu,
371 cpu_prediv, cpu_postdiv, -1, cpu_mul, 378 cpu_prediv, cpu_postdiv, -1, cpu_mul,
372 ar7_cpu_clock); 379 cpu_clk.rate);
373 380
374 printk(KERN_INFO "Clocks: Setting DSP clock\n"); 381 printk(KERN_INFO "Clocks: Setting DSP clock\n");
375 calculate(dsp_base, TNETD7200_DEF_DSP_CLK, &dsp_prediv, 382 calculate(dsp_base, TNETD7200_DEF_DSP_CLK, &dsp_prediv,
376 &dsp_postdiv, &dsp_mul); 383 &dsp_postdiv, &dsp_mul);
377 ar7_bus_clock = ar7_cpu_clock / 2; 384 bus_clk.rate = cpu_clk.rate / 2;
378 tnetd7200_set_clock(dsp_base, &clocks->dsp, 385 tnetd7200_set_clock(dsp_base, &clocks->dsp,
379 dsp_prediv, dsp_postdiv * 2, dsp_postdiv, 386 dsp_prediv, dsp_postdiv * 2, dsp_postdiv,
380 dsp_mul * 2, ar7_bus_clock); 387 dsp_mul * 2, bus_clk.rate);
381 } else { 388 } else {
382 printk(KERN_INFO "Clocks: Sync 1:1 mode\n"); 389 printk(KERN_INFO "Clocks: Sync 1:1 mode\n");
383 390
384 printk(KERN_INFO "Clocks: Setting DSP clock\n"); 391 printk(KERN_INFO "Clocks: Setting DSP clock\n");
385 calculate(dsp_base, TNETD7200_DEF_DSP_CLK, &dsp_prediv, 392 calculate(dsp_base, TNETD7200_DEF_DSP_CLK, &dsp_prediv,
386 &dsp_postdiv, &dsp_mul); 393 &dsp_postdiv, &dsp_mul);
387 ar7_bus_clock = ((dsp_base / dsp_prediv) * dsp_mul) 394 bus_clk.rate = ((dsp_base / dsp_prediv) * dsp_mul)
388 / dsp_postdiv; 395 / dsp_postdiv;
389 tnetd7200_set_clock(dsp_base, &clocks->dsp, 396 tnetd7200_set_clock(dsp_base, &clocks->dsp,
390 dsp_prediv, dsp_postdiv * 2, dsp_postdiv, 397 dsp_prediv, dsp_postdiv * 2, dsp_postdiv,
391 dsp_mul * 2, ar7_bus_clock); 398 dsp_mul * 2, bus_clk.rate);
392 399
393 ar7_cpu_clock = ar7_bus_clock; 400 cpu_clk.rate = bus_clk.rate;
394 } 401 }
395 402
396 printk(KERN_INFO "Clocks: Setting USB clock\n"); 403 printk(KERN_INFO "Clocks: Setting USB clock\n");
397 usb_base = ar7_bus_clock; 404 usb_base = bus_clk.rate;
398 calculate(usb_base, TNETD7200_DEF_USB_CLK, &usb_prediv, 405 calculate(usb_base, TNETD7200_DEF_USB_CLK, &usb_prediv,
399 &usb_postdiv, &usb_mul); 406 &usb_postdiv, &usb_mul);
400 tnetd7200_set_clock(usb_base, &clocks->usb, 407 tnetd7200_set_clock(usb_base, &clocks->usb,
401 usb_prediv, usb_postdiv, -1, usb_mul, 408 usb_prediv, usb_postdiv, -1, usb_mul,
402 TNETD7200_DEF_USB_CLK); 409 TNETD7200_DEF_USB_CLK);
403 410
404 ar7_dsp_clock = ar7_cpu_clock; 411 dsp_clk.rate = cpu_clk.rate;
405 412
406 iounmap(clocks); 413 iounmap(clocks);
407 iounmap(bootcr); 414 iounmap(bootcr);
408} 415}
409 416
417/*
418 * Linux clock API
419 */
420int clk_enable(struct clk *clk)
421{
422 return 0;
423}
424EXPORT_SYMBOL(clk_enable);
425
426void clk_disable(struct clk *clk)
427{
428}
429EXPORT_SYMBOL(clk_disable);
430
431unsigned long clk_get_rate(struct clk *clk)
432{
433 return clk->rate;
434}
435EXPORT_SYMBOL(clk_get_rate);
436
437struct clk *clk_get(struct device *dev, const char *id)
438{
439 if (!strcmp(id, "bus"))
440 return &bus_clk;
441 /* cpmac and vbus share the same rate */
442 if (!strcmp(id, "cpmac"))
443 return &vbus_clk;
444 if (!strcmp(id, "cpu"))
445 return &cpu_clk;
446 if (!strcmp(id, "dsp"));
447 return &dsp_clk;
448 if (!strcmp(id, "vbus"))
449 return &vbus_clk;
450 return ERR_PTR(-ENOENT);
451}
452EXPORT_SYMBOL(clk_get);
453
454void clk_put(struct clk *clk)
455{
456}
457EXPORT_SYMBOL(clk_put);
458
410int __init ar7_init_clocks(void) 459int __init ar7_init_clocks(void)
411{ 460{
412 switch (ar7_chip_id()) { 461 switch (ar7_chip_id()) {
@@ -415,12 +464,14 @@ int __init ar7_init_clocks(void)
415 tnetd7200_init_clocks(); 464 tnetd7200_init_clocks();
416 break; 465 break;
417 case AR7_CHIP_7300: 466 case AR7_CHIP_7300:
418 ar7_dsp_clock = tnetd7300_dsp_clock(); 467 dsp_clk.rate = tnetd7300_dsp_clock();
419 tnetd7300_init_clocks(); 468 tnetd7300_init_clocks();
420 break; 469 break;
421 default: 470 default:
422 break; 471 break;
423 } 472 }
473 /* adjust vbus clock rate */
474 vbus_clk.rate = bus_clk.rate / 2;
424 475
425 return 0; 476 return 0;
426} 477}
diff --git a/arch/mips/ar7/gpio.c b/arch/mips/ar7/gpio.c
index 74e14a3dbf4a..c32fbb57441a 100644
--- a/arch/mips/ar7/gpio.c
+++ b/arch/mips/ar7/gpio.c
@@ -1,6 +1,7 @@
1/* 1/*
2 * Copyright (C) 2007 Felix Fietkau <nbd@openwrt.org> 2 * Copyright (C) 2007 Felix Fietkau <nbd@openwrt.org>
3 * Copyright (C) 2007 Eugene Konev <ejka@openwrt.org> 3 * Copyright (C) 2007 Eugene Konev <ejka@openwrt.org>
4 * Copyright (C) 2009 Florian Fainelli <florian@openwrt.org>
4 * 5 *
5 * This program is free software; you can redistribute it and/or modify 6 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by 7 * it under the terms of the GNU General Public License as published by
@@ -18,31 +19,113 @@
18 */ 19 */
19 20
20#include <linux/module.h> 21#include <linux/module.h>
22#include <linux/gpio.h>
21 23
22#include <asm/mach-ar7/gpio.h> 24#include <asm/mach-ar7/gpio.h>
23 25
24static const char *ar7_gpio_list[AR7_GPIO_MAX]; 26struct ar7_gpio_chip {
27 void __iomem *regs;
28 struct gpio_chip chip;
29};
25 30
26int gpio_request(unsigned gpio, const char *label) 31static int ar7_gpio_get_value(struct gpio_chip *chip, unsigned gpio)
27{ 32{
28 if (gpio >= AR7_GPIO_MAX) 33 struct ar7_gpio_chip *gpch =
29 return -EINVAL; 34 container_of(chip, struct ar7_gpio_chip, chip);
35 void __iomem *gpio_in = gpch->regs + AR7_GPIO_INPUT;
30 36
31 if (ar7_gpio_list[gpio]) 37 return readl(gpio_in) & (1 << gpio);
32 return -EBUSY; 38}
39
40static void ar7_gpio_set_value(struct gpio_chip *chip,
41 unsigned gpio, int value)
42{
43 struct ar7_gpio_chip *gpch =
44 container_of(chip, struct ar7_gpio_chip, chip);
45 void __iomem *gpio_out = gpch->regs + AR7_GPIO_OUTPUT;
46 unsigned tmp;
47
48 tmp = readl(gpio_out) & ~(1 << gpio);
49 if (value)
50 tmp |= 1 << gpio;
51 writel(tmp, gpio_out);
52}
53
54static int ar7_gpio_direction_input(struct gpio_chip *chip, unsigned gpio)
55{
56 struct ar7_gpio_chip *gpch =
57 container_of(chip, struct ar7_gpio_chip, chip);
58 void __iomem *gpio_dir = gpch->regs + AR7_GPIO_DIR;
33 59
34 if (label) 60 writel(readl(gpio_dir) | (1 << gpio), gpio_dir);
35 ar7_gpio_list[gpio] = label;
36 else
37 ar7_gpio_list[gpio] = "busy";
38 61
39 return 0; 62 return 0;
40} 63}
41EXPORT_SYMBOL(gpio_request);
42 64
43void gpio_free(unsigned gpio) 65static int ar7_gpio_direction_output(struct gpio_chip *chip,
66 unsigned gpio, int value)
44{ 67{
45 BUG_ON(!ar7_gpio_list[gpio]); 68 struct ar7_gpio_chip *gpch =
46 ar7_gpio_list[gpio] = NULL; 69 container_of(chip, struct ar7_gpio_chip, chip);
70 void __iomem *gpio_dir = gpch->regs + AR7_GPIO_DIR;
71
72 ar7_gpio_set_value(chip, gpio, value);
73 writel(readl(gpio_dir) & ~(1 << gpio), gpio_dir);
74
75 return 0;
76}
77
78static struct ar7_gpio_chip ar7_gpio_chip = {
79 .chip = {
80 .label = "ar7-gpio",
81 .direction_input = ar7_gpio_direction_input,
82 .direction_output = ar7_gpio_direction_output,
83 .set = ar7_gpio_set_value,
84 .get = ar7_gpio_get_value,
85 .base = 0,
86 .ngpio = AR7_GPIO_MAX,
87 }
88};
89
90int ar7_gpio_enable(unsigned gpio)
91{
92 void __iomem *gpio_en = ar7_gpio_chip.regs + AR7_GPIO_ENABLE;
93
94 writel(readl(gpio_en) | (1 << gpio), gpio_en);
95
96 return 0;
97}
98EXPORT_SYMBOL(ar7_gpio_enable);
99
100int ar7_gpio_disable(unsigned gpio)
101{
102 void __iomem *gpio_en = ar7_gpio_chip.regs + AR7_GPIO_ENABLE;
103
104 writel(readl(gpio_en) & ~(1 << gpio), gpio_en);
105
106 return 0;
107}
108EXPORT_SYMBOL(ar7_gpio_disable);
109
110static int __init ar7_gpio_init(void)
111{
112 int ret;
113
114 ar7_gpio_chip.regs = ioremap_nocache(AR7_REGS_GPIO,
115 AR7_REGS_GPIO + 0x10);
116
117 if (!ar7_gpio_chip.regs) {
118 printk(KERN_ERR "ar7-gpio: failed to ioremap regs\n");
119 return -ENOMEM;
120 }
121
122 ret = gpiochip_add(&ar7_gpio_chip.chip);
123 if (ret) {
124 printk(KERN_ERR "ar7-gpio: failed to add gpiochip\n");
125 return ret;
126 }
127 printk(KERN_INFO "ar7-gpio: registered %d GPIOs\n",
128 ar7_gpio_chip.chip.ngpio);
129 return ret;
47} 130}
48EXPORT_SYMBOL(gpio_free); 131arch_initcall(ar7_gpio_init);
diff --git a/arch/mips/ar7/memory.c b/arch/mips/ar7/memory.c
index 696c723dc6d4..28abfeef09d6 100644
--- a/arch/mips/ar7/memory.c
+++ b/arch/mips/ar7/memory.c
@@ -62,8 +62,7 @@ void __init prom_meminit(void)
62 unsigned long pages; 62 unsigned long pages;
63 63
64 pages = memsize() >> PAGE_SHIFT; 64 pages = memsize() >> PAGE_SHIFT;
65 add_memory_region(PHYS_OFFSET, pages << PAGE_SHIFT, 65 add_memory_region(PHYS_OFFSET, pages << PAGE_SHIFT, BOOT_MEM_RAM);
66 BOOT_MEM_RAM);
67} 66}
68 67
69void __init prom_free_prom_memory(void) 68void __init prom_free_prom_memory(void)
diff --git a/arch/mips/ar7/platform.c b/arch/mips/ar7/platform.c
index 835f3f0319ca..2fafc78e5ce1 100644
--- a/arch/mips/ar7/platform.c
+++ b/arch/mips/ar7/platform.c
@@ -34,45 +34,50 @@
34#include <linux/etherdevice.h> 34#include <linux/etherdevice.h>
35#include <linux/phy.h> 35#include <linux/phy.h>
36#include <linux/phy_fixed.h> 36#include <linux/phy_fixed.h>
37#include <linux/gpio.h>
38#include <linux/clk.h>
37 39
38#include <asm/addrspace.h> 40#include <asm/addrspace.h>
39#include <asm/mach-ar7/ar7.h> 41#include <asm/mach-ar7/ar7.h>
40#include <asm/mach-ar7/gpio.h> 42#include <asm/mach-ar7/gpio.h>
41#include <asm/mach-ar7/prom.h> 43#include <asm/mach-ar7/prom.h>
42 44
45/*****************************************************************************
46 * VLYNQ Bus
47 ****************************************************************************/
43struct plat_vlynq_data { 48struct plat_vlynq_data {
44 struct plat_vlynq_ops ops; 49 struct plat_vlynq_ops ops;
45 int gpio_bit; 50 int gpio_bit;
46 int reset_bit; 51 int reset_bit;
47}; 52};
48 53
49
50static int vlynq_on(struct vlynq_device *dev) 54static int vlynq_on(struct vlynq_device *dev)
51{ 55{
52 int result; 56 int ret;
53 struct plat_vlynq_data *pdata = dev->dev.platform_data; 57 struct plat_vlynq_data *pdata = dev->dev.platform_data;
54 58
55 result = gpio_request(pdata->gpio_bit, "vlynq"); 59 ret = gpio_request(pdata->gpio_bit, "vlynq");
56 if (result) 60 if (ret)
57 goto out; 61 goto out;
58 62
59 ar7_device_reset(pdata->reset_bit); 63 ar7_device_reset(pdata->reset_bit);
60 64
61 result = ar7_gpio_disable(pdata->gpio_bit); 65 ret = ar7_gpio_disable(pdata->gpio_bit);
62 if (result) 66 if (ret)
63 goto out_enabled; 67 goto out_enabled;
64 68
65 result = ar7_gpio_enable(pdata->gpio_bit); 69 ret = ar7_gpio_enable(pdata->gpio_bit);
66 if (result) 70 if (ret)
67 goto out_enabled; 71 goto out_enabled;
68 72
69 result = gpio_direction_output(pdata->gpio_bit, 0); 73 ret = gpio_direction_output(pdata->gpio_bit, 0);
70 if (result) 74 if (ret)
71 goto out_gpio_enabled; 75 goto out_gpio_enabled;
72 76
73 msleep(50); 77 msleep(50);
74 78
75 gpio_set_value(pdata->gpio_bit, 1); 79 gpio_set_value(pdata->gpio_bit, 1);
80
76 msleep(50); 81 msleep(50);
77 82
78 return 0; 83 return 0;
@@ -83,320 +88,384 @@ out_enabled:
83 ar7_device_disable(pdata->reset_bit); 88 ar7_device_disable(pdata->reset_bit);
84 gpio_free(pdata->gpio_bit); 89 gpio_free(pdata->gpio_bit);
85out: 90out:
86 return result; 91 return ret;
87} 92}
88 93
89static void vlynq_off(struct vlynq_device *dev) 94static void vlynq_off(struct vlynq_device *dev)
90{ 95{
91 struct plat_vlynq_data *pdata = dev->dev.platform_data; 96 struct plat_vlynq_data *pdata = dev->dev.platform_data;
97
92 ar7_gpio_disable(pdata->gpio_bit); 98 ar7_gpio_disable(pdata->gpio_bit);
93 gpio_free(pdata->gpio_bit); 99 gpio_free(pdata->gpio_bit);
94 ar7_device_disable(pdata->reset_bit); 100 ar7_device_disable(pdata->reset_bit);
95} 101}
96 102
97static struct resource physmap_flash_resource = { 103static struct resource vlynq_low_res[] = {
98 .name = "mem",
99 .flags = IORESOURCE_MEM,
100 .start = 0x10000000,
101 .end = 0x107fffff,
102};
103
104static struct resource cpmac_low_res[] = {
105 { 104 {
106 .name = "regs", 105 .name = "regs",
107 .flags = IORESOURCE_MEM, 106 .flags = IORESOURCE_MEM,
108 .start = AR7_REGS_MAC0, 107 .start = AR7_REGS_VLYNQ0,
109 .end = AR7_REGS_MAC0 + 0x7ff, 108 .end = AR7_REGS_VLYNQ0 + 0xff,
110 }, 109 },
111 { 110 {
112 .name = "irq", 111 .name = "irq",
113 .flags = IORESOURCE_IRQ, 112 .flags = IORESOURCE_IRQ,
114 .start = 27, 113 .start = 29,
115 .end = 27, 114 .end = 29,
116 }, 115 },
117};
118
119static struct resource cpmac_high_res[] = {
120 { 116 {
121 .name = "regs", 117 .name = "mem",
122 .flags = IORESOURCE_MEM, 118 .flags = IORESOURCE_MEM,
123 .start = AR7_REGS_MAC1, 119 .start = 0x04000000,
124 .end = AR7_REGS_MAC1 + 0x7ff, 120 .end = 0x04ffffff,
125 }, 121 },
126 { 122 {
127 .name = "irq", 123 .name = "devirq",
128 .flags = IORESOURCE_IRQ, 124 .flags = IORESOURCE_IRQ,
129 .start = 41, 125 .start = 80,
130 .end = 41, 126 .end = 111,
131 }, 127 },
132}; 128};
133 129
134static struct resource vlynq_low_res[] = { 130static struct resource vlynq_high_res[] = {
135 { 131 {
136 .name = "regs", 132 .name = "regs",
137 .flags = IORESOURCE_MEM, 133 .flags = IORESOURCE_MEM,
138 .start = AR7_REGS_VLYNQ0, 134 .start = AR7_REGS_VLYNQ1,
139 .end = AR7_REGS_VLYNQ0 + 0xff, 135 .end = AR7_REGS_VLYNQ1 + 0xff,
140 }, 136 },
141 { 137 {
142 .name = "irq", 138 .name = "irq",
143 .flags = IORESOURCE_IRQ, 139 .flags = IORESOURCE_IRQ,
144 .start = 29, 140 .start = 33,
145 .end = 29, 141 .end = 33,
146 }, 142 },
147 { 143 {
148 .name = "mem", 144 .name = "mem",
149 .flags = IORESOURCE_MEM, 145 .flags = IORESOURCE_MEM,
150 .start = 0x04000000, 146 .start = 0x0c000000,
151 .end = 0x04ffffff, 147 .end = 0x0cffffff,
152 }, 148 },
153 { 149 {
154 .name = "devirq", 150 .name = "devirq",
155 .flags = IORESOURCE_IRQ, 151 .flags = IORESOURCE_IRQ,
156 .start = 80, 152 .start = 112,
157 .end = 111, 153 .end = 143,
158 }, 154 },
159}; 155};
160 156
161static struct resource vlynq_high_res[] = { 157static struct plat_vlynq_data vlynq_low_data = {
162 { 158 .ops = {
163 .name = "regs", 159 .on = vlynq_on,
164 .flags = IORESOURCE_MEM, 160 .off = vlynq_off,
165 .start = AR7_REGS_VLYNQ1,
166 .end = AR7_REGS_VLYNQ1 + 0xff,
167 }, 161 },
168 { 162 .reset_bit = 20,
169 .name = "irq", 163 .gpio_bit = 18,
170 .flags = IORESOURCE_IRQ, 164};
171 .start = 33, 165
172 .end = 33, 166static struct plat_vlynq_data vlynq_high_data = {
167 .ops = {
168 .on = vlynq_on,
169 .off = vlynq_off,
173 }, 170 },
174 { 171 .reset_bit = 16,
175 .name = "mem", 172 .gpio_bit = 19,
176 .flags = IORESOURCE_MEM, 173};
177 .start = 0x0c000000, 174
178 .end = 0x0cffffff, 175static struct platform_device vlynq_low = {
176 .id = 0,
177 .name = "vlynq",
178 .dev = {
179 .platform_data = &vlynq_low_data,
179 }, 180 },
180 { 181 .resource = vlynq_low_res,
181 .name = "devirq", 182 .num_resources = ARRAY_SIZE(vlynq_low_res),
182 .flags = IORESOURCE_IRQ, 183};
183 .start = 112, 184
184 .end = 143, 185static struct platform_device vlynq_high = {
186 .id = 1,
187 .name = "vlynq",
188 .dev = {
189 .platform_data = &vlynq_high_data,
185 }, 190 },
191 .resource = vlynq_high_res,
192 .num_resources = ARRAY_SIZE(vlynq_high_res),
186}; 193};
187 194
188static struct resource usb_res[] = { 195/*****************************************************************************
189 { 196 * Flash
190 .name = "regs", 197 ****************************************************************************/
191 .flags = IORESOURCE_MEM, 198static struct resource physmap_flash_resource = {
192 .start = AR7_REGS_USB, 199 .name = "mem",
193 .end = AR7_REGS_USB + 0xff, 200 .flags = IORESOURCE_MEM,
201 .start = 0x10000000,
202 .end = 0x107fffff,
203};
204
205static struct physmap_flash_data physmap_flash_data = {
206 .width = 2,
207};
208
209static struct platform_device physmap_flash = {
210 .name = "physmap-flash",
211 .dev = {
212 .platform_data = &physmap_flash_data,
194 }, 213 },
214 .resource = &physmap_flash_resource,
215 .num_resources = 1,
216};
217
218/*****************************************************************************
219 * Ethernet
220 ****************************************************************************/
221static struct resource cpmac_low_res[] = {
195 { 222 {
196 .name = "irq", 223 .name = "regs",
197 .flags = IORESOURCE_IRQ, 224 .flags = IORESOURCE_MEM,
198 .start = 32, 225 .start = AR7_REGS_MAC0,
199 .end = 32, 226 .end = AR7_REGS_MAC0 + 0x7ff,
200 }, 227 },
201 { 228 {
202 .name = "mem", 229 .name = "irq",
203 .flags = IORESOURCE_MEM, 230 .flags = IORESOURCE_IRQ,
204 .start = 0x03400000, 231 .start = 27,
205 .end = 0x034001fff, 232 .end = 27,
206 }, 233 },
207}; 234};
208 235
209static struct physmap_flash_data physmap_flash_data = { 236static struct resource cpmac_high_res[] = {
210 .width = 2, 237 {
238 .name = "regs",
239 .flags = IORESOURCE_MEM,
240 .start = AR7_REGS_MAC1,
241 .end = AR7_REGS_MAC1 + 0x7ff,
242 },
243 {
244 .name = "irq",
245 .flags = IORESOURCE_IRQ,
246 .start = 41,
247 .end = 41,
248 },
211}; 249};
212 250
213static struct fixed_phy_status fixed_phy_status __initdata = { 251static struct fixed_phy_status fixed_phy_status __initdata = {
214 .link = 1, 252 .link = 1,
215 .speed = 100, 253 .speed = 100,
216 .duplex = 1, 254 .duplex = 1,
217}; 255};
218 256
219static struct plat_cpmac_data cpmac_low_data = { 257static struct plat_cpmac_data cpmac_low_data = {
220 .reset_bit = 17, 258 .reset_bit = 17,
221 .power_bit = 20, 259 .power_bit = 20,
222 .phy_mask = 0x80000000, 260 .phy_mask = 0x80000000,
223}; 261};
224 262
225static struct plat_cpmac_data cpmac_high_data = { 263static struct plat_cpmac_data cpmac_high_data = {
226 .reset_bit = 21, 264 .reset_bit = 21,
227 .power_bit = 22, 265 .power_bit = 22,
228 .phy_mask = 0x7fffffff, 266 .phy_mask = 0x7fffffff,
229};
230
231static struct plat_vlynq_data vlynq_low_data = {
232 .ops.on = vlynq_on,
233 .ops.off = vlynq_off,
234 .reset_bit = 20,
235 .gpio_bit = 18,
236};
237
238static struct plat_vlynq_data vlynq_high_data = {
239 .ops.on = vlynq_on,
240 .ops.off = vlynq_off,
241 .reset_bit = 16,
242 .gpio_bit = 19,
243};
244
245static struct platform_device physmap_flash = {
246 .id = 0,
247 .name = "physmap-flash",
248 .dev.platform_data = &physmap_flash_data,
249 .resource = &physmap_flash_resource,
250 .num_resources = 1,
251}; 267};
252 268
253static u64 cpmac_dma_mask = DMA_BIT_MASK(32); 269static u64 cpmac_dma_mask = DMA_BIT_MASK(32);
270
254static struct platform_device cpmac_low = { 271static struct platform_device cpmac_low = {
255 .id = 0, 272 .id = 0,
256 .name = "cpmac", 273 .name = "cpmac",
257 .dev = { 274 .dev = {
258 .dma_mask = &cpmac_dma_mask, 275 .dma_mask = &cpmac_dma_mask,
259 .coherent_dma_mask = DMA_BIT_MASK(32), 276 .coherent_dma_mask = DMA_BIT_MASK(32),
260 .platform_data = &cpmac_low_data, 277 .platform_data = &cpmac_low_data,
261 }, 278 },
262 .resource = cpmac_low_res, 279 .resource = cpmac_low_res,
263 .num_resources = ARRAY_SIZE(cpmac_low_res), 280 .num_resources = ARRAY_SIZE(cpmac_low_res),
264}; 281};
265 282
266static struct platform_device cpmac_high = { 283static struct platform_device cpmac_high = {
267 .id = 1, 284 .id = 1,
268 .name = "cpmac", 285 .name = "cpmac",
269 .dev = { 286 .dev = {
270 .dma_mask = &cpmac_dma_mask, 287 .dma_mask = &cpmac_dma_mask,
271 .coherent_dma_mask = DMA_BIT_MASK(32), 288 .coherent_dma_mask = DMA_BIT_MASK(32),
272 .platform_data = &cpmac_high_data, 289 .platform_data = &cpmac_high_data,
273 }, 290 },
274 .resource = cpmac_high_res, 291 .resource = cpmac_high_res,
275 .num_resources = ARRAY_SIZE(cpmac_high_res), 292 .num_resources = ARRAY_SIZE(cpmac_high_res),
276}; 293};
277 294
278static struct platform_device vlynq_low = { 295static inline unsigned char char2hex(char h)
279 .id = 0, 296{
280 .name = "vlynq", 297 switch (h) {
281 .dev.platform_data = &vlynq_low_data, 298 case '0': case '1': case '2': case '3': case '4':
282 .resource = vlynq_low_res, 299 case '5': case '6': case '7': case '8': case '9':
283 .num_resources = ARRAY_SIZE(vlynq_low_res), 300 return h - '0';
284}; 301 case 'A': case 'B': case 'C': case 'D': case 'E': case 'F':
302 return h - 'A' + 10;
303 case 'a': case 'b': case 'c': case 'd': case 'e': case 'f':
304 return h - 'a' + 10;
305 default:
306 return 0;
307 }
308}
285 309
286static struct platform_device vlynq_high = { 310static void cpmac_get_mac(int instance, unsigned char *dev_addr)
287 .id = 1, 311{
288 .name = "vlynq", 312 int i;
289 .dev.platform_data = &vlynq_high_data, 313 char name[5], default_mac[ETH_ALEN], *mac;
290 .resource = vlynq_high_res, 314
291 .num_resources = ARRAY_SIZE(vlynq_high_res), 315 mac = NULL;
316 sprintf(name, "mac%c", 'a' + instance);
317 mac = prom_getenv(name);
318 if (!mac) {
319 sprintf(name, "mac%c", 'a');
320 mac = prom_getenv(name);
321 }
322 if (!mac) {
323 random_ether_addr(default_mac);
324 mac = default_mac;
325 }
326 for (i = 0; i < 6; i++)
327 dev_addr[i] = (char2hex(mac[i * 3]) << 4) +
328 char2hex(mac[i * 3 + 1]);
329}
330
331/*****************************************************************************
332 * USB
333 ****************************************************************************/
334static struct resource usb_res[] = {
335 {
336 .name = "regs",
337 .flags = IORESOURCE_MEM,
338 .start = AR7_REGS_USB,
339 .end = AR7_REGS_USB + 0xff,
340 },
341 {
342 .name = "irq",
343 .flags = IORESOURCE_IRQ,
344 .start = 32,
345 .end = 32,
346 },
347 {
348 .name = "mem",
349 .flags = IORESOURCE_MEM,
350 .start = 0x03400000,
351 .end = 0x03401fff,
352 },
292}; 353};
293 354
355static struct platform_device ar7_udc = {
356 .name = "ar7_udc",
357 .resource = usb_res,
358 .num_resources = ARRAY_SIZE(usb_res),
359};
294 360
361/*****************************************************************************
362 * LEDs
363 ****************************************************************************/
295static struct gpio_led default_leds[] = { 364static struct gpio_led default_leds[] = {
296 { 365 {
297 .name = "status", 366 .name = "status",
298 .gpio = 8, 367 .gpio = 8,
299 .active_low = 1, 368 .active_low = 1,
300 }, 369 },
301}; 370};
302 371
303static struct gpio_led dsl502t_leds[] = { 372static struct gpio_led dsl502t_leds[] = {
304 { 373 {
305 .name = "status", 374 .name = "status",
306 .gpio = 9, 375 .gpio = 9,
307 .active_low = 1, 376 .active_low = 1,
308 }, 377 },
309 { 378 {
310 .name = "ethernet", 379 .name = "ethernet",
311 .gpio = 7, 380 .gpio = 7,
312 .active_low = 1, 381 .active_low = 1,
313 }, 382 },
314 { 383 {
315 .name = "usb", 384 .name = "usb",
316 .gpio = 12, 385 .gpio = 12,
317 .active_low = 1, 386 .active_low = 1,
318 }, 387 },
319}; 388};
320 389
321static struct gpio_led dg834g_leds[] = { 390static struct gpio_led dg834g_leds[] = {
322 { 391 {
323 .name = "ppp", 392 .name = "ppp",
324 .gpio = 6, 393 .gpio = 6,
325 .active_low = 1, 394 .active_low = 1,
326 }, 395 },
327 { 396 {
328 .name = "status", 397 .name = "status",
329 .gpio = 7, 398 .gpio = 7,
330 .active_low = 1, 399 .active_low = 1,
331 }, 400 },
332 { 401 {
333 .name = "adsl", 402 .name = "adsl",
334 .gpio = 8, 403 .gpio = 8,
335 .active_low = 1, 404 .active_low = 1,
336 }, 405 },
337 { 406 {
338 .name = "wifi", 407 .name = "wifi",
339 .gpio = 12, 408 .gpio = 12,
340 .active_low = 1, 409 .active_low = 1,
341 }, 410 },
342 { 411 {
343 .name = "power", 412 .name = "power",
344 .gpio = 14, 413 .gpio = 14,
345 .active_low = 1, 414 .active_low = 1,
346 .default_trigger = "default-on", 415 .default_trigger = "default-on",
347 }, 416 },
348}; 417};
349 418
350static struct gpio_led fb_sl_leds[] = { 419static struct gpio_led fb_sl_leds[] = {
351 { 420 {
352 .name = "1", 421 .name = "1",
353 .gpio = 7, 422 .gpio = 7,
354 }, 423 },
355 { 424 {
356 .name = "2", 425 .name = "2",
357 .gpio = 13, 426 .gpio = 13,
358 .active_low = 1, 427 .active_low = 1,
359 }, 428 },
360 { 429 {
361 .name = "3", 430 .name = "3",
362 .gpio = 10, 431 .gpio = 10,
363 .active_low = 1, 432 .active_low = 1,
364 }, 433 },
365 { 434 {
366 .name = "4", 435 .name = "4",
367 .gpio = 12, 436 .gpio = 12,
368 .active_low = 1, 437 .active_low = 1,
369 }, 438 },
370 { 439 {
371 .name = "5", 440 .name = "5",
372 .gpio = 9, 441 .gpio = 9,
373 .active_low = 1, 442 .active_low = 1,
374 }, 443 },
375}; 444};
376 445
377static struct gpio_led fb_fon_leds[] = { 446static struct gpio_led fb_fon_leds[] = {
378 { 447 {
379 .name = "1", 448 .name = "1",
380 .gpio = 8, 449 .gpio = 8,
381 }, 450 },
382 { 451 {
383 .name = "2", 452 .name = "2",
384 .gpio = 3, 453 .gpio = 3,
385 .active_low = 1, 454 .active_low = 1,
386 }, 455 },
387 { 456 {
388 .name = "3", 457 .name = "3",
389 .gpio = 5, 458 .gpio = 5,
390 }, 459 },
391 { 460 {
392 .name = "4", 461 .name = "4",
393 .gpio = 4, 462 .gpio = 4,
394 .active_low = 1, 463 .active_low = 1,
395 }, 464 },
396 { 465 {
397 .name = "5", 466 .name = "5",
398 .gpio = 11, 467 .gpio = 11,
399 .active_low = 1, 468 .active_low = 1,
400 }, 469 },
401}; 470};
402 471
@@ -404,69 +473,11 @@ static struct gpio_led_platform_data ar7_led_data;
404 473
405static struct platform_device ar7_gpio_leds = { 474static struct platform_device ar7_gpio_leds = {
406 .name = "leds-gpio", 475 .name = "leds-gpio",
407 .id = -1,
408 .dev = { 476 .dev = {
409 .platform_data = &ar7_led_data, 477 .platform_data = &ar7_led_data,
410 } 478 }
411}; 479};
412 480
413static struct platform_device ar7_udc = {
414 .id = -1,
415 .name = "ar7_udc",
416 .resource = usb_res,
417 .num_resources = ARRAY_SIZE(usb_res),
418};
419
420static struct resource ar7_wdt_res = {
421 .name = "regs",
422 .start = -1, /* Filled at runtime */
423 .end = -1, /* Filled at runtime */
424 .flags = IORESOURCE_MEM,
425};
426
427static struct platform_device ar7_wdt = {
428 .id = -1,
429 .name = "ar7_wdt",
430 .resource = &ar7_wdt_res,
431 .num_resources = 1,
432};
433
434static inline unsigned char char2hex(char h)
435{
436 switch (h) {
437 case '0': case '1': case '2': case '3': case '4':
438 case '5': case '6': case '7': case '8': case '9':
439 return h - '0';
440 case 'A': case 'B': case 'C': case 'D': case 'E': case 'F':
441 return h - 'A' + 10;
442 case 'a': case 'b': case 'c': case 'd': case 'e': case 'f':
443 return h - 'a' + 10;
444 default:
445 return 0;
446 }
447}
448
449static void cpmac_get_mac(int instance, unsigned char *dev_addr)
450{
451 int i;
452 char name[5], default_mac[ETH_ALEN], *mac;
453
454 mac = NULL;
455 sprintf(name, "mac%c", 'a' + instance);
456 mac = prom_getenv(name);
457 if (!mac) {
458 sprintf(name, "mac%c", 'a');
459 mac = prom_getenv(name);
460 }
461 if (!mac) {
462 random_ether_addr(default_mac);
463 mac = default_mac;
464 }
465 for (i = 0; i < 6; i++)
466 dev_addr[i] = (char2hex(mac[i * 3]) << 4) +
467 char2hex(mac[i * 3 + 1]);
468}
469
470static void __init detect_leds(void) 481static void __init detect_leds(void)
471{ 482{
472 char *prid, *usb_prod; 483 char *prid, *usb_prod;
@@ -499,111 +510,150 @@ static void __init detect_leds(void)
499 } 510 }
500} 511}
501 512
502static int __init ar7_register_devices(void) 513/*****************************************************************************
514 * Watchdog
515 ****************************************************************************/
516static struct resource ar7_wdt_res = {
517 .name = "regs",
518 .flags = IORESOURCE_MEM,
519 .start = -1, /* Filled at runtime */
520 .end = -1, /* Filled at runtime */
521};
522
523static struct platform_device ar7_wdt = {
524 .name = "ar7_wdt",
525 .resource = &ar7_wdt_res,
526 .num_resources = 1,
527};
528
529/*****************************************************************************
530 * Init
531 ****************************************************************************/
532static int __init ar7_register_uarts(void)
503{ 533{
504 u16 chip_id;
505 int res;
506 u32 *bootcr, val;
507#ifdef CONFIG_SERIAL_8250 534#ifdef CONFIG_SERIAL_8250
508 static struct uart_port uart_port[2]; 535 static struct uart_port uart_port __initdata;
509 536 struct clk *bus_clk;
510 memset(uart_port, 0, sizeof(struct uart_port) * 2); 537 int res;
511 538
512 uart_port[0].type = PORT_16550A; 539 memset(&uart_port, 0, sizeof(struct uart_port));
513 uart_port[0].line = 0; 540
514 uart_port[0].irq = AR7_IRQ_UART0; 541 bus_clk = clk_get(NULL, "bus");
515 uart_port[0].uartclk = ar7_bus_freq() / 2; 542 if (IS_ERR(bus_clk))
516 uart_port[0].iotype = UPIO_MEM32; 543 panic("unable to get bus clk\n");
517 uart_port[0].mapbase = AR7_REGS_UART0; 544
518 uart_port[0].membase = ioremap(uart_port[0].mapbase, 256); 545 uart_port.type = PORT_16550A;
519 uart_port[0].regshift = 2; 546 uart_port.uartclk = clk_get_rate(bus_clk) / 2;
520 res = early_serial_setup(&uart_port[0]); 547 uart_port.iotype = UPIO_MEM32;
548 uart_port.regshift = 2;
549
550 uart_port.line = 0;
551 uart_port.irq = AR7_IRQ_UART0;
552 uart_port.mapbase = AR7_REGS_UART0;
553 uart_port.membase = ioremap(uart_port.mapbase, 256);
554
555 res = early_serial_setup(&uart_port);
521 if (res) 556 if (res)
522 return res; 557 return res;
523 558
524
525 /* Only TNETD73xx have a second serial port */ 559 /* Only TNETD73xx have a second serial port */
526 if (ar7_has_second_uart()) { 560 if (ar7_has_second_uart()) {
527 uart_port[1].type = PORT_16550A; 561 uart_port.line = 1;
528 uart_port[1].line = 1; 562 uart_port.irq = AR7_IRQ_UART1;
529 uart_port[1].irq = AR7_IRQ_UART1; 563 uart_port.mapbase = UR8_REGS_UART1;
530 uart_port[1].uartclk = ar7_bus_freq() / 2; 564 uart_port.membase = ioremap(uart_port.mapbase, 256);
531 uart_port[1].iotype = UPIO_MEM32; 565
532 uart_port[1].mapbase = UR8_REGS_UART1; 566 res = early_serial_setup(&uart_port);
533 uart_port[1].membase = ioremap(uart_port[1].mapbase, 256);
534 uart_port[1].regshift = 2;
535 res = early_serial_setup(&uart_port[1]);
536 if (res) 567 if (res)
537 return res; 568 return res;
538 } 569 }
539#endif /* CONFIG_SERIAL_8250 */ 570#endif
571
572 return 0;
573}
574
575static int __init ar7_register_devices(void)
576{
577 void __iomem *bootcr;
578 u32 val;
579 u16 chip_id;
580 int res;
581
582 res = ar7_register_uarts();
583 if (res)
584 pr_err("unable to setup uart(s): %d\n", res);
585
540 res = platform_device_register(&physmap_flash); 586 res = platform_device_register(&physmap_flash);
541 if (res) 587 if (res)
542 return res; 588 pr_warning("unable to register physmap-flash: %d\n", res);
543 589
544 ar7_device_disable(vlynq_low_data.reset_bit); 590 ar7_device_disable(vlynq_low_data.reset_bit);
545 res = platform_device_register(&vlynq_low); 591 res = platform_device_register(&vlynq_low);
546 if (res) 592 if (res)
547 return res; 593 pr_warning("unable to register vlynq-low: %d\n", res);
548 594
549 if (ar7_has_high_vlynq()) { 595 if (ar7_has_high_vlynq()) {
550 ar7_device_disable(vlynq_high_data.reset_bit); 596 ar7_device_disable(vlynq_high_data.reset_bit);
551 res = platform_device_register(&vlynq_high); 597 res = platform_device_register(&vlynq_high);
552 if (res) 598 if (res)
553 return res; 599 pr_warning("unable to register vlynq-high: %d\n", res);
554 } 600 }
555 601
556 if (ar7_has_high_cpmac()) { 602 if (ar7_has_high_cpmac()) {
557 res = fixed_phy_add(PHY_POLL, cpmac_high.id, &fixed_phy_status); 603 res = fixed_phy_add(PHY_POLL, cpmac_high.id, &fixed_phy_status);
558 if (res && res != -ENODEV) 604 if (!res) {
559 return res; 605 cpmac_get_mac(1, cpmac_high_data.dev_addr);
560 cpmac_get_mac(1, cpmac_high_data.dev_addr); 606
561 res = platform_device_register(&cpmac_high); 607 res = platform_device_register(&cpmac_high);
562 if (res) 608 if (res)
563 return res; 609 pr_warning("unable to register cpmac-high: %d\n", res);
564 } else { 610 } else
611 pr_warning("unable to add cpmac-high phy: %d\n", res);
612 } else
565 cpmac_low_data.phy_mask = 0xffffffff; 613 cpmac_low_data.phy_mask = 0xffffffff;
566 }
567 614
568 res = fixed_phy_add(PHY_POLL, cpmac_low.id, &fixed_phy_status); 615 res = fixed_phy_add(PHY_POLL, cpmac_low.id, &fixed_phy_status);
569 if (res && res != -ENODEV) 616 if (!res) {
570 return res; 617 cpmac_get_mac(0, cpmac_low_data.dev_addr);
571 618 res = platform_device_register(&cpmac_low);
572 cpmac_get_mac(0, cpmac_low_data.dev_addr); 619 if (res)
573 res = platform_device_register(&cpmac_low); 620 pr_warning("unable to register cpmac-low: %d\n", res);
574 if (res) 621 } else
575 return res; 622 pr_warning("unable to add cpmac-low phy: %d\n", res);
576 623
577 detect_leds(); 624 detect_leds();
578 res = platform_device_register(&ar7_gpio_leds); 625 res = platform_device_register(&ar7_gpio_leds);
579 if (res) 626 if (res)
580 return res; 627 pr_warning("unable to register leds: %d\n", res);
581 628
582 res = platform_device_register(&ar7_udc); 629 res = platform_device_register(&ar7_udc);
583 630 if (res)
584 chip_id = ar7_chip_id(); 631 pr_warning("unable to register usb slave: %d\n", res);
585 switch (chip_id) {
586 case AR7_CHIP_7100:
587 case AR7_CHIP_7200:
588 ar7_wdt_res.start = AR7_REGS_WDT;
589 break;
590 case AR7_CHIP_7300:
591 ar7_wdt_res.start = UR8_REGS_WDT;
592 break;
593 default:
594 break;
595 }
596
597 ar7_wdt_res.end = ar7_wdt_res.start + 0x20;
598
599 bootcr = (u32 *)ioremap_nocache(AR7_REGS_DCL, 4);
600 val = *bootcr;
601 iounmap(bootcr);
602 632
603 /* Register watchdog only if enabled in hardware */ 633 /* Register watchdog only if enabled in hardware */
604 if (val & AR7_WDT_HW_ENA) 634 bootcr = ioremap_nocache(AR7_REGS_DCL, 4);
635 val = readl(bootcr);
636 iounmap(bootcr);
637 if (val & AR7_WDT_HW_ENA) {
638 chip_id = ar7_chip_id();
639 switch (chip_id) {
640 case AR7_CHIP_7100:
641 case AR7_CHIP_7200:
642 ar7_wdt_res.start = AR7_REGS_WDT;
643 break;
644 case AR7_CHIP_7300:
645 ar7_wdt_res.start = UR8_REGS_WDT;
646 break;
647 default:
648 break;
649 }
650
651 ar7_wdt_res.end = ar7_wdt_res.start + 0x20;
605 res = platform_device_register(&ar7_wdt); 652 res = platform_device_register(&ar7_wdt);
653 if (res)
654 pr_warning("unable to register watchdog: %d\n", res);
655 }
606 656
607 return res; 657 return 0;
608} 658}
609arch_initcall(ar7_register_devices); 659arch_initcall(ar7_register_devices);
diff --git a/arch/mips/ar7/prom.c b/arch/mips/ar7/prom.c
index 5ad6f1db6567..52385790e5c1 100644
--- a/arch/mips/ar7/prom.c
+++ b/arch/mips/ar7/prom.c
@@ -32,8 +32,8 @@
32#define MAX_ENTRY 80 32#define MAX_ENTRY 80
33 33
34struct env_var { 34struct env_var {
35 char *name; 35 char *name;
36 char *value; 36 char *value;
37}; 37};
38 38
39static struct env_var adam2_env[MAX_ENTRY]; 39static struct env_var adam2_env[MAX_ENTRY];
@@ -41,6 +41,7 @@ static struct env_var adam2_env[MAX_ENTRY];
41char *prom_getenv(const char *name) 41char *prom_getenv(const char *name)
42{ 42{
43 int i; 43 int i;
44
44 for (i = 0; (i < MAX_ENTRY) && adam2_env[i].name; i++) 45 for (i = 0; (i < MAX_ENTRY) && adam2_env[i].name; i++)
45 if (!strcmp(name, adam2_env[i].name)) 46 if (!strcmp(name, adam2_env[i].name))
46 return adam2_env[i].value; 47 return adam2_env[i].value;
@@ -49,65 +50,50 @@ char *prom_getenv(const char *name)
49} 50}
50EXPORT_SYMBOL(prom_getenv); 51EXPORT_SYMBOL(prom_getenv);
51 52
52char * __init prom_getcmdline(void)
53{
54 return &(arcs_cmdline[0]);
55}
56
57static void __init ar7_init_cmdline(int argc, char *argv[]) 53static void __init ar7_init_cmdline(int argc, char *argv[])
58{ 54{
59 char *cp; 55 int i;
60 int actr;
61
62 actr = 1; /* Always ignore argv[0] */
63 56
64 cp = &(arcs_cmdline[0]); 57 for (i = 1; i < argc; i++) {
65 while (actr < argc) { 58 strlcat(arcs_cmdline, argv[i], COMMAND_LINE_SIZE);
66 strcpy(cp, argv[actr]); 59 if (i < (argc - 1))
67 cp += strlen(argv[actr]); 60 strlcat(arcs_cmdline, " ", COMMAND_LINE_SIZE);
68 *cp++ = ' ';
69 actr++;
70 }
71 if (cp != &(arcs_cmdline[0])) {
72 /* get rid of trailing space */
73 --cp;
74 *cp = '\0';
75 } 61 }
76} 62}
77 63
78struct psbl_rec { 64struct psbl_rec {
79 u32 psbl_size; 65 u32 psbl_size;
80 u32 env_base; 66 u32 env_base;
81 u32 env_size; 67 u32 env_size;
82 u32 ffs_base; 68 u32 ffs_base;
83 u32 ffs_size; 69 u32 ffs_size;
84}; 70};
85 71
86static __initdata char psp_env_version[] = "TIENV0.8"; 72static __initdata char psp_env_version[] = "TIENV0.8";
87 73
88struct psp_env_chunk { 74struct psp_env_chunk {
89 u8 num; 75 u8 num;
90 u8 ctrl; 76 u8 ctrl;
91 u16 csum; 77 u16 csum;
92 u8 len; 78 u8 len;
93 char data[11]; 79 char data[11];
94} __attribute__ ((packed)); 80} __attribute__ ((packed));
95 81
96struct psp_var_map_entry { 82struct psp_var_map_entry {
97 u8 num; 83 u8 num;
98 char *value; 84 char *value;
99}; 85};
100 86
101static struct psp_var_map_entry psp_var_map[] = { 87static struct psp_var_map_entry psp_var_map[] = {
102 { 1, "cpufrequency" }, 88 { 1, "cpufrequency" },
103 { 2, "memsize" }, 89 { 2, "memsize" },
104 { 3, "flashsize" }, 90 { 3, "flashsize" },
105 { 4, "modetty0" }, 91 { 4, "modetty0" },
106 { 5, "modetty1" }, 92 { 5, "modetty1" },
107 { 8, "maca" }, 93 { 8, "maca" },
108 { 9, "macb" }, 94 { 9, "macb" },
109 { 28, "sysfrequency" }, 95 { 28, "sysfrequency" },
110 { 38, "mipsfrequency" }, 96 { 38, "mipsfrequency" },
111}; 97};
112 98
113/* 99/*
@@ -154,6 +140,7 @@ static char * __init lookup_psp_var_map(u8 num)
154static void __init add_adam2_var(char *name, char *value) 140static void __init add_adam2_var(char *name, char *value)
155{ 141{
156 int i; 142 int i;
143
157 for (i = 0; i < MAX_ENTRY; i++) { 144 for (i = 0; i < MAX_ENTRY; i++) {
158 if (!adam2_env[i].name) { 145 if (!adam2_env[i].name) {
159 adam2_env[i].name = name; 146 adam2_env[i].name = name;
@@ -216,17 +203,9 @@ static void __init console_config(void)
216 char parity = '\0', bits = '\0', flow = '\0'; 203 char parity = '\0', bits = '\0', flow = '\0';
217 char *s, *p; 204 char *s, *p;
218 205
219 if (strstr(prom_getcmdline(), "console=")) 206 if (strstr(arcs_cmdline, "console="))
220 return; 207 return;
221 208
222#ifdef CONFIG_KGDB
223 if (!strstr(prom_getcmdline(), "nokgdb")) {
224 strcat(prom_getcmdline(), " console=kgdb");
225 kgdb_enabled = 1;
226 return;
227 }
228#endif
229
230 s = prom_getenv("modetty0"); 209 s = prom_getenv("modetty0");
231 if (s) { 210 if (s) {
232 baud = simple_strtoul(s, &p, 10); 211 baud = simple_strtoul(s, &p, 10);
@@ -258,7 +237,7 @@ static void __init console_config(void)
258 else 237 else
259 sprintf(console_string, " console=ttyS0,%d%c%c", baud, parity, 238 sprintf(console_string, " console=ttyS0,%d%c%c", baud, parity,
260 bits); 239 bits);
261 strcat(prom_getcmdline(), console_string); 240 strlcat(arcs_cmdline, console_string, COMMAND_LINE_SIZE);
262#endif 241#endif
263} 242}
264 243
@@ -280,13 +259,6 @@ static inline void serial_out(int offset, int value)
280 writel(value, (void *)PORT(offset)); 259 writel(value, (void *)PORT(offset));
281} 260}
282 261
283char prom_getchar(void)
284{
285 while (!(serial_in(UART_LSR) & UART_LSR_DR))
286 ;
287 return serial_in(UART_RX);
288}
289
290int prom_putchar(char c) 262int prom_putchar(char c)
291{ 263{
292 while ((serial_in(UART_LSR) & UART_LSR_TEMT) == 0) 264 while ((serial_in(UART_LSR) & UART_LSR_TEMT) == 0)
@@ -294,4 +266,3 @@ int prom_putchar(char c)
294 serial_out(UART_TX, c); 266 serial_out(UART_TX, c);
295 return 1; 267 return 1;
296} 268}
297
diff --git a/arch/mips/ar7/setup.c b/arch/mips/ar7/setup.c
index 39f6b5b96463..3a801d2cb6e5 100644
--- a/arch/mips/ar7/setup.c
+++ b/arch/mips/ar7/setup.c
@@ -26,8 +26,8 @@
26 26
27static void ar7_machine_restart(char *command) 27static void ar7_machine_restart(char *command)
28{ 28{
29 u32 *softres_reg = ioremap(AR7_REGS_RESET + 29 u32 *softres_reg = ioremap(AR7_REGS_RESET + AR7_RESET_SOFTWARE, 1);
30 AR7_RESET_SOFTWARE, 1); 30
31 writel(1, softres_reg); 31 writel(1, softres_reg);
32} 32}
33 33
@@ -41,6 +41,7 @@ static void ar7_machine_power_off(void)
41{ 41{
42 u32 *power_reg = (u32 *)ioremap(AR7_REGS_POWER, 1); 42 u32 *power_reg = (u32 *)ioremap(AR7_REGS_POWER, 1);
43 u32 power_state = readl(power_reg) | (3 << 30); 43 u32 power_state = readl(power_reg) | (3 << 30);
44
44 writel(power_state, power_reg); 45 writel(power_state, power_reg);
45 ar7_machine_halt(); 46 ar7_machine_halt();
46} 47}
@@ -49,14 +50,14 @@ const char *get_system_type(void)
49{ 50{
50 u16 chip_id = ar7_chip_id(); 51 u16 chip_id = ar7_chip_id();
51 switch (chip_id) { 52 switch (chip_id) {
52 case AR7_CHIP_7300:
53 return "TI AR7 (TNETD7300)";
54 case AR7_CHIP_7100: 53 case AR7_CHIP_7100:
55 return "TI AR7 (TNETD7100)"; 54 return "TI AR7 (TNETD7100)";
56 case AR7_CHIP_7200: 55 case AR7_CHIP_7200:
57 return "TI AR7 (TNETD7200)"; 56 return "TI AR7 (TNETD7200)";
57 case AR7_CHIP_7300:
58 return "TI AR7 (TNETD7300)";
58 default: 59 default:
59 return "TI AR7 (Unknown)"; 60 return "TI AR7 (unknown)";
60 } 61 }
61} 62}
62 63
@@ -70,7 +71,6 @@ console_initcall(ar7_init_console);
70 * Initializes basic routines and structures pointers, memory size (as 71 * Initializes basic routines and structures pointers, memory size (as
71 * given by the bios and saves the command line. 72 * given by the bios and saves the command line.
72 */ 73 */
73
74void __init plat_mem_setup(void) 74void __init plat_mem_setup(void)
75{ 75{
76 unsigned long io_base; 76 unsigned long io_base;
@@ -88,6 +88,5 @@ void __init plat_mem_setup(void)
88 prom_meminit(); 88 prom_meminit();
89 89
90 printk(KERN_INFO "%s, ID: 0x%04x, Revision: 0x%02x\n", 90 printk(KERN_INFO "%s, ID: 0x%04x, Revision: 0x%02x\n",
91 get_system_type(), 91 get_system_type(), ar7_chip_id(), ar7_chip_rev());
92 ar7_chip_id(), ar7_chip_rev());
93} 92}
diff --git a/arch/mips/ar7/time.c b/arch/mips/ar7/time.c
index a1fba894daa2..5fb8a0134085 100644
--- a/arch/mips/ar7/time.c
+++ b/arch/mips/ar7/time.c
@@ -20,11 +20,21 @@
20 20
21#include <linux/init.h> 21#include <linux/init.h>
22#include <linux/time.h> 22#include <linux/time.h>
23#include <linux/err.h>
24#include <linux/clk.h>
23 25
24#include <asm/time.h> 26#include <asm/time.h>
25#include <asm/mach-ar7/ar7.h> 27#include <asm/mach-ar7/ar7.h>
26 28
27void __init plat_time_init(void) 29void __init plat_time_init(void)
28{ 30{
29 mips_hpt_frequency = ar7_cpu_freq() / 2; 31 struct clk *cpu_clk;
32
33 cpu_clk = clk_get(NULL, "cpu");
34 if (IS_ERR(cpu_clk)) {
35 printk(KERN_ERR "unable to get cpu clock\n");
36 return;
37 }
38
39 mips_hpt_frequency = clk_get_rate(cpu_clk) / 2;
30} 40}
diff --git a/arch/mips/basler/excite/Kconfig b/arch/mips/basler/excite/Kconfig
deleted file mode 100644
index ba506075608b..000000000000
--- a/arch/mips/basler/excite/Kconfig
+++ /dev/null
@@ -1,9 +0,0 @@
1config BASLER_EXCITE_PROTOTYPE
2 bool "Support for pre-release units"
3 depends on BASLER_EXCITE
4 default n
5 help
6 Pre-series (prototype) units are different from later ones in
7 some ways. Select this option if you have one of these. Please
8 note that a kernel built with this option selected will not be
9 able to run on normal units.
diff --git a/arch/mips/basler/excite/Makefile b/arch/mips/basler/excite/Makefile
deleted file mode 100644
index cff29cf46d03..000000000000
--- a/arch/mips/basler/excite/Makefile
+++ /dev/null
@@ -1,8 +0,0 @@
1#
2# Makefile for Basler eXcite
3#
4
5obj-$(CONFIG_BASLER_EXCITE) += excite_irq.o excite_prom.o excite_setup.o \
6 excite_device.o excite_procfs.o
7
8obj-m += excite_iodev.o
diff --git a/arch/mips/basler/excite/excite_device.c b/arch/mips/basler/excite/excite_device.c
deleted file mode 100644
index e00bc2d7f301..000000000000
--- a/arch/mips/basler/excite/excite_device.c
+++ /dev/null
@@ -1,403 +0,0 @@
1/*
2 * Copyright (C) 2004 by Basler Vision Technologies AG
3 * Author: Thomas Koeller <thomas.koeller@baslerweb.com>
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 */
19
20#include <linux/kernel.h>
21#include <linux/init.h>
22#include <linux/platform_device.h>
23#include <linux/ioport.h>
24#include <linux/err.h>
25#include <linux/jiffies.h>
26#include <linux/sched.h>
27#include <asm/types.h>
28#include <asm/rm9k-ocd.h>
29
30#include <excite.h>
31#include <rm9k_eth.h>
32#include <rm9k_wdt.h>
33#include <rm9k_xicap.h>
34#include <excite_nandflash.h>
35
36#include "excite_iodev.h"
37
38#define RM9K_GE_UNIT 0
39#define XICAP_UNIT 0
40#define NAND_UNIT 0
41
42#define DLL_TIMEOUT 3 /* seconds */
43
44
45#define RINIT(__start__, __end__, __name__, __parent__) { \
46 .name = __name__ "_0", \
47 .start = (__start__), \
48 .end = (__end__), \
49 .flags = 0, \
50 .parent = (__parent__) \
51}
52
53#define RINIT_IRQ(__irq__, __name__) { \
54 .name = __name__ "_0", \
55 .start = (__irq__), \
56 .end = (__irq__), \
57 .flags = IORESOURCE_IRQ, \
58 .parent = NULL \
59}
60
61
62
63enum {
64 slice_xicap,
65 slice_eth
66};
67
68
69
70static struct resource
71 excite_ctr_resource __maybe_unused = {
72 .name = "GPI counters",
73 .start = 0,
74 .end = 5,
75 .flags = 0,
76 .parent = NULL,
77 .sibling = NULL,
78 .child = NULL
79 },
80 excite_gpislice_resource __maybe_unused = {
81 .name = "GPI slices",
82 .start = 0,
83 .end = 1,
84 .flags = 0,
85 .parent = NULL,
86 .sibling = NULL,
87 .child = NULL
88 },
89 excite_mdio_channel_resource __maybe_unused = {
90 .name = "MDIO channels",
91 .start = 0,
92 .end = 1,
93 .flags = 0,
94 .parent = NULL,
95 .sibling = NULL,
96 .child = NULL
97 },
98 excite_fifomem_resource __maybe_unused = {
99 .name = "FIFO memory",
100 .start = 0,
101 .end = 767,
102 .flags = 0,
103 .parent = NULL,
104 .sibling = NULL,
105 .child = NULL
106 },
107 excite_scram_resource __maybe_unused = {
108 .name = "Scratch RAM",
109 .start = EXCITE_PHYS_SCRAM,
110 .end = EXCITE_PHYS_SCRAM + EXCITE_SIZE_SCRAM - 1,
111 .flags = IORESOURCE_MEM,
112 .parent = NULL,
113 .sibling = NULL,
114 .child = NULL
115 },
116 excite_fpga_resource __maybe_unused = {
117 .name = "System FPGA",
118 .start = EXCITE_PHYS_FPGA,
119 .end = EXCITE_PHYS_FPGA + EXCITE_SIZE_FPGA - 1,
120 .flags = IORESOURCE_MEM,
121 .parent = NULL,
122 .sibling = NULL,
123 .child = NULL
124 },
125 excite_nand_resource __maybe_unused = {
126 .name = "NAND flash control",
127 .start = EXCITE_PHYS_NAND,
128 .end = EXCITE_PHYS_NAND + EXCITE_SIZE_NAND - 1,
129 .flags = IORESOURCE_MEM,
130 .parent = NULL,
131 .sibling = NULL,
132 .child = NULL
133 },
134 excite_titan_resource __maybe_unused = {
135 .name = "TITAN registers",
136 .start = EXCITE_PHYS_TITAN,
137 .end = EXCITE_PHYS_TITAN + EXCITE_SIZE_TITAN - 1,
138 .flags = IORESOURCE_MEM,
139 .parent = NULL,
140 .sibling = NULL,
141 .child = NULL
142 };
143
144
145
146static void adjust_resources(struct resource *res, unsigned int n)
147{
148 struct resource *p;
149 const unsigned long mask = IORESOURCE_IO | IORESOURCE_MEM
150 | IORESOURCE_IRQ | IORESOURCE_DMA;
151
152 for (p = res; p < res + n; p++) {
153 const struct resource * const parent = p->parent;
154 if (parent) {
155 p->start += parent->start;
156 p->end += parent->start;
157 p->flags = parent->flags & mask;
158 }
159 }
160}
161
162
163
164#if defined(CONFIG_EXCITE_FCAP_GPI) || defined(CONFIG_EXCITE_FCAP_GPI_MODULE)
165static struct resource xicap_rsrc[] = {
166 RINIT(0x4840, 0x486f, XICAP_RESOURCE_FIFO_RX, &excite_titan_resource),
167 RINIT(0x4940, 0x494b, XICAP_RESOURCE_FIFO_TX, &excite_titan_resource),
168 RINIT(0x5040, 0x5127, XICAP_RESOURCE_XDMA, &excite_titan_resource),
169 RINIT(0x1000, 0x112f, XICAP_RESOURCE_PKTPROC, &excite_titan_resource),
170 RINIT(0x1100, 0x110f, XICAP_RESOURCE_PKT_STREAM, &excite_fpga_resource),
171 RINIT(0x0800, 0x0bff, XICAP_RESOURCE_DMADESC, &excite_scram_resource),
172 RINIT(slice_xicap, slice_xicap, XICAP_RESOURCE_GPI_SLICE, &excite_gpislice_resource),
173 RINIT(0x0100, 0x02ff, XICAP_RESOURCE_FIFO_BLK, &excite_fifomem_resource),
174 RINIT_IRQ(TITAN_IRQ, XICAP_RESOURCE_IRQ)
175};
176
177static struct platform_device xicap_pdev = {
178 .name = XICAP_NAME,
179 .id = XICAP_UNIT,
180 .num_resources = ARRAY_SIZE(xicap_rsrc),
181 .resource = xicap_rsrc
182};
183
184/*
185 * Create a platform device for the GPI port that receives the
186 * image data from the embedded camera.
187 */
188static int __init xicap_devinit(void)
189{
190 unsigned long tend;
191 u32 reg;
192 int retval;
193
194 adjust_resources(xicap_rsrc, ARRAY_SIZE(xicap_rsrc));
195
196 /* Power up the slice and configure it. */
197 reg = titan_readl(CPTC1R);
198 reg &= ~(0x11100 << slice_xicap);
199 titan_writel(reg, CPTC1R);
200
201 /* Enable slice & DLL. */
202 reg= titan_readl(CPRR);
203 reg &= ~(0x00030003 << (slice_xicap * 2));
204 titan_writel(reg, CPRR);
205
206 /* Wait for DLLs to lock */
207 tend = jiffies + DLL_TIMEOUT * HZ;
208 while (time_before(jiffies, tend)) {
209 if (!(~titan_readl(CPDSR) & (0x1 << (slice_xicap * 4))))
210 break;
211 yield();
212 }
213
214 if (~titan_readl(CPDSR) & (0x1 << (slice_xicap * 4))) {
215 printk(KERN_ERR "%s: DLL not locked after %u seconds\n",
216 xicap_pdev.name, DLL_TIMEOUT);
217 retval = -ETIME;
218 } else {
219 /* Register platform device */
220 retval = platform_device_register(&xicap_pdev);
221 }
222
223 return retval;
224}
225
226device_initcall(xicap_devinit);
227#endif /* defined(CONFIG_EXCITE_FCAP_GPI) || defined(CONFIG_EXCITE_FCAP_GPI_MODULE) */
228
229
230
231#if defined(CONFIG_WDT_RM9K_GPI) || defined(CONFIG_WDT_RM9K_GPI_MODULE)
232static struct resource wdt_rsrc[] = {
233 RINIT(0, 0, WDT_RESOURCE_COUNTER, &excite_ctr_resource),
234 RINIT(0x0084, 0x008f, WDT_RESOURCE_REGS, &excite_titan_resource),
235 RINIT_IRQ(TITAN_IRQ, WDT_RESOURCE_IRQ)
236};
237
238static struct platform_device wdt_pdev = {
239 .name = WDT_NAME,
240 .id = -1,
241 .num_resources = ARRAY_SIZE(wdt_rsrc),
242 .resource = wdt_rsrc
243};
244
245/*
246 * Create a platform device for the GPI port that receives the
247 * image data from the embedded camera.
248 */
249static int __init wdt_devinit(void)
250{
251 adjust_resources(wdt_rsrc, ARRAY_SIZE(wdt_rsrc));
252 return platform_device_register(&wdt_pdev);
253}
254
255device_initcall(wdt_devinit);
256#endif /* defined(CONFIG_WDT_RM9K_GPI) || defined(CONFIG_WDT_RM9K_GPI_MODULE) */
257
258
259
260static struct resource excite_nandflash_rsrc[] = {
261 RINIT(0x2000, 0x201f, EXCITE_NANDFLASH_RESOURCE_REGS, &excite_nand_resource)
262};
263
264static struct platform_device excite_nandflash_pdev = {
265 .name = "excite_nand",
266 .id = NAND_UNIT,
267 .num_resources = ARRAY_SIZE(excite_nandflash_rsrc),
268 .resource = excite_nandflash_rsrc
269};
270
271/*
272 * Create a platform device for the access to the nand-flash
273 * port
274 */
275static int __init excite_nandflash_devinit(void)
276{
277 adjust_resources(excite_nandflash_rsrc, ARRAY_SIZE(excite_nandflash_rsrc));
278
279 /* nothing to be done here */
280
281 /* Register platform device */
282 return platform_device_register(&excite_nandflash_pdev);
283}
284
285device_initcall(excite_nandflash_devinit);
286
287
288
289static struct resource iodev_rsrc[] = {
290 RINIT_IRQ(FPGA1_IRQ, IODEV_RESOURCE_IRQ)
291};
292
293static struct platform_device io_pdev = {
294 .name = IODEV_NAME,
295 .id = -1,
296 .num_resources = ARRAY_SIZE(iodev_rsrc),
297 .resource = iodev_rsrc
298};
299
300/*
301 * Create a platform device for the external I/O ports.
302 */
303static int __init io_devinit(void)
304{
305 adjust_resources(iodev_rsrc, ARRAY_SIZE(iodev_rsrc));
306 return platform_device_register(&io_pdev);
307}
308
309device_initcall(io_devinit);
310
311
312
313
314#if defined(CONFIG_RM9K_GE) || defined(CONFIG_RM9K_GE_MODULE)
315static struct resource rm9k_ge_rsrc[] = {
316 RINIT(0x2200, 0x27ff, RM9K_GE_RESOURCE_MAC, &excite_titan_resource),
317 RINIT(0x1800, 0x1fff, RM9K_GE_RESOURCE_MSTAT, &excite_titan_resource),
318 RINIT(0x2000, 0x212f, RM9K_GE_RESOURCE_PKTPROC, &excite_titan_resource),
319 RINIT(0x5140, 0x5227, RM9K_GE_RESOURCE_XDMA, &excite_titan_resource),
320 RINIT(0x4870, 0x489f, RM9K_GE_RESOURCE_FIFO_RX, &excite_titan_resource),
321 RINIT(0x494c, 0x4957, RM9K_GE_RESOURCE_FIFO_TX, &excite_titan_resource),
322 RINIT(0x0000, 0x007f, RM9K_GE_RESOURCE_FIFOMEM_RX, &excite_fifomem_resource),
323 RINIT(0x0080, 0x00ff, RM9K_GE_RESOURCE_FIFOMEM_TX, &excite_fifomem_resource),
324 RINIT(0x0180, 0x019f, RM9K_GE_RESOURCE_PHY, &excite_titan_resource),
325 RINIT(0x0000, 0x03ff, RM9K_GE_RESOURCE_DMADESC_RX, &excite_scram_resource),
326 RINIT(0x0400, 0x07ff, RM9K_GE_RESOURCE_DMADESC_TX, &excite_scram_resource),
327 RINIT(slice_eth, slice_eth, RM9K_GE_RESOURCE_GPI_SLICE, &excite_gpislice_resource),
328 RINIT(0, 0, RM9K_GE_RESOURCE_MDIO_CHANNEL, &excite_mdio_channel_resource),
329 RINIT_IRQ(TITAN_IRQ, RM9K_GE_RESOURCE_IRQ_MAIN),
330 RINIT_IRQ(PHY_IRQ, RM9K_GE_RESOURCE_IRQ_PHY)
331};
332
333static struct platform_device rm9k_ge_pdev = {
334 .name = RM9K_GE_NAME,
335 .id = RM9K_GE_UNIT,
336 .num_resources = ARRAY_SIZE(rm9k_ge_rsrc),
337 .resource = rm9k_ge_rsrc
338};
339
340
341
342/*
343 * Create a platform device for the Ethernet port.
344 */
345static int __init rm9k_ge_devinit(void)
346{
347 u32 reg;
348
349 adjust_resources(rm9k_ge_rsrc, ARRAY_SIZE(rm9k_ge_rsrc));
350
351 /* Power up the slice and configure it. */
352 reg = titan_readl(CPTC1R);
353 reg &= ~(0x11000 << slice_eth);
354 reg |= 0x100 << slice_eth;
355 titan_writel(reg, CPTC1R);
356
357 /* Take the MAC out of reset, reset the DLLs. */
358 reg = titan_readl(CPRR);
359 reg &= ~(0x00030000 << (slice_eth * 2));
360 reg |= 0x3 << (slice_eth * 2);
361 titan_writel(reg, CPRR);
362
363 return platform_device_register(&rm9k_ge_pdev);
364}
365
366device_initcall(rm9k_ge_devinit);
367#endif /* defined(CONFIG_RM9K_GE) || defined(CONFIG_RM9K_GE_MODULE) */
368
369
370
371static int __init excite_setup_devs(void)
372{
373 int res;
374 u32 reg;
375
376 /* Enable xdma and fifo interrupts */
377 reg = titan_readl(0x0050);
378 titan_writel(reg | 0x18000000, 0x0050);
379
380 res = request_resource(&iomem_resource, &excite_titan_resource);
381 if (res)
382 return res;
383 res = request_resource(&iomem_resource, &excite_scram_resource);
384 if (res)
385 return res;
386 res = request_resource(&iomem_resource, &excite_fpga_resource);
387 if (res)
388 return res;
389 res = request_resource(&iomem_resource, &excite_nand_resource);
390 if (res)
391 return res;
392 excite_fpga_resource.flags = excite_fpga_resource.parent->flags &
393 ( IORESOURCE_IO | IORESOURCE_MEM
394 | IORESOURCE_IRQ | IORESOURCE_DMA);
395 excite_nand_resource.flags = excite_nand_resource.parent->flags &
396 ( IORESOURCE_IO | IORESOURCE_MEM
397 | IORESOURCE_IRQ | IORESOURCE_DMA);
398
399 return 0;
400}
401
402arch_initcall(excite_setup_devs);
403
diff --git a/arch/mips/basler/excite/excite_iodev.c b/arch/mips/basler/excite/excite_iodev.c
deleted file mode 100644
index 938b1d0b7652..000000000000
--- a/arch/mips/basler/excite/excite_iodev.c
+++ /dev/null
@@ -1,178 +0,0 @@
1/*
2 * Copyright (C) 2005 by Basler Vision Technologies AG
3 * Author: Thomas Koeller <thomas.koeller@baslerweb.com>
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 */
19
20#include <linux/compiler.h>
21#include <linux/init.h>
22#include <linux/module.h>
23#include <linux/sched.h>
24#include <linux/wait.h>
25#include <linux/poll.h>
26#include <linux/interrupt.h>
27#include <linux/platform_device.h>
28#include <linux/miscdevice.h>
29#include <linux/smp_lock.h>
30
31#include "excite_iodev.h"
32
33
34
35static const struct resource *iodev_get_resource(struct platform_device *, const char *, unsigned int);
36static int __init iodev_probe(struct platform_device *);
37static int __exit iodev_remove(struct platform_device *);
38static int iodev_open(struct inode *, struct file *);
39static int iodev_release(struct inode *, struct file *);
40static ssize_t iodev_read(struct file *, char __user *, size_t s, loff_t *);
41static unsigned int iodev_poll(struct file *, struct poll_table_struct *);
42static irqreturn_t iodev_irqhdl(int, void *);
43
44
45
46static const char iodev_name[] = "iodev";
47static unsigned int iodev_irq;
48static DECLARE_WAIT_QUEUE_HEAD(wq);
49
50
51
52static const struct file_operations fops =
53{
54 .owner = THIS_MODULE,
55 .open = iodev_open,
56 .release = iodev_release,
57 .read = iodev_read,
58 .poll = iodev_poll
59};
60
61static struct miscdevice miscdev =
62{
63 .minor = MISC_DYNAMIC_MINOR,
64 .name = iodev_name,
65 .fops = &fops
66};
67
68static struct platform_driver iodev_driver = {
69 .driver = {
70 .name = iodev_name,
71 .owner = THIS_MODULE,
72 },
73 .probe = iodev_probe,
74 .remove = __devexit_p(iodev_remove),
75};
76
77
78
79static const struct resource *
80iodev_get_resource(struct platform_device *pdv, const char *name,
81 unsigned int type)
82{
83 char buf[80];
84 if (snprintf(buf, sizeof buf, "%s_0", name) >= sizeof buf)
85 return NULL;
86 return platform_get_resource_byname(pdv, type, buf);
87}
88
89
90
91/* No hotplugging on the platform bus - use __init */
92static int __init iodev_probe(struct platform_device *dev)
93{
94 const struct resource * const ri =
95 iodev_get_resource(dev, IODEV_RESOURCE_IRQ, IORESOURCE_IRQ);
96
97 if (unlikely(!ri))
98 return -ENXIO;
99
100 iodev_irq = ri->start;
101 return misc_register(&miscdev);
102}
103
104
105
106static int __exit iodev_remove(struct platform_device *dev)
107{
108 return misc_deregister(&miscdev);
109}
110
111static int iodev_open(struct inode *i, struct file *f)
112{
113 int ret;
114
115 ret = request_irq(iodev_irq, iodev_irqhdl, IRQF_DISABLED,
116 iodev_name, &miscdev);
117
118 return ret;
119}
120
121static int iodev_release(struct inode *i, struct file *f)
122{
123 free_irq(iodev_irq, &miscdev);
124 return 0;
125}
126
127
128
129
130static ssize_t
131iodev_read(struct file *f, char __user *d, size_t s, loff_t *o)
132{
133 ssize_t ret;
134 DEFINE_WAIT(w);
135
136 prepare_to_wait(&wq, &w, TASK_INTERRUPTIBLE);
137 if (!signal_pending(current))
138 schedule();
139 ret = signal_pending(current) ? -ERESTARTSYS : 0;
140 finish_wait(&wq, &w);
141 return ret;
142}
143
144
145static unsigned int iodev_poll(struct file *f, struct poll_table_struct *p)
146{
147 poll_wait(f, &wq, p);
148 return POLLOUT | POLLWRNORM;
149}
150
151static irqreturn_t iodev_irqhdl(int irq, void *ctxt)
152{
153 wake_up(&wq);
154
155 return IRQ_HANDLED;
156}
157
158static int __init iodev_init_module(void)
159{
160 return platform_driver_register(&iodev_driver);
161}
162
163
164
165static void __exit iodev_cleanup_module(void)
166{
167 platform_driver_unregister(&iodev_driver);
168}
169
170module_init(iodev_init_module);
171module_exit(iodev_cleanup_module);
172
173
174
175MODULE_AUTHOR("Thomas Koeller <thomas.koeller@baslerweb.com>");
176MODULE_DESCRIPTION("Basler eXcite i/o interrupt handler");
177MODULE_VERSION("0.0");
178MODULE_LICENSE("GPL");
diff --git a/arch/mips/basler/excite/excite_iodev.h b/arch/mips/basler/excite/excite_iodev.h
deleted file mode 100644
index cbfbb5d2ee62..000000000000
--- a/arch/mips/basler/excite/excite_iodev.h
+++ /dev/null
@@ -1,10 +0,0 @@
1#ifndef __EXCITE_IODEV_H__
2#define __EXCITE_IODEV_H__
3
4/* Device name */
5#define IODEV_NAME "iodev"
6
7/* Resource names */
8#define IODEV_RESOURCE_IRQ "excite_iodev_irq"
9
10#endif /* __EXCITE_IODEV_H__ */
diff --git a/arch/mips/basler/excite/excite_irq.c b/arch/mips/basler/excite/excite_irq.c
deleted file mode 100644
index 934e0a6b1011..000000000000
--- a/arch/mips/basler/excite/excite_irq.c
+++ /dev/null
@@ -1,122 +0,0 @@
1/*
2 * Copyright (C) by Basler Vision Technologies AG
3 * Author: Thomas Koeller <thomas.koeller@baslereb.com>
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 */
19
20#include <linux/errno.h>
21#include <linux/init.h>
22#include <linux/kernel_stat.h>
23#include <linux/module.h>
24#include <linux/signal.h>
25#include <linux/sched.h>
26#include <linux/types.h>
27#include <linux/interrupt.h>
28#include <linux/ioport.h>
29#include <linux/timex.h>
30#include <linux/slab.h>
31#include <linux/random.h>
32#include <linux/bitops.h>
33#include <asm/bootinfo.h>
34#include <asm/io.h>
35#include <asm/irq.h>
36#include <asm/irq_cpu.h>
37#include <asm/mipsregs.h>
38#include <asm/system.h>
39#include <asm/rm9k-ocd.h>
40
41#include <excite.h>
42
43extern asmlinkage void excite_handle_int(void);
44
45/*
46 * Initialize the interrupt handler
47 */
48void __init arch_init_irq(void)
49{
50 mips_cpu_irq_init();
51 rm7k_cpu_irq_init();
52 rm9k_cpu_irq_init();
53}
54
55asmlinkage void plat_irq_dispatch(void)
56{
57 const u32
58 interrupts = read_c0_cause() >> 8,
59 mask = ((read_c0_status() >> 8) & 0x000000ff) |
60 (read_c0_intcontrol() & 0x0000ff00),
61 pending = interrupts & mask;
62 u32 msgintflags, msgintmask, msgint;
63
64 /* process timer interrupt */
65 if (pending & (1 << TIMER_IRQ)) {
66 do_IRQ(TIMER_IRQ);
67 return;
68 }
69
70 /* Process PCI interrupts */
71#if USB_IRQ < 10
72 msgintflags = ocd_readl(INTP0Status0 + (USB_MSGINT / 0x20 * 0x10));
73 msgintmask = ocd_readl(INTP0Mask0 + (USB_MSGINT / 0x20 * 0x10));
74 msgint = msgintflags & msgintmask & (0x1 << (USB_MSGINT % 0x20));
75 if ((pending & (1 << USB_IRQ)) && msgint) {
76#else
77 if (pending & (1 << USB_IRQ)) {
78#endif
79 do_IRQ(USB_IRQ);
80 return;
81 }
82
83 /* Process TITAN interrupts */
84 msgintflags = ocd_readl(INTP0Status0 + (TITAN_MSGINT / 0x20 * 0x10));
85 msgintmask = ocd_readl(INTP0Mask0 + (TITAN_MSGINT / 0x20 * 0x10));
86 msgint = msgintflags & msgintmask & (0x1 << (TITAN_MSGINT % 0x20));
87 if ((pending & (1 << TITAN_IRQ)) && msgint) {
88 ocd_writel(msgint, INTP0Clear0 + (TITAN_MSGINT / 0x20 * 0x10));
89 do_IRQ(TITAN_IRQ);
90 return;
91 }
92
93 /* Process FPGA line #0 interrupts */
94 msgintflags = ocd_readl(INTP0Status0 + (FPGA0_MSGINT / 0x20 * 0x10));
95 msgintmask = ocd_readl(INTP0Mask0 + (FPGA0_MSGINT / 0x20 * 0x10));
96 msgint = msgintflags & msgintmask & (0x1 << (FPGA0_MSGINT % 0x20));
97 if ((pending & (1 << FPGA0_IRQ)) && msgint) {
98 do_IRQ(FPGA0_IRQ);
99 return;
100 }
101
102 /* Process FPGA line #1 interrupts */
103 msgintflags = ocd_readl(INTP0Status0 + (FPGA1_MSGINT / 0x20 * 0x10));
104 msgintmask = ocd_readl(INTP0Mask0 + (FPGA1_MSGINT / 0x20 * 0x10));
105 msgint = msgintflags & msgintmask & (0x1 << (FPGA1_MSGINT % 0x20));
106 if ((pending & (1 << FPGA1_IRQ)) && msgint) {
107 do_IRQ(FPGA1_IRQ);
108 return;
109 }
110
111 /* Process PHY interrupts */
112 msgintflags = ocd_readl(INTP0Status0 + (PHY_MSGINT / 0x20 * 0x10));
113 msgintmask = ocd_readl(INTP0Mask0 + (PHY_MSGINT / 0x20 * 0x10));
114 msgint = msgintflags & msgintmask & (0x1 << (PHY_MSGINT % 0x20));
115 if ((pending & (1 << PHY_IRQ)) && msgint) {
116 do_IRQ(PHY_IRQ);
117 return;
118 }
119
120 /* Process spurious interrupts */
121 spurious_interrupt();
122}
diff --git a/arch/mips/basler/excite/excite_procfs.c b/arch/mips/basler/excite/excite_procfs.c
deleted file mode 100644
index 08923e6825b5..000000000000
--- a/arch/mips/basler/excite/excite_procfs.c
+++ /dev/null
@@ -1,92 +0,0 @@
1/*
2 * Copyright (C) 2004, 2005 by Basler Vision Technologies AG
3 * Author: Thomas Koeller <thomas.koeller@baslerweb.com>
4 *
5 * Procfs support for Basler eXcite
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 */
21#include <linux/module.h>
22#include <linux/proc_fs.h>
23#include <linux/seq_file.h>
24#include <linux/stat.h>
25#include <asm/page.h>
26#include <asm/io.h>
27#include <asm/system.h>
28#include <asm/rm9k-ocd.h>
29
30#include <excite.h>
31
32static int excite_unit_id_proc_show(struct seq_file *m, void *v)
33{
34 seq_printf(m, "%06x", unit_id);
35 return 0;
36}
37
38static int excite_unit_id_proc_open(struct inode *inode, struct file *file)
39{
40 return single_open(file, excite_unit_id_proc_show, NULL);
41}
42
43static const struct file_operations excite_unit_id_proc_fops = {
44 .owner = THIS_MODULE,
45 .open = excite_unit_id_proc_open,
46 .read = seq_read,
47 .llseek = seq_lseek,
48 .release = single_release,
49};
50
51static int
52excite_bootrom_read(char *page, char **start, off_t off, int count,
53 int *eof, void *data)
54{
55 void __iomem * src;
56
57 if (off >= EXCITE_SIZE_BOOTROM) {
58 *eof = 1;
59 return 0;
60 }
61
62 if ((off + count) > EXCITE_SIZE_BOOTROM)
63 count = EXCITE_SIZE_BOOTROM - off;
64
65 src = ioremap(EXCITE_PHYS_BOOTROM + off, count);
66 if (src) {
67 memcpy_fromio(page, src, count);
68 iounmap(src);
69 *start = page;
70 } else {
71 count = -ENOMEM;
72 }
73
74 return count;
75}
76
77void excite_procfs_init(void)
78{
79 /* Create & populate /proc/excite */
80 struct proc_dir_entry * const pdir = proc_mkdir("excite", NULL);
81 if (pdir) {
82 struct proc_dir_entry * e;
83
84 e = proc_create("unit_id", S_IRUGO, pdir,
85 &excite_unit_id_proc_fops);
86 if (e) e->size = 6;
87
88 e = create_proc_read_entry("bootrom", S_IRUGO, pdir,
89 excite_bootrom_read, NULL);
90 if (e) e->size = EXCITE_SIZE_BOOTROM;
91 }
92}
diff --git a/arch/mips/basler/excite/excite_prom.c b/arch/mips/basler/excite/excite_prom.c
deleted file mode 100644
index 68d8bc597e34..000000000000
--- a/arch/mips/basler/excite/excite_prom.c
+++ /dev/null
@@ -1,144 +0,0 @@
1/*
2 * Copyright (C) 2004, 2005 by Thomas Koeller (thomas.koeller@baslerweb.com)
3 * Based on the PMC-Sierra Yosemite board support by Ralf Baechle and
4 * Manish Lachwani.
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 */
20
21#include <linux/init.h>
22#include <linux/sched.h>
23#include <linux/mm.h>
24#include <linux/delay.h>
25#include <linux/smp.h>
26#include <linux/module.h>
27#include <asm/io.h>
28#include <asm/pgtable.h>
29#include <asm/processor.h>
30#include <asm/reboot.h>
31#include <asm/system.h>
32#include <asm/bootinfo.h>
33#include <asm/string.h>
34
35#include <excite.h>
36
37/* This struct is used by Redboot to pass arguments to the kernel */
38typedef struct
39{
40 char *name;
41 char *val;
42} t_env_var;
43
44struct parmblock {
45 t_env_var memsize;
46 t_env_var modetty0;
47 t_env_var ethaddr;
48 t_env_var env_end;
49 char *argv[2];
50 char text[0];
51};
52
53static unsigned int prom_argc;
54static const char ** prom_argv;
55static const t_env_var * prom_env;
56
57static void prom_halt(void) __attribute__((noreturn));
58static void prom_exit(void) __attribute__((noreturn));
59
60
61
62const char *get_system_type(void)
63{
64 return "Basler eXcite";
65}
66
67/*
68 * Halt the system
69 */
70static void prom_halt(void)
71{
72 printk(KERN_NOTICE "\n** System halted.\n");
73 while (1)
74 asm volatile (
75 "\t.set\tmips3\n"
76 "\twait\n"
77 "\t.set\tmips0\n"
78 );
79}
80
81/*
82 * Reset the CPU and re-enter Redboot
83 */
84static void prom_exit(void)
85{
86 unsigned int i;
87 volatile unsigned char * const flg =
88 (volatile unsigned char *) (EXCITE_ADDR_FPGA + EXCITE_FPGA_DPR);
89
90 /* Clear the watchdog reset flag, set the reboot flag */
91 *flg &= ~0x01;
92 *flg |= 0x80;
93
94 for (i = 0; i < 10; i++) {
95 *(volatile unsigned char *) (EXCITE_ADDR_FPGA + EXCITE_FPGA_SYSCTL) = 0x02;
96 iob();
97 mdelay(1000);
98 }
99
100 printk(KERN_NOTICE "Reset failed\n");
101 prom_halt();
102}
103
104static const char __init *prom_getenv(char *name)
105{
106 const t_env_var * p;
107 for (p = prom_env; p->name != NULL; p++)
108 if(strcmp(name, p->name) == 0)
109 break;
110 return p->val;
111}
112
113/*
114 * Init routine which accepts the variables from Redboot
115 */
116void __init prom_init(void)
117{
118 const struct parmblock * const pb = (struct parmblock *) fw_arg2;
119
120 prom_argc = fw_arg0;
121 prom_argv = (const char **) fw_arg1;
122 prom_env = &pb->memsize;
123
124 /* Callbacks for halt, restart */
125 _machine_restart = (void (*)(char *)) prom_exit;
126 _machine_halt = prom_halt;
127
128#ifdef CONFIG_32BIT
129 /* copy command line */
130 strcpy(arcs_cmdline, prom_argv[1]);
131 memsize = simple_strtol(prom_getenv("memsize"), NULL, 16);
132 strcpy(modetty, prom_getenv("modetty0"));
133#endif /* CONFIG_32BIT */
134
135#ifdef CONFIG_64BIT
136# error 64 bit support not implemented
137#endif /* CONFIG_64BIT */
138}
139
140/* This is called from free_initmem(), so we need to provide it */
141void __init prom_free_prom_memory(void)
142{
143 /* Nothing to do */
144}
diff --git a/arch/mips/basler/excite/excite_setup.c b/arch/mips/basler/excite/excite_setup.c
deleted file mode 100644
index d66b3b8edf2a..000000000000
--- a/arch/mips/basler/excite/excite_setup.c
+++ /dev/null
@@ -1,302 +0,0 @@
1/*
2 * Copyright (C) 2004, 2005 by Basler Vision Technologies AG
3 * Author: Thomas Koeller <thomas.koeller@baslerweb.com>
4 * Based on the PMC-Sierra Yosemite board support by Ralf Baechle and
5 * Manish Lachwani.
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 */
21
22#include <linux/types.h>
23#include <linux/kernel.h>
24#include <linux/module.h>
25#include <linux/string.h>
26#include <linux/tty.h>
27#include <linux/serial_core.h>
28#include <linux/serial.h>
29#include <linux/serial_8250.h>
30#include <linux/ioport.h>
31#include <linux/spinlock.h>
32#include <asm/bootinfo.h>
33#include <asm/mipsregs.h>
34#include <asm/pgtable-32.h>
35#include <asm/io.h>
36#include <asm/time.h>
37#include <asm/rm9k-ocd.h>
38
39#include <excite.h>
40
41#define TITAN_UART_CLK 25000000
42
43#if 1
44/* normal serial port assignment */
45#define REGBASE_SER0 0x0208
46#define REGBASE_SER1 0x0238
47#define MASK_SER0 0x1
48#define MASK_SER1 0x2
49#else
50/* serial ports swapped */
51#define REGBASE_SER0 0x0238
52#define REGBASE_SER1 0x0208
53#define MASK_SER0 0x2
54#define MASK_SER1 0x1
55#endif
56
57unsigned long memsize;
58char modetty[30];
59unsigned int titan_irq = TITAN_IRQ;
60static void __iomem * ctl_regs;
61u32 unit_id;
62
63volatile void __iomem * const ocd_base = (void *) (EXCITE_ADDR_OCD);
64volatile void __iomem * const titan_base = (void *) (EXCITE_ADDR_TITAN);
65
66/* Protect access to shared GPI registers */
67DEFINE_SPINLOCK(titan_lock);
68int titan_irqflags;
69
70
71/*
72 * The eXcite platform uses the alternate timer interrupt
73 *
74 * Fixme: At the time of this writing cevt-r4k.c doesn't yet know about how
75 * to handle the alternate timer interrupt of the RM9000.
76 */
77void __init plat_time_init(void)
78{
79 const u32 modebit5 = ocd_readl(0x00e4);
80 unsigned int mult = ((modebit5 >> 11) & 0x1f) + 2;
81 unsigned int div = ((modebit5 >> 16) & 0x1f) + 2;
82
83 if (div == 33)
84 div = 1;
85 mips_hpt_frequency = EXCITE_CPU_EXT_CLOCK * mult / div / 2;
86}
87
88static int __init excite_init_console(void)
89{
90#if defined(CONFIG_SERIAL_8250)
91 static __initdata char serr[] =
92 KERN_ERR "Serial port #%u setup failed\n";
93 struct uart_port up;
94
95 /* Take the DUART out of reset */
96 titan_writel(0x00ff1cff, CPRR);
97
98#if (CONFIG_SERIAL_8250_NR_UARTS > 1)
99 /* Enable both ports */
100 titan_writel(MASK_SER0 | MASK_SER1, UACFG);
101#else
102 /* Enable port #0 only */
103 titan_writel(MASK_SER0, UACFG);
104#endif
105
106 /*
107 * Set up serial port #0. Do not use autodetection; the result is
108 * not what we want.
109 */
110 memset(&up, 0, sizeof(up));
111 up.membase = (char *) titan_addr(REGBASE_SER0);
112 up.irq = TITAN_IRQ;
113 up.uartclk = TITAN_UART_CLK;
114 up.regshift = 0;
115 up.iotype = UPIO_RM9000;
116 up.type = PORT_RM9000;
117 up.flags = UPF_SHARE_IRQ;
118 up.line = 0;
119 if (early_serial_setup(&up))
120 printk(serr, up.line);
121
122#if CONFIG_SERIAL_8250_NR_UARTS > 1
123 /* And now for port #1. */
124 up.membase = (char *) titan_addr(REGBASE_SER1);
125 up.line = 1;
126 if (early_serial_setup(&up))
127 printk(serr, up.line);
128#endif /* CONFIG_SERIAL_8250_NR_UARTS > 1 */
129#else
130 /* Leave the DUART in reset */
131 titan_writel(0x00ff3cff, CPRR);
132#endif /* defined(CONFIG_SERIAL_8250) */
133
134 return 0;
135}
136
137static int __init excite_platform_init(void)
138{
139 unsigned int i;
140 unsigned char buf[3];
141 u8 reg;
142 void __iomem * dpr;
143
144 /* BIU buffer allocations */
145 ocd_writel(8, CPURSLMT); /* CPU */
146 titan_writel(4, CPGRWL); /* GPI / Ethernet */
147
148 /* Map control registers located in FPGA */
149 ctl_regs = ioremap_nocache(EXCITE_PHYS_FPGA + EXCITE_FPGA_SYSCTL, 16);
150 if (!ctl_regs)
151 panic("eXcite: failed to map platform control registers\n");
152 memcpy_fromio(buf, ctl_regs + 2, ARRAY_SIZE(buf));
153 unit_id = buf[0] | (buf[1] << 8) | (buf[2] << 16);
154
155 /* Clear the reboot flag */
156 dpr = ioremap_nocache(EXCITE_PHYS_FPGA + EXCITE_FPGA_DPR, 1);
157 reg = __raw_readb(dpr);
158 __raw_writeb(reg & 0x7f, dpr);
159 iounmap(dpr);
160
161 /* Interrupt controller setup */
162 for (i = INTP0Status0; i < INTP0Status0 + 0x80; i += 0x10) {
163 ocd_writel(0x00000000, i + 0x04);
164 ocd_writel(0xffffffff, i + 0x0c);
165 }
166 ocd_writel(0x2, NMICONFIG);
167
168 ocd_writel(0x1 << (TITAN_MSGINT % 0x20),
169 INTP0Mask0 + (0x10 * (TITAN_MSGINT / 0x20)));
170 ocd_writel((0x1 << (FPGA0_MSGINT % 0x20))
171 | ocd_readl(INTP0Mask0 + (0x10 * (FPGA0_MSGINT / 0x20))),
172 INTP0Mask0 + (0x10 * (FPGA0_MSGINT / 0x20)));
173 ocd_writel((0x1 << (FPGA1_MSGINT % 0x20))
174 | ocd_readl(INTP0Mask0 + (0x10 * (FPGA1_MSGINT / 0x20))),
175 INTP0Mask0 + (0x10 * (FPGA1_MSGINT / 0x20)));
176 ocd_writel((0x1 << (PHY_MSGINT % 0x20))
177 | ocd_readl(INTP0Mask0 + (0x10 * (PHY_MSGINT / 0x20))),
178 INTP0Mask0 + (0x10 * (PHY_MSGINT / 0x20)));
179#if USB_IRQ < 10
180 ocd_writel((0x1 << (USB_MSGINT % 0x20))
181 | ocd_readl(INTP0Mask0 + (0x10 * (USB_MSGINT / 0x20))),
182 INTP0Mask0 + (0x10 * (USB_MSGINT / 0x20)));
183#endif
184 /* Enable the packet FIFO, XDMA and XDMA arbiter */
185 titan_writel(0x00ff18ff, CPRR);
186
187 /*
188 * Set up the PADMUX. Power down all ethernet slices,
189 * they will be powered up and configured at device startup.
190 */
191 titan_writel(0x00878206, CPTC1R);
192 titan_writel(0x00001100, CPTC0R); /* latch PADMUX, enable WCIMODE */
193
194 /* Reset and enable the FIFO block */
195 titan_writel(0x00000001, SDRXFCIE);
196 titan_writel(0x00000001, SDTXFCIE);
197 titan_writel(0x00000100, SDRXFCIE);
198 titan_writel(0x00000000, SDTXFCIE);
199
200 /*
201 * Initialize the common interrupt shared by all components of
202 * the GPI/Ethernet subsystem.
203 */
204 titan_writel((EXCITE_PHYS_OCD >> 12), CPCFG0);
205 titan_writel(TITAN_MSGINT, CPCFG1);
206
207 /*
208 * XDMA configuration.
209 * In order for the XDMA to be sharable among multiple drivers,
210 * the setup must be done here in the platform. The reason is that
211 * this setup can only be done while the XDMA is in reset. If this
212 * were done in a driver, it would interrupt all other drivers
213 * using the XDMA.
214 */
215 titan_writel(0x80021dff, GXCFG); /* XDMA reset */
216 titan_writel(0x00000000, CPXCISRA);
217 titan_writel(0x00000000, CPXCISRB); /* clear pending interrupts */
218#if defined(CONFIG_HIGHMEM)
219# error change for HIGHMEM support!
220#else
221 titan_writel(0x00000000, GXDMADRPFX); /* buffer address prefix */
222#endif
223 titan_writel(0, GXDMA_DESCADR);
224
225 for (i = 0x5040; i <= 0x5300; i += 0x0040)
226 titan_writel(0x80080000, i); /* reset channel */
227
228 titan_writel((0x1 << 29) /* no sparse tx descr. */
229 | (0x1 << 28) /* no sparse rx descr. */
230 | (0x1 << 23) | (0x1 << 24) /* descriptor coherency */
231 | (0x1 << 21) | (0x1 << 22) /* data coherency */
232 | (0x1 << 17)
233 | 0x1dff,
234 GXCFG);
235
236#if defined(CONFIG_SMP)
237# error No SMP support
238#else
239 /* All interrupts go to core #0 only. */
240 titan_writel(0x1f007fff, CPDST0A);
241 titan_writel(0x00000000, CPDST0B);
242 titan_writel(0x0000ff3f, CPDST1A);
243 titan_writel(0x00000000, CPDST1B);
244 titan_writel(0x00ffffff, CPXDSTA);
245 titan_writel(0x00000000, CPXDSTB);
246#endif
247
248 /* Enable DUART interrupts, disable everything else. */
249 titan_writel(0x04000000, CPGIG0ER);
250 titan_writel(0x000000c0, CPGIG1ER);
251
252 excite_procfs_init();
253 return 0;
254}
255
256void __init plat_mem_setup(void)
257{
258 volatile u32 * const boot_ocd_base = (u32 *) 0xbf7fc000;
259
260 /* Announce RAM to system */
261 add_memory_region(0x00000000, memsize, BOOT_MEM_RAM);
262
263 /* Set up the peripheral address map */
264 *(boot_ocd_base + (LKB9 / sizeof(u32))) = 0;
265 *(boot_ocd_base + (LKB10 / sizeof(u32))) = 0;
266 *(boot_ocd_base + (LKB11 / sizeof(u32))) = 0;
267 *(boot_ocd_base + (LKB12 / sizeof(u32))) = 0;
268 wmb();
269 *(boot_ocd_base + (LKB0 / sizeof(u32))) = EXCITE_PHYS_OCD >> 4;
270 wmb();
271
272 ocd_writel((EXCITE_PHYS_TITAN >> 4) | 0x1UL, LKB5);
273 ocd_writel(((EXCITE_SIZE_TITAN >> 4) & 0x7fffff00) - 0x100, LKM5);
274 ocd_writel((EXCITE_PHYS_SCRAM >> 4) | 0x1UL, LKB13);
275 ocd_writel(((EXCITE_SIZE_SCRAM >> 4) & 0xffffff00) - 0x100, LKM13);
276
277 /* Local bus slot #0 */
278 ocd_writel(0x00040510, LDP0);
279 ocd_writel((EXCITE_PHYS_BOOTROM >> 4) | 0x1UL, LKB9);
280 ocd_writel(((EXCITE_SIZE_BOOTROM >> 4) & 0x03ffff00) - 0x100, LKM9);
281
282 /* Local bus slot #2 */
283 ocd_writel(0x00000330, LDP2);
284 ocd_writel((EXCITE_PHYS_FPGA >> 4) | 0x1, LKB11);
285 ocd_writel(((EXCITE_SIZE_FPGA >> 4) - 0x100) & 0x03ffff00, LKM11);
286
287 /* Local bus slot #3 */
288 ocd_writel(0x00123413, LDP3);
289 ocd_writel((EXCITE_PHYS_NAND >> 4) | 0x1, LKB12);
290 ocd_writel(((EXCITE_SIZE_NAND >> 4) - 0x100) & 0x03ffff00, LKM12);
291}
292
293
294
295console_initcall(excite_init_console);
296arch_initcall(excite_platform_init);
297
298EXPORT_SYMBOL(titan_lock);
299EXPORT_SYMBOL(titan_irqflags);
300EXPORT_SYMBOL(titan_irq);
301EXPORT_SYMBOL(ocd_base);
302EXPORT_SYMBOL(titan_base);
diff --git a/arch/mips/bcm47xx/gpio.c b/arch/mips/bcm47xx/gpio.c
index 9b798800258c..e4a5ee9c9721 100644
--- a/arch/mips/bcm47xx/gpio.c
+++ b/arch/mips/bcm47xx/gpio.c
@@ -59,4 +59,3 @@ int gpio_to_irq(unsigned gpio)
59 return -EINVAL; 59 return -EINVAL;
60} 60}
61EXPORT_SYMBOL_GPL(gpio_to_irq); 61EXPORT_SYMBOL_GPL(gpio_to_irq);
62
diff --git a/arch/mips/bcm47xx/prom.c b/arch/mips/bcm47xx/prom.c
index fb284c3b2cff..0fa646c5a844 100644
--- a/arch/mips/bcm47xx/prom.c
+++ b/arch/mips/bcm47xx/prom.c
@@ -100,11 +100,11 @@ static __init void prom_init_console(void)
100 100
101static __init void prom_init_cmdline(void) 101static __init void prom_init_cmdline(void)
102{ 102{
103 static char buf[CL_SIZE] __initdata; 103 static char buf[COMMAND_LINE_SIZE] __initdata;
104 104
105 /* Get the kernel command line from CFE */ 105 /* Get the kernel command line from CFE */
106 if (cfe_getenv("LINUX_CMDLINE", buf, CL_SIZE) >= 0) { 106 if (cfe_getenv("LINUX_CMDLINE", buf, COMMAND_LINE_SIZE) >= 0) {
107 buf[CL_SIZE-1] = 0; 107 buf[COMMAND_LINE_SIZE - 1] = 0;
108 strcpy(arcs_cmdline, buf); 108 strcpy(arcs_cmdline, buf);
109 } 109 }
110 110
@@ -112,13 +112,13 @@ static __init void prom_init_cmdline(void)
112 * as CFE is not available anymore later in the boot process. */ 112 * as CFE is not available anymore later in the boot process. */
113 if ((strstr(arcs_cmdline, "console=")) == NULL) { 113 if ((strstr(arcs_cmdline, "console=")) == NULL) {
114 /* Try to read the default serial port used by CFE */ 114 /* Try to read the default serial port used by CFE */
115 if ((cfe_getenv("BOOT_CONSOLE", buf, CL_SIZE) < 0) 115 if ((cfe_getenv("BOOT_CONSOLE", buf, COMMAND_LINE_SIZE) < 0)
116 || (strncmp("uart", buf, 4))) 116 || (strncmp("uart", buf, 4)))
117 /* Default to uart0 */ 117 /* Default to uart0 */
118 strcpy(buf, "uart0"); 118 strcpy(buf, "uart0");
119 119
120 /* Compute the new command line */ 120 /* Compute the new command line */
121 snprintf(arcs_cmdline, CL_SIZE, "%s console=ttyS%c,115200", 121 snprintf(arcs_cmdline, COMMAND_LINE_SIZE, "%s console=ttyS%c,115200",
122 arcs_cmdline, buf[4]); 122 arcs_cmdline, buf[4]);
123 } 123 }
124} 124}
@@ -141,6 +141,14 @@ static __init void prom_init_mem(void)
141 break; 141 break;
142 } 142 }
143 143
144 /* Ignoring the last page when ddr size is 128M. Cached
145 * accesses to last page is causing the processor to prefetch
146 * using address above 128M stepping out of the ddr address
147 * space.
148 */
149 if (mem == 0x8000000)
150 mem -= 0x1000;
151
144 add_memory_region(0, mem, BOOT_MEM_RAM); 152 add_memory_region(0, mem, BOOT_MEM_RAM);
145} 153}
146 154
@@ -155,4 +163,3 @@ void __init prom_init(void)
155void __init prom_free_prom_memory(void) 163void __init prom_free_prom_memory(void)
156{ 164{
157} 165}
158
diff --git a/arch/mips/bcm47xx/setup.c b/arch/mips/bcm47xx/setup.c
index 2f580fa160c9..d442e11625fa 100644
--- a/arch/mips/bcm47xx/setup.c
+++ b/arch/mips/bcm47xx/setup.c
@@ -121,4 +121,3 @@ void __init plat_mem_setup(void)
121 _machine_halt = bcm47xx_machine_halt; 121 _machine_halt = bcm47xx_machine_halt;
122 pm_power_off = bcm47xx_machine_halt; 122 pm_power_off = bcm47xx_machine_halt;
123} 123}
124
diff --git a/arch/mips/bcm47xx/wgt634u.c b/arch/mips/bcm47xx/wgt634u.c
index ef00e7f58c24..74d06965326f 100644
--- a/arch/mips/bcm47xx/wgt634u.c
+++ b/arch/mips/bcm47xx/wgt634u.c
@@ -164,4 +164,3 @@ static int __init wgt634u_init(void)
164} 164}
165 165
166module_init(wgt634u_init); 166module_init(wgt634u_init);
167
diff --git a/arch/mips/bcm63xx/boards/board_bcm963xx.c b/arch/mips/bcm63xx/boards/board_bcm963xx.c
index 05a35cf5963d..8dba8cfb752f 100644
--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
@@ -18,6 +18,7 @@
18#include <asm/addrspace.h> 18#include <asm/addrspace.h>
19#include <bcm63xx_board.h> 19#include <bcm63xx_board.h>
20#include <bcm63xx_cpu.h> 20#include <bcm63xx_cpu.h>
21#include <bcm63xx_dev_uart.h>
21#include <bcm63xx_regs.h> 22#include <bcm63xx_regs.h>
22#include <bcm63xx_io.h> 23#include <bcm63xx_io.h>
23#include <bcm63xx_dev_pci.h> 24#include <bcm63xx_dev_pci.h>
@@ -40,6 +41,7 @@ static struct board_info __initdata board_96338gw = {
40 .name = "96338GW", 41 .name = "96338GW",
41 .expected_cpu_id = 0x6338, 42 .expected_cpu_id = 0x6338,
42 43
44 .has_uart0 = 1,
43 .has_enet0 = 1, 45 .has_enet0 = 1,
44 .enet0 = { 46 .enet0 = {
45 .force_speed_100 = 1, 47 .force_speed_100 = 1,
@@ -82,6 +84,7 @@ static struct board_info __initdata board_96338w = {
82 .name = "96338W", 84 .name = "96338W",
83 .expected_cpu_id = 0x6338, 85 .expected_cpu_id = 0x6338,
84 86
87 .has_uart0 = 1,
85 .has_enet0 = 1, 88 .has_enet0 = 1,
86 .enet0 = { 89 .enet0 = {
87 .force_speed_100 = 1, 90 .force_speed_100 = 1,
@@ -126,6 +129,8 @@ static struct board_info __initdata board_96338w = {
126static struct board_info __initdata board_96345gw2 = { 129static struct board_info __initdata board_96345gw2 = {
127 .name = "96345GW2", 130 .name = "96345GW2",
128 .expected_cpu_id = 0x6345, 131 .expected_cpu_id = 0x6345,
132
133 .has_uart0 = 1,
129}; 134};
130#endif 135#endif
131 136
@@ -137,6 +142,7 @@ static struct board_info __initdata board_96348r = {
137 .name = "96348R", 142 .name = "96348R",
138 .expected_cpu_id = 0x6348, 143 .expected_cpu_id = 0x6348,
139 144
145 .has_uart0 = 1,
140 .has_enet0 = 1, 146 .has_enet0 = 1,
141 .has_pci = 1, 147 .has_pci = 1,
142 148
@@ -180,6 +186,7 @@ static struct board_info __initdata board_96348gw_10 = {
180 .name = "96348GW-10", 186 .name = "96348GW-10",
181 .expected_cpu_id = 0x6348, 187 .expected_cpu_id = 0x6348,
182 188
189 .has_uart0 = 1,
183 .has_enet0 = 1, 190 .has_enet0 = 1,
184 .has_enet1 = 1, 191 .has_enet1 = 1,
185 .has_pci = 1, 192 .has_pci = 1,
@@ -239,6 +246,7 @@ static struct board_info __initdata board_96348gw_11 = {
239 .name = "96348GW-11", 246 .name = "96348GW-11",
240 .expected_cpu_id = 0x6348, 247 .expected_cpu_id = 0x6348,
241 248
249 .has_uart0 = 1,
242 .has_enet0 = 1, 250 .has_enet0 = 1,
243 .has_enet1 = 1, 251 .has_enet1 = 1,
244 .has_pci = 1, 252 .has_pci = 1,
@@ -292,6 +300,7 @@ static struct board_info __initdata board_96348gw = {
292 .name = "96348GW", 300 .name = "96348GW",
293 .expected_cpu_id = 0x6348, 301 .expected_cpu_id = 0x6348,
294 302
303 .has_uart0 = 1,
295 .has_enet0 = 1, 304 .has_enet0 = 1,
296 .has_enet1 = 1, 305 .has_enet1 = 1,
297 .has_pci = 1, 306 .has_pci = 1,
@@ -346,33 +355,53 @@ static struct board_info __initdata board_96348gw = {
346}; 355};
347 356
348static struct board_info __initdata board_FAST2404 = { 357static struct board_info __initdata board_FAST2404 = {
349 .name = "F@ST2404", 358 .name = "F@ST2404",
350 .expected_cpu_id = 0x6348, 359 .expected_cpu_id = 0x6348,
351 360
352 .has_enet0 = 1, 361 .has_uart0 = 1,
353 .has_enet1 = 1, 362 .has_enet0 = 1,
354 .has_pci = 1, 363 .has_enet1 = 1,
364 .has_pci = 1,
355 365
356 .enet0 = { 366 .enet0 = {
357 .has_phy = 1, 367 .has_phy = 1,
358 .use_internal_phy = 1, 368 .use_internal_phy = 1,
359 }, 369 },
360 370
361 .enet1 = { 371 .enet1 = {
362 .force_speed_100 = 1, 372 .force_speed_100 = 1,
363 .force_duplex_full = 1, 373 .force_duplex_full = 1,
364 }, 374 },
365 375
376 .has_ohci0 = 1,
377 .has_pccard = 1,
378 .has_ehci0 = 1,
379};
366 380
367 .has_ohci0 = 1, 381static struct board_info __initdata board_rta1025w_16 = {
368 .has_pccard = 1, 382 .name = "RTA1025W_16",
369 .has_ehci0 = 1, 383 .expected_cpu_id = 0x6348,
384
385 .has_enet0 = 1,
386 .has_enet1 = 1,
387 .has_pci = 1,
388
389 .enet0 = {
390 .has_phy = 1,
391 .use_internal_phy = 1,
392 },
393 .enet1 = {
394 .force_speed_100 = 1,
395 .force_duplex_full = 1,
396 },
370}; 397};
371 398
399
372static struct board_info __initdata board_DV201AMR = { 400static struct board_info __initdata board_DV201AMR = {
373 .name = "DV201AMR", 401 .name = "DV201AMR",
374 .expected_cpu_id = 0x6348, 402 .expected_cpu_id = 0x6348,
375 403
404 .has_uart0 = 1,
376 .has_pci = 1, 405 .has_pci = 1,
377 .has_ohci0 = 1, 406 .has_ohci0 = 1,
378 407
@@ -392,6 +421,7 @@ static struct board_info __initdata board_96348gw_a = {
392 .name = "96348GW-A", 421 .name = "96348GW-A",
393 .expected_cpu_id = 0x6348, 422 .expected_cpu_id = 0x6348,
394 423
424 .has_uart0 = 1,
395 .has_enet0 = 1, 425 .has_enet0 = 1,
396 .has_enet1 = 1, 426 .has_enet1 = 1,
397 .has_pci = 1, 427 .has_pci = 1,
@@ -417,6 +447,7 @@ static struct board_info __initdata board_96358vw = {
417 .name = "96358VW", 447 .name = "96358VW",
418 .expected_cpu_id = 0x6358, 448 .expected_cpu_id = 0x6358,
419 449
450 .has_uart0 = 1,
420 .has_enet0 = 1, 451 .has_enet0 = 1,
421 .has_enet1 = 1, 452 .has_enet1 = 1,
422 .has_pci = 1, 453 .has_pci = 1,
@@ -468,6 +499,7 @@ static struct board_info __initdata board_96358vw2 = {
468 .name = "96358VW2", 499 .name = "96358VW2",
469 .expected_cpu_id = 0x6358, 500 .expected_cpu_id = 0x6358,
470 501
502 .has_uart0 = 1,
471 .has_enet0 = 1, 503 .has_enet0 = 1,
472 .has_enet1 = 1, 504 .has_enet1 = 1,
473 .has_pci = 1, 505 .has_pci = 1,
@@ -515,6 +547,7 @@ static struct board_info __initdata board_AGPFS0 = {
515 .name = "AGPF-S0", 547 .name = "AGPF-S0",
516 .expected_cpu_id = 0x6358, 548 .expected_cpu_id = 0x6358,
517 549
550 .has_uart0 = 1,
518 .has_enet0 = 1, 551 .has_enet0 = 1,
519 .has_enet1 = 1, 552 .has_enet1 = 1,
520 .has_pci = 1, 553 .has_pci = 1,
@@ -532,6 +565,27 @@ static struct board_info __initdata board_AGPFS0 = {
532 .has_ohci0 = 1, 565 .has_ohci0 = 1,
533 .has_ehci0 = 1, 566 .has_ehci0 = 1,
534}; 567};
568
569static struct board_info __initdata board_DWVS0 = {
570 .name = "DWV-S0",
571 .expected_cpu_id = 0x6358,
572
573 .has_enet0 = 1,
574 .has_enet1 = 1,
575 .has_pci = 1,
576
577 .enet0 = {
578 .has_phy = 1,
579 .use_internal_phy = 1,
580 },
581
582 .enet1 = {
583 .force_speed_100 = 1,
584 .force_duplex_full = 1,
585 },
586
587 .has_ohci0 = 1,
588};
535#endif 589#endif
536 590
537/* 591/*
@@ -553,16 +607,88 @@ static const struct board_info __initdata *bcm963xx_boards[] = {
553 &board_FAST2404, 607 &board_FAST2404,
554 &board_DV201AMR, 608 &board_DV201AMR,
555 &board_96348gw_a, 609 &board_96348gw_a,
610 &board_rta1025w_16,
556#endif 611#endif
557 612
558#ifdef CONFIG_BCM63XX_CPU_6358 613#ifdef CONFIG_BCM63XX_CPU_6358
559 &board_96358vw, 614 &board_96358vw,
560 &board_96358vw2, 615 &board_96358vw2,
561 &board_AGPFS0, 616 &board_AGPFS0,
617 &board_DWVS0,
562#endif 618#endif
563}; 619};
564 620
565/* 621/*
622 * Register a sane SPROMv2 to make the on-board
623 * bcm4318 WLAN work
624 */
625#ifdef CONFIG_SSB_PCIHOST
626static struct ssb_sprom bcm63xx_sprom = {
627 .revision = 0x02,
628 .board_rev = 0x17,
629 .country_code = 0x0,
630 .ant_available_bg = 0x3,
631 .pa0b0 = 0x15ae,
632 .pa0b1 = 0xfa85,
633 .pa0b2 = 0xfe8d,
634 .pa1b0 = 0xffff,
635 .pa1b1 = 0xffff,
636 .pa1b2 = 0xffff,
637 .gpio0 = 0xff,
638 .gpio1 = 0xff,
639 .gpio2 = 0xff,
640 .gpio3 = 0xff,
641 .maxpwr_bg = 0x004c,
642 .itssi_bg = 0x00,
643 .boardflags_lo = 0x2848,
644 .boardflags_hi = 0x0000,
645};
646#endif
647
648/*
649 * return board name for /proc/cpuinfo
650 */
651const char *board_get_name(void)
652{
653 return board.name;
654}
655
656/*
657 * register & return a new board mac address
658 */
659static int board_get_mac_address(u8 *mac)
660{
661 u8 *p;
662 int count;
663
664 if (mac_addr_used >= nvram.mac_addr_count) {
665 printk(KERN_ERR PFX "not enough mac address\n");
666 return -ENODEV;
667 }
668
669 memcpy(mac, nvram.mac_addr_base, ETH_ALEN);
670 p = mac + ETH_ALEN - 1;
671 count = mac_addr_used;
672
673 while (count--) {
674 do {
675 (*p)++;
676 if (*p != 0)
677 break;
678 p--;
679 } while (p != mac);
680 }
681
682 if (p == mac) {
683 printk(KERN_ERR PFX "unable to fetch mac address\n");
684 return -ENODEV;
685 }
686
687 mac_addr_used++;
688 return 0;
689}
690
691/*
566 * early init callback, read nvram data from flash and checksum it 692 * early init callback, read nvram data from flash and checksum it
567 */ 693 */
568void __init board_prom_init(void) 694void __init board_prom_init(void)
@@ -660,6 +786,17 @@ void __init board_prom_init(void)
660 } 786 }
661 787
662 bcm_gpio_writel(val, GPIO_MODE_REG); 788 bcm_gpio_writel(val, GPIO_MODE_REG);
789
790 /* Generate MAC address for WLAN and
791 * register our SPROM */
792#ifdef CONFIG_SSB_PCIHOST
793 if (!board_get_mac_address(bcm63xx_sprom.il0mac)) {
794 memcpy(bcm63xx_sprom.et0mac, bcm63xx_sprom.il0mac, ETH_ALEN);
795 memcpy(bcm63xx_sprom.et1mac, bcm63xx_sprom.il0mac, ETH_ALEN);
796 if (ssb_arch_set_fallback_sprom(&bcm63xx_sprom) < 0)
797 printk(KERN_ERR "failed to register fallback SPROM\n");
798 }
799#endif
663} 800}
664 801
665/* 802/*
@@ -677,49 +814,6 @@ void __init board_setup(void)
677 panic("unexpected CPU for bcm963xx board"); 814 panic("unexpected CPU for bcm963xx board");
678} 815}
679 816
680/*
681 * return board name for /proc/cpuinfo
682 */
683const char *board_get_name(void)
684{
685 return board.name;
686}
687
688/*
689 * register & return a new board mac address
690 */
691static int board_get_mac_address(u8 *mac)
692{
693 u8 *p;
694 int count;
695
696 if (mac_addr_used >= nvram.mac_addr_count) {
697 printk(KERN_ERR PFX "not enough mac address\n");
698 return -ENODEV;
699 }
700
701 memcpy(mac, nvram.mac_addr_base, ETH_ALEN);
702 p = mac + ETH_ALEN - 1;
703 count = mac_addr_used;
704
705 while (count--) {
706 do {
707 (*p)++;
708 if (*p != 0)
709 break;
710 p--;
711 } while (p != mac);
712 }
713
714 if (p == mac) {
715 printk(KERN_ERR PFX "unable to fetch mac address\n");
716 return -ENODEV;
717 }
718
719 mac_addr_used++;
720 return 0;
721}
722
723static struct mtd_partition mtd_partitions[] = { 817static struct mtd_partition mtd_partitions[] = {
724 { 818 {
725 .name = "cfe", 819 .name = "cfe",
@@ -751,33 +845,6 @@ static struct platform_device mtd_dev = {
751 }, 845 },
752}; 846};
753 847
754/*
755 * Register a sane SPROMv2 to make the on-board
756 * bcm4318 WLAN work
757 */
758#ifdef CONFIG_SSB_PCIHOST
759static struct ssb_sprom bcm63xx_sprom = {
760 .revision = 0x02,
761 .board_rev = 0x17,
762 .country_code = 0x0,
763 .ant_available_bg = 0x3,
764 .pa0b0 = 0x15ae,
765 .pa0b1 = 0xfa85,
766 .pa0b2 = 0xfe8d,
767 .pa1b0 = 0xffff,
768 .pa1b1 = 0xffff,
769 .pa1b2 = 0xffff,
770 .gpio0 = 0xff,
771 .gpio1 = 0xff,
772 .gpio2 = 0xff,
773 .gpio3 = 0xff,
774 .maxpwr_bg = 0x004c,
775 .itssi_bg = 0x00,
776 .boardflags_lo = 0x2848,
777 .boardflags_hi = 0x0000,
778};
779#endif
780
781static struct gpio_led_platform_data bcm63xx_led_data; 848static struct gpio_led_platform_data bcm63xx_led_data;
782 849
783static struct platform_device bcm63xx_gpio_leds = { 850static struct platform_device bcm63xx_gpio_leds = {
@@ -793,6 +860,12 @@ int __init board_register_devices(void)
793{ 860{
794 u32 val; 861 u32 val;
795 862
863 if (board.has_uart0)
864 bcm63xx_uart_register(0);
865
866 if (board.has_uart1)
867 bcm63xx_uart_register(1);
868
796 if (board.has_pccard) 869 if (board.has_pccard)
797 bcm63xx_pcmcia_register(); 870 bcm63xx_pcmcia_register();
798 871
@@ -807,17 +880,6 @@ int __init board_register_devices(void)
807 if (board.has_dsp) 880 if (board.has_dsp)
808 bcm63xx_dsp_register(&board.dsp); 881 bcm63xx_dsp_register(&board.dsp);
809 882
810 /* Generate MAC address for WLAN and
811 * register our SPROM */
812#ifdef CONFIG_SSB_PCIHOST
813 if (!board_get_mac_address(bcm63xx_sprom.il0mac)) {
814 memcpy(bcm63xx_sprom.et0mac, bcm63xx_sprom.il0mac, ETH_ALEN);
815 memcpy(bcm63xx_sprom.et1mac, bcm63xx_sprom.il0mac, ETH_ALEN);
816 if (ssb_arch_set_fallback_sprom(&bcm63xx_sprom) < 0)
817 printk(KERN_ERR "failed to register fallback SPROM\n");
818 }
819#endif
820
821 /* read base address of boot chip select (0) */ 883 /* read base address of boot chip select (0) */
822 if (BCMCPU_IS_6345()) 884 if (BCMCPU_IS_6345())
823 val = 0x1fc00000; 885 val = 0x1fc00000;
@@ -837,4 +899,3 @@ int __init board_register_devices(void)
837 899
838 return 0; 900 return 0;
839} 901}
840
diff --git a/arch/mips/bcm63xx/cpu.c b/arch/mips/bcm63xx/cpu.c
index 70378bb5e3f9..cbb7caf86d77 100644
--- a/arch/mips/bcm63xx/cpu.c
+++ b/arch/mips/bcm63xx/cpu.c
@@ -36,6 +36,7 @@ static const unsigned long bcm96338_regs_base[] = {
36 [RSET_TIMER] = BCM_6338_TIMER_BASE, 36 [RSET_TIMER] = BCM_6338_TIMER_BASE,
37 [RSET_WDT] = BCM_6338_WDT_BASE, 37 [RSET_WDT] = BCM_6338_WDT_BASE,
38 [RSET_UART0] = BCM_6338_UART0_BASE, 38 [RSET_UART0] = BCM_6338_UART0_BASE,
39 [RSET_UART1] = BCM_6338_UART1_BASE,
39 [RSET_GPIO] = BCM_6338_GPIO_BASE, 40 [RSET_GPIO] = BCM_6338_GPIO_BASE,
40 [RSET_SPI] = BCM_6338_SPI_BASE, 41 [RSET_SPI] = BCM_6338_SPI_BASE,
41 [RSET_OHCI0] = BCM_6338_OHCI0_BASE, 42 [RSET_OHCI0] = BCM_6338_OHCI0_BASE,
@@ -72,6 +73,7 @@ static const unsigned long bcm96345_regs_base[] = {
72 [RSET_TIMER] = BCM_6345_TIMER_BASE, 73 [RSET_TIMER] = BCM_6345_TIMER_BASE,
73 [RSET_WDT] = BCM_6345_WDT_BASE, 74 [RSET_WDT] = BCM_6345_WDT_BASE,
74 [RSET_UART0] = BCM_6345_UART0_BASE, 75 [RSET_UART0] = BCM_6345_UART0_BASE,
76 [RSET_UART1] = BCM_6345_UART1_BASE,
75 [RSET_GPIO] = BCM_6345_GPIO_BASE, 77 [RSET_GPIO] = BCM_6345_GPIO_BASE,
76 [RSET_SPI] = BCM_6345_SPI_BASE, 78 [RSET_SPI] = BCM_6345_SPI_BASE,
77 [RSET_UDC0] = BCM_6345_UDC0_BASE, 79 [RSET_UDC0] = BCM_6345_UDC0_BASE,
@@ -109,6 +111,7 @@ static const unsigned long bcm96348_regs_base[] = {
109 [RSET_TIMER] = BCM_6348_TIMER_BASE, 111 [RSET_TIMER] = BCM_6348_TIMER_BASE,
110 [RSET_WDT] = BCM_6348_WDT_BASE, 112 [RSET_WDT] = BCM_6348_WDT_BASE,
111 [RSET_UART0] = BCM_6348_UART0_BASE, 113 [RSET_UART0] = BCM_6348_UART0_BASE,
114 [RSET_UART1] = BCM_6348_UART1_BASE,
112 [RSET_GPIO] = BCM_6348_GPIO_BASE, 115 [RSET_GPIO] = BCM_6348_GPIO_BASE,
113 [RSET_SPI] = BCM_6348_SPI_BASE, 116 [RSET_SPI] = BCM_6348_SPI_BASE,
114 [RSET_OHCI0] = BCM_6348_OHCI0_BASE, 117 [RSET_OHCI0] = BCM_6348_OHCI0_BASE,
@@ -150,6 +153,7 @@ static const unsigned long bcm96358_regs_base[] = {
150 [RSET_TIMER] = BCM_6358_TIMER_BASE, 153 [RSET_TIMER] = BCM_6358_TIMER_BASE,
151 [RSET_WDT] = BCM_6358_WDT_BASE, 154 [RSET_WDT] = BCM_6358_WDT_BASE,
152 [RSET_UART0] = BCM_6358_UART0_BASE, 155 [RSET_UART0] = BCM_6358_UART0_BASE,
156 [RSET_UART1] = BCM_6358_UART1_BASE,
153 [RSET_GPIO] = BCM_6358_GPIO_BASE, 157 [RSET_GPIO] = BCM_6358_GPIO_BASE,
154 [RSET_SPI] = BCM_6358_SPI_BASE, 158 [RSET_SPI] = BCM_6358_SPI_BASE,
155 [RSET_OHCI0] = BCM_6358_OHCI0_BASE, 159 [RSET_OHCI0] = BCM_6358_OHCI0_BASE,
@@ -170,6 +174,7 @@ static const unsigned long bcm96358_regs_base[] = {
170static const int bcm96358_irqs[] = { 174static const int bcm96358_irqs[] = {
171 [IRQ_TIMER] = BCM_6358_TIMER_IRQ, 175 [IRQ_TIMER] = BCM_6358_TIMER_IRQ,
172 [IRQ_UART0] = BCM_6358_UART0_IRQ, 176 [IRQ_UART0] = BCM_6358_UART0_IRQ,
177 [IRQ_UART1] = BCM_6358_UART1_IRQ,
173 [IRQ_DSL] = BCM_6358_DSL_IRQ, 178 [IRQ_DSL] = BCM_6358_DSL_IRQ,
174 [IRQ_ENET0] = BCM_6358_ENET0_IRQ, 179 [IRQ_ENET0] = BCM_6358_ENET0_IRQ,
175 [IRQ_ENET1] = BCM_6358_ENET1_IRQ, 180 [IRQ_ENET1] = BCM_6358_ENET1_IRQ,
diff --git a/arch/mips/bcm63xx/dev-uart.c b/arch/mips/bcm63xx/dev-uart.c
index b0519461ad9b..c2963da0253e 100644
--- a/arch/mips/bcm63xx/dev-uart.c
+++ b/arch/mips/bcm63xx/dev-uart.c
@@ -11,31 +11,65 @@
11#include <linux/platform_device.h> 11#include <linux/platform_device.h>
12#include <bcm63xx_cpu.h> 12#include <bcm63xx_cpu.h>
13 13
14static struct resource uart_resources[] = { 14static struct resource uart0_resources[] = {
15 { 15 {
16 .start = -1, /* filled at runtime */ 16 /* start & end filled at runtime */
17 .end = -1, /* filled at runtime */
18 .flags = IORESOURCE_MEM, 17 .flags = IORESOURCE_MEM,
19 }, 18 },
20 { 19 {
21 .start = -1, /* filled at runtime */ 20 /* start filled at runtime */
22 .flags = IORESOURCE_IRQ, 21 .flags = IORESOURCE_IRQ,
23 }, 22 },
24}; 23};
25 24
26static struct platform_device bcm63xx_uart_device = { 25static struct resource uart1_resources[] = {
27 .name = "bcm63xx_uart", 26 {
28 .id = 0, 27 /* start & end filled at runtime */
29 .num_resources = ARRAY_SIZE(uart_resources), 28 .flags = IORESOURCE_MEM,
30 .resource = uart_resources, 29 },
30 {
31 /* start filled at runtime */
32 .flags = IORESOURCE_IRQ,
33 },
34};
35
36static struct platform_device bcm63xx_uart_devices[] = {
37 {
38 .name = "bcm63xx_uart",
39 .id = 0,
40 .num_resources = ARRAY_SIZE(uart0_resources),
41 .resource = uart0_resources,
42 },
43
44 {
45 .name = "bcm63xx_uart",
46 .id = 1,
47 .num_resources = ARRAY_SIZE(uart1_resources),
48 .resource = uart1_resources,
49 }
31}; 50};
32 51
33int __init bcm63xx_uart_register(void) 52int __init bcm63xx_uart_register(unsigned int id)
34{ 53{
35 uart_resources[0].start = bcm63xx_regset_address(RSET_UART0); 54 if (id >= ARRAY_SIZE(bcm63xx_uart_devices))
36 uart_resources[0].end = uart_resources[0].start; 55 return -ENODEV;
37 uart_resources[0].end += RSET_UART_SIZE - 1; 56
38 uart_resources[1].start = bcm63xx_get_irq_number(IRQ_UART0); 57 if (id == 1 && !BCMCPU_IS_6358())
39 return platform_device_register(&bcm63xx_uart_device); 58 return -ENODEV;
59
60 if (id == 0) {
61 uart0_resources[0].start = bcm63xx_regset_address(RSET_UART0);
62 uart0_resources[0].end = uart0_resources[0].start +
63 RSET_UART_SIZE - 1;
64 uart0_resources[1].start = bcm63xx_get_irq_number(IRQ_UART0);
65 }
66
67 if (id == 1) {
68 uart1_resources[0].start = bcm63xx_regset_address(RSET_UART1);
69 uart1_resources[0].end = uart1_resources[0].start +
70 RSET_UART_SIZE - 1;
71 uart1_resources[1].start = bcm63xx_get_irq_number(IRQ_UART1);
72 }
73
74 return platform_device_register(&bcm63xx_uart_devices[id]);
40} 75}
41arch_initcall(bcm63xx_uart_register);
diff --git a/arch/mips/bcm63xx/gpio.c b/arch/mips/bcm63xx/gpio.c
index 87ca39046334..315bc7f79ce1 100644
--- a/arch/mips/bcm63xx/gpio.c
+++ b/arch/mips/bcm63xx/gpio.c
@@ -125,10 +125,10 @@ static struct gpio_chip bcm63xx_gpio_chip = {
125 125
126int __init bcm63xx_gpio_init(void) 126int __init bcm63xx_gpio_init(void)
127{ 127{
128 gpio_out_low = bcm_gpio_readl(GPIO_DATA_LO_REG);
129 gpio_out_high = bcm_gpio_readl(GPIO_DATA_HI_REG);
128 bcm63xx_gpio_chip.ngpio = bcm63xx_gpio_count(); 130 bcm63xx_gpio_chip.ngpio = bcm63xx_gpio_count();
129 pr_info("registering %d GPIOs\n", bcm63xx_gpio_chip.ngpio); 131 pr_info("registering %d GPIOs\n", bcm63xx_gpio_chip.ngpio);
130 132
131 return gpiochip_add(&bcm63xx_gpio_chip); 133 return gpiochip_add(&bcm63xx_gpio_chip);
132} 134}
133
134arch_initcall(bcm63xx_gpio_init);
diff --git a/arch/mips/bcm63xx/prom.c b/arch/mips/bcm63xx/prom.c
index fb284fbc5853..be252efa0757 100644
--- a/arch/mips/bcm63xx/prom.c
+++ b/arch/mips/bcm63xx/prom.c
@@ -40,9 +40,6 @@ void __init prom_init(void)
40 reg &= ~mask; 40 reg &= ~mask;
41 bcm_perf_writel(reg, PERF_CKCTL_REG); 41 bcm_perf_writel(reg, PERF_CKCTL_REG);
42 42
43 /* assign command line from kernel config */
44 strcpy(arcs_cmdline, CONFIG_CMDLINE);
45
46 /* register gpiochip */ 43 /* register gpiochip */
47 bcm63xx_gpio_init(); 44 bcm63xx_gpio_init();
48 45
diff --git a/arch/mips/bcm63xx/timer.c b/arch/mips/bcm63xx/timer.c
index ba522bdcde4b..5f1135981568 100644
--- a/arch/mips/bcm63xx/timer.c
+++ b/arch/mips/bcm63xx/timer.c
@@ -17,8 +17,8 @@
17#include <bcm63xx_timer.h> 17#include <bcm63xx_timer.h>
18#include <bcm63xx_regs.h> 18#include <bcm63xx_regs.h>
19 19
20static DEFINE_SPINLOCK(timer_reg_lock); 20static DEFINE_RAW_SPINLOCK(timer_reg_lock);
21static DEFINE_SPINLOCK(timer_data_lock); 21static DEFINE_RAW_SPINLOCK(timer_data_lock);
22static struct clk *periph_clk; 22static struct clk *periph_clk;
23 23
24static struct timer_data { 24static struct timer_data {
@@ -31,23 +31,23 @@ static irqreturn_t timer_interrupt(int irq, void *dev_id)
31 u32 stat; 31 u32 stat;
32 int i; 32 int i;
33 33
34 spin_lock(&timer_reg_lock); 34 raw_spin_lock(&timer_reg_lock);
35 stat = bcm_timer_readl(TIMER_IRQSTAT_REG); 35 stat = bcm_timer_readl(TIMER_IRQSTAT_REG);
36 bcm_timer_writel(stat, TIMER_IRQSTAT_REG); 36 bcm_timer_writel(stat, TIMER_IRQSTAT_REG);
37 spin_unlock(&timer_reg_lock); 37 raw_spin_unlock(&timer_reg_lock);
38 38
39 for (i = 0; i < BCM63XX_TIMER_COUNT; i++) { 39 for (i = 0; i < BCM63XX_TIMER_COUNT; i++) {
40 if (!(stat & TIMER_IRQSTAT_TIMER_CAUSE(i))) 40 if (!(stat & TIMER_IRQSTAT_TIMER_CAUSE(i)))
41 continue; 41 continue;
42 42
43 spin_lock(&timer_data_lock); 43 raw_spin_lock(&timer_data_lock);
44 if (!timer_data[i].cb) { 44 if (!timer_data[i].cb) {
45 spin_unlock(&timer_data_lock); 45 raw_spin_unlock(&timer_data_lock);
46 continue; 46 continue;
47 } 47 }
48 48
49 timer_data[i].cb(timer_data[i].data); 49 timer_data[i].cb(timer_data[i].data);
50 spin_unlock(&timer_data_lock); 50 raw_spin_unlock(&timer_data_lock);
51 } 51 }
52 52
53 return IRQ_HANDLED; 53 return IRQ_HANDLED;
@@ -61,7 +61,7 @@ int bcm63xx_timer_enable(int id)
61 if (id >= BCM63XX_TIMER_COUNT) 61 if (id >= BCM63XX_TIMER_COUNT)
62 return -EINVAL; 62 return -EINVAL;
63 63
64 spin_lock_irqsave(&timer_reg_lock, flags); 64 raw_spin_lock_irqsave(&timer_reg_lock, flags);
65 65
66 reg = bcm_timer_readl(TIMER_CTLx_REG(id)); 66 reg = bcm_timer_readl(TIMER_CTLx_REG(id));
67 reg |= TIMER_CTL_ENABLE_MASK; 67 reg |= TIMER_CTL_ENABLE_MASK;
@@ -71,7 +71,7 @@ int bcm63xx_timer_enable(int id)
71 reg |= TIMER_IRQSTAT_TIMER_IR_EN(id); 71 reg |= TIMER_IRQSTAT_TIMER_IR_EN(id);
72 bcm_timer_writel(reg, TIMER_IRQSTAT_REG); 72 bcm_timer_writel(reg, TIMER_IRQSTAT_REG);
73 73
74 spin_unlock_irqrestore(&timer_reg_lock, flags); 74 raw_spin_unlock_irqrestore(&timer_reg_lock, flags);
75 return 0; 75 return 0;
76} 76}
77 77
@@ -85,7 +85,7 @@ int bcm63xx_timer_disable(int id)
85 if (id >= BCM63XX_TIMER_COUNT) 85 if (id >= BCM63XX_TIMER_COUNT)
86 return -EINVAL; 86 return -EINVAL;
87 87
88 spin_lock_irqsave(&timer_reg_lock, flags); 88 raw_spin_lock_irqsave(&timer_reg_lock, flags);
89 89
90 reg = bcm_timer_readl(TIMER_CTLx_REG(id)); 90 reg = bcm_timer_readl(TIMER_CTLx_REG(id));
91 reg &= ~TIMER_CTL_ENABLE_MASK; 91 reg &= ~TIMER_CTL_ENABLE_MASK;
@@ -95,7 +95,7 @@ int bcm63xx_timer_disable(int id)
95 reg &= ~TIMER_IRQSTAT_TIMER_IR_EN(id); 95 reg &= ~TIMER_IRQSTAT_TIMER_IR_EN(id);
96 bcm_timer_writel(reg, TIMER_IRQSTAT_REG); 96 bcm_timer_writel(reg, TIMER_IRQSTAT_REG);
97 97
98 spin_unlock_irqrestore(&timer_reg_lock, flags); 98 raw_spin_unlock_irqrestore(&timer_reg_lock, flags);
99 return 0; 99 return 0;
100} 100}
101 101
@@ -110,7 +110,7 @@ int bcm63xx_timer_register(int id, void (*callback)(void *data), void *data)
110 return -EINVAL; 110 return -EINVAL;
111 111
112 ret = 0; 112 ret = 0;
113 spin_lock_irqsave(&timer_data_lock, flags); 113 raw_spin_lock_irqsave(&timer_data_lock, flags);
114 if (timer_data[id].cb) { 114 if (timer_data[id].cb) {
115 ret = -EBUSY; 115 ret = -EBUSY;
116 goto out; 116 goto out;
@@ -120,7 +120,7 @@ int bcm63xx_timer_register(int id, void (*callback)(void *data), void *data)
120 timer_data[id].data = data; 120 timer_data[id].data = data;
121 121
122out: 122out:
123 spin_unlock_irqrestore(&timer_data_lock, flags); 123 raw_spin_unlock_irqrestore(&timer_data_lock, flags);
124 return ret; 124 return ret;
125} 125}
126 126
@@ -133,9 +133,9 @@ void bcm63xx_timer_unregister(int id)
133 if (id >= BCM63XX_TIMER_COUNT) 133 if (id >= BCM63XX_TIMER_COUNT)
134 return; 134 return;
135 135
136 spin_lock_irqsave(&timer_data_lock, flags); 136 raw_spin_lock_irqsave(&timer_data_lock, flags);
137 timer_data[id].cb = NULL; 137 timer_data[id].cb = NULL;
138 spin_unlock_irqrestore(&timer_data_lock, flags); 138 raw_spin_unlock_irqrestore(&timer_data_lock, flags);
139} 139}
140 140
141EXPORT_SYMBOL(bcm63xx_timer_unregister); 141EXPORT_SYMBOL(bcm63xx_timer_unregister);
@@ -159,7 +159,7 @@ int bcm63xx_timer_set(int id, int monotonic, unsigned int countdown_us)
159 if (countdown & ~TIMER_CTL_COUNTDOWN_MASK) 159 if (countdown & ~TIMER_CTL_COUNTDOWN_MASK)
160 return -EINVAL; 160 return -EINVAL;
161 161
162 spin_lock_irqsave(&timer_reg_lock, flags); 162 raw_spin_lock_irqsave(&timer_reg_lock, flags);
163 reg = bcm_timer_readl(TIMER_CTLx_REG(id)); 163 reg = bcm_timer_readl(TIMER_CTLx_REG(id));
164 164
165 if (monotonic) 165 if (monotonic)
@@ -171,7 +171,7 @@ int bcm63xx_timer_set(int id, int monotonic, unsigned int countdown_us)
171 reg |= countdown; 171 reg |= countdown;
172 bcm_timer_writel(reg, TIMER_CTLx_REG(id)); 172 bcm_timer_writel(reg, TIMER_CTLx_REG(id));
173 173
174 spin_unlock_irqrestore(&timer_reg_lock, flags); 174 raw_spin_unlock_irqrestore(&timer_reg_lock, flags);
175 return 0; 175 return 0;
176} 176}
177 177
diff --git a/arch/mips/boot/.gitignore b/arch/mips/boot/.gitignore
index ba63401c6e10..4667a5f9280b 100644
--- a/arch/mips/boot/.gitignore
+++ b/arch/mips/boot/.gitignore
@@ -1,4 +1,5 @@
1mkboot 1mkboot
2elf2ecoff 2elf2ecoff
3vmlinux.*
3zImage 4zImage
4zImage.tmp 5zImage.tmp
diff --git a/arch/mips/boot/Makefile b/arch/mips/boot/Makefile
index 2a209d74f0b4..e39a08edcaaa 100644
--- a/arch/mips/boot/Makefile
+++ b/arch/mips/boot/Makefile
@@ -25,10 +25,10 @@ strip-flags = $(addprefix --remove-section=,$(drop-sections))
25 25
26VMLINUX = vmlinux 26VMLINUX = vmlinux
27 27
28all: vmlinux.ecoff vmlinux.srec addinitrd 28all: vmlinux.ecoff vmlinux.srec
29 29
30vmlinux.ecoff: $(obj)/elf2ecoff $(VMLINUX) 30vmlinux.ecoff: $(obj)/elf2ecoff $(VMLINUX)
31 $(obj)/elf2ecoff $(VMLINUX) vmlinux.ecoff $(E2EFLAGS) 31 $(obj)/elf2ecoff $(VMLINUX) $(obj)/vmlinux.ecoff $(E2EFLAGS)
32 32
33$(obj)/elf2ecoff: $(obj)/elf2ecoff.c 33$(obj)/elf2ecoff: $(obj)/elf2ecoff.c
34 $(HOSTCC) -o $@ $^ 34 $(HOSTCC) -o $@ $^
@@ -39,11 +39,7 @@ vmlinux.bin: $(VMLINUX)
39vmlinux.srec: $(VMLINUX) 39vmlinux.srec: $(VMLINUX)
40 $(OBJCOPY) -S -O srec $(strip-flags) $(VMLINUX) $(obj)/vmlinux.srec 40 $(OBJCOPY) -S -O srec $(strip-flags) $(VMLINUX) $(obj)/vmlinux.srec
41 41
42$(obj)/addinitrd: $(obj)/addinitrd.c 42clean-files += elf2ecoff \
43 $(HOSTCC) -o $@ $^
44
45clean-files += addinitrd \
46 elf2ecoff \
47 vmlinux.bin \ 43 vmlinux.bin \
48 vmlinux.ecoff \ 44 vmlinux.ecoff \
49 vmlinux.srec 45 vmlinux.srec
diff --git a/arch/mips/boot/addinitrd.c b/arch/mips/boot/addinitrd.c
deleted file mode 100644
index b5b3febc10cc..000000000000
--- a/arch/mips/boot/addinitrd.c
+++ /dev/null
@@ -1,131 +0,0 @@
1/*
2 * addinitrd - program to add a initrd image to an ecoff kernel
3 *
4 * (C) 1999 Thomas Bogendoerfer
5 * minor modifications, cleanup: Guido Guenther <agx@sigxcpu.org>
6 * further cleanup: Maciej W. Rozycki
7 */
8
9#include <sys/types.h>
10#include <sys/stat.h>
11#include <fcntl.h>
12#include <unistd.h>
13#include <stdio.h>
14#include <netinet/in.h>
15
16#include "ecoff.h"
17
18#define MIPS_PAGE_SIZE 4096
19#define MIPS_PAGE_MASK (MIPS_PAGE_SIZE-1)
20
21#define swab16(x) \
22 ((unsigned short)( \
23 (((unsigned short)(x) & (unsigned short)0x00ffU) << 8) | \
24 (((unsigned short)(x) & (unsigned short)0xff00U) >> 8) ))
25
26#define swab32(x) \
27 ((unsigned int)( \
28 (((unsigned int)(x) & (unsigned int)0x000000ffUL) << 24) | \
29 (((unsigned int)(x) & (unsigned int)0x0000ff00UL) << 8) | \
30 (((unsigned int)(x) & (unsigned int)0x00ff0000UL) >> 8) | \
31 (((unsigned int)(x) & (unsigned int)0xff000000UL) >> 24) ))
32
33#define SWAB(a) (swab ? swab32(a) : (a))
34
35void die(char *s)
36{
37 perror(s);
38 exit(1);
39}
40
41int main(int argc, char *argv[])
42{
43 int fd_vmlinux, fd_initrd, fd_outfile;
44 FILHDR efile;
45 AOUTHDR eaout;
46 SCNHDR esecs[3];
47 struct stat st;
48 char buf[1024];
49 unsigned long loadaddr;
50 unsigned long initrd_header[2];
51 int i, cnt;
52 int swab = 0;
53
54 if (argc != 4) {
55 printf("Usage: %s <vmlinux> <initrd> <outfile>\n", argv[0]);
56 exit(1);
57 }
58
59 if ((fd_vmlinux = open (argv[1], O_RDONLY)) < 0)
60 die("open vmlinux");
61 if (read (fd_vmlinux, &efile, sizeof efile) != sizeof efile)
62 die("read file header");
63 if (read (fd_vmlinux, &eaout, sizeof eaout) != sizeof eaout)
64 die("read aout header");
65 if (read (fd_vmlinux, esecs, sizeof esecs) != sizeof esecs)
66 die("read section headers");
67 /*
68 * check whether the file is good for us
69 */
70 /* TBD */
71
72 /*
73 * check, if we have to swab words
74 */
75 if (ntohs(0xaa55) == 0xaa55) {
76 if (efile.f_magic == swab16(MIPSELMAGIC))
77 swab = 1;
78 } else {
79 if (efile.f_magic == swab16(MIPSEBMAGIC))
80 swab = 1;
81 }
82
83 /* make sure we have an empty data segment for the initrd */
84 if (eaout.dsize || esecs[1].s_size) {
85 fprintf(stderr, "Data segment not empty. Giving up!\n");
86 exit(1);
87 }
88 if ((fd_initrd = open (argv[2], O_RDONLY)) < 0)
89 die("open initrd");
90 if (fstat (fd_initrd, &st) < 0)
91 die("fstat initrd");
92 loadaddr = ((SWAB(esecs[2].s_vaddr) + SWAB(esecs[2].s_size)
93 + MIPS_PAGE_SIZE-1) & ~MIPS_PAGE_MASK) - 8;
94 if (loadaddr < (SWAB(esecs[2].s_vaddr) + SWAB(esecs[2].s_size)))
95 loadaddr += MIPS_PAGE_SIZE;
96 initrd_header[0] = SWAB(0x494E5244);
97 initrd_header[1] = SWAB(st.st_size);
98 eaout.dsize = esecs[1].s_size = initrd_header[1] = SWAB(st.st_size+8);
99 eaout.data_start = esecs[1].s_vaddr = esecs[1].s_paddr = SWAB(loadaddr);
100
101 if ((fd_outfile = open (argv[3], O_RDWR|O_CREAT|O_TRUNC, 0666)) < 0)
102 die("open outfile");
103 if (write (fd_outfile, &efile, sizeof efile) != sizeof efile)
104 die("write file header");
105 if (write (fd_outfile, &eaout, sizeof eaout) != sizeof eaout)
106 die("write aout header");
107 if (write (fd_outfile, esecs, sizeof esecs) != sizeof esecs)
108 die("write section headers");
109 /* skip padding */
110 if(lseek(fd_vmlinux, SWAB(esecs[0].s_scnptr), SEEK_SET) == (off_t)-1)
111 die("lseek vmlinux");
112 if(lseek(fd_outfile, SWAB(esecs[0].s_scnptr), SEEK_SET) == (off_t)-1)
113 die("lseek outfile");
114 /* copy text segment */
115 cnt = SWAB(eaout.tsize);
116 while (cnt) {
117 if ((i = read (fd_vmlinux, buf, sizeof buf)) <= 0)
118 die("read vmlinux");
119 if (write (fd_outfile, buf, i) != i)
120 die("write vmlinux");
121 cnt -= i;
122 }
123 if (write (fd_outfile, initrd_header, sizeof initrd_header) != sizeof initrd_header)
124 die("write initrd header");
125 while ((i = read (fd_initrd, buf, sizeof buf)) > 0)
126 if (write (fd_outfile, buf, i) != i)
127 die("write initrd");
128 close(fd_vmlinux);
129 close(fd_initrd);
130 return 0;
131}
diff --git a/arch/mips/boot/compressed/Makefile b/arch/mips/boot/compressed/Makefile
new file mode 100644
index 000000000000..790ddd397620
--- /dev/null
+++ b/arch/mips/boot/compressed/Makefile
@@ -0,0 +1,105 @@
1#
2# This file is subject to the terms and conditions of the GNU General Public
3# License.
4#
5# Adapted for MIPS Pete Popov, Dan Malek
6#
7# Copyright (C) 1994 by Linus Torvalds
8# Adapted for PowerPC by Gary Thomas
9# modified by Cort (cort@cs.nmt.edu)
10#
11# Copyright (C) 2009 Lemote Inc. & DSLab, Lanzhou University
12# Author: Wu Zhangjin <wuzhangjin@gmail.com>
13#
14
15# compressed kernel load addr: VMLINUZ_LOAD_ADDRESS > VMLINUX_LOAD_ADDRESS + VMLINUX_SIZE
16VMLINUX_SIZE := $(shell wc -c $(objtree)/$(KBUILD_IMAGE) 2>/dev/null | cut -d' ' -f1)
17VMLINUX_SIZE := $(shell [ -n "$(VMLINUX_SIZE)" ] && echo -n $$(($(VMLINUX_SIZE) + (65536 - $(VMLINUX_SIZE) % 65536))))
18# VMLINUZ_LOAD_ADDRESS = concat "high32 of VMLINUX_LOAD_ADDRESS" and "(low32 of VMLINUX_LOAD_ADDRESS) + VMLINUX_SIZE"
19HIGH32 := $(shell A=$(VMLINUX_LOAD_ADDRESS); [ $${\#A} -gt 10 ] && expr substr "$(VMLINUX_LOAD_ADDRESS)" 3 $$(($${\#A} - 10)))
20LOW32 := $(shell [ -n "$(HIGH32)" ] && A=11 || A=3; expr substr "$(VMLINUX_LOAD_ADDRESS)" $${A} 8)
21VMLINUZ_LOAD_ADDRESS := 0x$(shell [ -n "$(VMLINUX_SIZE)" -a -n "$(LOW32)" ] && printf "$(HIGH32)%08x" $$(($(VMLINUX_SIZE) + 0x$(LOW32))))
22
23# set the default size of the mallocing area for decompressing
24BOOT_HEAP_SIZE := 0x400000
25
26# Disable Function Tracer
27KBUILD_CFLAGS := $(shell echo $(KBUILD_CFLAGS) | sed -e "s/-pg//")
28
29KBUILD_CFLAGS := $(LINUXINCLUDE) $(KBUILD_CFLAGS) -D__KERNEL__ \
30 -DBOOT_HEAP_SIZE=$(BOOT_HEAP_SIZE) -D"VMLINUX_LOAD_ADDRESS_ULL=$(VMLINUX_LOAD_ADDRESS)ull"
31
32KBUILD_AFLAGS := $(LINUXINCLUDE) $(KBUILD_AFLAGS) -D__ASSEMBLY__ \
33 -DBOOT_HEAP_SIZE=$(BOOT_HEAP_SIZE) \
34 -DKERNEL_ENTRY=0x$(shell $(NM) $(objtree)/$(KBUILD_IMAGE) 2>/dev/null | grep " kernel_entry" | cut -f1 -d \ )
35
36obj-y := $(obj)/head.o $(obj)/decompress.o $(obj)/dbg.o
37
38ifdef CONFIG_DEBUG_ZBOOT
39obj-$(CONFIG_SYS_SUPPORTS_ZBOOT_UART16550) += $(obj)/uart-16550.o
40obj-$(CONFIG_MACH_ALCHEMY) += $(obj)/uart-alchemy.o
41endif
42
43OBJCOPYFLAGS_vmlinux.bin := $(OBJCOPYFLAGS) -O binary -R .comment -S
44$(obj)/vmlinux.bin: $(KBUILD_IMAGE)
45 $(call if_changed,objcopy)
46
47suffix_$(CONFIG_KERNEL_GZIP) = gz
48suffix_$(CONFIG_KERNEL_BZIP2) = bz2
49suffix_$(CONFIG_KERNEL_LZMA) = lzma
50suffix_$(CONFIG_KERNEL_LZO) = lzo
51tool_$(CONFIG_KERNEL_GZIP) = gzip
52tool_$(CONFIG_KERNEL_BZIP2) = bzip2
53tool_$(CONFIG_KERNEL_LZMA) = lzma
54tool_$(CONFIG_KERNEL_LZO) = lzo
55$(obj)/vmlinux.$(suffix_y): $(obj)/vmlinux.bin
56 $(call if_changed,$(tool_y))
57
58$(obj)/piggy.o: $(obj)/vmlinux.$(suffix_y) $(obj)/dummy.o
59 $(Q)$(OBJCOPY) $(OBJCOPYFLAGS) \
60 --add-section=.image=$< \
61 --set-section-flags=.image=contents,alloc,load,readonly,data \
62 $(obj)/dummy.o $@
63
64LDFLAGS_vmlinuz := $(LDFLAGS) -Ttext $(VMLINUZ_LOAD_ADDRESS) -T
65vmlinuz: $(src)/ld.script $(obj-y) $(obj)/piggy.o
66 $(call if_changed,ld)
67 $(Q)$(OBJCOPY) $(OBJCOPYFLAGS) $@
68
69#
70# Some DECstations need all possible sections of an ECOFF executable
71#
72ifdef CONFIG_MACH_DECSTATION
73 E2EFLAGS = -a
74else
75 E2EFLAGS =
76endif
77
78# elf2ecoff can only handle 32bit image
79
80ifdef CONFIG_32BIT
81 VMLINUZ = vmlinuz
82else
83 VMLINUZ = vmlinuz.32
84endif
85
86vmlinuz.32: vmlinuz
87 $(Q)$(OBJCOPY) -O $(32bit-bfd) $(OBJCOPYFLAGS) $< $@
88
89vmlinuz.ecoff: $(obj)/../elf2ecoff $(VMLINUZ)
90 $(Q)$(obj)/../elf2ecoff $(VMLINUZ) vmlinuz.ecoff $(E2EFLAGS)
91
92$(obj)/../elf2ecoff: $(src)/../elf2ecoff.c
93 $(Q)$(HOSTCC) -o $@ $^
94
95OBJCOPYFLAGS_vmlinuz.bin := $(OBJCOPYFLAGS) -O binary
96vmlinuz.bin: vmlinuz
97 $(call if_changed,objcopy)
98
99OBJCOPYFLAGS_vmlinuz.srec := $(OBJCOPYFLAGS) -S -O srec
100vmlinuz.srec: vmlinuz
101 $(call if_changed,objcopy)
102
103clean:
104clean-files += *.o \
105 vmlinu*
diff --git a/arch/mips/boot/compressed/dbg.c b/arch/mips/boot/compressed/dbg.c
new file mode 100644
index 000000000000..134a6162e394
--- /dev/null
+++ b/arch/mips/boot/compressed/dbg.c
@@ -0,0 +1,37 @@
1/*
2 * MIPS-specific debug support for pre-boot environment
3 *
4 * NOTE: putc() is board specific, if your board have a 16550 compatible uart,
5 * please select SYS_SUPPORTS_ZBOOT_UART16550 for your machine. othewise, you
6 * need to implement your own putc().
7 */
8#include <linux/compiler.h>
9#include <linux/init.h>
10#include <linux/types.h>
11
12void __weak putc(char c)
13{
14}
15
16void puts(const char *s)
17{
18 char c;
19 while ((c = *s++) != '\0') {
20 putc(c);
21 if (c == '\n')
22 putc('\r');
23 }
24}
25
26void puthex(unsigned long long val)
27{
28
29 unsigned char buf[10];
30 int i;
31 for (i = 7; i >= 0; i--) {
32 buf[i] = "0123456789ABCDEF"[val & 0x0F];
33 val >>= 4;
34 }
35 buf[8] = '\0';
36 puts(buf);
37}
diff --git a/arch/mips/boot/compressed/decompress.c b/arch/mips/boot/compressed/decompress.c
new file mode 100644
index 000000000000..5db43c58b1bf
--- /dev/null
+++ b/arch/mips/boot/compressed/decompress.c
@@ -0,0 +1,120 @@
1/*
2 * Misc. bootloader code for many machines.
3 *
4 * Copyright 2001 MontaVista Software Inc.
5 * Author: Matt Porter <mporter@mvista.com> Derived from
6 * arch/ppc/boot/prep/misc.c
7 *
8 * Copyright (C) 2009 Lemote, Inc.
9 * Author: Wu Zhangjin <wuzhangjin@gmail.com>
10 *
11 * This program is free software; you can redistribute it and/or modify it
12 * under the terms of the GNU General Public License as published by the
13 * Free Software Foundation; either version 2 of the License, or (at your
14 * option) any later version.
15 */
16
17#include <linux/types.h>
18#include <linux/kernel.h>
19
20#include <asm/addrspace.h>
21
22/* These two variables specify the free mem region
23 * that can be used for temporary malloc area
24 */
25unsigned long free_mem_ptr;
26unsigned long free_mem_end_ptr;
27char *zimage_start;
28
29/* The linker tells us where the image is. */
30extern unsigned char __image_begin, __image_end;
31
32/* debug interfaces */
33extern void puts(const char *s);
34extern void puthex(unsigned long long val);
35
36void error(char *x)
37{
38 puts("\n\n");
39 puts(x);
40 puts("\n\n -- System halted");
41
42 while (1)
43 ; /* Halt */
44}
45
46/* activate the code for pre-boot environment */
47#define STATIC static
48
49#ifdef CONFIG_KERNEL_GZIP
50void *memcpy(void *dest, const void *src, size_t n)
51{
52 int i;
53 const char *s = src;
54 char *d = dest;
55
56 for (i = 0; i < n; i++)
57 d[i] = s[i];
58 return dest;
59}
60#include "../../../../lib/decompress_inflate.c"
61#endif
62
63#ifdef CONFIG_KERNEL_BZIP2
64void *memset(void *s, int c, size_t n)
65{
66 int i;
67 char *ss = s;
68
69 for (i = 0; i < n; i++)
70 ss[i] = c;
71 return s;
72}
73#include "../../../../lib/decompress_bunzip2.c"
74#endif
75
76#ifdef CONFIG_KERNEL_LZMA
77#include "../../../../lib/decompress_unlzma.c"
78#endif
79
80#ifdef CONFIG_KERNEL_LZO
81#include "../../../../lib/decompress_unlzo.c"
82#endif
83
84void decompress_kernel(unsigned long boot_heap_start)
85{
86 int zimage_size;
87
88 /*
89 * We link ourself to an arbitrary low address. When we run, we
90 * relocate outself to that address. __image_beign points to
91 * the part of the image where the zImage is. -- Tom
92 */
93 zimage_start = (char *)(unsigned long)(&__image_begin);
94 zimage_size = (unsigned long)(&__image_end) -
95 (unsigned long)(&__image_begin);
96
97 /*
98 * The zImage and initrd will be between start and _end, so they've
99 * already been moved once. We're good to go now. -- Tom
100 */
101 puts("zimage at: ");
102 puthex((unsigned long)zimage_start);
103 puts(" ");
104 puthex((unsigned long)(zimage_size + zimage_start));
105 puts("\n");
106
107 /* this area are prepared for mallocing when decompressing */
108 free_mem_ptr = boot_heap_start;
109 free_mem_end_ptr = boot_heap_start + BOOT_HEAP_SIZE;
110
111 /* Display standard Linux/MIPS boot prompt for kernel args */
112 puts("Uncompressing Linux at load address ");
113 puthex(VMLINUX_LOAD_ADDRESS_ULL);
114 puts("\n");
115 /* Decompress the kernel with according algorithm */
116 decompress(zimage_start, zimage_size, 0, 0,
117 (void *)VMLINUX_LOAD_ADDRESS_ULL, 0, error);
118 /* FIXME: is there a need to flush cache here? */
119 puts("Now, booting the kernel...\n");
120}
diff --git a/arch/mips/boot/compressed/dummy.c b/arch/mips/boot/compressed/dummy.c
new file mode 100644
index 000000000000..31dbf45bf99c
--- /dev/null
+++ b/arch/mips/boot/compressed/dummy.c
@@ -0,0 +1,4 @@
1int main(void)
2{
3 return 0;
4}
diff --git a/arch/mips/boot/compressed/head.S b/arch/mips/boot/compressed/head.S
new file mode 100644
index 000000000000..4e65a8420bee
--- /dev/null
+++ b/arch/mips/boot/compressed/head.S
@@ -0,0 +1,56 @@
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, 1995 Waldorf Electronics
7 * Written by Ralf Baechle and Andreas Busse
8 * Copyright (C) 1995 - 1999 Ralf Baechle
9 * Copyright (C) 1996 Paul M. Antoine
10 * Modified for DECStation and hence R3000 support by Paul M. Antoine
11 * Further modifications by David S. Miller and Harald Koerfgen
12 * Copyright (C) 1999 Silicon Graphics, Inc.
13 */
14
15#include <asm/asm.h>
16#include <asm/regdef.h>
17
18 .set noreorder
19 .cprestore
20 LEAF(start)
21start:
22 /* Save boot rom start args */
23 move s0, a0
24 move s1, a1
25 move s2, a2
26 move s3, a3
27
28 /* Clear BSS */
29 PTR_LA a0, _edata
30 PTR_LA a2, _end
311: sw zero, 0(a0)
32 bne a2, a0, 1b
33 addiu a0, a0, 4
34
35 PTR_LA a0, (.heap) /* heap address */
36 PTR_LA sp, (.stack + 8192) /* stack address */
37
38 PTR_LA ra, 2f
39 PTR_LA k0, decompress_kernel
40 jr k0
41 nop
422:
43 move a0, s0
44 move a1, s1
45 move a2, s2
46 move a3, s3
47 PTR_LI k0, KERNEL_ENTRY
48 jr k0
49 nop
503:
51 b 3b
52 nop
53 END(start)
54
55 .comm .heap,BOOT_HEAP_SIZE,4
56 .comm .stack,4096*2,4
diff --git a/arch/mips/boot/compressed/ld.script b/arch/mips/boot/compressed/ld.script
new file mode 100644
index 000000000000..613a35b02f50
--- /dev/null
+++ b/arch/mips/boot/compressed/ld.script
@@ -0,0 +1,67 @@
1/*
2 * ld.script for compressed kernel support of MIPS
3 *
4 * Copyright (C) 2009 Lemote Inc.
5 * Author: Wu Zhangjin <wuzj@lemote.com>
6 */
7
8OUTPUT_ARCH(mips)
9ENTRY(start)
10SECTIONS
11{
12 /* . = VMLINUZ_LOAD_ADDRESS */
13 /* read-only */
14 _text = .; /* Text and read-only data */
15 .text : {
16 _ftext = . ;
17 *(.text)
18 *(.rodata)
19 } = 0
20 _etext = .; /* End of text section */
21
22 /* writable */
23 .data : { /* Data */
24 _fdata = . ;
25 *(.data)
26 /* Put the compressed image here, so bss is on the end. */
27 __image_begin = .;
28 *(.image)
29 __image_end = .;
30 CONSTRUCTORS
31 }
32 .sdata : { *(.sdata) }
33 . = ALIGN(4);
34 _edata = .; /* End of data section */
35
36 /* BSS */
37 __bss_start = .;
38 _fbss = .;
39 .sbss : { *(.sbss) *(.scommon) }
40 .bss : {
41 *(.dynbss)
42 *(.bss)
43 *(COMMON)
44 }
45 . = ALIGN(4);
46 _end = . ;
47
48 /* These are needed for ELF backends which have not yet been converted
49 * to the new style linker. */
50
51 .stab 0 : { *(.stab) }
52 .stabstr 0 : { *(.stabstr) }
53
54 /* These must appear regardless of . */
55 .gptab.sdata : { *(.gptab.data) *(.gptab.sdata) }
56 .gptab.sbss : { *(.gptab.bss) *(.gptab.sbss) }
57
58 /* Sections to be discarded */
59 /DISCARD/ : {
60 *(.MIPS.options)
61 *(.options)
62 *(.pdr)
63 *(.reginfo)
64 *(.comment)
65 *(.note)
66 }
67}
diff --git a/arch/mips/boot/compressed/uart-16550.c b/arch/mips/boot/compressed/uart-16550.c
new file mode 100644
index 000000000000..c9caaf4fbf60
--- /dev/null
+++ b/arch/mips/boot/compressed/uart-16550.c
@@ -0,0 +1,43 @@
1/*
2 * 16550 compatible uart based serial debug support for zboot
3 */
4
5#include <linux/types.h>
6#include <linux/serial_reg.h>
7#include <linux/init.h>
8
9#include <asm/addrspace.h>
10
11#if defined(CONFIG_MACH_LOONGSON) || defined(CONFIG_MIPS_MALTA)
12#define UART_BASE 0x1fd003f8
13#define PORT(offset) (CKSEG1ADDR(UART_BASE) + (offset))
14#endif
15
16#ifdef CONFIG_AR7
17#include <ar7.h>
18#define PORT(offset) (CKSEG1ADDR(AR7_REGS_UART0) + (4 * offset))
19#endif
20
21#ifndef PORT
22#error please define the serial port address for your own machine
23#endif
24
25static inline unsigned int serial_in(int offset)
26{
27 return *((char *)PORT(offset));
28}
29
30static inline void serial_out(int offset, int value)
31{
32 *((char *)PORT(offset)) = value;
33}
34
35void putc(char c)
36{
37 int timeout = 1024;
38
39 while (((serial_in(UART_LSR) & UART_LSR_THRE) == 0) && (timeout-- > 0))
40 ;
41
42 serial_out(UART_TX, c);
43}
diff --git a/arch/mips/boot/compressed/uart-alchemy.c b/arch/mips/boot/compressed/uart-alchemy.c
new file mode 100644
index 000000000000..1bff22fa089b
--- /dev/null
+++ b/arch/mips/boot/compressed/uart-alchemy.c
@@ -0,0 +1,7 @@
1#include <asm/mach-au1x00/au1000.h>
2
3void putc(char c)
4{
5 /* all current (Jan. 2010) in-kernel boards */
6 alchemy_uart_putchar(UART0_PHYS_ADDR, c);
7}
diff --git a/arch/mips/cavium-octeon/Makefile b/arch/mips/cavium-octeon/Makefile
index 139436280520..3e9876317e61 100644
--- a/arch/mips/cavium-octeon/Makefile
+++ b/arch/mips/cavium-octeon/Makefile
@@ -9,7 +9,7 @@
9# Copyright (C) 2005-2009 Cavium Networks 9# Copyright (C) 2005-2009 Cavium Networks
10# 10#
11 11
12obj-y := setup.o serial.o octeon-platform.o octeon-irq.o csrc-octeon.o 12obj-y := cpu.o setup.o serial.o octeon-platform.o octeon-irq.o csrc-octeon.o
13obj-y += dma-octeon.o flash_setup.o 13obj-y += dma-octeon.o flash_setup.o
14obj-y += octeon-memcpy.o 14obj-y += octeon-memcpy.o
15 15
diff --git a/arch/mips/cavium-octeon/cpu.c b/arch/mips/cavium-octeon/cpu.c
new file mode 100644
index 000000000000..b6df5387e855
--- /dev/null
+++ b/arch/mips/cavium-octeon/cpu.c
@@ -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) 2009 Wind River Systems,
7 * written by Ralf Baechle <ralf@linux-mips.org>
8 */
9#include <linux/init.h>
10#include <linux/irqflags.h>
11#include <linux/notifier.h>
12#include <linux/prefetch.h>
13#include <linux/sched.h>
14
15#include <asm/cop2.h>
16#include <asm/current.h>
17#include <asm/mipsregs.h>
18#include <asm/page.h>
19#include <asm/octeon/octeon.h>
20
21static int cnmips_cu2_call(struct notifier_block *nfb, unsigned long action,
22 void *data)
23{
24 unsigned long flags;
25 unsigned int status;
26
27 switch (action) {
28 case CU2_EXCEPTION:
29 prefetch(&current->thread.cp2);
30 local_irq_save(flags);
31 KSTK_STATUS(current) |= ST0_CU2;
32 status = read_c0_status();
33 write_c0_status(status | ST0_CU2);
34 octeon_cop2_restore(&(current->thread.cp2));
35 write_c0_status(status & ~ST0_CU2);
36 local_irq_restore(flags);
37
38 return NOTIFY_BAD; /* Don't call default notifier */
39 }
40
41 return NOTIFY_OK; /* Let default notifier send signals */
42}
43
44static struct notifier_block cnmips_cu2_notifier = {
45 .notifier_call = cnmips_cu2_call,
46};
47
48static int cnmips_cu2_setup(void)
49{
50 return register_cu2_notifier(&cnmips_cu2_notifier);
51}
52early_initcall(cnmips_cu2_setup);
diff --git a/arch/mips/cavium-octeon/csrc-octeon.c b/arch/mips/cavium-octeon/csrc-octeon.c
index 96110f217dcd..0bf4bbe04ae2 100644
--- a/arch/mips/cavium-octeon/csrc-octeon.c
+++ b/arch/mips/cavium-octeon/csrc-octeon.c
@@ -50,6 +50,38 @@ static struct clocksource clocksource_mips = {
50 .flags = CLOCK_SOURCE_IS_CONTINUOUS, 50 .flags = CLOCK_SOURCE_IS_CONTINUOUS,
51}; 51};
52 52
53unsigned long long notrace sched_clock(void)
54{
55 /* 64-bit arithmatic can overflow, so use 128-bit. */
56#if (__GNUC__ < 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ <= 3))
57 u64 t1, t2, t3;
58 unsigned long long rv;
59 u64 mult = clocksource_mips.mult;
60 u64 shift = clocksource_mips.shift;
61 u64 cnt = read_c0_cvmcount();
62
63 asm (
64 "dmultu\t%[cnt],%[mult]\n\t"
65 "nor\t%[t1],$0,%[shift]\n\t"
66 "mfhi\t%[t2]\n\t"
67 "mflo\t%[t3]\n\t"
68 "dsll\t%[t2],%[t2],1\n\t"
69 "dsrlv\t%[rv],%[t3],%[shift]\n\t"
70 "dsllv\t%[t1],%[t2],%[t1]\n\t"
71 "or\t%[rv],%[t1],%[rv]\n\t"
72 : [rv] "=&r" (rv), [t1] "=&r" (t1), [t2] "=&r" (t2), [t3] "=&r" (t3)
73 : [cnt] "r" (cnt), [mult] "r" (mult), [shift] "r" (shift)
74 : "hi", "lo");
75 return rv;
76#else
77 /* GCC > 4.3 do it the easy way. */
78 unsigned int __attribute__((mode(TI))) t;
79 t = read_c0_cvmcount();
80 t = t * clocksource_mips.mult;
81 return (unsigned long long)(t >> clocksource_mips.shift);
82#endif
83}
84
53void __init plat_time_init(void) 85void __init plat_time_init(void)
54{ 86{
55 clocksource_mips.rating = 300; 87 clocksource_mips.rating = 300;
diff --git a/arch/mips/cavium-octeon/dma-octeon.c b/arch/mips/cavium-octeon/dma-octeon.c
index 4b92bfc662db..be531ec1f206 100644
--- a/arch/mips/cavium-octeon/dma-octeon.c
+++ b/arch/mips/cavium-octeon/dma-octeon.c
@@ -41,7 +41,7 @@ struct bar1_index_state {
41}; 41};
42 42
43#ifdef CONFIG_PCI 43#ifdef CONFIG_PCI
44static DEFINE_SPINLOCK(bar1_lock); 44static DEFINE_RAW_SPINLOCK(bar1_lock);
45static struct bar1_index_state bar1_state[32]; 45static struct bar1_index_state bar1_state[32];
46#endif 46#endif
47 47
@@ -198,7 +198,7 @@ dma_addr_t octeon_map_dma_mem(struct device *dev, void *ptr, size_t size)
198 start_index = 31; 198 start_index = 31;
199 199
200 /* Only one processor can access the Bar register at once */ 200 /* Only one processor can access the Bar register at once */
201 spin_lock_irqsave(&bar1_lock, flags); 201 raw_spin_lock_irqsave(&bar1_lock, flags);
202 202
203 /* Look through Bar1 for existing mapping that will work */ 203 /* Look through Bar1 for existing mapping that will work */
204 for (index = start_index; index >= 0; index--) { 204 for (index = start_index; index >= 0; index--) {
@@ -250,7 +250,7 @@ dma_addr_t octeon_map_dma_mem(struct device *dev, void *ptr, size_t size)
250 (unsigned long long) physical); 250 (unsigned long long) physical);
251 251
252done_unlock: 252done_unlock:
253 spin_unlock_irqrestore(&bar1_lock, flags); 253 raw_spin_unlock_irqrestore(&bar1_lock, flags);
254done: 254done:
255 pr_debug("dma_map_single 0x%llx->0x%llx\n", physical, result); 255 pr_debug("dma_map_single 0x%llx->0x%llx\n", physical, result);
256 return result; 256 return result;
@@ -324,14 +324,14 @@ void octeon_unmap_dma_mem(struct device *dev, dma_addr_t dma_addr)
324 "Attempt to unmap an invalid address (0x%llx)\n", 324 "Attempt to unmap an invalid address (0x%llx)\n",
325 dma_addr); 325 dma_addr);
326 326
327 spin_lock_irqsave(&bar1_lock, flags); 327 raw_spin_lock_irqsave(&bar1_lock, flags);
328 bar1_state[index].ref_count--; 328 bar1_state[index].ref_count--;
329 if (bar1_state[index].ref_count == 0) 329 if (bar1_state[index].ref_count == 0)
330 octeon_npi_write32(CVMX_NPI_PCI_BAR1_INDEXX(index), 0); 330 octeon_npi_write32(CVMX_NPI_PCI_BAR1_INDEXX(index), 0);
331 else if (unlikely(bar1_state[index].ref_count < 0)) 331 else if (unlikely(bar1_state[index].ref_count < 0))
332 panic("dma_unmap_single: Bar1[%u] reference count < 0\n", 332 panic("dma_unmap_single: Bar1[%u] reference count < 0\n",
333 (int) index); 333 (int) index);
334 spin_unlock_irqrestore(&bar1_lock, flags); 334 raw_spin_unlock_irqrestore(&bar1_lock, flags);
335done: 335done:
336 pr_debug("dma_unmap_single 0x%llx\n", dma_addr); 336 pr_debug("dma_unmap_single 0x%llx\n", dma_addr);
337 return; 337 return;
diff --git a/arch/mips/cavium-octeon/executive/cvmx-bootmem.c b/arch/mips/cavium-octeon/executive/cvmx-bootmem.c
index 25666da17b22..fdf5f19bfdb0 100644
--- a/arch/mips/cavium-octeon/executive/cvmx-bootmem.c
+++ b/arch/mips/cavium-octeon/executive/cvmx-bootmem.c
@@ -253,7 +253,7 @@ int64_t cvmx_bootmem_phy_alloc(uint64_t req_size, uint64_t address_min,
253 * impossible requests up front. (NOP for address_min == 0) 253 * impossible requests up front. (NOP for address_min == 0)
254 */ 254 */
255 if (alignment) 255 if (alignment)
256 address_min = __ALIGN_MASK(address_min, (alignment - 1)); 256 address_min = ALIGN(address_min, alignment);
257 257
258 /* 258 /*
259 * Reject inconsistent args. We have adjusted these, so this 259 * Reject inconsistent args. We have adjusted these, so this
@@ -291,7 +291,7 @@ int64_t cvmx_bootmem_phy_alloc(uint64_t req_size, uint64_t address_min,
291 * satisfy request. 291 * satisfy request.
292 */ 292 */
293 usable_base = 293 usable_base =
294 __ALIGN_MASK(max(address_min, ent_addr), alignment - 1); 294 ALIGN(max(address_min, ent_addr), alignment);
295 usable_max = min(address_max, ent_addr + ent_size); 295 usable_max = min(address_max, ent_addr + ent_size);
296 /* 296 /*
297 * We should be able to allocate block at address 297 * We should be able to allocate block at address
@@ -671,7 +671,7 @@ int64_t cvmx_bootmem_phy_named_block_alloc(uint64_t size, uint64_t min_addr,
671 * coallesced when they are freed. The alloc routine does the 671 * coallesced when they are freed. The alloc routine does the
672 * same rounding up on all allocations. 672 * same rounding up on all allocations.
673 */ 673 */
674 size = __ALIGN_MASK(size, (CVMX_BOOTMEM_ALIGNMENT_SIZE - 1)); 674 size = ALIGN(size, CVMX_BOOTMEM_ALIGNMENT_SIZE);
675 675
676 addr_allocated = cvmx_bootmem_phy_alloc(size, min_addr, max_addr, 676 addr_allocated = cvmx_bootmem_phy_alloc(size, min_addr, max_addr,
677 alignment, 677 alignment,
diff --git a/arch/mips/cavium-octeon/executive/cvmx-sysinfo.c b/arch/mips/cavium-octeon/executive/cvmx-sysinfo.c
index e5838890cba5..8b18a20cc7b3 100644
--- a/arch/mips/cavium-octeon/executive/cvmx-sysinfo.c
+++ b/arch/mips/cavium-octeon/executive/cvmx-sysinfo.c
@@ -115,4 +115,3 @@ int cvmx_sysinfo_minimal_initialize(void *phy_mem_desc_ptr,
115 115
116 return 1; 116 return 1;
117} 117}
118
diff --git a/arch/mips/cavium-octeon/octeon-irq.c b/arch/mips/cavium-octeon/octeon-irq.c
index 6f2acf09328d..c424cd158dc6 100644
--- a/arch/mips/cavium-octeon/octeon-irq.c
+++ b/arch/mips/cavium-octeon/octeon-irq.c
@@ -13,9 +13,8 @@
13#include <asm/octeon/cvmx-pexp-defs.h> 13#include <asm/octeon/cvmx-pexp-defs.h>
14#include <asm/octeon/cvmx-npi-defs.h> 14#include <asm/octeon/cvmx-npi-defs.h>
15 15
16DEFINE_RWLOCK(octeon_irq_ciu0_rwlock); 16static DEFINE_RAW_SPINLOCK(octeon_irq_ciu0_lock);
17DEFINE_RWLOCK(octeon_irq_ciu1_rwlock); 17static DEFINE_RAW_SPINLOCK(octeon_irq_ciu1_lock);
18DEFINE_SPINLOCK(octeon_irq_msi_lock);
19 18
20static int octeon_coreid_for_cpu(int cpu) 19static int octeon_coreid_for_cpu(int cpu)
21{ 20{
@@ -51,9 +50,6 @@ static void octeon_irq_core_eoi(unsigned int irq)
51 */ 50 */
52 if (desc->status & IRQ_DISABLED) 51 if (desc->status & IRQ_DISABLED)
53 return; 52 return;
54
55 /* There is a race here. We should fix it. */
56
57 /* 53 /*
58 * We don't need to disable IRQs to make these atomic since 54 * We don't need to disable IRQs to make these atomic since
59 * they are already disabled earlier in the low level 55 * they are already disabled earlier in the low level
@@ -141,19 +137,12 @@ static void octeon_irq_ciu0_enable(unsigned int irq)
141 uint64_t en0; 137 uint64_t en0;
142 int bit = irq - OCTEON_IRQ_WORKQ0; /* Bit 0-63 of EN0 */ 138 int bit = irq - OCTEON_IRQ_WORKQ0; /* Bit 0-63 of EN0 */
143 139
144 /* 140 raw_spin_lock_irqsave(&octeon_irq_ciu0_lock, flags);
145 * A read lock is used here to make sure only one core is ever
146 * updating the CIU enable bits at a time. During an enable
147 * the cores don't interfere with each other. During a disable
148 * the write lock stops any enables that might cause a
149 * problem.
150 */
151 read_lock_irqsave(&octeon_irq_ciu0_rwlock, flags);
152 en0 = cvmx_read_csr(CVMX_CIU_INTX_EN0(coreid * 2)); 141 en0 = cvmx_read_csr(CVMX_CIU_INTX_EN0(coreid * 2));
153 en0 |= 1ull << bit; 142 en0 |= 1ull << bit;
154 cvmx_write_csr(CVMX_CIU_INTX_EN0(coreid * 2), en0); 143 cvmx_write_csr(CVMX_CIU_INTX_EN0(coreid * 2), en0);
155 cvmx_read_csr(CVMX_CIU_INTX_EN0(coreid * 2)); 144 cvmx_read_csr(CVMX_CIU_INTX_EN0(coreid * 2));
156 read_unlock_irqrestore(&octeon_irq_ciu0_rwlock, flags); 145 raw_spin_unlock_irqrestore(&octeon_irq_ciu0_lock, flags);
157} 146}
158 147
159static void octeon_irq_ciu0_disable(unsigned int irq) 148static void octeon_irq_ciu0_disable(unsigned int irq)
@@ -162,7 +151,7 @@ static void octeon_irq_ciu0_disable(unsigned int irq)
162 unsigned long flags; 151 unsigned long flags;
163 uint64_t en0; 152 uint64_t en0;
164 int cpu; 153 int cpu;
165 write_lock_irqsave(&octeon_irq_ciu0_rwlock, flags); 154 raw_spin_lock_irqsave(&octeon_irq_ciu0_lock, flags);
166 for_each_online_cpu(cpu) { 155 for_each_online_cpu(cpu) {
167 int coreid = octeon_coreid_for_cpu(cpu); 156 int coreid = octeon_coreid_for_cpu(cpu);
168 en0 = cvmx_read_csr(CVMX_CIU_INTX_EN0(coreid * 2)); 157 en0 = cvmx_read_csr(CVMX_CIU_INTX_EN0(coreid * 2));
@@ -174,7 +163,7 @@ static void octeon_irq_ciu0_disable(unsigned int irq)
174 * of them are done. 163 * of them are done.
175 */ 164 */
176 cvmx_read_csr(CVMX_CIU_INTX_EN0(cvmx_get_core_num() * 2)); 165 cvmx_read_csr(CVMX_CIU_INTX_EN0(cvmx_get_core_num() * 2));
177 write_unlock_irqrestore(&octeon_irq_ciu0_rwlock, flags); 166 raw_spin_unlock_irqrestore(&octeon_irq_ciu0_lock, flags);
178} 167}
179 168
180/* 169/*
@@ -193,7 +182,7 @@ static void octeon_irq_ciu0_enable_v2(unsigned int irq)
193 * Disable the irq on the current core for chips that have the EN*_W1{S,C} 182 * Disable the irq on the current core for chips that have the EN*_W1{S,C}
194 * registers. 183 * registers.
195 */ 184 */
196static void octeon_irq_ciu0_disable_v2(unsigned int irq) 185static void octeon_irq_ciu0_ack_v2(unsigned int irq)
197{ 186{
198 int index = cvmx_get_core_num() * 2; 187 int index = cvmx_get_core_num() * 2;
199 u64 mask = 1ull << (irq - OCTEON_IRQ_WORKQ0); 188 u64 mask = 1ull << (irq - OCTEON_IRQ_WORKQ0);
@@ -202,6 +191,43 @@ static void octeon_irq_ciu0_disable_v2(unsigned int irq)
202} 191}
203 192
204/* 193/*
194 * CIU timer type interrupts must be acknoleged by writing a '1' bit
195 * to their sum0 bit.
196 */
197static void octeon_irq_ciu0_timer_ack(unsigned int irq)
198{
199 int index = cvmx_get_core_num() * 2;
200 uint64_t mask = 1ull << (irq - OCTEON_IRQ_WORKQ0);
201 cvmx_write_csr(CVMX_CIU_INTX_SUM0(index), mask);
202}
203
204static void octeon_irq_ciu0_timer_ack_v1(unsigned int irq)
205{
206 octeon_irq_ciu0_timer_ack(irq);
207 octeon_irq_ciu0_ack(irq);
208}
209
210static void octeon_irq_ciu0_timer_ack_v2(unsigned int irq)
211{
212 octeon_irq_ciu0_timer_ack(irq);
213 octeon_irq_ciu0_ack_v2(irq);
214}
215
216/*
217 * Enable the irq on the current core for chips that have the EN*_W1{S,C}
218 * registers.
219 */
220static void octeon_irq_ciu0_eoi_v2(unsigned int irq)
221{
222 struct irq_desc *desc = irq_desc + irq;
223 int index = cvmx_get_core_num() * 2;
224 u64 mask = 1ull << (irq - OCTEON_IRQ_WORKQ0);
225
226 if ((desc->status & IRQ_DISABLED) == 0)
227 cvmx_write_csr(CVMX_CIU_INTX_EN0_W1S(index), mask);
228}
229
230/*
205 * Disable the irq on the all cores for chips that have the EN*_W1{S,C} 231 * Disable the irq on the all cores for chips that have the EN*_W1{S,C}
206 * registers. 232 * registers.
207 */ 233 */
@@ -223,7 +249,7 @@ static int octeon_irq_ciu0_set_affinity(unsigned int irq, const struct cpumask *
223 unsigned long flags; 249 unsigned long flags;
224 int bit = irq - OCTEON_IRQ_WORKQ0; /* Bit 0-63 of EN0 */ 250 int bit = irq - OCTEON_IRQ_WORKQ0; /* Bit 0-63 of EN0 */
225 251
226 write_lock_irqsave(&octeon_irq_ciu0_rwlock, flags); 252 raw_spin_lock_irqsave(&octeon_irq_ciu0_lock, flags);
227 for_each_online_cpu(cpu) { 253 for_each_online_cpu(cpu) {
228 int coreid = octeon_coreid_for_cpu(cpu); 254 int coreid = octeon_coreid_for_cpu(cpu);
229 uint64_t en0 = 255 uint64_t en0 =
@@ -239,7 +265,7 @@ static int octeon_irq_ciu0_set_affinity(unsigned int irq, const struct cpumask *
239 * of them are done. 265 * of them are done.
240 */ 266 */
241 cvmx_read_csr(CVMX_CIU_INTX_EN0(cvmx_get_core_num() * 2)); 267 cvmx_read_csr(CVMX_CIU_INTX_EN0(cvmx_get_core_num() * 2));
242 write_unlock_irqrestore(&octeon_irq_ciu0_rwlock, flags); 268 raw_spin_unlock_irqrestore(&octeon_irq_ciu0_lock, flags);
243 269
244 return 0; 270 return 0;
245} 271}
@@ -272,8 +298,8 @@ static struct irq_chip octeon_irq_chip_ciu0_v2 = {
272 .name = "CIU0", 298 .name = "CIU0",
273 .enable = octeon_irq_ciu0_enable_v2, 299 .enable = octeon_irq_ciu0_enable_v2,
274 .disable = octeon_irq_ciu0_disable_all_v2, 300 .disable = octeon_irq_ciu0_disable_all_v2,
275 .ack = octeon_irq_ciu0_disable_v2, 301 .ack = octeon_irq_ciu0_ack_v2,
276 .eoi = octeon_irq_ciu0_enable_v2, 302 .eoi = octeon_irq_ciu0_eoi_v2,
277#ifdef CONFIG_SMP 303#ifdef CONFIG_SMP
278 .set_affinity = octeon_irq_ciu0_set_affinity_v2, 304 .set_affinity = octeon_irq_ciu0_set_affinity_v2,
279#endif 305#endif
@@ -290,6 +316,28 @@ static struct irq_chip octeon_irq_chip_ciu0 = {
290#endif 316#endif
291}; 317};
292 318
319static struct irq_chip octeon_irq_chip_ciu0_timer_v2 = {
320 .name = "CIU0-T",
321 .enable = octeon_irq_ciu0_enable_v2,
322 .disable = octeon_irq_ciu0_disable_all_v2,
323 .ack = octeon_irq_ciu0_timer_ack_v2,
324 .eoi = octeon_irq_ciu0_eoi_v2,
325#ifdef CONFIG_SMP
326 .set_affinity = octeon_irq_ciu0_set_affinity_v2,
327#endif
328};
329
330static struct irq_chip octeon_irq_chip_ciu0_timer = {
331 .name = "CIU0-T",
332 .enable = octeon_irq_ciu0_enable,
333 .disable = octeon_irq_ciu0_disable,
334 .ack = octeon_irq_ciu0_timer_ack_v1,
335 .eoi = octeon_irq_ciu0_eoi,
336#ifdef CONFIG_SMP
337 .set_affinity = octeon_irq_ciu0_set_affinity,
338#endif
339};
340
293 341
294static void octeon_irq_ciu1_ack(unsigned int irq) 342static void octeon_irq_ciu1_ack(unsigned int irq)
295{ 343{
@@ -322,19 +370,12 @@ static void octeon_irq_ciu1_enable(unsigned int irq)
322 uint64_t en1; 370 uint64_t en1;
323 int bit = irq - OCTEON_IRQ_WDOG0; /* Bit 0-63 of EN1 */ 371 int bit = irq - OCTEON_IRQ_WDOG0; /* Bit 0-63 of EN1 */
324 372
325 /* 373 raw_spin_lock_irqsave(&octeon_irq_ciu1_lock, flags);
326 * A read lock is used here to make sure only one core is ever
327 * updating the CIU enable bits at a time. During an enable
328 * the cores don't interfere with each other. During a disable
329 * the write lock stops any enables that might cause a
330 * problem.
331 */
332 read_lock_irqsave(&octeon_irq_ciu1_rwlock, flags);
333 en1 = cvmx_read_csr(CVMX_CIU_INTX_EN1(coreid * 2 + 1)); 374 en1 = cvmx_read_csr(CVMX_CIU_INTX_EN1(coreid * 2 + 1));
334 en1 |= 1ull << bit; 375 en1 |= 1ull << bit;
335 cvmx_write_csr(CVMX_CIU_INTX_EN1(coreid * 2 + 1), en1); 376 cvmx_write_csr(CVMX_CIU_INTX_EN1(coreid * 2 + 1), en1);
336 cvmx_read_csr(CVMX_CIU_INTX_EN1(coreid * 2 + 1)); 377 cvmx_read_csr(CVMX_CIU_INTX_EN1(coreid * 2 + 1));
337 read_unlock_irqrestore(&octeon_irq_ciu1_rwlock, flags); 378 raw_spin_unlock_irqrestore(&octeon_irq_ciu1_lock, flags);
338} 379}
339 380
340static void octeon_irq_ciu1_disable(unsigned int irq) 381static void octeon_irq_ciu1_disable(unsigned int irq)
@@ -343,7 +384,7 @@ static void octeon_irq_ciu1_disable(unsigned int irq)
343 unsigned long flags; 384 unsigned long flags;
344 uint64_t en1; 385 uint64_t en1;
345 int cpu; 386 int cpu;
346 write_lock_irqsave(&octeon_irq_ciu1_rwlock, flags); 387 raw_spin_lock_irqsave(&octeon_irq_ciu1_lock, flags);
347 for_each_online_cpu(cpu) { 388 for_each_online_cpu(cpu) {
348 int coreid = octeon_coreid_for_cpu(cpu); 389 int coreid = octeon_coreid_for_cpu(cpu);
349 en1 = cvmx_read_csr(CVMX_CIU_INTX_EN1(coreid * 2 + 1)); 390 en1 = cvmx_read_csr(CVMX_CIU_INTX_EN1(coreid * 2 + 1));
@@ -355,7 +396,7 @@ static void octeon_irq_ciu1_disable(unsigned int irq)
355 * of them are done. 396 * of them are done.
356 */ 397 */
357 cvmx_read_csr(CVMX_CIU_INTX_EN1(cvmx_get_core_num() * 2 + 1)); 398 cvmx_read_csr(CVMX_CIU_INTX_EN1(cvmx_get_core_num() * 2 + 1));
358 write_unlock_irqrestore(&octeon_irq_ciu1_rwlock, flags); 399 raw_spin_unlock_irqrestore(&octeon_irq_ciu1_lock, flags);
359} 400}
360 401
361/* 402/*
@@ -374,7 +415,7 @@ static void octeon_irq_ciu1_enable_v2(unsigned int irq)
374 * Disable the irq on the current core for chips that have the EN*_W1{S,C} 415 * Disable the irq on the current core for chips that have the EN*_W1{S,C}
375 * registers. 416 * registers.
376 */ 417 */
377static void octeon_irq_ciu1_disable_v2(unsigned int irq) 418static void octeon_irq_ciu1_ack_v2(unsigned int irq)
378{ 419{
379 int index = cvmx_get_core_num() * 2 + 1; 420 int index = cvmx_get_core_num() * 2 + 1;
380 u64 mask = 1ull << (irq - OCTEON_IRQ_WDOG0); 421 u64 mask = 1ull << (irq - OCTEON_IRQ_WDOG0);
@@ -383,6 +424,20 @@ static void octeon_irq_ciu1_disable_v2(unsigned int irq)
383} 424}
384 425
385/* 426/*
427 * Enable the irq on the current core for chips that have the EN*_W1{S,C}
428 * registers.
429 */
430static void octeon_irq_ciu1_eoi_v2(unsigned int irq)
431{
432 struct irq_desc *desc = irq_desc + irq;
433 int index = cvmx_get_core_num() * 2 + 1;
434 u64 mask = 1ull << (irq - OCTEON_IRQ_WDOG0);
435
436 if ((desc->status & IRQ_DISABLED) == 0)
437 cvmx_write_csr(CVMX_CIU_INTX_EN1_W1S(index), mask);
438}
439
440/*
386 * Disable the irq on the all cores for chips that have the EN*_W1{S,C} 441 * Disable the irq on the all cores for chips that have the EN*_W1{S,C}
387 * registers. 442 * registers.
388 */ 443 */
@@ -405,7 +460,7 @@ static int octeon_irq_ciu1_set_affinity(unsigned int irq,
405 unsigned long flags; 460 unsigned long flags;
406 int bit = irq - OCTEON_IRQ_WDOG0; /* Bit 0-63 of EN1 */ 461 int bit = irq - OCTEON_IRQ_WDOG0; /* Bit 0-63 of EN1 */
407 462
408 write_lock_irqsave(&octeon_irq_ciu1_rwlock, flags); 463 raw_spin_lock_irqsave(&octeon_irq_ciu1_lock, flags);
409 for_each_online_cpu(cpu) { 464 for_each_online_cpu(cpu) {
410 int coreid = octeon_coreid_for_cpu(cpu); 465 int coreid = octeon_coreid_for_cpu(cpu);
411 uint64_t en1 = 466 uint64_t en1 =
@@ -422,7 +477,7 @@ static int octeon_irq_ciu1_set_affinity(unsigned int irq,
422 * of them are done. 477 * of them are done.
423 */ 478 */
424 cvmx_read_csr(CVMX_CIU_INTX_EN1(cvmx_get_core_num() * 2 + 1)); 479 cvmx_read_csr(CVMX_CIU_INTX_EN1(cvmx_get_core_num() * 2 + 1));
425 write_unlock_irqrestore(&octeon_irq_ciu1_rwlock, flags); 480 raw_spin_unlock_irqrestore(&octeon_irq_ciu1_lock, flags);
426 481
427 return 0; 482 return 0;
428} 483}
@@ -455,8 +510,8 @@ static struct irq_chip octeon_irq_chip_ciu1_v2 = {
455 .name = "CIU0", 510 .name = "CIU0",
456 .enable = octeon_irq_ciu1_enable_v2, 511 .enable = octeon_irq_ciu1_enable_v2,
457 .disable = octeon_irq_ciu1_disable_all_v2, 512 .disable = octeon_irq_ciu1_disable_all_v2,
458 .ack = octeon_irq_ciu1_disable_v2, 513 .ack = octeon_irq_ciu1_ack_v2,
459 .eoi = octeon_irq_ciu1_enable_v2, 514 .eoi = octeon_irq_ciu1_eoi_v2,
460#ifdef CONFIG_SMP 515#ifdef CONFIG_SMP
461 .set_affinity = octeon_irq_ciu1_set_affinity_v2, 516 .set_affinity = octeon_irq_ciu1_set_affinity_v2,
462#endif 517#endif
@@ -475,6 +530,8 @@ static struct irq_chip octeon_irq_chip_ciu1 = {
475 530
476#ifdef CONFIG_PCI_MSI 531#ifdef CONFIG_PCI_MSI
477 532
533static DEFINE_RAW_SPINLOCK(octeon_irq_msi_lock);
534
478static void octeon_irq_msi_ack(unsigned int irq) 535static void octeon_irq_msi_ack(unsigned int irq)
479{ 536{
480 if (!octeon_has_feature(OCTEON_FEATURE_PCIE)) { 537 if (!octeon_has_feature(OCTEON_FEATURE_PCIE)) {
@@ -515,12 +572,12 @@ static void octeon_irq_msi_enable(unsigned int irq)
515 */ 572 */
516 uint64_t en; 573 uint64_t en;
517 unsigned long flags; 574 unsigned long flags;
518 spin_lock_irqsave(&octeon_irq_msi_lock, flags); 575 raw_spin_lock_irqsave(&octeon_irq_msi_lock, flags);
519 en = cvmx_read_csr(CVMX_PEXP_NPEI_MSI_ENB0); 576 en = cvmx_read_csr(CVMX_PEXP_NPEI_MSI_ENB0);
520 en |= 1ull << (irq - OCTEON_IRQ_MSI_BIT0); 577 en |= 1ull << (irq - OCTEON_IRQ_MSI_BIT0);
521 cvmx_write_csr(CVMX_PEXP_NPEI_MSI_ENB0, en); 578 cvmx_write_csr(CVMX_PEXP_NPEI_MSI_ENB0, en);
522 cvmx_read_csr(CVMX_PEXP_NPEI_MSI_ENB0); 579 cvmx_read_csr(CVMX_PEXP_NPEI_MSI_ENB0);
523 spin_unlock_irqrestore(&octeon_irq_msi_lock, flags); 580 raw_spin_unlock_irqrestore(&octeon_irq_msi_lock, flags);
524 } 581 }
525} 582}
526 583
@@ -537,12 +594,12 @@ static void octeon_irq_msi_disable(unsigned int irq)
537 */ 594 */
538 uint64_t en; 595 uint64_t en;
539 unsigned long flags; 596 unsigned long flags;
540 spin_lock_irqsave(&octeon_irq_msi_lock, flags); 597 raw_spin_lock_irqsave(&octeon_irq_msi_lock, flags);
541 en = cvmx_read_csr(CVMX_PEXP_NPEI_MSI_ENB0); 598 en = cvmx_read_csr(CVMX_PEXP_NPEI_MSI_ENB0);
542 en &= ~(1ull << (irq - OCTEON_IRQ_MSI_BIT0)); 599 en &= ~(1ull << (irq - OCTEON_IRQ_MSI_BIT0));
543 cvmx_write_csr(CVMX_PEXP_NPEI_MSI_ENB0, en); 600 cvmx_write_csr(CVMX_PEXP_NPEI_MSI_ENB0, en);
544 cvmx_read_csr(CVMX_PEXP_NPEI_MSI_ENB0); 601 cvmx_read_csr(CVMX_PEXP_NPEI_MSI_ENB0);
545 spin_unlock_irqrestore(&octeon_irq_msi_lock, flags); 602 raw_spin_unlock_irqrestore(&octeon_irq_msi_lock, flags);
546 } 603 }
547} 604}
548 605
@@ -559,6 +616,7 @@ void __init arch_init_irq(void)
559{ 616{
560 int irq; 617 int irq;
561 struct irq_chip *chip0; 618 struct irq_chip *chip0;
619 struct irq_chip *chip0_timer;
562 struct irq_chip *chip1; 620 struct irq_chip *chip1;
563 621
564#ifdef CONFIG_SMP 622#ifdef CONFIG_SMP
@@ -574,9 +632,11 @@ void __init arch_init_irq(void)
574 OCTEON_IS_MODEL(OCTEON_CN56XX_PASS2_X) || 632 OCTEON_IS_MODEL(OCTEON_CN56XX_PASS2_X) ||
575 OCTEON_IS_MODEL(OCTEON_CN52XX_PASS2_X)) { 633 OCTEON_IS_MODEL(OCTEON_CN52XX_PASS2_X)) {
576 chip0 = &octeon_irq_chip_ciu0_v2; 634 chip0 = &octeon_irq_chip_ciu0_v2;
635 chip0_timer = &octeon_irq_chip_ciu0_timer_v2;
577 chip1 = &octeon_irq_chip_ciu1_v2; 636 chip1 = &octeon_irq_chip_ciu1_v2;
578 } else { 637 } else {
579 chip0 = &octeon_irq_chip_ciu0; 638 chip0 = &octeon_irq_chip_ciu0;
639 chip0_timer = &octeon_irq_chip_ciu0_timer;
580 chip1 = &octeon_irq_chip_ciu1; 640 chip1 = &octeon_irq_chip_ciu1;
581 } 641 }
582 642
@@ -590,7 +650,21 @@ void __init arch_init_irq(void)
590 650
591 /* 24 - 87 CIU_INT_SUM0 */ 651 /* 24 - 87 CIU_INT_SUM0 */
592 for (irq = OCTEON_IRQ_WORKQ0; irq <= OCTEON_IRQ_BOOTDMA; irq++) { 652 for (irq = OCTEON_IRQ_WORKQ0; irq <= OCTEON_IRQ_BOOTDMA; irq++) {
593 set_irq_chip_and_handler(irq, chip0, handle_percpu_irq); 653 switch (irq) {
654 case OCTEON_IRQ_GMX_DRP0:
655 case OCTEON_IRQ_GMX_DRP1:
656 case OCTEON_IRQ_IPD_DRP:
657 case OCTEON_IRQ_KEY_ZERO:
658 case OCTEON_IRQ_TIMER0:
659 case OCTEON_IRQ_TIMER1:
660 case OCTEON_IRQ_TIMER2:
661 case OCTEON_IRQ_TIMER3:
662 set_irq_chip_and_handler(irq, chip0_timer, handle_percpu_irq);
663 break;
664 default:
665 set_irq_chip_and_handler(irq, chip0, handle_percpu_irq);
666 break;
667 }
594 } 668 }
595 669
596 /* 88 - 151 CIU_INT_SUM1 */ 670 /* 88 - 151 CIU_INT_SUM1 */
diff --git a/arch/mips/cavium-octeon/octeon-platform.c b/arch/mips/cavium-octeon/octeon-platform.c
index be711dd2d918..62ac30eef5e8 100644
--- a/arch/mips/cavium-octeon/octeon-platform.c
+++ b/arch/mips/cavium-octeon/octeon-platform.c
@@ -9,6 +9,7 @@
9 9
10#include <linux/init.h> 10#include <linux/init.h>
11#include <linux/irq.h> 11#include <linux/irq.h>
12#include <linux/i2c.h>
12#include <linux/module.h> 13#include <linux/module.h>
13#include <linux/platform_device.h> 14#include <linux/platform_device.h>
14 15
@@ -159,6 +160,178 @@ out:
159} 160}
160device_initcall(octeon_rng_device_init); 161device_initcall(octeon_rng_device_init);
161 162
163static struct i2c_board_info __initdata octeon_i2c_devices[] = {
164 {
165 I2C_BOARD_INFO("ds1337", 0x68),
166 },
167};
168
169static int __init octeon_i2c_devices_init(void)
170{
171 return i2c_register_board_info(0, octeon_i2c_devices,
172 ARRAY_SIZE(octeon_i2c_devices));
173}
174arch_initcall(octeon_i2c_devices_init);
175
176#define OCTEON_I2C_IO_BASE 0x1180000001000ull
177#define OCTEON_I2C_IO_UNIT_OFFSET 0x200
178
179static struct octeon_i2c_data octeon_i2c_data[2];
180
181static int __init octeon_i2c_device_init(void)
182{
183 struct platform_device *pd;
184 int ret = 0;
185 int port, num_ports;
186
187 struct resource i2c_resources[] = {
188 {
189 .flags = IORESOURCE_MEM,
190 }, {
191 .flags = IORESOURCE_IRQ,
192 }
193 };
194
195 if (OCTEON_IS_MODEL(OCTEON_CN56XX) || OCTEON_IS_MODEL(OCTEON_CN52XX))
196 num_ports = 2;
197 else
198 num_ports = 1;
199
200 for (port = 0; port < num_ports; port++) {
201 octeon_i2c_data[port].sys_freq = octeon_get_clock_rate();
202 /*FIXME: should be examined. At the moment is set for 100Khz */
203 octeon_i2c_data[port].i2c_freq = 100000;
204
205 pd = platform_device_alloc("i2c-octeon", port);
206 if (!pd) {
207 ret = -ENOMEM;
208 goto out;
209 }
210
211 pd->dev.platform_data = octeon_i2c_data + port;
212
213 i2c_resources[0].start =
214 OCTEON_I2C_IO_BASE + (port * OCTEON_I2C_IO_UNIT_OFFSET);
215 i2c_resources[0].end = i2c_resources[0].start + 0x1f;
216 switch (port) {
217 case 0:
218 i2c_resources[1].start = OCTEON_IRQ_TWSI;
219 i2c_resources[1].end = OCTEON_IRQ_TWSI;
220 break;
221 case 1:
222 i2c_resources[1].start = OCTEON_IRQ_TWSI2;
223 i2c_resources[1].end = OCTEON_IRQ_TWSI2;
224 break;
225 default:
226 BUG();
227 }
228
229 ret = platform_device_add_resources(pd,
230 i2c_resources,
231 ARRAY_SIZE(i2c_resources));
232 if (ret)
233 goto fail;
234
235 ret = platform_device_add(pd);
236 if (ret)
237 goto fail;
238 }
239 return ret;
240fail:
241 platform_device_put(pd);
242out:
243 return ret;
244}
245device_initcall(octeon_i2c_device_init);
246
247/* Octeon SMI/MDIO interface. */
248static int __init octeon_mdiobus_device_init(void)
249{
250 struct platform_device *pd;
251 int ret = 0;
252
253 if (octeon_is_simulation())
254 return 0; /* No mdio in the simulator. */
255
256 /* The bus number is the platform_device id. */
257 pd = platform_device_alloc("mdio-octeon", 0);
258 if (!pd) {
259 ret = -ENOMEM;
260 goto out;
261 }
262
263 ret = platform_device_add(pd);
264 if (ret)
265 goto fail;
266
267 return ret;
268fail:
269 platform_device_put(pd);
270
271out:
272 return ret;
273
274}
275device_initcall(octeon_mdiobus_device_init);
276
277/* Octeon mgmt port Ethernet interface. */
278static int __init octeon_mgmt_device_init(void)
279{
280 struct platform_device *pd;
281 int ret = 0;
282 int port, num_ports;
283
284 struct resource mgmt_port_resource = {
285 .flags = IORESOURCE_IRQ,
286 .start = -1,
287 .end = -1
288 };
289
290 if (!OCTEON_IS_MODEL(OCTEON_CN56XX) && !OCTEON_IS_MODEL(OCTEON_CN52XX))
291 return 0;
292
293 if (OCTEON_IS_MODEL(OCTEON_CN56XX))
294 num_ports = 1;
295 else
296 num_ports = 2;
297
298 for (port = 0; port < num_ports; port++) {
299 pd = platform_device_alloc("octeon_mgmt", port);
300 if (!pd) {
301 ret = -ENOMEM;
302 goto out;
303 }
304 switch (port) {
305 case 0:
306 mgmt_port_resource.start = OCTEON_IRQ_MII0;
307 break;
308 case 1:
309 mgmt_port_resource.start = OCTEON_IRQ_MII1;
310 break;
311 default:
312 BUG();
313 }
314 mgmt_port_resource.end = mgmt_port_resource.start;
315
316 ret = platform_device_add_resources(pd, &mgmt_port_resource, 1);
317
318 if (ret)
319 goto fail;
320
321 ret = platform_device_add(pd);
322 if (ret)
323 goto fail;
324 }
325 return ret;
326fail:
327 platform_device_put(pd);
328
329out:
330 return ret;
331
332}
333device_initcall(octeon_mgmt_device_init);
334
162MODULE_AUTHOR("David Daney <ddaney@caviumnetworks.com>"); 335MODULE_AUTHOR("David Daney <ddaney@caviumnetworks.com>");
163MODULE_LICENSE("GPL"); 336MODULE_LICENSE("GPL");
164MODULE_DESCRIPTION("Platform driver for Octeon SOC"); 337MODULE_DESCRIPTION("Platform driver for Octeon SOC");
diff --git a/arch/mips/cavium-octeon/setup.c b/arch/mips/cavium-octeon/setup.c
index b321d3b16877..9a06fa9f9f0c 100644
--- a/arch/mips/cavium-octeon/setup.c
+++ b/arch/mips/cavium-octeon/setup.c
@@ -45,9 +45,6 @@ extern struct plat_smp_ops octeon_smp_ops;
45extern void pci_console_init(const char *arg); 45extern void pci_console_init(const char *arg);
46#endif 46#endif
47 47
48#ifdef CONFIG_CAVIUM_RESERVE32
49extern uint64_t octeon_reserve32_memory;
50#endif
51static unsigned long long MAX_MEMORY = 512ull << 20; 48static unsigned long long MAX_MEMORY = 512ull << 20;
52 49
53struct octeon_boot_descriptor *octeon_boot_desc_ptr; 50struct octeon_boot_descriptor *octeon_boot_desc_ptr;
@@ -186,54 +183,6 @@ void octeon_check_cpu_bist(void)
186 write_octeon_c0_dcacheerr(0); 183 write_octeon_c0_dcacheerr(0);
187} 184}
188 185
189#ifdef CONFIG_CAVIUM_RESERVE32_USE_WIRED_TLB
190/**
191 * Called on every core to setup the wired tlb entry needed
192 * if CONFIG_CAVIUM_RESERVE32_USE_WIRED_TLB is set.
193 *
194 */
195static void octeon_hal_setup_per_cpu_reserved32(void *unused)
196{
197 /*
198 * The config has selected to wire the reserve32 memory for all
199 * userspace applications. We need to put a wired TLB entry in for each
200 * 512MB of reserve32 memory. We only handle double 256MB pages here,
201 * so reserve32 must be multiple of 512MB.
202 */
203 uint32_t size = CONFIG_CAVIUM_RESERVE32;
204 uint32_t entrylo0 =
205 0x7 | ((octeon_reserve32_memory & ((1ul << 40) - 1)) >> 6);
206 uint32_t entrylo1 = entrylo0 + (256 << 14);
207 uint32_t entryhi = (0x80000000UL - (CONFIG_CAVIUM_RESERVE32 << 20));
208 while (size >= 512) {
209#if 0
210 pr_info("CPU%d: Adding double wired TLB entry for 0x%lx\n",
211 smp_processor_id(), entryhi);
212#endif
213 add_wired_entry(entrylo0, entrylo1, entryhi, PM_256M);
214 entrylo0 += 512 << 14;
215 entrylo1 += 512 << 14;
216 entryhi += 512 << 20;
217 size -= 512;
218 }
219}
220#endif /* CONFIG_CAVIUM_RESERVE32_USE_WIRED_TLB */
221
222/**
223 * Called to release the named block which was used to made sure
224 * that nobody used the memory for something else during
225 * init. Now we'll free it so userspace apps can use this
226 * memory region with bootmem_alloc.
227 *
228 * This function is called only once from prom_free_prom_memory().
229 */
230void octeon_hal_setup_reserved32(void)
231{
232#ifdef CONFIG_CAVIUM_RESERVE32_USE_WIRED_TLB
233 on_each_cpu(octeon_hal_setup_per_cpu_reserved32, NULL, 0, 1);
234#endif
235}
236
237/** 186/**
238 * Reboot Octeon 187 * Reboot Octeon
239 * 188 *
@@ -294,18 +243,6 @@ static void octeon_halt(void)
294 octeon_kill_core(NULL); 243 octeon_kill_core(NULL);
295} 244}
296 245
297#if 0
298/**
299 * Platform time init specifics.
300 * Returns
301 */
302void __init plat_time_init(void)
303{
304 /* Nothing special here, but we are required to have one */
305}
306
307#endif
308
309/** 246/**
310 * Handle all the error condition interrupts that might occur. 247 * Handle all the error condition interrupts that might occur.
311 * 248 *
@@ -502,25 +439,13 @@ void __init prom_init(void)
502 * memory when it is getting memory from the 439 * memory when it is getting memory from the
503 * bootloader. Later, after the memory allocations are 440 * bootloader. Later, after the memory allocations are
504 * complete, the reserve32 will be freed. 441 * complete, the reserve32 will be freed.
505 */ 442 *
506#ifdef CONFIG_CAVIUM_RESERVE32_USE_WIRED_TLB
507 if (CONFIG_CAVIUM_RESERVE32 & 0x1ff)
508 pr_err("CAVIUM_RESERVE32 isn't a multiple of 512MB. "
509 "This is required if CAVIUM_RESERVE32_USE_WIRED_TLB "
510 "is set\n");
511 else
512 addr = cvmx_bootmem_phy_named_block_alloc(CONFIG_CAVIUM_RESERVE32 << 20,
513 0, 0, 512 << 20,
514 "CAVIUM_RESERVE32", 0);
515#else
516 /*
517 * Allocate memory for RESERVED32 aligned on 2MB boundary. This 443 * Allocate memory for RESERVED32 aligned on 2MB boundary. This
518 * is in case we later use hugetlb entries with it. 444 * is in case we later use hugetlb entries with it.
519 */ 445 */
520 addr = cvmx_bootmem_phy_named_block_alloc(CONFIG_CAVIUM_RESERVE32 << 20, 446 addr = cvmx_bootmem_phy_named_block_alloc(CONFIG_CAVIUM_RESERVE32 << 20,
521 0, 0, 2 << 20, 447 0, 0, 2 << 20,
522 "CAVIUM_RESERVE32", 0); 448 "CAVIUM_RESERVE32", 0);
523#endif
524 if (addr < 0) 449 if (addr < 0)
525 pr_err("Failed to allocate CAVIUM_RESERVE32 memory area\n"); 450 pr_err("Failed to allocate CAVIUM_RESERVE32 memory area\n");
526 else 451 else
@@ -817,9 +742,4 @@ void prom_free_prom_memory(void)
817 panic("Unable to request_irq(OCTEON_IRQ_RML)\n"); 742 panic("Unable to request_irq(OCTEON_IRQ_RML)\n");
818 } 743 }
819#endif 744#endif
820
821 /* This call is here so that it is performed after any TLB
822 initializations. It needs to be after these in case the
823 CONFIG_CAVIUM_RESERVE32_USE_WIRED_TLB option is set */
824 octeon_hal_setup_reserved32();
825} 745}
diff --git a/arch/mips/cavium-octeon/smp.c b/arch/mips/cavium-octeon/smp.c
index c198efdf583e..6d99b9d8887d 100644
--- a/arch/mips/cavium-octeon/smp.c
+++ b/arch/mips/cavium-octeon/smp.c
@@ -279,14 +279,6 @@ static void octeon_cpu_die(unsigned int cpu)
279 uint32_t avail_coremask; 279 uint32_t avail_coremask;
280 struct cvmx_bootmem_named_block_desc *block_desc; 280 struct cvmx_bootmem_named_block_desc *block_desc;
281 281
282#ifdef CONFIG_CAVIUM_OCTEON_WATCHDOG
283 /* Disable the watchdog */
284 cvmx_ciu_wdogx_t ciu_wdog;
285 ciu_wdog.u64 = cvmx_read_csr(CVMX_CIU_WDOGX(cpu));
286 ciu_wdog.s.mode = 0;
287 cvmx_write_csr(CVMX_CIU_WDOGX(cpu), ciu_wdog.u64);
288#endif
289
290 while (per_cpu(cpu_state, cpu) != CPU_DEAD) 282 while (per_cpu(cpu_state, cpu) != CPU_DEAD)
291 cpu_relax(); 283 cpu_relax();
292 284
@@ -327,7 +319,7 @@ static void octeon_cpu_die(unsigned int cpu)
327 avail_coremask); 319 avail_coremask);
328 } 320 }
329 321
330 pr_info("Reset core %d. Available Coremask = %x \n", coreid, 322 pr_info("Reset core %d. Available Coremask = %x\n", coreid,
331 avail_coremask); 323 avail_coremask);
332 cvmx_write_csr(CVMX_CIU_PP_RST, 1 << coreid); 324 cvmx_write_csr(CVMX_CIU_PP_RST, 1 << coreid);
333 cvmx_write_csr(CVMX_CIU_PP_RST, 0); 325 cvmx_write_csr(CVMX_CIU_PP_RST, 0);
diff --git a/arch/mips/cobalt/pci.c b/arch/mips/cobalt/pci.c
index cfce7af1bca9..85ec9cc31d66 100644
--- a/arch/mips/cobalt/pci.c
+++ b/arch/mips/cobalt/pci.c
@@ -25,7 +25,7 @@ static struct resource cobalt_mem_resource = {
25 25
26static struct resource cobalt_io_resource = { 26static struct resource cobalt_io_resource = {
27 .start = 0x1000, 27 .start = 0x1000,
28 .end = GT_DEF_PCI0_IO_SIZE - 1, 28 .end = 0xffffffUL,
29 .name = "PCI I/O", 29 .name = "PCI I/O",
30 .flags = IORESOURCE_IO, 30 .flags = IORESOURCE_IO,
31}; 31};
diff --git a/arch/mips/cobalt/setup.c b/arch/mips/cobalt/setup.c
index b51644227241..ec3b2c417f7c 100644
--- a/arch/mips/cobalt/setup.c
+++ b/arch/mips/cobalt/setup.c
@@ -97,26 +97,18 @@ void __init plat_mem_setup(void)
97 97
98void __init prom_init(void) 98void __init prom_init(void)
99{ 99{
100 int narg, indx, posn, nchr;
101 unsigned long memsz; 100 unsigned long memsz;
101 int argc, i;
102 char **argv; 102 char **argv;
103 103
104 memsz = fw_arg0 & 0x7fff0000; 104 memsz = fw_arg0 & 0x7fff0000;
105 narg = fw_arg0 & 0x0000ffff; 105 argc = fw_arg0 & 0x0000ffff;
106 106 argv = (char **)fw_arg1;
107 if (narg) { 107
108 arcs_cmdline[0] = '\0'; 108 for (i = 1; i < argc; i++) {
109 argv = (char **) fw_arg1; 109 strlcat(arcs_cmdline, argv[i], COMMAND_LINE_SIZE);
110 posn = 0; 110 if (i < (argc - 1))
111 for (indx = 1; indx < narg; ++indx) { 111 strlcat(arcs_cmdline, " ", COMMAND_LINE_SIZE);
112 nchr = strlen(argv[indx]);
113 if (posn + 1 + nchr + 1 > sizeof(arcs_cmdline))
114 break;
115 if (posn)
116 arcs_cmdline[posn++] = ' ';
117 strcpy(arcs_cmdline + posn, argv[indx]);
118 posn += nchr;
119 }
120 } 112 }
121 113
122 add_memory_region(0x0, memsz, BOOT_MEM_RAM); 114 add_memory_region(0x0, memsz, BOOT_MEM_RAM);
diff --git a/arch/mips/configs/ar7_defconfig b/arch/mips/configs/ar7_defconfig
index 35648302f7cc..5a5b6ba7514e 100644
--- a/arch/mips/configs/ar7_defconfig
+++ b/arch/mips/configs/ar7_defconfig
@@ -10,7 +10,6 @@ CONFIG_MIPS=y
10# 10#
11# CONFIG_MACH_ALCHEMY is not set 11# CONFIG_MACH_ALCHEMY is not set
12CONFIG_AR7=y 12CONFIG_AR7=y
13# CONFIG_BASLER_EXCITE is not set
14# CONFIG_BCM47XX is not set 13# CONFIG_BCM47XX is not set
15# CONFIG_MIPS_COBALT is not set 14# CONFIG_MIPS_COBALT is not set
16# CONFIG_MACH_DECSTATION is not set 15# CONFIG_MACH_DECSTATION is not set
@@ -265,7 +264,6 @@ CONFIG_DEFAULT_DEADLINE=y
265# CONFIG_DEFAULT_CFQ is not set 264# CONFIG_DEFAULT_CFQ is not set
266# CONFIG_DEFAULT_NOOP is not set 265# CONFIG_DEFAULT_NOOP is not set
267CONFIG_DEFAULT_IOSCHED="deadline" 266CONFIG_DEFAULT_IOSCHED="deadline"
268CONFIG_PROBE_INITRD_HEADER=y
269# CONFIG_FREEZER is not set 267# CONFIG_FREEZER is not set
270 268
271# 269#
@@ -1053,7 +1051,9 @@ CONFIG_TRACING_SUPPORT=y
1053# CONFIG_DYNAMIC_DEBUG is not set 1051# CONFIG_DYNAMIC_DEBUG is not set
1054# CONFIG_SAMPLES is not set 1052# CONFIG_SAMPLES is not set
1055CONFIG_HAVE_ARCH_KGDB=y 1053CONFIG_HAVE_ARCH_KGDB=y
1054CONFIG_CMDLINE_BOOL=y
1056CONFIG_CMDLINE="rootfstype=squashfs,jffs2" 1055CONFIG_CMDLINE="rootfstype=squashfs,jffs2"
1056# CONFIG_CMDLINE_OVERRIDE is not set
1057 1057
1058# 1058#
1059# Security options 1059# Security options
diff --git a/arch/mips/configs/bcm47xx_defconfig b/arch/mips/configs/bcm47xx_defconfig
index 94b7d57f906d..267bd46120bc 100644
--- a/arch/mips/configs/bcm47xx_defconfig
+++ b/arch/mips/configs/bcm47xx_defconfig
@@ -9,7 +9,6 @@ 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_BASLER_EXCITE is not set
13CONFIG_BCM47XX=y 12CONFIG_BCM47XX=y
14# CONFIG_MIPS_COBALT is not set 13# CONFIG_MIPS_COBALT is not set
15# CONFIG_MACH_DECSTATION is not set 14# CONFIG_MACH_DECSTATION is not set
@@ -1853,7 +1852,7 @@ CONFIG_DEBUG_FS=y
1853# CONFIG_HEADERS_CHECK is not set 1852# CONFIG_HEADERS_CHECK is not set
1854# CONFIG_DEBUG_KERNEL is not set 1853# CONFIG_DEBUG_KERNEL is not set
1855# CONFIG_SAMPLES is not set 1854# CONFIG_SAMPLES is not set
1856CONFIG_CMDLINE="" 1855# CONFIG_CMDLINE_BOOL is not set
1857 1856
1858# 1857#
1859# Security options 1858# Security options
diff --git a/arch/mips/configs/bcm63xx_defconfig b/arch/mips/configs/bcm63xx_defconfig
index ea00c18d1f7b..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#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -9,14 +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_BASLER_EXCITE is not set 12# CONFIG_AR7 is not set
13# CONFIG_BCM47XX is not set 13# CONFIG_BCM47XX is not set
14CONFIG_BCM63XX=y 14CONFIG_BCM63XX=y
15# CONFIG_MIPS_COBALT is not set 15# CONFIG_MIPS_COBALT is not set
16# CONFIG_MACH_DECSTATION is not set 16# CONFIG_MACH_DECSTATION is not set
17# CONFIG_MACH_JAZZ is not set 17# CONFIG_MACH_JAZZ is not set
18# CONFIG_LASAT is not set 18# CONFIG_LASAT is not set
19# CONFIG_LEMOTE_FULONG is not set 19# CONFIG_MACH_LOONGSON is not set
20# CONFIG_MIPS_MALTA is not set 20# CONFIG_MIPS_MALTA is not set
21# CONFIG_MIPS_SIM is not set 21# CONFIG_MIPS_SIM is not set
22# CONFIG_NEC_MARKEINS is not set 22# CONFIG_NEC_MARKEINS is not set
@@ -27,6 +27,7 @@ CONFIG_BCM63XX=y
27# CONFIG_PNX8550_STB810 is not set 27# CONFIG_PNX8550_STB810 is not set
28# CONFIG_PMC_MSP is not set 28# CONFIG_PMC_MSP is not set
29# CONFIG_PMC_YOSEMITE is not set 29# CONFIG_PMC_YOSEMITE is not set
30# CONFIG_POWERTV is not set
30# CONFIG_SGI_IP22 is not set 31# CONFIG_SGI_IP22 is not set
31# CONFIG_SGI_IP27 is not set 32# CONFIG_SGI_IP27 is not set
32# CONFIG_SGI_IP28 is not set 33# CONFIG_SGI_IP28 is not set
@@ -46,13 +47,17 @@ CONFIG_BCM63XX=y
46# CONFIG_WR_PPMC is not set 47# CONFIG_WR_PPMC is not set
47# CONFIG_CAVIUM_OCTEON_SIMULATOR is not set 48# CONFIG_CAVIUM_OCTEON_SIMULATOR is not set
48# 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
49 51
50# 52#
51# CPU support 53# CPU support
52# 54#
55CONFIG_BCM63XX_CPU_6338=y
56CONFIG_BCM63XX_CPU_6345=y
53CONFIG_BCM63XX_CPU_6348=y 57CONFIG_BCM63XX_CPU_6348=y
54CONFIG_BCM63XX_CPU_6358=y 58CONFIG_BCM63XX_CPU_6358=y
55CONFIG_BOARD_BCM963XX=y 59CONFIG_BOARD_BCM963XX=y
60CONFIG_LOONGSON_UART_BASE=y
56CONFIG_RWSEM_GENERIC_SPINLOCK=y 61CONFIG_RWSEM_GENERIC_SPINLOCK=y
57# CONFIG_ARCH_HAS_ILOG2_U32 is not set 62# CONFIG_ARCH_HAS_ILOG2_U32 is not set
58# CONFIG_ARCH_HAS_ILOG2_U64 is not set 63# CONFIG_ARCH_HAS_ILOG2_U64 is not set
@@ -70,10 +75,8 @@ CONFIG_CEVT_R4K=y
70CONFIG_CSRC_R4K_LIB=y 75CONFIG_CSRC_R4K_LIB=y
71CONFIG_CSRC_R4K=y 76CONFIG_CSRC_R4K=y
72CONFIG_DMA_NONCOHERENT=y 77CONFIG_DMA_NONCOHERENT=y
73CONFIG_DMA_NEED_PCI_MAP_STATE=y 78CONFIG_NEED_DMA_MAP_STATE=y
74CONFIG_EARLY_PRINTK=y
75CONFIG_SYS_HAS_EARLY_PRINTK=y 79CONFIG_SYS_HAS_EARLY_PRINTK=y
76# CONFIG_HOTPLUG_CPU is not set
77# CONFIG_NO_IOPORT is not set 80# CONFIG_NO_IOPORT is not set
78CONFIG_GENERIC_GPIO=y 81CONFIG_GENERIC_GPIO=y
79CONFIG_CPU_BIG_ENDIAN=y 82CONFIG_CPU_BIG_ENDIAN=y
@@ -86,7 +89,8 @@ CONFIG_MIPS_L1_CACHE_SHIFT=5
86# 89#
87# CPU selection 90# CPU selection
88# 91#
89# CONFIG_CPU_LOONGSON2 is not set 92# CONFIG_CPU_LOONGSON2E is not set
93# CONFIG_CPU_LOONGSON2F is not set
90CONFIG_CPU_MIPS32_R1=y 94CONFIG_CPU_MIPS32_R1=y
91# CONFIG_CPU_MIPS32_R2 is not set 95# CONFIG_CPU_MIPS32_R2 is not set
92# CONFIG_CPU_MIPS64_R1 is not set 96# CONFIG_CPU_MIPS64_R1 is not set
@@ -129,7 +133,7 @@ CONFIG_CPU_HAS_PREFETCH=y
129CONFIG_MIPS_MT_DISABLED=y 133CONFIG_MIPS_MT_DISABLED=y
130# CONFIG_MIPS_MT_SMP is not set 134# CONFIG_MIPS_MT_SMP is not set
131# CONFIG_MIPS_MT_SMTC is not set 135# CONFIG_MIPS_MT_SMTC is not set
132CONFIG_CPU_HAS_LLSC=y 136# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
133CONFIG_CPU_HAS_SYNC=y 137CONFIG_CPU_HAS_SYNC=y
134CONFIG_GENERIC_HARDIRQS=y 138CONFIG_GENERIC_HARDIRQS=y
135CONFIG_GENERIC_IRQ_PROBE=y 139CONFIG_GENERIC_IRQ_PROBE=y
@@ -147,9 +151,8 @@ CONFIG_SPLIT_PTLOCK_CPUS=4
147# CONFIG_PHYS_ADDR_T_64BIT is not set 151# CONFIG_PHYS_ADDR_T_64BIT is not set
148CONFIG_ZONE_DMA_FLAG=0 152CONFIG_ZONE_DMA_FLAG=0
149CONFIG_VIRT_TO_BUS=y 153CONFIG_VIRT_TO_BUS=y
150CONFIG_UNEVICTABLE_LRU=y 154# CONFIG_KSM is not set
151CONFIG_HAVE_MLOCK=y 155CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
152CONFIG_HAVE_MLOCKED_PAGE_BIT=y
153CONFIG_TICK_ONESHOT=y 156CONFIG_TICK_ONESHOT=y
154CONFIG_NO_HZ=y 157CONFIG_NO_HZ=y
155# CONFIG_HIGH_RES_TIMERS is not set 158# CONFIG_HIGH_RES_TIMERS is not set
@@ -171,6 +174,7 @@ CONFIG_PREEMPT_NONE=y
171CONFIG_LOCKDEP_SUPPORT=y 174CONFIG_LOCKDEP_SUPPORT=y
172CONFIG_STACKTRACE_SUPPORT=y 175CONFIG_STACKTRACE_SUPPORT=y
173CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 176CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
177CONFIG_CONSTRUCTORS=y
174 178
175# 179#
176# General setup 180# General setup
@@ -190,15 +194,12 @@ CONFIG_LOCALVERSION=""
190# 194#
191# RCU Subsystem 195# RCU Subsystem
192# 196#
193CONFIG_CLASSIC_RCU=y
194# CONFIG_TREE_RCU is not set 197# CONFIG_TREE_RCU is not set
195# CONFIG_PREEMPT_RCU is not set 198# CONFIG_TREE_PREEMPT_RCU is not set
199CONFIG_TINY_RCU=y
196# CONFIG_TREE_RCU_TRACE is not set 200# CONFIG_TREE_RCU_TRACE is not set
197# CONFIG_PREEMPT_RCU_TRACE is not set
198# CONFIG_IKCONFIG is not set 201# CONFIG_IKCONFIG is not set
199CONFIG_LOG_BUF_SHIFT=17 202CONFIG_LOG_BUF_SHIFT=17
200# CONFIG_GROUP_SCHED is not set
201# CONFIG_CGROUPS is not set
202CONFIG_SYSFS_DEPRECATED=y 203CONFIG_SYSFS_DEPRECATED=y
203CONFIG_SYSFS_DEPRECATED_V2=y 204CONFIG_SYSFS_DEPRECATED_V2=y
204# CONFIG_RELAY is not set 205# CONFIG_RELAY is not set
@@ -206,11 +207,11 @@ CONFIG_SYSFS_DEPRECATED_V2=y
206# CONFIG_BLK_DEV_INITRD is not set 207# CONFIG_BLK_DEV_INITRD is not set
207CONFIG_CC_OPTIMIZE_FOR_SIZE=y 208CONFIG_CC_OPTIMIZE_FOR_SIZE=y
208CONFIG_SYSCTL=y 209CONFIG_SYSCTL=y
210CONFIG_ANON_INODES=y
209CONFIG_EMBEDDED=y 211CONFIG_EMBEDDED=y
210CONFIG_SYSCTL_SYSCALL=y 212CONFIG_SYSCTL_SYSCALL=y
211CONFIG_KALLSYMS=y 213CONFIG_KALLSYMS=y
212# CONFIG_KALLSYMS_EXTRA_PASS is not set 214# CONFIG_KALLSYMS_EXTRA_PASS is not set
213# CONFIG_STRIP_ASM_SYMS is not set
214CONFIG_HOTPLUG=y 215CONFIG_HOTPLUG=y
215CONFIG_PRINTK=y 216CONFIG_PRINTK=y
216CONFIG_BUG=y 217CONFIG_BUG=y
@@ -224,6 +225,10 @@ CONFIG_BASE_FULL=y
224# CONFIG_EVENTFD is not set 225# CONFIG_EVENTFD is not set
225# CONFIG_SHMEM is not set 226# CONFIG_SHMEM is not set
226# CONFIG_AIO is not set 227# CONFIG_AIO is not set
228
229#
230# Kernel Performance Events And Counters
231#
227# CONFIG_VM_EVENT_COUNTERS is not set 232# CONFIG_VM_EVENT_COUNTERS is not set
228CONFIG_PCI_QUIRKS=y 233CONFIG_PCI_QUIRKS=y
229# CONFIG_SLUB_DEBUG is not set 234# CONFIG_SLUB_DEBUG is not set
@@ -232,14 +237,17 @@ CONFIG_COMPAT_BRK=y
232CONFIG_SLUB=y 237CONFIG_SLUB=y
233# CONFIG_SLOB is not set 238# CONFIG_SLOB is not set
234# CONFIG_PROFILING is not set 239# CONFIG_PROFILING is not set
235# CONFIG_MARKERS is not set
236CONFIG_HAVE_OPROFILE=y 240CONFIG_HAVE_OPROFILE=y
241
242#
243# GCOV-based kernel profiling
244#
237# CONFIG_SLOW_WORK is not set 245# CONFIG_SLOW_WORK is not set
238# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 246CONFIG_HAVE_GENERIC_DMA_COHERENT=y
239CONFIG_BASE_SMALL=0 247CONFIG_BASE_SMALL=0
240# CONFIG_MODULES is not set 248# CONFIG_MODULES is not set
241CONFIG_BLOCK=y 249CONFIG_BLOCK=y
242# CONFIG_LBD is not set 250CONFIG_LBDAF=y
243# CONFIG_BLK_DEV_BSG is not set 251# CONFIG_BLK_DEV_BSG is not set
244# CONFIG_BLK_DEV_INTEGRITY is not set 252# CONFIG_BLK_DEV_INTEGRITY is not set
245 253
@@ -247,14 +255,41 @@ CONFIG_BLOCK=y
247# IO Schedulers 255# IO Schedulers
248# 256#
249CONFIG_IOSCHED_NOOP=y 257CONFIG_IOSCHED_NOOP=y
250# CONFIG_IOSCHED_AS is not set
251# CONFIG_IOSCHED_DEADLINE is not set 258# CONFIG_IOSCHED_DEADLINE is not set
252# CONFIG_IOSCHED_CFQ is not set 259# CONFIG_IOSCHED_CFQ is not set
253# CONFIG_DEFAULT_AS is not set
254# CONFIG_DEFAULT_DEADLINE is not set 260# CONFIG_DEFAULT_DEADLINE is not set
255# CONFIG_DEFAULT_CFQ is not set 261# CONFIG_DEFAULT_CFQ is not set
256CONFIG_DEFAULT_NOOP=y 262CONFIG_DEFAULT_NOOP=y
257CONFIG_DEFAULT_IOSCHED="noop" 263CONFIG_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
270CONFIG_INLINE_SPIN_UNLOCK=y
271# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
272CONFIG_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
279CONFIG_INLINE_READ_UNLOCK=y
280# CONFIG_INLINE_READ_UNLOCK_BH is not set
281CONFIG_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
288CONFIG_INLINE_WRITE_UNLOCK=y
289# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
290CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
291# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
292# CONFIG_MUTEX_SPIN_ON_OWNER is not set
258# CONFIG_FREEZER is not set 293# CONFIG_FREEZER is not set
259 294
260# 295#
@@ -264,15 +299,12 @@ CONFIG_HW_HAS_PCI=y
264CONFIG_PCI=y 299CONFIG_PCI=y
265CONFIG_PCI_DOMAINS=y 300CONFIG_PCI_DOMAINS=y
266# CONFIG_ARCH_SUPPORTS_MSI is not set 301# CONFIG_ARCH_SUPPORTS_MSI is not set
267# CONFIG_PCI_LEGACY is not set
268# CONFIG_PCI_STUB is not set 302# CONFIG_PCI_STUB is not set
269# CONFIG_PCI_IOV is not set 303# CONFIG_PCI_IOV is not set
270CONFIG_MMU=y 304CONFIG_MMU=y
271CONFIG_PCCARD=y 305CONFIG_PCCARD=y
272# CONFIG_PCMCIA_DEBUG is not set
273CONFIG_PCMCIA=y 306CONFIG_PCMCIA=y
274CONFIG_PCMCIA_LOAD_CIS=y 307CONFIG_PCMCIA_LOAD_CIS=y
275CONFIG_PCMCIA_IOCTL=y
276CONFIG_CARDBUS=y 308CONFIG_CARDBUS=y
277 309
278# 310#
@@ -296,6 +328,7 @@ CONFIG_TRAD_SIGNALS=y
296# 328#
297# Power management options 329# Power management options
298# 330#
331CONFIG_ARCH_HIBERNATION_POSSIBLE=y
299CONFIG_ARCH_SUSPEND_POSSIBLE=y 332CONFIG_ARCH_SUSPEND_POSSIBLE=y
300# CONFIG_PM is not set 333# CONFIG_PM is not set
301CONFIG_NET=y 334CONFIG_NET=y
@@ -334,6 +367,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
334# CONFIG_NETFILTER is not set 367# CONFIG_NETFILTER is not set
335# CONFIG_IP_DCCP is not set 368# CONFIG_IP_DCCP is not set
336# CONFIG_IP_SCTP is not set 369# CONFIG_IP_SCTP is not set
370# CONFIG_RDS is not set
337# CONFIG_TIPC is not set 371# CONFIG_TIPC is not set
338# CONFIG_ATM is not set 372# CONFIG_ATM is not set
339# CONFIG_BRIDGE is not set 373# CONFIG_BRIDGE is not set
@@ -348,6 +382,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
348# CONFIG_ECONET is not set 382# CONFIG_ECONET is not set
349# CONFIG_WAN_ROUTER is not set 383# CONFIG_WAN_ROUTER is not set
350# CONFIG_PHONET is not set 384# CONFIG_PHONET is not set
385# CONFIG_IEEE802154 is not set
351# CONFIG_NET_SCHED is not set 386# CONFIG_NET_SCHED is not set
352# CONFIG_DCB is not set 387# CONFIG_DCB is not set
353 388
@@ -360,7 +395,27 @@ CONFIG_DEFAULT_TCP_CONG="cubic"
360# CONFIG_IRDA is not set 395# CONFIG_IRDA is not set
361# CONFIG_BT is not set 396# CONFIG_BT is not set
362# CONFIG_AF_RXRPC is not set 397# CONFIG_AF_RXRPC is not set
363# CONFIG_WIRELESS is not set 398CONFIG_WIRELESS=y
399CONFIG_WEXT_CORE=y
400CONFIG_WEXT_PROC=y
401CONFIG_CFG80211=y
402CONFIG_NL80211_TESTMODE=y
403# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
404# CONFIG_CFG80211_REG_DEBUG is not set
405CONFIG_CFG80211_DEFAULT_PS=y
406# CONFIG_CFG80211_INTERNAL_REGDB is not set
407CONFIG_CFG80211_WEXT=y
408CONFIG_WIRELESS_EXT_SYSFS=y
409# CONFIG_LIB80211 is not set
410CONFIG_MAC80211=y
411# CONFIG_MAC80211_RC_PID is not set
412CONFIG_MAC80211_RC_MINSTREL=y
413# CONFIG_MAC80211_RC_DEFAULT_PID is not set
414CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
415CONFIG_MAC80211_RC_DEFAULT="minstrel"
416# CONFIG_MAC80211_MESH is not set
417CONFIG_MAC80211_LEDS=y
418# CONFIG_MAC80211_DEBUG_MENU is not set
364# CONFIG_WIMAX is not set 419# CONFIG_WIMAX is not set
365# CONFIG_RFKILL is not set 420# CONFIG_RFKILL is not set
366# CONFIG_NET_9P is not set 421# CONFIG_NET_9P is not set
@@ -472,6 +527,7 @@ CONFIG_HAVE_IDE=y
472# 527#
473# SCSI device support 528# SCSI device support
474# 529#
530CONFIG_SCSI_MOD=y
475# CONFIG_RAID_ATTRS is not set 531# CONFIG_RAID_ATTRS is not set
476# CONFIG_SCSI is not set 532# CONFIG_SCSI is not set
477# CONFIG_SCSI_DMA is not set 533# CONFIG_SCSI_DMA is not set
@@ -485,13 +541,16 @@ CONFIG_HAVE_IDE=y
485# 541#
486 542
487# 543#
488# 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.
489# 549#
490# CONFIG_FIREWIRE is not set 550# CONFIG_FIREWIRE is not set
491# CONFIG_IEEE1394 is not set 551# CONFIG_IEEE1394 is not set
492# CONFIG_I2O is not set 552# CONFIG_I2O is not set
493CONFIG_NETDEVICES=y 553CONFIG_NETDEVICES=y
494CONFIG_COMPAT_NET_DEV_OPS=y
495# CONFIG_DUMMY is not set 554# CONFIG_DUMMY is not set
496# CONFIG_BONDING is not set 555# CONFIG_BONDING is not set
497# CONFIG_MACVLAN is not set 556# CONFIG_MACVLAN is not set
@@ -530,6 +589,7 @@ CONFIG_MII=y
530# CONFIG_SMC91X is not set 589# CONFIG_SMC91X is not set
531# CONFIG_DM9000 is not set 590# CONFIG_DM9000 is not set
532# CONFIG_ETHOC is not set 591# CONFIG_ETHOC is not set
592# CONFIG_SMSC911X is not set
533# CONFIG_DNET is not set 593# CONFIG_DNET is not set
534# CONFIG_NET_TULIP is not set 594# CONFIG_NET_TULIP is not set
535# CONFIG_HP100 is not set 595# CONFIG_HP100 is not set
@@ -542,17 +602,48 @@ CONFIG_MII=y
542# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set 602# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
543# CONFIG_NET_PCI is not set 603# CONFIG_NET_PCI is not set
544# CONFIG_B44 is not set 604# CONFIG_B44 is not set
605# CONFIG_KS8842 is not set
606# CONFIG_KS8851_MLL is not set
545# CONFIG_ATL2 is not set 607# CONFIG_ATL2 is not set
546CONFIG_BCM63XX_ENET=y 608CONFIG_BCM63XX_ENET=y
547# CONFIG_NETDEV_1000 is not set 609# CONFIG_NETDEV_1000 is not set
548# CONFIG_NETDEV_10000 is not set 610# CONFIG_NETDEV_10000 is not set
549# CONFIG_TR is not set 611# CONFIG_TR is not set
550 612CONFIG_WLAN=y
551# 613# CONFIG_PCMCIA_RAYCS is not set
552# Wireless LAN 614# CONFIG_LIBERTAS_THINFIRM is not set
553# 615# CONFIG_ATMEL is not set
554# CONFIG_WLAN_PRE80211 is not set 616# CONFIG_AT76C50X_USB is not set
555# 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
628CONFIG_B43=y
629CONFIG_B43_PCI_AUTOSELECT=y
630CONFIG_B43_PCICORE_AUTOSELECT=y
631# CONFIG_B43_PCMCIA is not set
632CONFIG_B43_PIO=y
633# CONFIG_B43_PHY_LP is not set
634CONFIG_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
556 647
557# 648#
558# Enable WiMAX (Networking options) to see the WiMAX drivers 649# Enable WiMAX (Networking options) to see the WiMAX drivers
@@ -575,6 +666,7 @@ CONFIG_BCM63XX_ENET=y
575# CONFIG_NETCONSOLE is not set 666# CONFIG_NETCONSOLE is not set
576# CONFIG_NETPOLL is not set 667# CONFIG_NETPOLL is not set
577# CONFIG_NET_POLL_CONTROLLER is not set 668# CONFIG_NET_POLL_CONTROLLER is not set
669# CONFIG_VMXNET3 is not set
578# CONFIG_ISDN is not set 670# CONFIG_ISDN is not set
579# CONFIG_PHONE is not set 671# CONFIG_PHONE is not set
580 672
@@ -608,6 +700,7 @@ CONFIG_BCM63XX_ENET=y
608CONFIG_SERIAL_CORE=y 700CONFIG_SERIAL_CORE=y
609CONFIG_SERIAL_CORE_CONSOLE=y 701CONFIG_SERIAL_CORE_CONSOLE=y
610# CONFIG_SERIAL_JSM is not set 702# CONFIG_SERIAL_JSM is not set
703# CONFIG_SERIAL_TIMBERDALE is not set
611CONFIG_SERIAL_BCM63XX=y 704CONFIG_SERIAL_BCM63XX=y
612CONFIG_SERIAL_BCM63XX_CONSOLE=y 705CONFIG_SERIAL_BCM63XX_CONSOLE=y
613# CONFIG_UNIX98_PTYS is not set 706# CONFIG_UNIX98_PTYS is not set
@@ -630,6 +723,11 @@ CONFIG_LEGACY_PTY_COUNT=256
630CONFIG_DEVPORT=y 723CONFIG_DEVPORT=y
631# CONFIG_I2C is not set 724# CONFIG_I2C is not set
632# CONFIG_SPI is not set 725# CONFIG_SPI is not set
726
727#
728# PPS support
729#
730# CONFIG_PPS is not set
633CONFIG_ARCH_REQUIRE_GPIOLIB=y 731CONFIG_ARCH_REQUIRE_GPIOLIB=y
634CONFIG_GPIOLIB=y 732CONFIG_GPIOLIB=y
635# CONFIG_GPIO_SYSFS is not set 733# CONFIG_GPIO_SYSFS is not set
@@ -637,6 +735,8 @@ CONFIG_GPIOLIB=y
637# 735#
638# Memory mapped GPIO expanders: 736# Memory mapped GPIO expanders:
639# 737#
738# CONFIG_GPIO_IT8761E is not set
739# CONFIG_GPIO_SCH is not set
640 740
641# 741#
642# I2C GPIO expanders: 742# I2C GPIO expanders:
@@ -645,16 +745,21 @@ CONFIG_GPIOLIB=y
645# 745#
646# PCI GPIO expanders: 746# PCI GPIO expanders:
647# 747#
748# CONFIG_GPIO_CS5535 is not set
648# CONFIG_GPIO_BT8XX is not set 749# CONFIG_GPIO_BT8XX is not set
750# CONFIG_GPIO_LANGWELL is not set
649 751
650# 752#
651# SPI GPIO expanders: 753# SPI GPIO expanders:
652# 754#
755
756#
757# AC97 GPIO expanders:
758#
653# CONFIG_W1 is not set 759# CONFIG_W1 is not set
654# CONFIG_POWER_SUPPLY is not set 760# CONFIG_POWER_SUPPLY is not set
655# CONFIG_HWMON is not set 761# CONFIG_HWMON is not set
656# CONFIG_THERMAL is not set 762# CONFIG_THERMAL is not set
657# CONFIG_THERMAL_HWMON is not set
658# CONFIG_WATCHDOG is not set 763# CONFIG_WATCHDOG is not set
659CONFIG_SSB_POSSIBLE=y 764CONFIG_SSB_POSSIBLE=y
660 765
@@ -663,15 +768,16 @@ CONFIG_SSB_POSSIBLE=y
663# 768#
664CONFIG_SSB=y 769CONFIG_SSB=y
665CONFIG_SSB_SPROM=y 770CONFIG_SSB_SPROM=y
771CONFIG_SSB_BLOCKIO=y
666CONFIG_SSB_PCIHOST_POSSIBLE=y 772CONFIG_SSB_PCIHOST_POSSIBLE=y
667CONFIG_SSB_PCIHOST=y 773CONFIG_SSB_PCIHOST=y
668# CONFIG_SSB_B43_PCI_BRIDGE is not set 774CONFIG_SSB_B43_PCI_BRIDGE=y
669CONFIG_SSB_PCMCIAHOST_POSSIBLE=y 775CONFIG_SSB_PCMCIAHOST_POSSIBLE=y
670# CONFIG_SSB_PCMCIAHOST is not set 776# CONFIG_SSB_PCMCIAHOST is not set
671# CONFIG_SSB_SILENT is not set 777# CONFIG_SSB_SILENT is not set
672# CONFIG_SSB_DEBUG is not set 778# CONFIG_SSB_DEBUG is not set
673CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y 779CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y
674# CONFIG_SSB_DRIVER_PCICORE is not set 780CONFIG_SSB_DRIVER_PCICORE=y
675# CONFIG_SSB_DRIVER_MIPS is not set 781# CONFIG_SSB_DRIVER_MIPS is not set
676 782
677# 783#
@@ -681,27 +787,15 @@ CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y
681# CONFIG_MFD_SM501 is not set 787# CONFIG_MFD_SM501 is not set
682# CONFIG_HTC_PASIC3 is not set 788# CONFIG_HTC_PASIC3 is not set
683# 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
684# CONFIG_REGULATOR is not set 792# CONFIG_REGULATOR is not set
685 793# CONFIG_MEDIA_SUPPORT is not set
686#
687# Multimedia devices
688#
689
690#
691# Multimedia core support
692#
693# CONFIG_VIDEO_DEV is not set
694# CONFIG_DVB_CORE is not set
695# CONFIG_VIDEO_MEDIA is not set
696
697#
698# Multimedia drivers
699#
700# CONFIG_DAB is not set
701 794
702# 795#
703# Graphics support 796# Graphics support
704# 797#
798# CONFIG_VGA_ARB is not set
705# CONFIG_DRM is not set 799# CONFIG_DRM is not set
706# CONFIG_VGASTATE is not set 800# CONFIG_VGASTATE is not set
707# CONFIG_VIDEO_OUTPUT_CONTROL is not set 801# CONFIG_VIDEO_OUTPUT_CONTROL is not set
@@ -711,11 +805,7 @@ CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y
711# 805#
712# Display device support 806# Display device support
713# 807#
714CONFIG_DISPLAY_SUPPORT=y 808# CONFIG_DISPLAY_SUPPORT is not set
715
716#
717# Display hardware drivers
718#
719# CONFIG_SOUND is not set 809# CONFIG_SOUND is not set
720CONFIG_USB_SUPPORT=y 810CONFIG_USB_SUPPORT=y
721CONFIG_USB_ARCH_HAS_HCD=y 811CONFIG_USB_ARCH_HAS_HCD=y
@@ -742,13 +832,14 @@ CONFIG_USB=y
742# USB Host Controller Drivers 832# USB Host Controller Drivers
743# 833#
744# CONFIG_USB_C67X00_HCD is not set 834# CONFIG_USB_C67X00_HCD is not set
835# CONFIG_USB_XHCI_HCD is not set
745CONFIG_USB_EHCI_HCD=y 836CONFIG_USB_EHCI_HCD=y
746# CONFIG_USB_EHCI_ROOT_HUB_TT is not set 837# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
747# CONFIG_USB_EHCI_TT_NEWSCHED is not set 838# CONFIG_USB_EHCI_TT_NEWSCHED is not set
748CONFIG_USB_EHCI_BIG_ENDIAN_MMIO=y
749# CONFIG_USB_OXU210HP_HCD is not set 839# CONFIG_USB_OXU210HP_HCD is not set
750# CONFIG_USB_ISP116X_HCD is not set 840# CONFIG_USB_ISP116X_HCD is not set
751# CONFIG_USB_ISP1760_HCD is not set 841# CONFIG_USB_ISP1760_HCD is not set
842# CONFIG_USB_ISP1362_HCD is not set
752CONFIG_USB_OHCI_HCD=y 843CONFIG_USB_OHCI_HCD=y
753# CONFIG_USB_OHCI_HCD_SSB is not set 844# CONFIG_USB_OHCI_HCD_SSB is not set
754CONFIG_USB_OHCI_BIG_ENDIAN_DESC=y 845CONFIG_USB_OHCI_BIG_ENDIAN_DESC=y
@@ -797,7 +888,6 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
797# CONFIG_USB_RIO500 is not set 888# CONFIG_USB_RIO500 is not set
798# CONFIG_USB_LEGOTOWER is not set 889# CONFIG_USB_LEGOTOWER is not set
799# CONFIG_USB_LCD is not set 890# CONFIG_USB_LCD is not set
800# CONFIG_USB_BERRY_CHARGE is not set
801# CONFIG_USB_LED is not set 891# CONFIG_USB_LED is not set
802# CONFIG_USB_CYPRESS_CY7C63 is not set 892# CONFIG_USB_CYPRESS_CY7C63 is not set
803# CONFIG_USB_CYTHERM is not set 893# CONFIG_USB_CYTHERM is not set
@@ -808,8 +898,8 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
808# CONFIG_USB_LD is not set 898# CONFIG_USB_LD is not set
809# CONFIG_USB_TRANCEVIBRATOR is not set 899# CONFIG_USB_TRANCEVIBRATOR is not set
810# CONFIG_USB_IOWARRIOR is not set 900# CONFIG_USB_IOWARRIOR is not set
901# CONFIG_USB_TEST is not set
811# CONFIG_USB_ISIGHTFW is not set 902# CONFIG_USB_ISIGHTFW is not set
812# CONFIG_USB_VST is not set
813# CONFIG_USB_GADGET is not set 903# CONFIG_USB_GADGET is not set
814 904
815# 905#
@@ -820,7 +910,29 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
820# CONFIG_UWB is not set 910# CONFIG_UWB is not set
821# CONFIG_MMC is not set 911# CONFIG_MMC is not set
822# CONFIG_MEMSTICK is not set 912# CONFIG_MEMSTICK is not set
823# CONFIG_NEW_LEDS is not set 913CONFIG_NEW_LEDS=y
914CONFIG_LEDS_CLASS=y
915
916#
917# LED drivers
918#
919CONFIG_LEDS_GPIO=y
920CONFIG_LEDS_GPIO_PLATFORM=y
921# CONFIG_LEDS_LT3593 is not set
922CONFIG_LEDS_TRIGGERS=y
923
924#
925# LED Triggers
926#
927CONFIG_LEDS_TRIGGER_TIMER=y
928# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set
929# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
930CONFIG_LEDS_TRIGGER_GPIO=y
931CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
932
933#
934# iptables trigger is under Netfilter config (LED target)
935#
824# CONFIG_ACCESSIBILITY is not set 936# CONFIG_ACCESSIBILITY is not set
825# CONFIG_INFINIBAND is not set 937# CONFIG_INFINIBAND is not set
826CONFIG_RTC_LIB=y 938CONFIG_RTC_LIB=y
@@ -828,6 +940,10 @@ CONFIG_RTC_LIB=y
828# CONFIG_DMADEVICES is not set 940# CONFIG_DMADEVICES is not set
829# CONFIG_AUXDISPLAY is not set 941# CONFIG_AUXDISPLAY is not set
830# CONFIG_UIO is not set 942# CONFIG_UIO is not set
943
944#
945# TI VLYNQ
946#
831# CONFIG_STAGING is not set 947# CONFIG_STAGING is not set
832 948
833# 949#
@@ -839,12 +955,16 @@ CONFIG_RTC_LIB=y
839# CONFIG_REISERFS_FS is not set 955# CONFIG_REISERFS_FS is not set
840# CONFIG_JFS_FS is not set 956# CONFIG_JFS_FS is not set
841# CONFIG_FS_POSIX_ACL is not set 957# CONFIG_FS_POSIX_ACL is not set
842# CONFIG_FILE_LOCKING is not set
843# CONFIG_XFS_FS is not set 958# CONFIG_XFS_FS is not set
959# CONFIG_GFS2_FS is not set
844# CONFIG_OCFS2_FS is not set 960# CONFIG_OCFS2_FS is not set
845# 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
964CONFIG_FSNOTIFY=y
846# CONFIG_DNOTIFY is not set 965# CONFIG_DNOTIFY is not set
847# CONFIG_INOTIFY is not set 966# CONFIG_INOTIFY is not set
967CONFIG_INOTIFY_USER=y
848# CONFIG_QUOTA is not set 968# CONFIG_QUOTA is not set
849# CONFIG_AUTOFS_FS is not set 969# CONFIG_AUTOFS_FS is not set
850# CONFIG_AUTOFS4_FS is not set 970# CONFIG_AUTOFS4_FS is not set
@@ -876,8 +996,6 @@ CONFIG_PROC_KCORE=y
876CONFIG_PROC_SYSCTL=y 996CONFIG_PROC_SYSCTL=y
877CONFIG_PROC_PAGE_MONITOR=y 997CONFIG_PROC_PAGE_MONITOR=y
878CONFIG_SYSFS=y 998CONFIG_SYSFS=y
879CONFIG_TMPFS=y
880# CONFIG_TMPFS_POSIX_ACL is not set
881# CONFIG_HUGETLB_PAGE is not set 999# CONFIG_HUGETLB_PAGE is not set
882# CONFIG_CONFIGFS_FS is not set 1000# CONFIG_CONFIGFS_FS is not set
883CONFIG_MISC_FILESYSTEMS=y 1001CONFIG_MISC_FILESYSTEMS=y
@@ -889,6 +1007,7 @@ CONFIG_MISC_FILESYSTEMS=y
889# CONFIG_BFS_FS is not set 1007# CONFIG_BFS_FS is not set
890# CONFIG_EFS_FS is not set 1008# CONFIG_EFS_FS is not set
891# CONFIG_JFFS2_FS is not set 1009# CONFIG_JFFS2_FS is not set
1010# CONFIG_LOGFS is not set
892# CONFIG_CRAMFS is not set 1011# CONFIG_CRAMFS is not set
893# CONFIG_SQUASHFS is not set 1012# CONFIG_SQUASHFS is not set
894# CONFIG_VXFS_FS is not set 1013# CONFIG_VXFS_FS is not set
@@ -899,7 +1018,6 @@ CONFIG_MISC_FILESYSTEMS=y
899# CONFIG_ROMFS_FS is not set 1018# CONFIG_ROMFS_FS is not set
900# CONFIG_SYSV_FS is not set 1019# CONFIG_SYSV_FS is not set
901# CONFIG_UFS_FS is not set 1020# CONFIG_UFS_FS is not set
902# CONFIG_NILFS2_FS is not set
903# CONFIG_NETWORK_FILESYSTEMS is not set 1021# CONFIG_NETWORK_FILESYSTEMS is not set
904 1022
905# 1023#
@@ -907,7 +1025,46 @@ CONFIG_MISC_FILESYSTEMS=y
907# 1025#
908# CONFIG_PARTITION_ADVANCED is not set 1026# CONFIG_PARTITION_ADVANCED is not set
909CONFIG_MSDOS_PARTITION=y 1027CONFIG_MSDOS_PARTITION=y
910# CONFIG_NLS is not set 1028CONFIG_NLS=y
1029CONFIG_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
911# CONFIG_DLM is not set 1068# CONFIG_DLM is not set
912 1069
913# 1070#
@@ -919,30 +1076,26 @@ CONFIG_ENABLE_WARN_DEPRECATED=y
919CONFIG_ENABLE_MUST_CHECK=y 1076CONFIG_ENABLE_MUST_CHECK=y
920CONFIG_FRAME_WARN=1024 1077CONFIG_FRAME_WARN=1024
921CONFIG_MAGIC_SYSRQ=y 1078CONFIG_MAGIC_SYSRQ=y
1079# CONFIG_STRIP_ASM_SYMS is not set
922# CONFIG_UNUSED_SYMBOLS is not set 1080# CONFIG_UNUSED_SYMBOLS is not set
923# CONFIG_DEBUG_FS is not set 1081# CONFIG_DEBUG_FS is not set
924# CONFIG_HEADERS_CHECK is not set 1082# CONFIG_HEADERS_CHECK is not set
925# CONFIG_DEBUG_KERNEL is not set 1083# CONFIG_DEBUG_KERNEL is not set
926# CONFIG_DEBUG_MEMORY_INIT is not set 1084# CONFIG_DEBUG_MEMORY_INIT is not set
927# CONFIG_RCU_CPU_STALL_DETECTOR is not set
928CONFIG_SYSCTL_SYSCALL_CHECK=y 1085CONFIG_SYSCTL_SYSCALL_CHECK=y
1086CONFIG_HAVE_FUNCTION_TRACER=y
1087CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1088CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y
1089CONFIG_HAVE_DYNAMIC_FTRACE=y
1090CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
929CONFIG_TRACING_SUPPORT=y 1091CONFIG_TRACING_SUPPORT=y
930 1092# CONFIG_FTRACE is not set
931#
932# Tracers
933#
934# CONFIG_IRQSOFF_TRACER is not set
935# CONFIG_SCHED_TRACER is not set
936# CONFIG_CONTEXT_SWITCH_TRACER is not set
937# CONFIG_EVENT_TRACER is not set
938# CONFIG_BOOT_TRACER is not set
939# CONFIG_TRACE_BRANCH_PROFILING is not set
940# CONFIG_KMEMTRACE is not set
941# CONFIG_WORKQUEUE_TRACER is not set
942# CONFIG_BLK_DEV_IO_TRACE is not set
943# CONFIG_SAMPLES is not set 1093# CONFIG_SAMPLES is not set
944CONFIG_HAVE_ARCH_KGDB=y 1094CONFIG_HAVE_ARCH_KGDB=y
1095CONFIG_EARLY_PRINTK=y
1096CONFIG_CMDLINE_BOOL=y
945CONFIG_CMDLINE="console=ttyS0,115200" 1097CONFIG_CMDLINE="console=ttyS0,115200"
1098# CONFIG_CMDLINE_OVERRIDE is not set
946 1099
947# 1100#
948# Security options 1101# Security options
@@ -950,8 +1103,108 @@ CONFIG_CMDLINE="console=ttyS0,115200"
950# CONFIG_KEYS is not set 1103# CONFIG_KEYS is not set
951# CONFIG_SECURITY is not set 1104# CONFIG_SECURITY is not set
952# CONFIG_SECURITYFS is not set 1105# CONFIG_SECURITYFS is not set
953# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1106# CONFIG_DEFAULT_SECURITY_SELINUX is not set
954# CONFIG_CRYPTO is not set 1107# CONFIG_DEFAULT_SECURITY_SMACK is not set
1108# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
1109CONFIG_DEFAULT_SECURITY_DAC=y
1110CONFIG_DEFAULT_SECURITY=""
1111CONFIG_CRYPTO=y
1112
1113#
1114# Crypto core or helper
1115#
1116# CONFIG_CRYPTO_FIPS is not set
1117CONFIG_CRYPTO_ALGAPI=y
1118CONFIG_CRYPTO_ALGAPI2=y
1119CONFIG_CRYPTO_AEAD2=y
1120CONFIG_CRYPTO_BLKCIPHER=y
1121CONFIG_CRYPTO_BLKCIPHER2=y
1122CONFIG_CRYPTO_HASH2=y
1123CONFIG_CRYPTO_RNG=y
1124CONFIG_CRYPTO_RNG2=y
1125CONFIG_CRYPTO_PCOMP=y
1126CONFIG_CRYPTO_MANAGER=y
1127CONFIG_CRYPTO_MANAGER2=y
1128# CONFIG_CRYPTO_GF128MUL is not set
1129# CONFIG_CRYPTO_NULL is not set
1130CONFIG_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
1147CONFIG_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#
1180CONFIG_CRYPTO_AES=y
1181# CONFIG_CRYPTO_ANUBIS is not set
1182CONFIG_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#
1206CONFIG_CRYPTO_ANSI_CPRNG=y
1207# CONFIG_CRYPTO_HW is not set
955# CONFIG_BINARY_PRINTF is not set 1208# CONFIG_BINARY_PRINTF is not set
956 1209
957# 1210#
diff --git a/arch/mips/configs/bigsur_defconfig b/arch/mips/configs/bigsur_defconfig
index 13d9eb4736c0..0583bb29150f 100644
--- a/arch/mips/configs/bigsur_defconfig
+++ b/arch/mips/configs/bigsur_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.26-rc8 3# Linux kernel version: 2.6.34-rc3
4# Wed Jul 2 17:02:55 2008 4# Sat Apr 3 16:32:11 2010
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -9,21 +9,25 @@ 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_BASLER_EXCITE is not set 12# CONFIG_AR7 is not set
13# CONFIG_BCM47XX is not set 13# CONFIG_BCM47XX is not set
14# CONFIG_BCM63XX is not set
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_MARKEINS is not set 22# CONFIG_NEC_MARKEINS is not set
22# CONFIG_MACH_VR41XX is not set 23# CONFIG_MACH_VR41XX is not set
24# CONFIG_NXP_STB220 is not set
25# CONFIG_NXP_STB225 is not set
23# CONFIG_PNX8550_JBS is not set 26# CONFIG_PNX8550_JBS is not set
24# CONFIG_PNX8550_STB810 is not set 27# CONFIG_PNX8550_STB810 is not set
25# CONFIG_PMC_MSP is not set 28# CONFIG_PMC_MSP is not set
26# CONFIG_PMC_YOSEMITE is not set 29# CONFIG_PMC_YOSEMITE is not set
30# CONFIG_POWERTV is not set
27# CONFIG_SGI_IP22 is not set 31# CONFIG_SGI_IP22 is not set
28# CONFIG_SGI_IP27 is not set 32# CONFIG_SGI_IP27 is not set
29# CONFIG_SGI_IP28 is not set 33# CONFIG_SGI_IP28 is not set
@@ -37,10 +41,13 @@ CONFIG_MIPS=y
37# CONFIG_SIBYTE_SENTOSA is not set 41# CONFIG_SIBYTE_SENTOSA is not set
38CONFIG_SIBYTE_BIGSUR=y 42CONFIG_SIBYTE_BIGSUR=y
39# CONFIG_SNI_RM is not set 43# CONFIG_SNI_RM is not set
40# CONFIG_TOSHIBA_JMR3927 is not set 44# CONFIG_MACH_TX39XX is not set
41# CONFIG_TOSHIBA_RBTX4927 is not set 45# CONFIG_MACH_TX49XX is not set
42# CONFIG_TOSHIBA_RBTX4938 is not set 46# CONFIG_MIKROTIK_RB532 is not set
43# CONFIG_WR_PPMC is not set 47# CONFIG_WR_PPMC is not set
48# CONFIG_CAVIUM_OCTEON_SIMULATOR is not set
49# CONFIG_CAVIUM_OCTEON_REFERENCE_BOARD is not set
50# CONFIG_ALCHEMY_GPIO_INDIRECT is not set
44CONFIG_SIBYTE_BCM1x80=y 51CONFIG_SIBYTE_BCM1x80=y
45CONFIG_SIBYTE_SB1xxx_SOC=y 52CONFIG_SIBYTE_SB1xxx_SOC=y
46# CONFIG_CPU_SB1_PASS_1 is not set 53# CONFIG_CPU_SB1_PASS_1 is not set
@@ -49,14 +56,13 @@ CONFIG_SIBYTE_SB1xxx_SOC=y
49# CONFIG_CPU_SB1_PASS_4 is not set 56# CONFIG_CPU_SB1_PASS_4 is not set
50# CONFIG_CPU_SB1_PASS_2_112x is not set 57# CONFIG_CPU_SB1_PASS_2_112x is not set
51# CONFIG_CPU_SB1_PASS_3 is not set 58# CONFIG_CPU_SB1_PASS_3 is not set
52# CONFIG_SIMULATION is not set
53# CONFIG_SB1_CEX_ALWAYS_FATAL is not set 59# CONFIG_SB1_CEX_ALWAYS_FATAL is not set
54# CONFIG_SB1_CERR_STALL is not set 60# CONFIG_SB1_CERR_STALL is not set
55CONFIG_SIBYTE_CFE=y
56# CONFIG_SIBYTE_CFE_CONSOLE is not set 61# CONFIG_SIBYTE_CFE_CONSOLE is not set
57# CONFIG_SIBYTE_BUS_WATCHER is not set 62# CONFIG_SIBYTE_BUS_WATCHER is not set
58# CONFIG_SIBYTE_TBPROF is not set 63# CONFIG_SIBYTE_TBPROF is not set
59CONFIG_SIBYTE_HAS_ZBUS_PROFILING=y 64CONFIG_SIBYTE_HAS_ZBUS_PROFILING=y
65CONFIG_LOONGSON_UART_BASE=y
60CONFIG_RWSEM_GENERIC_SPINLOCK=y 66CONFIG_RWSEM_GENERIC_SPINLOCK=y
61# CONFIG_ARCH_HAS_ILOG2_U32 is not set 67# CONFIG_ARCH_HAS_ILOG2_U32 is not set
62# CONFIG_ARCH_HAS_ILOG2_U64 is not set 68# CONFIG_ARCH_HAS_ILOG2_U64 is not set
@@ -67,15 +73,13 @@ CONFIG_GENERIC_CALIBRATE_DELAY=y
67CONFIG_GENERIC_CLOCKEVENTS=y 73CONFIG_GENERIC_CLOCKEVENTS=y
68CONFIG_GENERIC_TIME=y 74CONFIG_GENERIC_TIME=y
69CONFIG_GENERIC_CMOS_UPDATE=y 75CONFIG_GENERIC_CMOS_UPDATE=y
70CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 76CONFIG_SCHED_OMIT_FRAME_POINTER=y
71# CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ is not set 77CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
72CONFIG_CEVT_BCM1480=y 78CONFIG_CEVT_BCM1480=y
73CONFIG_CSRC_BCM1480=y 79CONFIG_CSRC_BCM1480=y
74CONFIG_CFE=y 80CONFIG_CFE=y
75CONFIG_DMA_COHERENT=y 81CONFIG_DMA_COHERENT=y
76CONFIG_EARLY_PRINTK=y
77CONFIG_SYS_HAS_EARLY_PRINTK=y 82CONFIG_SYS_HAS_EARLY_PRINTK=y
78# CONFIG_HOTPLUG_CPU is not set
79# CONFIG_NO_IOPORT is not set 83# CONFIG_NO_IOPORT is not set
80CONFIG_CPU_BIG_ENDIAN=y 84CONFIG_CPU_BIG_ENDIAN=y
81# CONFIG_CPU_LITTLE_ENDIAN is not set 85# CONFIG_CPU_LITTLE_ENDIAN is not set
@@ -89,7 +93,8 @@ CONFIG_MIPS_L1_CACHE_SHIFT=5
89# 93#
90# CPU selection 94# CPU selection
91# 95#
92# CONFIG_CPU_LOONGSON2 is not set 96# CONFIG_CPU_LOONGSON2E is not set
97# CONFIG_CPU_LOONGSON2F is not set
93# CONFIG_CPU_MIPS32_R1 is not set 98# CONFIG_CPU_MIPS32_R1 is not set
94# CONFIG_CPU_MIPS32_R2 is not set 99# CONFIG_CPU_MIPS32_R2 is not set
95# CONFIG_CPU_MIPS64_R1 is not set 100# CONFIG_CPU_MIPS64_R1 is not set
@@ -102,6 +107,7 @@ CONFIG_MIPS_L1_CACHE_SHIFT=5
102# CONFIG_CPU_TX49XX is not set 107# CONFIG_CPU_TX49XX is not set
103# CONFIG_CPU_R5000 is not set 108# CONFIG_CPU_R5000 is not set
104# CONFIG_CPU_R5432 is not set 109# CONFIG_CPU_R5432 is not set
110# CONFIG_CPU_R5500 is not set
105# CONFIG_CPU_R6000 is not set 111# CONFIG_CPU_R6000 is not set
106# CONFIG_CPU_NEVADA is not set 112# CONFIG_CPU_NEVADA is not set
107# CONFIG_CPU_R8000 is not set 113# CONFIG_CPU_R8000 is not set
@@ -109,6 +115,7 @@ CONFIG_MIPS_L1_CACHE_SHIFT=5
109# CONFIG_CPU_RM7000 is not set 115# CONFIG_CPU_RM7000 is not set
110# CONFIG_CPU_RM9000 is not set 116# CONFIG_CPU_RM9000 is not set
111CONFIG_CPU_SB1=y 117CONFIG_CPU_SB1=y
118# CONFIG_CPU_CAVIUM_OCTEON is not set
112CONFIG_SYS_HAS_CPU_SB1=y 119CONFIG_SYS_HAS_CPU_SB1=y
113CONFIG_WEAK_ORDERING=y 120CONFIG_WEAK_ORDERING=y
114CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y 121CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y
@@ -124,11 +131,13 @@ CONFIG_64BIT=y
124CONFIG_PAGE_SIZE_4KB=y 131CONFIG_PAGE_SIZE_4KB=y
125# CONFIG_PAGE_SIZE_8KB is not set 132# CONFIG_PAGE_SIZE_8KB is not set
126# CONFIG_PAGE_SIZE_16KB is not set 133# CONFIG_PAGE_SIZE_16KB is not set
134# CONFIG_PAGE_SIZE_32KB is not set
127# CONFIG_PAGE_SIZE_64KB is not set 135# CONFIG_PAGE_SIZE_64KB is not set
128# CONFIG_SIBYTE_DMA_PAGEOPS is not set 136# CONFIG_SIBYTE_DMA_PAGEOPS is not set
129CONFIG_MIPS_MT_DISABLED=y 137CONFIG_MIPS_MT_DISABLED=y
130# CONFIG_MIPS_MT_SMP is not set 138# CONFIG_MIPS_MT_SMP is not set
131# CONFIG_MIPS_MT_SMTC is not set 139# CONFIG_MIPS_MT_SMTC is not set
140# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
132CONFIG_CPU_HAS_SYNC=y 141CONFIG_CPU_HAS_SYNC=y
133CONFIG_GENERIC_HARDIRQS=y 142CONFIG_GENERIC_HARDIRQS=y
134CONFIG_GENERIC_IRQ_PROBE=y 143CONFIG_GENERIC_IRQ_PROBE=y
@@ -143,18 +152,17 @@ CONFIG_FLATMEM_MANUAL=y
143# CONFIG_SPARSEMEM_MANUAL is not set 152# CONFIG_SPARSEMEM_MANUAL is not set
144CONFIG_FLATMEM=y 153CONFIG_FLATMEM=y
145CONFIG_FLAT_NODE_MEM_MAP=y 154CONFIG_FLAT_NODE_MEM_MAP=y
146# CONFIG_SPARSEMEM_STATIC is not set
147# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set
148CONFIG_PAGEFLAGS_EXTENDED=y 155CONFIG_PAGEFLAGS_EXTENDED=y
149CONFIG_SPLIT_PTLOCK_CPUS=4 156CONFIG_SPLIT_PTLOCK_CPUS=4
150CONFIG_RESOURCES_64BIT=y 157CONFIG_PHYS_ADDR_T_64BIT=y
151CONFIG_ZONE_DMA_FLAG=0 158CONFIG_ZONE_DMA_FLAG=0
152CONFIG_VIRT_TO_BUS=y 159CONFIG_VIRT_TO_BUS=y
160# CONFIG_KSM is not set
161CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
153CONFIG_SMP=y 162CONFIG_SMP=y
154CONFIG_SYS_SUPPORTS_SMP=y 163CONFIG_SYS_SUPPORTS_SMP=y
155CONFIG_NR_CPUS_DEFAULT_4=y 164CONFIG_NR_CPUS_DEFAULT_4=y
156CONFIG_NR_CPUS=4 165CONFIG_NR_CPUS=4
157# CONFIG_MIPS_CMP is not set
158CONFIG_TICK_ONESHOT=y 166CONFIG_TICK_ONESHOT=y
159CONFIG_NO_HZ=y 167CONFIG_NO_HZ=y
160CONFIG_HIGH_RES_TIMERS=y 168CONFIG_HIGH_RES_TIMERS=y
@@ -176,6 +184,7 @@ CONFIG_SECCOMP=y
176CONFIG_LOCKDEP_SUPPORT=y 184CONFIG_LOCKDEP_SUPPORT=y
177CONFIG_STACKTRACE_SUPPORT=y 185CONFIG_STACKTRACE_SUPPORT=y
178CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 186CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
187CONFIG_CONSTRUCTORS=y
179 188
180# 189#
181# General setup 190# General setup
@@ -189,6 +198,7 @@ CONFIG_SWAP=y
189CONFIG_SYSVIPC=y 198CONFIG_SYSVIPC=y
190CONFIG_SYSVIPC_SYSCTL=y 199CONFIG_SYSVIPC_SYSCTL=y
191CONFIG_POSIX_MQUEUE=y 200CONFIG_POSIX_MQUEUE=y
201CONFIG_POSIX_MQUEUE_SYSCTL=y
192CONFIG_BSD_PROCESS_ACCT=y 202CONFIG_BSD_PROCESS_ACCT=y
193CONFIG_BSD_PROCESS_ACCT_V3=y 203CONFIG_BSD_PROCESS_ACCT_V3=y
194CONFIG_TASKSTATS=y 204CONFIG_TASKSTATS=y
@@ -196,23 +206,39 @@ CONFIG_TASK_DELAY_ACCT=y
196CONFIG_TASK_XACCT=y 206CONFIG_TASK_XACCT=y
197CONFIG_TASK_IO_ACCOUNTING=y 207CONFIG_TASK_IO_ACCOUNTING=y
198CONFIG_AUDIT=y 208CONFIG_AUDIT=y
209
210#
211# RCU Subsystem
212#
213CONFIG_TREE_RCU=y
214# CONFIG_TREE_PREEMPT_RCU is not set
215# CONFIG_TINY_RCU is not set
216# CONFIG_RCU_TRACE is not set
217CONFIG_RCU_FANOUT=64
218# CONFIG_RCU_FANOUT_EXACT is not set
219# CONFIG_RCU_FAST_NO_HZ is not set
220# CONFIG_TREE_RCU_TRACE is not set
199CONFIG_IKCONFIG=y 221CONFIG_IKCONFIG=y
200CONFIG_IKCONFIG_PROC=y 222CONFIG_IKCONFIG_PROC=y
201CONFIG_LOG_BUF_SHIFT=16 223CONFIG_LOG_BUF_SHIFT=16
202# CONFIG_CGROUPS is not set 224# CONFIG_CGROUPS is not set
203CONFIG_GROUP_SCHED=y 225# CONFIG_SYSFS_DEPRECATED_V2 is not set
204CONFIG_FAIR_GROUP_SCHED=y
205# CONFIG_RT_GROUP_SCHED is not set
206CONFIG_USER_SCHED=y
207# CONFIG_CGROUP_SCHED is not set
208CONFIG_SYSFS_DEPRECATED=y
209CONFIG_SYSFS_DEPRECATED_V2=y
210CONFIG_RELAY=y 226CONFIG_RELAY=y
211# CONFIG_NAMESPACES is not set 227CONFIG_NAMESPACES=y
228CONFIG_UTS_NS=y
229CONFIG_IPC_NS=y
230CONFIG_USER_NS=y
231CONFIG_PID_NS=y
232CONFIG_NET_NS=y
212CONFIG_BLK_DEV_INITRD=y 233CONFIG_BLK_DEV_INITRD=y
213CONFIG_INITRAMFS_SOURCE="" 234CONFIG_INITRAMFS_SOURCE=""
235CONFIG_RD_GZIP=y
236# CONFIG_RD_BZIP2 is not set
237# CONFIG_RD_LZMA is not set
238# CONFIG_RD_LZO is not set
214# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 239# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
215CONFIG_SYSCTL=y 240CONFIG_SYSCTL=y
241CONFIG_ANON_INODES=y
216CONFIG_EMBEDDED=y 242CONFIG_EMBEDDED=y
217# CONFIG_SYSCTL_SYSCALL is not set 243# CONFIG_SYSCTL_SYSCALL is not set
218CONFIG_KALLSYMS=y 244CONFIG_KALLSYMS=y
@@ -223,29 +249,36 @@ CONFIG_PRINTK=y
223CONFIG_BUG=y 249CONFIG_BUG=y
224CONFIG_ELF_CORE=y 250CONFIG_ELF_CORE=y
225# CONFIG_PCSPKR_PLATFORM is not set 251# CONFIG_PCSPKR_PLATFORM is not set
226CONFIG_COMPAT_BRK=y
227CONFIG_BASE_FULL=y 252CONFIG_BASE_FULL=y
228CONFIG_FUTEX=y 253CONFIG_FUTEX=y
229CONFIG_ANON_INODES=y
230CONFIG_EPOLL=y 254CONFIG_EPOLL=y
231CONFIG_SIGNALFD=y 255CONFIG_SIGNALFD=y
232CONFIG_TIMERFD=y 256CONFIG_TIMERFD=y
233CONFIG_EVENTFD=y 257CONFIG_EVENTFD=y
234CONFIG_SHMEM=y 258CONFIG_SHMEM=y
259CONFIG_AIO=y
260
261#
262# Kernel Performance Events And Counters
263#
235CONFIG_VM_EVENT_COUNTERS=y 264CONFIG_VM_EVENT_COUNTERS=y
265CONFIG_PCI_QUIRKS=y
266CONFIG_COMPAT_BRK=y
236CONFIG_SLAB=y 267CONFIG_SLAB=y
237# CONFIG_SLUB is not set 268# CONFIG_SLUB is not set
238# CONFIG_SLOB is not set 269# CONFIG_SLOB is not set
239# CONFIG_PROFILING is not set 270# CONFIG_PROFILING is not set
240# CONFIG_MARKERS is not set
241CONFIG_HAVE_OPROFILE=y 271CONFIG_HAVE_OPROFILE=y
242# CONFIG_HAVE_KPROBES is not set 272CONFIG_HAVE_SYSCALL_WRAPPERS=y
243# CONFIG_HAVE_KRETPROBES is not set 273CONFIG_USE_GENERIC_SMP_HELPERS=y
244# CONFIG_HAVE_DMA_ATTRS is not set 274
245CONFIG_PROC_PAGE_MONITOR=y 275#
276# GCOV-based kernel profiling
277#
278# CONFIG_SLOW_WORK is not set
279CONFIG_HAVE_GENERIC_DMA_COHERENT=y
246CONFIG_SLABINFO=y 280CONFIG_SLABINFO=y
247CONFIG_RT_MUTEXES=y 281CONFIG_RT_MUTEXES=y
248# CONFIG_TINY_SHMEM is not set
249CONFIG_BASE_SMALL=0 282CONFIG_BASE_SMALL=0
250CONFIG_MODULES=y 283CONFIG_MODULES=y
251# CONFIG_MODULE_FORCE_LOAD is not set 284# CONFIG_MODULE_FORCE_LOAD is not set
@@ -253,26 +286,52 @@ CONFIG_MODULE_UNLOAD=y
253# CONFIG_MODULE_FORCE_UNLOAD is not set 286# CONFIG_MODULE_FORCE_UNLOAD is not set
254CONFIG_MODVERSIONS=y 287CONFIG_MODVERSIONS=y
255CONFIG_MODULE_SRCVERSION_ALL=y 288CONFIG_MODULE_SRCVERSION_ALL=y
256CONFIG_KMOD=y
257CONFIG_STOP_MACHINE=y 289CONFIG_STOP_MACHINE=y
258CONFIG_BLOCK=y 290CONFIG_BLOCK=y
259# CONFIG_BLK_DEV_IO_TRACE is not set
260# CONFIG_BLK_DEV_BSG is not set 291# CONFIG_BLK_DEV_BSG is not set
292# CONFIG_BLK_DEV_INTEGRITY is not set
261CONFIG_BLOCK_COMPAT=y 293CONFIG_BLOCK_COMPAT=y
262 294
263# 295#
264# IO Schedulers 296# IO Schedulers
265# 297#
266CONFIG_IOSCHED_NOOP=y 298CONFIG_IOSCHED_NOOP=y
267CONFIG_IOSCHED_AS=y
268CONFIG_IOSCHED_DEADLINE=y 299CONFIG_IOSCHED_DEADLINE=y
269CONFIG_IOSCHED_CFQ=y 300CONFIG_IOSCHED_CFQ=y
270CONFIG_DEFAULT_AS=y
271# CONFIG_DEFAULT_DEADLINE is not set 301# CONFIG_DEFAULT_DEADLINE is not set
272# CONFIG_DEFAULT_CFQ is not set 302CONFIG_DEFAULT_CFQ=y
273# CONFIG_DEFAULT_NOOP is not set 303# CONFIG_DEFAULT_NOOP is not set
274CONFIG_DEFAULT_IOSCHED="anticipatory" 304CONFIG_DEFAULT_IOSCHED="cfq"
275CONFIG_CLASSIC_RCU=y 305# CONFIG_INLINE_SPIN_TRYLOCK is not set
306# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
307# CONFIG_INLINE_SPIN_LOCK is not set
308# CONFIG_INLINE_SPIN_LOCK_BH is not set
309# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
310# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
311CONFIG_INLINE_SPIN_UNLOCK=y
312# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
313CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
314# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
315# CONFIG_INLINE_READ_TRYLOCK is not set
316# CONFIG_INLINE_READ_LOCK is not set
317# CONFIG_INLINE_READ_LOCK_BH is not set
318# CONFIG_INLINE_READ_LOCK_IRQ is not set
319# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
320CONFIG_INLINE_READ_UNLOCK=y
321# CONFIG_INLINE_READ_UNLOCK_BH is not set
322CONFIG_INLINE_READ_UNLOCK_IRQ=y
323# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
324# CONFIG_INLINE_WRITE_TRYLOCK is not set
325# CONFIG_INLINE_WRITE_LOCK is not set
326# CONFIG_INLINE_WRITE_LOCK_BH is not set
327# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
328# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
329CONFIG_INLINE_WRITE_UNLOCK=y
330# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
331CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
332# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
333CONFIG_MUTEX_SPIN_ON_OWNER=y
334# CONFIG_FREEZER is not set
276 335
277# 336#
278# Bus options (PCI, PCMCIA, EISA, ISA, TC) 337# Bus options (PCI, PCMCIA, EISA, ISA, TC)
@@ -281,8 +340,9 @@ CONFIG_HW_HAS_PCI=y
281CONFIG_PCI=y 340CONFIG_PCI=y
282CONFIG_PCI_DOMAINS=y 341CONFIG_PCI_DOMAINS=y
283# CONFIG_ARCH_SUPPORTS_MSI is not set 342# CONFIG_ARCH_SUPPORTS_MSI is not set
284CONFIG_PCI_LEGACY=y
285CONFIG_PCI_DEBUG=y 343CONFIG_PCI_DEBUG=y
344# CONFIG_PCI_STUB is not set
345# CONFIG_PCI_IOV is not set
286CONFIG_MMU=y 346CONFIG_MMU=y
287CONFIG_ZONE_DMA32=y 347CONFIG_ZONE_DMA32=y
288# CONFIG_PCCARD is not set 348# CONFIG_PCCARD is not set
@@ -292,6 +352,8 @@ CONFIG_ZONE_DMA32=y
292# Executable file formats 352# Executable file formats
293# 353#
294CONFIG_BINFMT_ELF=y 354CONFIG_BINFMT_ELF=y
355# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
356# CONFIG_HAVE_AOUT is not set
295# CONFIG_BINFMT_MISC is not set 357# CONFIG_BINFMT_MISC is not set
296CONFIG_MIPS32_COMPAT=y 358CONFIG_MIPS32_COMPAT=y
297CONFIG_COMPAT=y 359CONFIG_COMPAT=y
@@ -305,23 +367,20 @@ CONFIG_BINFMT_ELF32=y
305# 367#
306CONFIG_PM=y 368CONFIG_PM=y
307# CONFIG_PM_DEBUG is not set 369# CONFIG_PM_DEBUG is not set
308 370# CONFIG_PM_RUNTIME is not set
309#
310# Networking
311#
312CONFIG_NET=y 371CONFIG_NET=y
313 372
314# 373#
315# Networking options 374# Networking options
316# 375#
317CONFIG_PACKET=y 376CONFIG_PACKET=y
318CONFIG_PACKET_MMAP=y
319CONFIG_UNIX=y 377CONFIG_UNIX=y
320CONFIG_XFRM=y 378CONFIG_XFRM=y
321CONFIG_XFRM_USER=m 379CONFIG_XFRM_USER=m
322# CONFIG_XFRM_SUB_POLICY is not set 380# CONFIG_XFRM_SUB_POLICY is not set
323CONFIG_XFRM_MIGRATE=y 381CONFIG_XFRM_MIGRATE=y
324# CONFIG_XFRM_STATISTICS is not set 382# CONFIG_XFRM_STATISTICS is not set
383CONFIG_XFRM_IPCOMP=m
325CONFIG_NET_KEY=y 384CONFIG_NET_KEY=y
326CONFIG_NET_KEY_MIGRATE=y 385CONFIG_NET_KEY_MIGRATE=y
327CONFIG_INET=y 386CONFIG_INET=y
@@ -354,36 +413,6 @@ CONFIG_INET_TCP_DIAG=y
354CONFIG_TCP_CONG_CUBIC=y 413CONFIG_TCP_CONG_CUBIC=y
355CONFIG_DEFAULT_TCP_CONG="cubic" 414CONFIG_DEFAULT_TCP_CONG="cubic"
356CONFIG_TCP_MD5SIG=y 415CONFIG_TCP_MD5SIG=y
357CONFIG_IP_VS=m
358# CONFIG_IP_VS_DEBUG is not set
359CONFIG_IP_VS_TAB_BITS=12
360
361#
362# IPVS transport protocol load balancing support
363#
364CONFIG_IP_VS_PROTO_TCP=y
365CONFIG_IP_VS_PROTO_UDP=y
366CONFIG_IP_VS_PROTO_ESP=y
367CONFIG_IP_VS_PROTO_AH=y
368
369#
370# IPVS scheduler
371#
372CONFIG_IP_VS_RR=m
373CONFIG_IP_VS_WRR=m
374CONFIG_IP_VS_LC=m
375CONFIG_IP_VS_WLC=m
376CONFIG_IP_VS_LBLC=m
377CONFIG_IP_VS_LBLCR=m
378CONFIG_IP_VS_DH=m
379CONFIG_IP_VS_SH=m
380CONFIG_IP_VS_SED=m
381CONFIG_IP_VS_NQ=m
382
383#
384# IPVS application helper
385#
386CONFIG_IP_VS_FTP=m
387CONFIG_IPV6=m 416CONFIG_IPV6=m
388CONFIG_IPV6_PRIVACY=y 417CONFIG_IPV6_PRIVACY=y
389CONFIG_IPV6_ROUTER_PREF=y 418CONFIG_IPV6_ROUTER_PREF=y
@@ -400,11 +429,13 @@ CONFIG_INET6_XFRM_MODE_TUNNEL=m
400CONFIG_INET6_XFRM_MODE_BEET=m 429CONFIG_INET6_XFRM_MODE_BEET=m
401CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m 430CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m
402CONFIG_IPV6_SIT=m 431CONFIG_IPV6_SIT=m
432CONFIG_IPV6_SIT_6RD=y
403CONFIG_IPV6_NDISC_NODETYPE=y 433CONFIG_IPV6_NDISC_NODETYPE=y
404CONFIG_IPV6_TUNNEL=m 434CONFIG_IPV6_TUNNEL=m
405CONFIG_IPV6_MULTIPLE_TABLES=y 435CONFIG_IPV6_MULTIPLE_TABLES=y
406CONFIG_IPV6_SUBTREES=y 436CONFIG_IPV6_SUBTREES=y
407# CONFIG_IPV6_MROUTE is not set 437# CONFIG_IPV6_MROUTE is not set
438CONFIG_NETLABEL=y
408CONFIG_NETWORK_SECMARK=y 439CONFIG_NETWORK_SECMARK=y
409CONFIG_NETFILTER=y 440CONFIG_NETFILTER=y
410# CONFIG_NETFILTER_DEBUG is not set 441# CONFIG_NETFILTER_DEBUG is not set
@@ -422,19 +453,53 @@ CONFIG_NF_CONNTRACK_IRC=m
422CONFIG_NF_CONNTRACK_SIP=m 453CONFIG_NF_CONNTRACK_SIP=m
423CONFIG_NF_CT_NETLINK=m 454CONFIG_NF_CT_NETLINK=m
424CONFIG_NETFILTER_XTABLES=m 455CONFIG_NETFILTER_XTABLES=m
456CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m
425CONFIG_NETFILTER_XT_TARGET_MARK=m 457CONFIG_NETFILTER_XT_TARGET_MARK=m
426CONFIG_NETFILTER_XT_TARGET_NFLOG=m 458CONFIG_NETFILTER_XT_TARGET_NFLOG=m
427CONFIG_NETFILTER_XT_TARGET_SECMARK=m 459CONFIG_NETFILTER_XT_TARGET_SECMARK=m
428CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m
429CONFIG_NETFILTER_XT_TARGET_TCPMSS=m 460CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
430CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m 461CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
431CONFIG_NETFILTER_XT_MATCH_MARK=m 462CONFIG_NETFILTER_XT_MATCH_MARK=m
432CONFIG_NETFILTER_XT_MATCH_POLICY=m 463CONFIG_NETFILTER_XT_MATCH_POLICY=m
433CONFIG_NETFILTER_XT_MATCH_STATE=m 464CONFIG_NETFILTER_XT_MATCH_STATE=m
465CONFIG_IP_VS=m
466CONFIG_IP_VS_IPV6=y
467# CONFIG_IP_VS_DEBUG is not set
468CONFIG_IP_VS_TAB_BITS=12
469
470#
471# IPVS transport protocol load balancing support
472#
473CONFIG_IP_VS_PROTO_TCP=y
474CONFIG_IP_VS_PROTO_UDP=y
475CONFIG_IP_VS_PROTO_AH_ESP=y
476CONFIG_IP_VS_PROTO_ESP=y
477CONFIG_IP_VS_PROTO_AH=y
478CONFIG_IP_VS_PROTO_SCTP=y
479
480#
481# IPVS scheduler
482#
483CONFIG_IP_VS_RR=m
484CONFIG_IP_VS_WRR=m
485CONFIG_IP_VS_LC=m
486CONFIG_IP_VS_WLC=m
487CONFIG_IP_VS_LBLC=m
488CONFIG_IP_VS_LBLCR=m
489CONFIG_IP_VS_DH=m
490CONFIG_IP_VS_SH=m
491CONFIG_IP_VS_SED=m
492CONFIG_IP_VS_NQ=m
493
494#
495# IPVS application helper
496#
497CONFIG_IP_VS_FTP=m
434 498
435# 499#
436# IP: Netfilter Configuration 500# IP: Netfilter Configuration
437# 501#
502CONFIG_NF_DEFRAG_IPV4=m
438CONFIG_NF_CONNTRACK_IPV4=m 503CONFIG_NF_CONNTRACK_IPV4=m
439CONFIG_NF_CONNTRACK_PROC_COMPAT=y 504CONFIG_NF_CONNTRACK_PROC_COMPAT=y
440CONFIG_IP_NF_IPTABLES=m 505CONFIG_IP_NF_IPTABLES=m
@@ -460,22 +525,44 @@ CONFIG_IP_NF_MANGLE=m
460CONFIG_NF_CONNTRACK_IPV6=m 525CONFIG_NF_CONNTRACK_IPV6=m
461CONFIG_IP6_NF_IPTABLES=m 526CONFIG_IP6_NF_IPTABLES=m
462CONFIG_IP6_NF_MATCH_IPV6HEADER=m 527CONFIG_IP6_NF_MATCH_IPV6HEADER=m
463CONFIG_IP6_NF_FILTER=m
464CONFIG_IP6_NF_TARGET_LOG=m 528CONFIG_IP6_NF_TARGET_LOG=m
529CONFIG_IP6_NF_FILTER=m
465CONFIG_IP6_NF_TARGET_REJECT=m 530CONFIG_IP6_NF_TARGET_REJECT=m
466CONFIG_IP6_NF_MANGLE=m 531CONFIG_IP6_NF_MANGLE=m
467# CONFIG_IP_DCCP is not set 532CONFIG_IP_DCCP=m
533CONFIG_INET_DCCP_DIAG=m
534
535#
536# DCCP CCIDs Configuration (EXPERIMENTAL)
537#
538# CONFIG_IP_DCCP_CCID2_DEBUG is not set
539CONFIG_IP_DCCP_CCID3=y
540# CONFIG_IP_DCCP_CCID3_DEBUG is not set
541CONFIG_IP_DCCP_CCID3_RTO=100
542CONFIG_IP_DCCP_TFRC_LIB=y
543
544#
545# DCCP Kernel Hacking
546#
547# CONFIG_IP_DCCP_DEBUG is not set
468CONFIG_IP_SCTP=m 548CONFIG_IP_SCTP=m
469# CONFIG_SCTP_DBG_MSG is not set 549# CONFIG_SCTP_DBG_MSG is not set
470# CONFIG_SCTP_DBG_OBJCNT is not set 550# CONFIG_SCTP_DBG_OBJCNT is not set
471# CONFIG_SCTP_HMAC_NONE is not set 551# CONFIG_SCTP_HMAC_NONE is not set
472# CONFIG_SCTP_HMAC_SHA1 is not set 552CONFIG_SCTP_HMAC_SHA1=y
473CONFIG_SCTP_HMAC_MD5=y 553# CONFIG_SCTP_HMAC_MD5 is not set
554# CONFIG_RDS is not set
474# CONFIG_TIPC is not set 555# CONFIG_TIPC is not set
475# CONFIG_ATM is not set 556# CONFIG_ATM is not set
476# CONFIG_BRIDGE is not set 557CONFIG_STP=m
477# CONFIG_VLAN_8021Q is not set 558CONFIG_GARP=m
559CONFIG_BRIDGE=m
560CONFIG_BRIDGE_IGMP_SNOOPING=y
561# CONFIG_NET_DSA is not set
562CONFIG_VLAN_8021Q=m
563CONFIG_VLAN_8021Q_GVRP=y
478# CONFIG_DECNET is not set 564# CONFIG_DECNET is not set
565CONFIG_LLC=m
479# CONFIG_LLC2 is not set 566# CONFIG_LLC2 is not set
480# CONFIG_IPX is not set 567# CONFIG_IPX is not set
481# CONFIG_ATALK is not set 568# CONFIG_ATALK is not set
@@ -483,26 +570,47 @@ CONFIG_SCTP_HMAC_MD5=y
483# CONFIG_LAPB is not set 570# CONFIG_LAPB is not set
484# CONFIG_ECONET is not set 571# CONFIG_ECONET is not set
485# CONFIG_WAN_ROUTER is not set 572# CONFIG_WAN_ROUTER is not set
573# CONFIG_PHONET is not set
574# CONFIG_IEEE802154 is not set
486# CONFIG_NET_SCHED is not set 575# CONFIG_NET_SCHED is not set
576# CONFIG_DCB is not set
487 577
488# 578#
489# Network testing 579# Network testing
490# 580#
491# CONFIG_NET_PKTGEN is not set 581# CONFIG_NET_PKTGEN is not set
492# CONFIG_HAMRADIO is not set 582CONFIG_HAMRADIO=y
583
584#
585# Packet Radio protocols
586#
587CONFIG_AX25=m
588CONFIG_AX25_DAMA_SLAVE=y
589CONFIG_NETROM=m
590CONFIG_ROSE=m
591
592#
593# AX.25 network device drivers
594#
595CONFIG_MKISS=m
596CONFIG_6PACK=m
597CONFIG_BPQETHER=m
598CONFIG_BAYCOM_SER_FDX=m
599CONFIG_BAYCOM_SER_HDX=m
600CONFIG_YAM=m
493# CONFIG_CAN is not set 601# CONFIG_CAN is not set
494# CONFIG_IRDA is not set 602# CONFIG_IRDA is not set
495# CONFIG_BT is not set 603# CONFIG_BT is not set
496# CONFIG_AF_RXRPC is not set 604# CONFIG_AF_RXRPC is not set
497CONFIG_FIB_RULES=y 605CONFIG_FIB_RULES=y
606CONFIG_WIRELESS=y
607# CONFIG_CFG80211 is not set
608# CONFIG_LIB80211 is not set
498 609
499# 610#
500# Wireless 611# CFG80211 needs to be enabled for MAC80211
501# 612#
502# CONFIG_CFG80211 is not set 613# CONFIG_WIMAX is not set
503# CONFIG_WIRELESS_EXT is not set
504# CONFIG_MAC80211 is not set
505# CONFIG_IEEE80211 is not set
506# CONFIG_RFKILL is not set 614# CONFIG_RFKILL is not set
507# CONFIG_NET_9P is not set 615# CONFIG_NET_9P is not set
508 616
@@ -514,9 +622,12 @@ CONFIG_FIB_RULES=y
514# Generic Driver Options 622# Generic Driver Options
515# 623#
516CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 624CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
625# CONFIG_DEVTMPFS is not set
517CONFIG_STANDALONE=y 626CONFIG_STANDALONE=y
518CONFIG_PREVENT_FIRMWARE_BUILD=y 627CONFIG_PREVENT_FIRMWARE_BUILD=y
519CONFIG_FW_LOADER=m 628CONFIG_FW_LOADER=m
629CONFIG_FIRMWARE_IN_KERNEL=y
630CONFIG_EXTRA_FIRMWARE=""
520# CONFIG_DEBUG_DRIVER is not set 631# CONFIG_DEBUG_DRIVER is not set
521# CONFIG_DEBUG_DEVRES is not set 632# CONFIG_DEBUG_DEVRES is not set
522# CONFIG_SYS_HYPERVISOR is not set 633# CONFIG_SYS_HYPERVISOR is not set
@@ -531,33 +642,53 @@ CONFIG_BLK_DEV=y
531# CONFIG_BLK_DEV_COW_COMMON is not set 642# CONFIG_BLK_DEV_COW_COMMON is not set
532CONFIG_BLK_DEV_LOOP=m 643CONFIG_BLK_DEV_LOOP=m
533CONFIG_BLK_DEV_CRYPTOLOOP=m 644CONFIG_BLK_DEV_CRYPTOLOOP=m
645
646#
647# DRBD disabled because PROC_FS, INET or CONNECTOR not selected
648#
534CONFIG_BLK_DEV_NBD=m 649CONFIG_BLK_DEV_NBD=m
535# CONFIG_BLK_DEV_SX8 is not set 650# CONFIG_BLK_DEV_SX8 is not set
536# CONFIG_BLK_DEV_RAM is not set 651# CONFIG_BLK_DEV_RAM is not set
537# CONFIG_CDROM_PKTCDVD is not set 652# CONFIG_CDROM_PKTCDVD is not set
538# CONFIG_ATA_OVER_ETH is not set 653# CONFIG_ATA_OVER_ETH is not set
654# CONFIG_BLK_DEV_HD is not set
539CONFIG_MISC_DEVICES=y 655CONFIG_MISC_DEVICES=y
656# CONFIG_AD525X_DPOT is not set
540# CONFIG_PHANTOM is not set 657# CONFIG_PHANTOM is not set
541# CONFIG_EEPROM_93CX6 is not set
542CONFIG_SGI_IOC4=m 658CONFIG_SGI_IOC4=m
543# CONFIG_TIFM_CORE is not set 659# CONFIG_TIFM_CORE is not set
660# CONFIG_ICS932S401 is not set
544# CONFIG_ENCLOSURE_SERVICES is not set 661# CONFIG_ENCLOSURE_SERVICES is not set
662# CONFIG_HP_ILO is not set
663# CONFIG_ISL29003 is not set
664# CONFIG_SENSORS_TSL2550 is not set
665# CONFIG_DS1682 is not set
666# CONFIG_C2PORT is not set
667
668#
669# EEPROM support
670#
671# CONFIG_EEPROM_AT24 is not set
672CONFIG_EEPROM_LEGACY=y
673CONFIG_EEPROM_MAX6875=y
674# CONFIG_EEPROM_93CX6 is not set
675# CONFIG_CB710_CORE is not set
545CONFIG_HAVE_IDE=y 676CONFIG_HAVE_IDE=y
546CONFIG_IDE=y 677CONFIG_IDE=y
547CONFIG_IDE_MAX_HWIFS=4
548CONFIG_BLK_DEV_IDE=y
549 678
550# 679#
551# Please see Documentation/ide/ide.txt for help/info on IDE drives 680# Please see Documentation/ide/ide.txt for help/info on IDE drives
552# 681#
682CONFIG_IDE_XFER_MODE=y
683CONFIG_IDE_TIMINGS=y
684CONFIG_IDE_ATAPI=y
553# CONFIG_BLK_DEV_IDE_SATA is not set 685# CONFIG_BLK_DEV_IDE_SATA is not set
554CONFIG_BLK_DEV_IDEDISK=y 686CONFIG_IDE_GD=y
555# CONFIG_IDEDISK_MULTI_MODE is not set 687CONFIG_IDE_GD_ATA=y
688# CONFIG_IDE_GD_ATAPI is not set
556CONFIG_BLK_DEV_IDECD=y 689CONFIG_BLK_DEV_IDECD=y
557CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y 690CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y
558CONFIG_BLK_DEV_IDETAPE=y 691CONFIG_BLK_DEV_IDETAPE=y
559CONFIG_BLK_DEV_IDEFLOPPY=y
560# CONFIG_BLK_DEV_IDESCSI is not set
561# CONFIG_IDE_TASK_IOCTL is not set 692# CONFIG_IDE_TASK_IOCTL is not set
562CONFIG_IDE_PROC_FS=y 693CONFIG_IDE_PROC_FS=y
563 694
@@ -582,14 +713,13 @@ CONFIG_BLK_DEV_IDEDMA_PCI=y
582# CONFIG_BLK_DEV_AMD74XX is not set 713# CONFIG_BLK_DEV_AMD74XX is not set
583CONFIG_BLK_DEV_CMD64X=y 714CONFIG_BLK_DEV_CMD64X=y
584# CONFIG_BLK_DEV_TRIFLEX is not set 715# CONFIG_BLK_DEV_TRIFLEX is not set
585# CONFIG_BLK_DEV_CY82C693 is not set
586# CONFIG_BLK_DEV_CS5520 is not set 716# CONFIG_BLK_DEV_CS5520 is not set
587# CONFIG_BLK_DEV_CS5530 is not set 717# CONFIG_BLK_DEV_CS5530 is not set
588# CONFIG_BLK_DEV_HPT34X is not set
589# CONFIG_BLK_DEV_HPT366 is not set 718# CONFIG_BLK_DEV_HPT366 is not set
590# CONFIG_BLK_DEV_JMICRON is not set 719# CONFIG_BLK_DEV_JMICRON is not set
591# CONFIG_BLK_DEV_SC1200 is not set 720# CONFIG_BLK_DEV_SC1200 is not set
592# CONFIG_BLK_DEV_PIIX is not set 721# CONFIG_BLK_DEV_PIIX is not set
722# CONFIG_BLK_DEV_IT8172 is not set
593CONFIG_BLK_DEV_IT8213=m 723CONFIG_BLK_DEV_IT8213=m
594# CONFIG_BLK_DEV_IT821X is not set 724# CONFIG_BLK_DEV_IT821X is not set
595# CONFIG_BLK_DEV_NS87415 is not set 725# CONFIG_BLK_DEV_NS87415 is not set
@@ -601,14 +731,12 @@ CONFIG_BLK_DEV_IT8213=m
601# CONFIG_BLK_DEV_TRM290 is not set 731# CONFIG_BLK_DEV_TRM290 is not set
602# CONFIG_BLK_DEV_VIA82CXXX is not set 732# CONFIG_BLK_DEV_VIA82CXXX is not set
603CONFIG_BLK_DEV_TC86C001=m 733CONFIG_BLK_DEV_TC86C001=m
604# CONFIG_BLK_DEV_IDE_SWARM is not set
605CONFIG_BLK_DEV_IDEDMA=y 734CONFIG_BLK_DEV_IDEDMA=y
606# CONFIG_BLK_DEV_HD_ONLY is not set
607# CONFIG_BLK_DEV_HD is not set
608 735
609# 736#
610# SCSI device support 737# SCSI device support
611# 738#
739CONFIG_SCSI_MOD=y
612# CONFIG_RAID_ATTRS is not set 740# CONFIG_RAID_ATTRS is not set
613CONFIG_SCSI=y 741CONFIG_SCSI=y
614CONFIG_SCSI_DMA=y 742CONFIG_SCSI_DMA=y
@@ -626,10 +754,6 @@ CONFIG_BLK_DEV_SR=m
626CONFIG_BLK_DEV_SR_VENDOR=y 754CONFIG_BLK_DEV_SR_VENDOR=y
627CONFIG_CHR_DEV_SG=m 755CONFIG_CHR_DEV_SG=m
628CONFIG_CHR_DEV_SCH=m 756CONFIG_CHR_DEV_SCH=m
629
630#
631# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
632#
633# CONFIG_SCSI_MULTI_LUN is not set 757# CONFIG_SCSI_MULTI_LUN is not set
634# CONFIG_SCSI_CONSTANTS is not set 758# CONFIG_SCSI_CONSTANTS is not set
635# CONFIG_SCSI_LOGGING is not set 759# CONFIG_SCSI_LOGGING is not set
@@ -646,27 +770,36 @@ CONFIG_SCSI_WAIT_SCAN=m
646# CONFIG_SCSI_SRP_ATTRS is not set 770# CONFIG_SCSI_SRP_ATTRS is not set
647CONFIG_SCSI_LOWLEVEL=y 771CONFIG_SCSI_LOWLEVEL=y
648# CONFIG_ISCSI_TCP is not set 772# CONFIG_ISCSI_TCP is not set
773# CONFIG_SCSI_CXGB3_ISCSI is not set
774# CONFIG_SCSI_BNX2_ISCSI is not set
775# CONFIG_BE2ISCSI is not set
649# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 776# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
777# CONFIG_SCSI_HPSA is not set
650# CONFIG_SCSI_3W_9XXX is not set 778# CONFIG_SCSI_3W_9XXX is not set
779# CONFIG_SCSI_3W_SAS is not set
651# CONFIG_SCSI_ACARD is not set 780# CONFIG_SCSI_ACARD is not set
652# CONFIG_SCSI_AACRAID is not set 781# CONFIG_SCSI_AACRAID is not set
653# CONFIG_SCSI_AIC7XXX is not set 782# CONFIG_SCSI_AIC7XXX is not set
654# CONFIG_SCSI_AIC7XXX_OLD is not set 783# CONFIG_SCSI_AIC7XXX_OLD is not set
655# CONFIG_SCSI_AIC79XX is not set 784# CONFIG_SCSI_AIC79XX is not set
656# CONFIG_SCSI_AIC94XX is not set 785# CONFIG_SCSI_AIC94XX is not set
786# CONFIG_SCSI_MVSAS is not set
657# CONFIG_SCSI_DPT_I2O is not set 787# CONFIG_SCSI_DPT_I2O is not set
658# CONFIG_SCSI_ADVANSYS is not set 788# CONFIG_SCSI_ADVANSYS is not set
659# CONFIG_SCSI_ARCMSR is not set 789# CONFIG_SCSI_ARCMSR is not set
660# CONFIG_MEGARAID_NEWGEN is not set 790# CONFIG_MEGARAID_NEWGEN is not set
661# CONFIG_MEGARAID_LEGACY is not set 791# CONFIG_MEGARAID_LEGACY is not set
662# CONFIG_MEGARAID_SAS is not set 792# CONFIG_MEGARAID_SAS is not set
793# CONFIG_SCSI_MPT2SAS is not set
663# CONFIG_SCSI_HPTIOP is not set 794# CONFIG_SCSI_HPTIOP is not set
795# CONFIG_LIBFC is not set
796# CONFIG_LIBFCOE is not set
797# CONFIG_FCOE is not set
664# CONFIG_SCSI_DMX3191D is not set 798# CONFIG_SCSI_DMX3191D is not set
665# CONFIG_SCSI_FUTURE_DOMAIN is not set 799# CONFIG_SCSI_FUTURE_DOMAIN is not set
666# CONFIG_SCSI_IPS is not set 800# CONFIG_SCSI_IPS is not set
667# CONFIG_SCSI_INITIO is not set 801# CONFIG_SCSI_INITIO is not set
668# CONFIG_SCSI_INIA100 is not set 802# CONFIG_SCSI_INIA100 is not set
669# CONFIG_SCSI_MVSAS is not set
670# CONFIG_SCSI_STEX is not set 803# CONFIG_SCSI_STEX is not set
671# CONFIG_SCSI_SYM53C8XX_2 is not set 804# CONFIG_SCSI_SYM53C8XX_2 is not set
672# CONFIG_SCSI_IPR is not set 805# CONFIG_SCSI_IPR is not set
@@ -677,9 +810,15 @@ CONFIG_SCSI_LOWLEVEL=y
677# CONFIG_SCSI_DC395x is not set 810# CONFIG_SCSI_DC395x is not set
678# CONFIG_SCSI_DC390T is not set 811# CONFIG_SCSI_DC390T is not set
679# CONFIG_SCSI_DEBUG is not set 812# CONFIG_SCSI_DEBUG is not set
813# CONFIG_SCSI_PMCRAID is not set
814# CONFIG_SCSI_PM8001 is not set
680# CONFIG_SCSI_SRP is not set 815# CONFIG_SCSI_SRP is not set
816# CONFIG_SCSI_BFA_FC is not set
817# CONFIG_SCSI_DH is not set
818# CONFIG_SCSI_OSD_INITIATOR is not set
681CONFIG_ATA=y 819CONFIG_ATA=y
682# CONFIG_ATA_NONSTANDARD is not set 820# CONFIG_ATA_NONSTANDARD is not set
821CONFIG_ATA_VERBOSE_ERROR=y
683CONFIG_SATA_PMP=y 822CONFIG_SATA_PMP=y
684# CONFIG_SATA_AHCI is not set 823# CONFIG_SATA_AHCI is not set
685CONFIG_SATA_SIL24=y 824CONFIG_SATA_SIL24=y
@@ -701,6 +840,7 @@ CONFIG_ATA_SFF=y
701# CONFIG_PATA_ALI is not set 840# CONFIG_PATA_ALI is not set
702# CONFIG_PATA_AMD is not set 841# CONFIG_PATA_AMD is not set
703# CONFIG_PATA_ARTOP is not set 842# CONFIG_PATA_ARTOP is not set
843# CONFIG_PATA_ATP867X is not set
704# CONFIG_PATA_ATIIXP is not set 844# CONFIG_PATA_ATIIXP is not set
705# CONFIG_PATA_CMD640_PCI is not set 845# CONFIG_PATA_CMD640_PCI is not set
706# CONFIG_PATA_CMD64X is not set 846# CONFIG_PATA_CMD64X is not set
@@ -716,6 +856,7 @@ CONFIG_ATA_SFF=y
716# CONFIG_PATA_IT821X is not set 856# CONFIG_PATA_IT821X is not set
717# CONFIG_PATA_IT8213 is not set 857# CONFIG_PATA_IT8213 is not set
718# CONFIG_PATA_JMICRON is not set 858# CONFIG_PATA_JMICRON is not set
859# CONFIG_PATA_LEGACY is not set
719# CONFIG_PATA_TRIFLEX is not set 860# CONFIG_PATA_TRIFLEX is not set
720# CONFIG_PATA_MARVELL is not set 861# CONFIG_PATA_MARVELL is not set
721# CONFIG_PATA_MPIIX is not set 862# CONFIG_PATA_MPIIX is not set
@@ -726,14 +867,16 @@ CONFIG_ATA_SFF=y
726# CONFIG_PATA_NS87415 is not set 867# CONFIG_PATA_NS87415 is not set
727# CONFIG_PATA_OPTI is not set 868# CONFIG_PATA_OPTI is not set
728# CONFIG_PATA_OPTIDMA is not set 869# CONFIG_PATA_OPTIDMA is not set
870# CONFIG_PATA_PDC2027X is not set
729# CONFIG_PATA_PDC_OLD is not set 871# CONFIG_PATA_PDC_OLD is not set
730# CONFIG_PATA_RADISYS is not set 872# CONFIG_PATA_RADISYS is not set
873# CONFIG_PATA_RDC is not set
731# CONFIG_PATA_RZ1000 is not set 874# CONFIG_PATA_RZ1000 is not set
732# CONFIG_PATA_SC1200 is not set 875# CONFIG_PATA_SC1200 is not set
733# CONFIG_PATA_SERVERWORKS is not set 876# CONFIG_PATA_SERVERWORKS is not set
734# CONFIG_PATA_PDC2027X is not set
735CONFIG_PATA_SIL680=y 877CONFIG_PATA_SIL680=y
736# CONFIG_PATA_SIS is not set 878# CONFIG_PATA_SIS is not set
879# CONFIG_PATA_TOSHIBA is not set
737# CONFIG_PATA_VIA is not set 880# CONFIG_PATA_VIA is not set
738# CONFIG_PATA_WINBOND is not set 881# CONFIG_PATA_WINBOND is not set
739# CONFIG_PATA_PLATFORM is not set 882# CONFIG_PATA_PLATFORM is not set
@@ -746,13 +889,16 @@ CONFIG_PATA_SIL680=y
746# 889#
747 890
748# 891#
749# Enable only one of the two stacks, unless you know what you are doing 892# You can enable one or both FireWire driver stacks.
893#
894
895#
896# The newer stack is recommended.
750# 897#
751# CONFIG_FIREWIRE is not set 898# CONFIG_FIREWIRE is not set
752# CONFIG_IEEE1394 is not set 899# CONFIG_IEEE1394 is not set
753# CONFIG_I2O is not set 900# CONFIG_I2O is not set
754CONFIG_NETDEVICES=y 901CONFIG_NETDEVICES=y
755# CONFIG_NETDEVICES_MULTIQUEUE is not set
756# CONFIG_DUMMY is not set 902# CONFIG_DUMMY is not set
757# CONFIG_BONDING is not set 903# CONFIG_BONDING is not set
758# CONFIG_MACVLAN is not set 904# CONFIG_MACVLAN is not set
@@ -775,6 +921,9 @@ CONFIG_PHYLIB=y
775# CONFIG_BROADCOM_PHY is not set 921# CONFIG_BROADCOM_PHY is not set
776# CONFIG_ICPLUS_PHY is not set 922# CONFIG_ICPLUS_PHY is not set
777# CONFIG_REALTEK_PHY is not set 923# CONFIG_REALTEK_PHY is not set
924# CONFIG_NATIONAL_PHY is not set
925# CONFIG_STE10XP is not set
926# CONFIG_LSI_ET1011C_PHY is not set
778# CONFIG_FIXED_PHY is not set 927# CONFIG_FIXED_PHY is not set
779# CONFIG_MDIO_BITBANG is not set 928# CONFIG_MDIO_BITBANG is not set
780CONFIG_NET_ETHERNET=y 929CONFIG_NET_ETHERNET=y
@@ -784,23 +933,33 @@ CONFIG_MII=y
784# CONFIG_SUNGEM is not set 933# CONFIG_SUNGEM is not set
785# CONFIG_CASSINI is not set 934# CONFIG_CASSINI is not set
786# CONFIG_NET_VENDOR_3COM is not set 935# CONFIG_NET_VENDOR_3COM is not set
936# CONFIG_SMC91X is not set
787# CONFIG_DM9000 is not set 937# CONFIG_DM9000 is not set
938# CONFIG_ETHOC is not set
939# CONFIG_SMSC911X is not set
940# CONFIG_DNET is not set
788# CONFIG_NET_TULIP is not set 941# CONFIG_NET_TULIP is not set
789# CONFIG_HP100 is not set 942# CONFIG_HP100 is not set
790# CONFIG_IBM_NEW_EMAC_ZMII is not set 943# CONFIG_IBM_NEW_EMAC_ZMII is not set
791# CONFIG_IBM_NEW_EMAC_RGMII is not set 944# CONFIG_IBM_NEW_EMAC_RGMII is not set
792# CONFIG_IBM_NEW_EMAC_TAH is not set 945# CONFIG_IBM_NEW_EMAC_TAH is not set
793# CONFIG_IBM_NEW_EMAC_EMAC4 is not set 946# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
947# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
948# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
949# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
794# CONFIG_NET_PCI is not set 950# CONFIG_NET_PCI is not set
795# CONFIG_B44 is not set 951# CONFIG_B44 is not set
952# CONFIG_KS8842 is not set
953# CONFIG_KS8851_MLL is not set
954# CONFIG_ATL2 is not set
796CONFIG_NETDEV_1000=y 955CONFIG_NETDEV_1000=y
797# CONFIG_ACENIC is not set 956# CONFIG_ACENIC is not set
798# CONFIG_DL2K is not set 957# CONFIG_DL2K is not set
799# CONFIG_E1000 is not set 958# CONFIG_E1000 is not set
800# CONFIG_E1000E is not set 959# CONFIG_E1000E is not set
801# CONFIG_E1000E_ENABLED is not set
802# CONFIG_IP1000 is not set 960# CONFIG_IP1000 is not set
803# CONFIG_IGB is not set 961# CONFIG_IGB is not set
962# CONFIG_IGBVF is not set
804# CONFIG_NS83820 is not set 963# CONFIG_NS83820 is not set
805# CONFIG_HAMACHI is not set 964# CONFIG_HAMACHI is not set
806# CONFIG_YELLOWFIN is not set 965# CONFIG_YELLOWFIN is not set
@@ -812,29 +971,42 @@ CONFIG_SB1250_MAC=y
812# CONFIG_VIA_VELOCITY is not set 971# CONFIG_VIA_VELOCITY is not set
813# CONFIG_TIGON3 is not set 972# CONFIG_TIGON3 is not set
814# CONFIG_BNX2 is not set 973# CONFIG_BNX2 is not set
974# CONFIG_CNIC is not set
815# CONFIG_QLA3XXX is not set 975# CONFIG_QLA3XXX is not set
816# CONFIG_ATL1 is not set 976# CONFIG_ATL1 is not set
977# CONFIG_ATL1E is not set
978# CONFIG_ATL1C is not set
979# CONFIG_JME is not set
817CONFIG_NETDEV_10000=y 980CONFIG_NETDEV_10000=y
981CONFIG_MDIO=m
818# CONFIG_CHELSIO_T1 is not set 982# CONFIG_CHELSIO_T1 is not set
983CONFIG_CHELSIO_T3_DEPENDS=y
819CONFIG_CHELSIO_T3=m 984CONFIG_CHELSIO_T3=m
985# CONFIG_ENIC is not set
820# CONFIG_IXGBE is not set 986# CONFIG_IXGBE is not set
821# CONFIG_IXGB is not set 987# CONFIG_IXGB is not set
822# CONFIG_S2IO is not set 988# CONFIG_S2IO is not set
989# CONFIG_VXGE is not set
823# CONFIG_MYRI10GE is not set 990# CONFIG_MYRI10GE is not set
824CONFIG_NETXEN_NIC=m 991CONFIG_NETXEN_NIC=m
825# CONFIG_NIU is not set 992# CONFIG_NIU is not set
993# CONFIG_MLX4_EN is not set
826# CONFIG_MLX4_CORE is not set 994# CONFIG_MLX4_CORE is not set
827# CONFIG_TEHUTI is not set 995# CONFIG_TEHUTI is not set
828# CONFIG_BNX2X is not set 996# CONFIG_BNX2X is not set
997# CONFIG_QLCNIC is not set
998# CONFIG_QLGE is not set
829# CONFIG_SFC is not set 999# CONFIG_SFC is not set
1000# CONFIG_BE2NET is not set
830# CONFIG_TR is not set 1001# CONFIG_TR is not set
1002CONFIG_WLAN=y
1003# CONFIG_ATMEL is not set
1004# CONFIG_PRISM54 is not set
1005# CONFIG_HOSTAP is not set
831 1006
832# 1007#
833# Wireless LAN 1008# Enable WiMAX (Networking options) to see the WiMAX drivers
834# 1009#
835# CONFIG_WLAN_PRE80211 is not set
836# CONFIG_WLAN_80211 is not set
837# CONFIG_IWLWIFI_LEDS is not set
838# CONFIG_WAN is not set 1010# CONFIG_WAN is not set
839# CONFIG_FDDI is not set 1011# CONFIG_FDDI is not set
840# CONFIG_HIPPI is not set 1012# CONFIG_HIPPI is not set
@@ -857,6 +1029,7 @@ CONFIG_SLIP_MODE_SLIP6=y
857# CONFIG_NETCONSOLE is not set 1029# CONFIG_NETCONSOLE is not set
858# CONFIG_NETPOLL is not set 1030# CONFIG_NETPOLL is not set
859# CONFIG_NET_POLL_CONTROLLER is not set 1031# CONFIG_NET_POLL_CONTROLLER is not set
1032# CONFIG_VMXNET3 is not set
860# CONFIG_ISDN is not set 1033# CONFIG_ISDN is not set
861# CONFIG_PHONE is not set 1034# CONFIG_PHONE is not set
862 1035
@@ -874,6 +1047,7 @@ CONFIG_SERIO_SERPORT=y
874# CONFIG_SERIO_PCIPS2 is not set 1047# CONFIG_SERIO_PCIPS2 is not set
875# CONFIG_SERIO_LIBPS2 is not set 1048# CONFIG_SERIO_LIBPS2 is not set
876CONFIG_SERIO_RAW=m 1049CONFIG_SERIO_RAW=m
1050# CONFIG_SERIO_ALTERA_PS2 is not set
877# CONFIG_GAMEPORT is not set 1051# CONFIG_GAMEPORT is not set
878 1052
879# 1053#
@@ -894,8 +1068,6 @@ CONFIG_SERIAL_NONSTANDARD=y
894# CONFIG_N_HDLC is not set 1068# CONFIG_N_HDLC is not set
895# CONFIG_RISCOM8 is not set 1069# CONFIG_RISCOM8 is not set
896# CONFIG_SPECIALIX is not set 1070# CONFIG_SPECIALIX is not set
897# CONFIG_SX is not set
898# CONFIG_RIO is not set
899# CONFIG_STALDRV is not set 1071# CONFIG_STALDRV is not set
900# CONFIG_NOZOMI is not set 1072# CONFIG_NOZOMI is not set
901 1073
@@ -912,7 +1084,9 @@ CONFIG_SERIAL_SB1250_DUART_CONSOLE=y
912CONFIG_SERIAL_CORE=y 1084CONFIG_SERIAL_CORE=y
913CONFIG_SERIAL_CORE_CONSOLE=y 1085CONFIG_SERIAL_CORE_CONSOLE=y
914# CONFIG_SERIAL_JSM is not set 1086# CONFIG_SERIAL_JSM is not set
1087# CONFIG_SERIAL_TIMBERDALE is not set
915CONFIG_UNIX98_PTYS=y 1088CONFIG_UNIX98_PTYS=y
1089# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
916CONFIG_LEGACY_PTYS=y 1090CONFIG_LEGACY_PTYS=y
917CONFIG_LEGACY_PTY_COUNT=256 1091CONFIG_LEGACY_PTY_COUNT=256
918# CONFIG_IPMI_HANDLER is not set 1092# CONFIG_IPMI_HANDLER is not set
@@ -924,89 +1098,99 @@ CONFIG_LEGACY_PTY_COUNT=256
924CONFIG_DEVPORT=y 1098CONFIG_DEVPORT=y
925CONFIG_I2C=y 1099CONFIG_I2C=y
926CONFIG_I2C_BOARDINFO=y 1100CONFIG_I2C_BOARDINFO=y
1101CONFIG_I2C_COMPAT=y
927CONFIG_I2C_CHARDEV=y 1102CONFIG_I2C_CHARDEV=y
1103CONFIG_I2C_HELPER_AUTO=y
928 1104
929# 1105#
930# I2C Hardware Bus support 1106# I2C Hardware Bus support
931# 1107#
1108
1109#
1110# PC SMBus host controller drivers
1111#
932# CONFIG_I2C_ALI1535 is not set 1112# CONFIG_I2C_ALI1535 is not set
933# CONFIG_I2C_ALI1563 is not set 1113# CONFIG_I2C_ALI1563 is not set
934# CONFIG_I2C_ALI15X3 is not set 1114# CONFIG_I2C_ALI15X3 is not set
935# CONFIG_I2C_AMD756 is not set 1115# CONFIG_I2C_AMD756 is not set
936# CONFIG_I2C_AMD8111 is not set 1116# CONFIG_I2C_AMD8111 is not set
937# CONFIG_I2C_I801 is not set 1117# CONFIG_I2C_I801 is not set
938# CONFIG_I2C_I810 is not set 1118# CONFIG_I2C_ISCH is not set
939# CONFIG_I2C_PIIX4 is not set 1119# CONFIG_I2C_PIIX4 is not set
940# CONFIG_I2C_NFORCE2 is not set 1120# CONFIG_I2C_NFORCE2 is not set
941# CONFIG_I2C_OCORES is not set
942# CONFIG_I2C_PARPORT_LIGHT is not set
943# CONFIG_I2C_PROSAVAGE is not set
944# CONFIG_I2C_SAVAGE4 is not set
945CONFIG_I2C_SIBYTE=y
946# CONFIG_I2C_SIMTEC is not set
947# CONFIG_I2C_SIS5595 is not set 1121# CONFIG_I2C_SIS5595 is not set
948# CONFIG_I2C_SIS630 is not set 1122# CONFIG_I2C_SIS630 is not set
949# CONFIG_I2C_SIS96X is not set 1123# CONFIG_I2C_SIS96X is not set
950# CONFIG_I2C_TAOS_EVM is not set
951# CONFIG_I2C_STUB is not set
952# CONFIG_I2C_VIA is not set 1124# CONFIG_I2C_VIA is not set
953# CONFIG_I2C_VIAPRO is not set 1125# CONFIG_I2C_VIAPRO is not set
954# CONFIG_I2C_VOODOO3 is not set
955# CONFIG_I2C_PCA_PLATFORM is not set
956 1126
957# 1127#
958# Miscellaneous I2C Chip support 1128# I2C system bus drivers (mostly embedded / system-on-chip)
959# 1129#
960# CONFIG_DS1682 is not set 1130# CONFIG_I2C_OCORES is not set
961CONFIG_EEPROM_LEGACY=y 1131# CONFIG_I2C_SIMTEC is not set
962CONFIG_SENSORS_PCF8574=y 1132# CONFIG_I2C_XILINX is not set
963# CONFIG_PCF8575 is not set 1133
964CONFIG_SENSORS_PCF8591=y 1134#
965CONFIG_EEPROM_MAX6875=y 1135# External I2C/SMBus adapter drivers
966# CONFIG_SENSORS_TSL2550 is not set 1136#
1137# CONFIG_I2C_PARPORT_LIGHT is not set
1138# CONFIG_I2C_TAOS_EVM is not set
1139
1140#
1141# Other I2C/SMBus bus drivers
1142#
1143# CONFIG_I2C_PCA_PLATFORM is not set
1144CONFIG_I2C_SIBYTE=y
1145# CONFIG_I2C_STUB is not set
967CONFIG_I2C_DEBUG_CORE=y 1146CONFIG_I2C_DEBUG_CORE=y
968CONFIG_I2C_DEBUG_ALGO=y 1147CONFIG_I2C_DEBUG_ALGO=y
969CONFIG_I2C_DEBUG_BUS=y 1148CONFIG_I2C_DEBUG_BUS=y
970CONFIG_I2C_DEBUG_CHIP=y
971# CONFIG_SPI is not set 1149# CONFIG_SPI is not set
1150
1151#
1152# PPS support
1153#
1154# CONFIG_PPS is not set
972# CONFIG_W1 is not set 1155# CONFIG_W1 is not set
973# CONFIG_POWER_SUPPLY is not set 1156# CONFIG_POWER_SUPPLY is not set
974# CONFIG_HWMON is not set 1157# CONFIG_HWMON is not set
975# CONFIG_THERMAL is not set 1158# CONFIG_THERMAL is not set
976# CONFIG_THERMAL_HWMON is not set
977# CONFIG_WATCHDOG is not set 1159# CONFIG_WATCHDOG is not set
1160CONFIG_SSB_POSSIBLE=y
978 1161
979# 1162#
980# Sonics Silicon Backplane 1163# Sonics Silicon Backplane
981# 1164#
982CONFIG_SSB_POSSIBLE=y
983# CONFIG_SSB is not set 1165# CONFIG_SSB is not set
984 1166
985# 1167#
986# Multifunction device drivers 1168# Multifunction device drivers
987# 1169#
1170# CONFIG_MFD_CORE is not set
1171# CONFIG_MFD_88PM860X is not set
988# CONFIG_MFD_SM501 is not set 1172# CONFIG_MFD_SM501 is not set
989# CONFIG_HTC_PASIC3 is not set 1173# CONFIG_HTC_PASIC3 is not set
990 1174# CONFIG_TWL4030_CORE is not set
991# 1175# CONFIG_MFD_TMIO is not set
992# Multimedia devices 1176# CONFIG_PMIC_DA903X is not set
993# 1177# CONFIG_PMIC_ADP5520 is not set
994 1178# CONFIG_MFD_MAX8925 is not set
995# 1179# CONFIG_MFD_WM8400 is not set
996# Multimedia core support 1180# CONFIG_MFD_WM831X is not set
997# 1181# CONFIG_MFD_WM8350_I2C is not set
998# CONFIG_VIDEO_DEV is not set 1182# CONFIG_MFD_WM8994 is not set
999# CONFIG_DVB_CORE is not set 1183# CONFIG_MFD_PCF50633 is not set
1000# CONFIG_VIDEO_MEDIA is not set 1184# CONFIG_AB3100_CORE is not set
1001 1185# CONFIG_LPC_SCH is not set
1002# 1186# CONFIG_REGULATOR is not set
1003# Multimedia drivers 1187# CONFIG_MEDIA_SUPPORT is not set
1004#
1005# CONFIG_DAB is not set
1006 1188
1007# 1189#
1008# Graphics support 1190# Graphics support
1009# 1191#
1192CONFIG_VGA_ARB=y
1193CONFIG_VGA_ARB_MAX_GPUS=16
1010# CONFIG_DRM is not set 1194# CONFIG_DRM is not set
1011# CONFIG_VGASTATE is not set 1195# CONFIG_VGASTATE is not set
1012# CONFIG_VIDEO_OUTPUT_CONTROL is not set 1196# CONFIG_VIDEO_OUTPUT_CONTROL is not set
@@ -1017,10 +1201,6 @@ CONFIG_SSB_POSSIBLE=y
1017# Display device support 1201# Display device support
1018# 1202#
1019# CONFIG_DISPLAY_SUPPORT is not set 1203# CONFIG_DISPLAY_SUPPORT is not set
1020
1021#
1022# Sound
1023#
1024# CONFIG_SOUND is not set 1204# CONFIG_SOUND is not set
1025CONFIG_USB_SUPPORT=y 1205CONFIG_USB_SUPPORT=y
1026CONFIG_USB_ARCH_HAS_HCD=y 1206CONFIG_USB_ARCH_HAS_HCD=y
@@ -1031,9 +1211,18 @@ CONFIG_USB_ARCH_HAS_EHCI=y
1031# CONFIG_USB_OTG_BLACKLIST_HUB is not set 1211# CONFIG_USB_OTG_BLACKLIST_HUB is not set
1032 1212
1033# 1213#
1034# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1214# Enable Host or Gadget support to see Inventra options
1215#
1216
1217#
1218# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
1035# 1219#
1036# CONFIG_USB_GADGET is not set 1220# CONFIG_USB_GADGET is not set
1221
1222#
1223# OTG and related infrastructure
1224#
1225# CONFIG_UWB is not set
1037# CONFIG_MMC is not set 1226# CONFIG_MMC is not set
1038# CONFIG_MEMSTICK is not set 1227# CONFIG_MEMSTICK is not set
1039# CONFIG_NEW_LEDS is not set 1228# CONFIG_NEW_LEDS is not set
@@ -1041,41 +1230,66 @@ CONFIG_USB_ARCH_HAS_EHCI=y
1041# CONFIG_INFINIBAND is not set 1230# CONFIG_INFINIBAND is not set
1042CONFIG_RTC_LIB=y 1231CONFIG_RTC_LIB=y
1043# CONFIG_RTC_CLASS is not set 1232# CONFIG_RTC_CLASS is not set
1233# CONFIG_DMADEVICES is not set
1234# CONFIG_AUXDISPLAY is not set
1044# CONFIG_UIO is not set 1235# CONFIG_UIO is not set
1045 1236
1046# 1237#
1238# TI VLYNQ
1239#
1240# CONFIG_STAGING is not set
1241
1242#
1047# File systems 1243# File systems
1048# 1244#
1049CONFIG_EXT2_FS=m 1245CONFIG_EXT2_FS=m
1050CONFIG_EXT2_FS_XATTR=y 1246CONFIG_EXT2_FS_XATTR=y
1051# CONFIG_EXT2_FS_POSIX_ACL is not set 1247CONFIG_EXT2_FS_POSIX_ACL=y
1052# CONFIG_EXT2_FS_SECURITY is not set 1248CONFIG_EXT2_FS_SECURITY=y
1053# CONFIG_EXT2_FS_XIP is not set 1249CONFIG_EXT2_FS_XIP=y
1054CONFIG_EXT3_FS=y 1250CONFIG_EXT3_FS=m
1251CONFIG_EXT3_DEFAULTS_TO_ORDERED=y
1055CONFIG_EXT3_FS_XATTR=y 1252CONFIG_EXT3_FS_XATTR=y
1056# CONFIG_EXT3_FS_POSIX_ACL is not set 1253CONFIG_EXT3_FS_POSIX_ACL=y
1057# CONFIG_EXT3_FS_SECURITY is not set 1254CONFIG_EXT3_FS_SECURITY=y
1058# CONFIG_EXT4DEV_FS is not set 1255CONFIG_EXT4_FS=y
1059CONFIG_JBD=y 1256CONFIG_EXT4_FS_XATTR=y
1257CONFIG_EXT4_FS_POSIX_ACL=y
1258CONFIG_EXT4_FS_SECURITY=y
1259# CONFIG_EXT4_DEBUG is not set
1260CONFIG_FS_XIP=y
1261CONFIG_JBD=m
1262CONFIG_JBD2=y
1060CONFIG_FS_MBCACHE=y 1263CONFIG_FS_MBCACHE=y
1061# CONFIG_REISERFS_FS is not set 1264# CONFIG_REISERFS_FS is not set
1062# CONFIG_JFS_FS is not set 1265# CONFIG_JFS_FS is not set
1063# CONFIG_FS_POSIX_ACL is not set 1266CONFIG_FS_POSIX_ACL=y
1064# CONFIG_XFS_FS is not set 1267# CONFIG_XFS_FS is not set
1065# CONFIG_GFS2_FS is not set 1268# CONFIG_GFS2_FS is not set
1066# CONFIG_OCFS2_FS is not set 1269# CONFIG_OCFS2_FS is not set
1270# CONFIG_BTRFS_FS is not set
1271# CONFIG_NILFS2_FS is not set
1272CONFIG_FILE_LOCKING=y
1273CONFIG_FSNOTIFY=y
1067CONFIG_DNOTIFY=y 1274CONFIG_DNOTIFY=y
1068CONFIG_INOTIFY=y 1275CONFIG_INOTIFY=y
1069CONFIG_INOTIFY_USER=y 1276CONFIG_INOTIFY_USER=y
1070CONFIG_QUOTA=y 1277CONFIG_QUOTA=y
1071CONFIG_QUOTA_NETLINK_INTERFACE=y 1278CONFIG_QUOTA_NETLINK_INTERFACE=y
1072# CONFIG_PRINT_QUOTA_WARNING is not set 1279# CONFIG_PRINT_QUOTA_WARNING is not set
1280CONFIG_QUOTA_TREE=m
1073# CONFIG_QFMT_V1 is not set 1281# CONFIG_QFMT_V1 is not set
1074CONFIG_QFMT_V2=m 1282CONFIG_QFMT_V2=m
1075CONFIG_QUOTACTL=y 1283CONFIG_QUOTACTL=y
1076CONFIG_AUTOFS_FS=m 1284CONFIG_AUTOFS_FS=m
1077CONFIG_AUTOFS4_FS=m 1285CONFIG_AUTOFS4_FS=m
1078CONFIG_FUSE_FS=m 1286CONFIG_FUSE_FS=m
1287# CONFIG_CUSE is not set
1288
1289#
1290# Caches
1291#
1292# CONFIG_FSCACHE is not set
1079 1293
1080# 1294#
1081# CD-ROM/DVD Filesystems 1295# CD-ROM/DVD Filesystems
@@ -1104,15 +1318,13 @@ CONFIG_NTFS_RW=y
1104CONFIG_PROC_FS=y 1318CONFIG_PROC_FS=y
1105CONFIG_PROC_KCORE=y 1319CONFIG_PROC_KCORE=y
1106CONFIG_PROC_SYSCTL=y 1320CONFIG_PROC_SYSCTL=y
1321CONFIG_PROC_PAGE_MONITOR=y
1107CONFIG_SYSFS=y 1322CONFIG_SYSFS=y
1108CONFIG_TMPFS=y 1323CONFIG_TMPFS=y
1109# CONFIG_TMPFS_POSIX_ACL is not set 1324# CONFIG_TMPFS_POSIX_ACL is not set
1110# CONFIG_HUGETLB_PAGE is not set 1325# CONFIG_HUGETLB_PAGE is not set
1111CONFIG_CONFIGFS_FS=m 1326CONFIG_CONFIGFS_FS=m
1112 1327CONFIG_MISC_FILESYSTEMS=y
1113#
1114# Miscellaneous filesystems
1115#
1116# CONFIG_ADFS_FS is not set 1328# CONFIG_ADFS_FS is not set
1117# CONFIG_AFFS_FS is not set 1329# CONFIG_AFFS_FS is not set
1118# CONFIG_ECRYPT_FS is not set 1330# CONFIG_ECRYPT_FS is not set
@@ -1121,9 +1333,12 @@ CONFIG_CONFIGFS_FS=m
1121# CONFIG_BEFS_FS is not set 1333# CONFIG_BEFS_FS is not set
1122# CONFIG_BFS_FS is not set 1334# CONFIG_BFS_FS is not set
1123# CONFIG_EFS_FS is not set 1335# CONFIG_EFS_FS is not set
1336# CONFIG_LOGFS is not set
1124# CONFIG_CRAMFS is not set 1337# CONFIG_CRAMFS is not set
1338# CONFIG_SQUASHFS is not set
1125# CONFIG_VXFS_FS is not set 1339# CONFIG_VXFS_FS is not set
1126# CONFIG_MINIX_FS is not set 1340# CONFIG_MINIX_FS is not set
1341# CONFIG_OMFS_FS is not set
1127# CONFIG_HPFS_FS is not set 1342# CONFIG_HPFS_FS is not set
1128# CONFIG_QNX4FS_FS is not set 1343# CONFIG_QNX4FS_FS is not set
1129# CONFIG_ROMFS_FS is not set 1344# CONFIG_ROMFS_FS is not set
@@ -1134,16 +1349,17 @@ CONFIG_NFS_FS=y
1134CONFIG_NFS_V3=y 1349CONFIG_NFS_V3=y
1135# CONFIG_NFS_V3_ACL is not set 1350# CONFIG_NFS_V3_ACL is not set
1136# CONFIG_NFS_V4 is not set 1351# CONFIG_NFS_V4 is not set
1137# CONFIG_NFSD is not set
1138CONFIG_ROOT_NFS=y 1352CONFIG_ROOT_NFS=y
1353# CONFIG_NFSD is not set
1139CONFIG_LOCKD=y 1354CONFIG_LOCKD=y
1140CONFIG_LOCKD_V4=y 1355CONFIG_LOCKD_V4=y
1141CONFIG_NFS_COMMON=y 1356CONFIG_NFS_COMMON=y
1142CONFIG_SUNRPC=y 1357CONFIG_SUNRPC=y
1143# CONFIG_SUNRPC_BIND34 is not set 1358CONFIG_SUNRPC_GSS=m
1144# CONFIG_RPCSEC_GSS_KRB5 is not set 1359CONFIG_RPCSEC_GSS_KRB5=m
1145# CONFIG_RPCSEC_GSS_SPKM3 is not set 1360CONFIG_RPCSEC_GSS_SPKM3=m
1146# CONFIG_SMB_FS is not set 1361# CONFIG_SMB_FS is not set
1362# CONFIG_CEPH_FS is not set
1147# CONFIG_CIFS is not set 1363# CONFIG_CIFS is not set
1148# CONFIG_NCP_FS is not set 1364# CONFIG_NCP_FS is not set
1149# CONFIG_CODA_FS is not set 1365# CONFIG_CODA_FS is not set
@@ -1206,12 +1422,18 @@ CONFIG_ENABLE_WARN_DEPRECATED=y
1206CONFIG_ENABLE_MUST_CHECK=y 1422CONFIG_ENABLE_MUST_CHECK=y
1207CONFIG_FRAME_WARN=2048 1423CONFIG_FRAME_WARN=2048
1208CONFIG_MAGIC_SYSRQ=y 1424CONFIG_MAGIC_SYSRQ=y
1425# CONFIG_STRIP_ASM_SYMS is not set
1209# CONFIG_UNUSED_SYMBOLS is not set 1426# CONFIG_UNUSED_SYMBOLS is not set
1210# CONFIG_DEBUG_FS is not set 1427# CONFIG_DEBUG_FS is not set
1211# CONFIG_HEADERS_CHECK is not set 1428# CONFIG_HEADERS_CHECK is not set
1212CONFIG_DEBUG_KERNEL=y 1429CONFIG_DEBUG_KERNEL=y
1213# CONFIG_DEBUG_SHIRQ is not set 1430# CONFIG_DEBUG_SHIRQ is not set
1214CONFIG_DETECT_SOFTLOCKUP=y 1431CONFIG_DETECT_SOFTLOCKUP=y
1432# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1433CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1434CONFIG_DETECT_HUNG_TASK=y
1435# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
1436CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
1215CONFIG_SCHED_DEBUG=y 1437CONFIG_SCHED_DEBUG=y
1216# CONFIG_SCHEDSTATS is not set 1438# CONFIG_SCHEDSTATS is not set
1217# CONFIG_TIMER_STATS is not set 1439# CONFIG_TIMER_STATS is not set
@@ -1220,24 +1442,54 @@ CONFIG_SCHED_DEBUG=y
1220# CONFIG_DEBUG_RT_MUTEXES is not set 1442# CONFIG_DEBUG_RT_MUTEXES is not set
1221# CONFIG_RT_MUTEX_TESTER is not set 1443# CONFIG_RT_MUTEX_TESTER is not set
1222# CONFIG_DEBUG_SPINLOCK is not set 1444# CONFIG_DEBUG_SPINLOCK is not set
1223CONFIG_DEBUG_MUTEXES=y 1445# CONFIG_DEBUG_MUTEXES is not set
1224# CONFIG_DEBUG_LOCK_ALLOC is not set 1446# CONFIG_DEBUG_LOCK_ALLOC is not set
1225# CONFIG_PROVE_LOCKING is not set 1447# CONFIG_PROVE_LOCKING is not set
1226# CONFIG_LOCK_STAT is not set 1448# CONFIG_LOCK_STAT is not set
1227# CONFIG_DEBUG_SPINLOCK_SLEEP is not set 1449CONFIG_DEBUG_SPINLOCK_SLEEP=y
1228# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set 1450# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1229# CONFIG_DEBUG_KOBJECT is not set 1451# CONFIG_DEBUG_KOBJECT is not set
1230# CONFIG_DEBUG_INFO is not set 1452# CONFIG_DEBUG_INFO is not set
1231# CONFIG_DEBUG_VM is not set 1453# CONFIG_DEBUG_VM is not set
1232# CONFIG_DEBUG_WRITECOUNT is not set 1454# CONFIG_DEBUG_WRITECOUNT is not set
1233# CONFIG_DEBUG_LIST is not set 1455CONFIG_DEBUG_MEMORY_INIT=y
1456CONFIG_DEBUG_LIST=y
1234# CONFIG_DEBUG_SG is not set 1457# CONFIG_DEBUG_SG is not set
1458# CONFIG_DEBUG_NOTIFIERS is not set
1459# CONFIG_DEBUG_CREDENTIALS is not set
1235# CONFIG_BOOT_PRINTK_DELAY is not set 1460# CONFIG_BOOT_PRINTK_DELAY is not set
1236# CONFIG_RCU_TORTURE_TEST is not set 1461# CONFIG_RCU_TORTURE_TEST is not set
1462CONFIG_RCU_CPU_STALL_DETECTOR=y
1237# CONFIG_BACKTRACE_SELF_TEST is not set 1463# CONFIG_BACKTRACE_SELF_TEST is not set
1464# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1465# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
1238# CONFIG_FAULT_INJECTION is not set 1466# CONFIG_FAULT_INJECTION is not set
1467# CONFIG_SYSCTL_SYSCALL_CHECK is not set
1468# CONFIG_PAGE_POISONING is not set
1469CONFIG_HAVE_FUNCTION_TRACER=y
1470CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1471CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y
1472CONFIG_HAVE_DYNAMIC_FTRACE=y
1473CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1474CONFIG_TRACING_SUPPORT=y
1475CONFIG_FTRACE=y
1476# CONFIG_FUNCTION_TRACER is not set
1477# CONFIG_IRQSOFF_TRACER is not set
1478# CONFIG_SCHED_TRACER is not set
1479# CONFIG_ENABLE_DEFAULT_TRACERS is not set
1480# CONFIG_BOOT_TRACER is not set
1481CONFIG_BRANCH_PROFILE_NONE=y
1482# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
1483# CONFIG_PROFILE_ALL_BRANCHES is not set
1484# CONFIG_STACK_TRACER is not set
1485# CONFIG_KMEMTRACE is not set
1486# CONFIG_WORKQUEUE_TRACER is not set
1487# CONFIG_BLK_DEV_IO_TRACE is not set
1239# CONFIG_SAMPLES is not set 1488# CONFIG_SAMPLES is not set
1240CONFIG_CMDLINE="" 1489CONFIG_HAVE_ARCH_KGDB=y
1490# CONFIG_KGDB is not set
1491CONFIG_EARLY_PRINTK=y
1492# CONFIG_CMDLINE_BOOL is not set
1241# CONFIG_DEBUG_STACK_USAGE is not set 1493# CONFIG_DEBUG_STACK_USAGE is not set
1242# CONFIG_SB1XXX_CORELIS is not set 1494# CONFIG_SB1XXX_CORELIS is not set
1243# CONFIG_RUNTIME_DEBUG is not set 1495# CONFIG_RUNTIME_DEBUG is not set
@@ -1247,20 +1499,50 @@ CONFIG_CMDLINE=""
1247# 1499#
1248CONFIG_KEYS=y 1500CONFIG_KEYS=y
1249CONFIG_KEYS_DEBUG_PROC_KEYS=y 1501CONFIG_KEYS_DEBUG_PROC_KEYS=y
1250# CONFIG_SECURITY is not set 1502CONFIG_SECURITY=y
1251# CONFIG_SECURITY_FILE_CAPABILITIES is not set 1503# CONFIG_SECURITYFS is not set
1504CONFIG_SECURITY_NETWORK=y
1505CONFIG_SECURITY_NETWORK_XFRM=y
1506# CONFIG_SECURITY_PATH is not set
1507CONFIG_LSM_MMAP_MIN_ADDR=65536
1508CONFIG_SECURITY_SELINUX=y
1509CONFIG_SECURITY_SELINUX_BOOTPARAM=y
1510CONFIG_SECURITY_SELINUX_BOOTPARAM_VALUE=1
1511CONFIG_SECURITY_SELINUX_DISABLE=y
1512CONFIG_SECURITY_SELINUX_DEVELOP=y
1513CONFIG_SECURITY_SELINUX_AVC_STATS=y
1514CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1
1515# CONFIG_SECURITY_SELINUX_POLICYDB_VERSION_MAX is not set
1516# CONFIG_SECURITY_SMACK is not set
1517# CONFIG_SECURITY_TOMOYO is not set
1518# CONFIG_DEFAULT_SECURITY_SELINUX is not set
1519# CONFIG_DEFAULT_SECURITY_SMACK is not set
1520# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
1521CONFIG_DEFAULT_SECURITY_DAC=y
1522CONFIG_DEFAULT_SECURITY=""
1252CONFIG_CRYPTO=y 1523CONFIG_CRYPTO=y
1253 1524
1254# 1525#
1255# Crypto core or helper 1526# Crypto core or helper
1256# 1527#
1528# CONFIG_CRYPTO_FIPS is not set
1257CONFIG_CRYPTO_ALGAPI=y 1529CONFIG_CRYPTO_ALGAPI=y
1530CONFIG_CRYPTO_ALGAPI2=y
1258CONFIG_CRYPTO_AEAD=m 1531CONFIG_CRYPTO_AEAD=m
1532CONFIG_CRYPTO_AEAD2=y
1259CONFIG_CRYPTO_BLKCIPHER=y 1533CONFIG_CRYPTO_BLKCIPHER=y
1534CONFIG_CRYPTO_BLKCIPHER2=y
1260CONFIG_CRYPTO_HASH=y 1535CONFIG_CRYPTO_HASH=y
1536CONFIG_CRYPTO_HASH2=y
1537CONFIG_CRYPTO_RNG=m
1538CONFIG_CRYPTO_RNG2=y
1539CONFIG_CRYPTO_PCOMP=y
1261CONFIG_CRYPTO_MANAGER=y 1540CONFIG_CRYPTO_MANAGER=y
1541CONFIG_CRYPTO_MANAGER2=y
1262CONFIG_CRYPTO_GF128MUL=m 1542CONFIG_CRYPTO_GF128MUL=m
1263CONFIG_CRYPTO_NULL=y 1543CONFIG_CRYPTO_NULL=y
1544# CONFIG_CRYPTO_PCRYPT is not set
1545CONFIG_CRYPTO_WORKQUEUE=y
1264# CONFIG_CRYPTO_CRYPTD is not set 1546# CONFIG_CRYPTO_CRYPTD is not set
1265CONFIG_CRYPTO_AUTHENC=m 1547CONFIG_CRYPTO_AUTHENC=m
1266# CONFIG_CRYPTO_TEST is not set 1548# CONFIG_CRYPTO_TEST is not set
@@ -1277,7 +1559,7 @@ CONFIG_CRYPTO_SEQIV=m
1277# 1559#
1278CONFIG_CRYPTO_CBC=m 1560CONFIG_CRYPTO_CBC=m
1279CONFIG_CRYPTO_CTR=m 1561CONFIG_CRYPTO_CTR=m
1280# CONFIG_CRYPTO_CTS is not set 1562CONFIG_CRYPTO_CTS=m
1281CONFIG_CRYPTO_ECB=m 1563CONFIG_CRYPTO_ECB=m
1282CONFIG_CRYPTO_LRW=m 1564CONFIG_CRYPTO_LRW=m
1283CONFIG_CRYPTO_PCBC=m 1565CONFIG_CRYPTO_PCBC=m
@@ -1288,14 +1570,20 @@ CONFIG_CRYPTO_XTS=m
1288# 1570#
1289CONFIG_CRYPTO_HMAC=y 1571CONFIG_CRYPTO_HMAC=y
1290CONFIG_CRYPTO_XCBC=m 1572CONFIG_CRYPTO_XCBC=m
1573CONFIG_CRYPTO_VMAC=m
1291 1574
1292# 1575#
1293# Digest 1576# Digest
1294# 1577#
1295# CONFIG_CRYPTO_CRC32C is not set 1578CONFIG_CRYPTO_CRC32C=m
1579CONFIG_CRYPTO_GHASH=m
1296CONFIG_CRYPTO_MD4=m 1580CONFIG_CRYPTO_MD4=m
1297CONFIG_CRYPTO_MD5=y 1581CONFIG_CRYPTO_MD5=y
1298CONFIG_CRYPTO_MICHAEL_MIC=m 1582CONFIG_CRYPTO_MICHAEL_MIC=m
1583CONFIG_CRYPTO_RMD128=m
1584CONFIG_CRYPTO_RMD160=m
1585CONFIG_CRYPTO_RMD256=m
1586CONFIG_CRYPTO_RMD320=m
1299CONFIG_CRYPTO_SHA1=m 1587CONFIG_CRYPTO_SHA1=m
1300CONFIG_CRYPTO_SHA256=m 1588CONFIG_CRYPTO_SHA256=m
1301CONFIG_CRYPTO_SHA512=m 1589CONFIG_CRYPTO_SHA512=m
@@ -1326,25 +1614,36 @@ CONFIG_CRYPTO_TWOFISH_COMMON=m
1326# Compression 1614# Compression
1327# 1615#
1328CONFIG_CRYPTO_DEFLATE=m 1616CONFIG_CRYPTO_DEFLATE=m
1329# CONFIG_CRYPTO_LZO is not set 1617CONFIG_CRYPTO_ZLIB=m
1618CONFIG_CRYPTO_LZO=m
1619
1620#
1621# Random Number Generation
1622#
1623CONFIG_CRYPTO_ANSI_CPRNG=m
1330CONFIG_CRYPTO_HW=y 1624CONFIG_CRYPTO_HW=y
1331# CONFIG_CRYPTO_DEV_HIFN_795X is not set 1625# CONFIG_CRYPTO_DEV_HIFN_795X is not set
1626# CONFIG_BINARY_PRINTF is not set
1332 1627
1333# 1628#
1334# Library routines 1629# Library routines
1335# 1630#
1336CONFIG_BITREVERSE=y 1631CONFIG_BITREVERSE=y
1337# CONFIG_GENERIC_FIND_FIRST_BIT is not set 1632CONFIG_GENERIC_FIND_LAST_BIT=y
1338CONFIG_CRC_CCITT=m 1633CONFIG_CRC_CCITT=m
1339# CONFIG_CRC16 is not set 1634CONFIG_CRC16=y
1635CONFIG_CRC_T10DIF=m
1340CONFIG_CRC_ITU_T=m 1636CONFIG_CRC_ITU_T=m
1341CONFIG_CRC32=y 1637CONFIG_CRC32=y
1342# CONFIG_CRC7 is not set 1638CONFIG_CRC7=m
1343CONFIG_LIBCRC32C=m 1639CONFIG_LIBCRC32C=m
1344CONFIG_AUDIT_GENERIC=y 1640CONFIG_AUDIT_GENERIC=y
1345CONFIG_ZLIB_INFLATE=m 1641CONFIG_ZLIB_INFLATE=y
1346CONFIG_ZLIB_DEFLATE=m 1642CONFIG_ZLIB_DEFLATE=m
1347CONFIG_PLIST=y 1643CONFIG_LZO_COMPRESS=m
1644CONFIG_LZO_DECOMPRESS=m
1645CONFIG_DECOMPRESS_GZIP=y
1348CONFIG_HAS_IOMEM=y 1646CONFIG_HAS_IOMEM=y
1349CONFIG_HAS_IOPORT=y 1647CONFIG_HAS_IOPORT=y
1350CONFIG_HAS_DMA=y 1648CONFIG_HAS_DMA=y
1649CONFIG_NLATTR=y
diff --git a/arch/mips/configs/capcella_defconfig b/arch/mips/configs/capcella_defconfig
index 185df23fd460..72b7e456916e 100644
--- a/arch/mips/configs/capcella_defconfig
+++ b/arch/mips/configs/capcella_defconfig
@@ -9,7 +9,6 @@ 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_BASLER_EXCITE is not set
13# CONFIG_MIPS_COBALT is not set 12# CONFIG_MIPS_COBALT is not set
14# CONFIG_MACH_DECSTATION is not set 13# CONFIG_MACH_DECSTATION is not set
15# CONFIG_MACH_JAZZ is not set 14# CONFIG_MACH_JAZZ is not set
@@ -783,7 +782,9 @@ CONFIG_ENABLE_MUST_CHECK=y
783# CONFIG_HEADERS_CHECK is not set 782# CONFIG_HEADERS_CHECK is not set
784# CONFIG_DEBUG_KERNEL is not set 783# CONFIG_DEBUG_KERNEL is not set
785CONFIG_CROSSCOMPILE=y 784CONFIG_CROSSCOMPILE=y
785CONFIG_CMDLINE_BOOL=y
786CONFIG_CMDLINE="mem=32M console=ttyVR0,38400" 786CONFIG_CMDLINE="mem=32M console=ttyVR0,38400"
787# CONFIG_CMDLINE_OVERRIDE is not set
787 788
788# 789#
789# Security options 790# Security options
diff --git a/arch/mips/configs/cavium-octeon_defconfig b/arch/mips/configs/cavium-octeon_defconfig
index 7afaa28a3768..c8507bc8e925 100644
--- a/arch/mips/configs/cavium-octeon_defconfig
+++ b/arch/mips/configs/cavium-octeon_defconfig
@@ -9,7 +9,6 @@ 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_BASLER_EXCITE is not set
13# CONFIG_BCM47XX is not set 12# CONFIG_BCM47XX is not set
14# CONFIG_MIPS_COBALT is not set 13# CONFIG_MIPS_COBALT is not set
15# CONFIG_MACH_DECSTATION is not set 14# CONFIG_MACH_DECSTATION is not set
@@ -269,7 +268,6 @@ CONFIG_DEFAULT_CFQ=y
269# CONFIG_DEFAULT_NOOP is not set 268# CONFIG_DEFAULT_NOOP is not set
270CONFIG_DEFAULT_IOSCHED="cfq" 269CONFIG_DEFAULT_IOSCHED="cfq"
271CONFIG_CLASSIC_RCU=y 270CONFIG_CLASSIC_RCU=y
272# CONFIG_PROBE_INITRD_HEADER is not set
273# CONFIG_FREEZER is not set 271# CONFIG_FREEZER is not set
274 272
275# 273#
@@ -822,7 +820,7 @@ CONFIG_SYSCTL_SYSCALL_CHECK=y
822# CONFIG_SAMPLES is not set 820# CONFIG_SAMPLES is not set
823CONFIG_HAVE_ARCH_KGDB=y 821CONFIG_HAVE_ARCH_KGDB=y
824# CONFIG_KGDB is not set 822# CONFIG_KGDB is not set
825CONFIG_CMDLINE="" 823# CONFIG_CMDLINE_BOOL is not set
826# CONFIG_DEBUG_STACK_USAGE is not set 824# CONFIG_DEBUG_STACK_USAGE is not set
827# CONFIG_RUNTIME_DEBUG is not set 825# CONFIG_RUNTIME_DEBUG is not set
828 826
diff --git a/arch/mips/configs/cobalt_defconfig b/arch/mips/configs/cobalt_defconfig
index 6c8cca8589ba..49e61312e006 100644
--- a/arch/mips/configs/cobalt_defconfig
+++ b/arch/mips/configs/cobalt_defconfig
@@ -9,7 +9,6 @@ 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_BASLER_EXCITE is not set
13# CONFIG_BCM47XX is not set 12# CONFIG_BCM47XX is not set
14CONFIG_MIPS_COBALT=y 13CONFIG_MIPS_COBALT=y
15# CONFIG_MACH_DECSTATION is not set 14# CONFIG_MACH_DECSTATION is not set
@@ -1126,7 +1125,7 @@ CONFIG_FRAME_WARN=1024
1126# CONFIG_SLUB_STATS is not set 1125# CONFIG_SLUB_STATS is not set
1127# CONFIG_DEBUG_MEMORY_INIT is not set 1126# CONFIG_DEBUG_MEMORY_INIT is not set
1128# CONFIG_SAMPLES is not set 1127# CONFIG_SAMPLES is not set
1129CONFIG_CMDLINE="" 1128# CONFIG_CMDLINE_BOOL is not set
1130 1129
1131# 1130#
1132# Security options 1131# Security options
diff --git a/arch/mips/configs/db1000_defconfig b/arch/mips/configs/db1000_defconfig
index dbdf3bb1a34a..f66d406aadce 100644
--- a/arch/mips/configs/db1000_defconfig
+++ b/arch/mips/configs/db1000_defconfig
@@ -1,79 +1,102 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.20 3# Linux kernel version: 2.6.33
4# Tue Feb 20 21:47:24 2007 4# Fri Feb 26 08:46:14 2010
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
8# 8#
9# Machine selection 9# Machine selection
10# 10#
11CONFIG_ZONE_DMA=y
12CONFIG_MACH_ALCHEMY=y 11CONFIG_MACH_ALCHEMY=y
13# CONFIG_MIPS_MTX1 is not set 12# CONFIG_AR7 is not set
14# CONFIG_MIPS_BOSPORUS is not set 13# CONFIG_BCM47XX is not set
15# CONFIG_MIPS_PB1000 is not set 14# CONFIG_BCM63XX is not set
16# CONFIG_MIPS_PB1100 is not set
17# CONFIG_MIPS_PB1500 is not set
18# CONFIG_MIPS_PB1550 is not set
19# CONFIG_MIPS_PB1200 is not set
20CONFIG_MIPS_DB1000=y
21# CONFIG_MIPS_DB1100 is not set
22# CONFIG_MIPS_DB1500 is not set
23# CONFIG_MIPS_DB1550 is not set
24# CONFIG_MIPS_DB1200 is not set
25# CONFIG_MIPS_MIRAGE is not set
26# CONFIG_BASLER_EXCITE is not set
27# CONFIG_MIPS_COBALT is not set 15# CONFIG_MIPS_COBALT is not set
28# CONFIG_MACH_DECSTATION is not set 16# CONFIG_MACH_DECSTATION is not set
29# CONFIG_MACH_JAZZ is not set 17# CONFIG_MACH_JAZZ is not set
18# CONFIG_LASAT is not set
19# CONFIG_MACH_LOONGSON is not set
30# CONFIG_MIPS_MALTA is not set 20# CONFIG_MIPS_MALTA is not set
31# CONFIG_WR_PPMC is not set
32# CONFIG_MIPS_SIM is not set 21# CONFIG_MIPS_SIM is not set
33# CONFIG_MOMENCO_JAGUAR_ATX is not set 22# CONFIG_NEC_MARKEINS is not set
34# CONFIG_MIPS_XXS1500 is not set 23# CONFIG_MACH_VR41XX is not set
24# CONFIG_NXP_STB220 is not set
25# CONFIG_NXP_STB225 is not set
35# CONFIG_PNX8550_JBS is not set 26# CONFIG_PNX8550_JBS is not set
36# CONFIG_PNX8550_STB810 is not set 27# CONFIG_PNX8550_STB810 is not set
37# CONFIG_MACH_VR41XX is not set 28# CONFIG_PMC_MSP is not set
38# CONFIG_PMC_YOSEMITE is not set 29# CONFIG_PMC_YOSEMITE is not set
39# CONFIG_MARKEINS is not set 30# CONFIG_POWERTV is not set
40# CONFIG_SGI_IP22 is not set 31# CONFIG_SGI_IP22 is not set
41# CONFIG_SGI_IP27 is not set 32# CONFIG_SGI_IP27 is not set
33# CONFIG_SGI_IP28 is not set
42# CONFIG_SGI_IP32 is not set 34# CONFIG_SGI_IP32 is not set
43# CONFIG_SIBYTE_BIGSUR is not set
44# CONFIG_SIBYTE_SWARM is not set
45# CONFIG_SIBYTE_SENTOSA is not set
46# CONFIG_SIBYTE_RHONE is not set
47# CONFIG_SIBYTE_CARMEL is not set
48# CONFIG_SIBYTE_LITTLESUR is not set
49# CONFIG_SIBYTE_CRHINE is not set 35# CONFIG_SIBYTE_CRHINE is not set
36# CONFIG_SIBYTE_CARMEL is not set
50# CONFIG_SIBYTE_CRHONE is not set 37# CONFIG_SIBYTE_CRHONE is not set
38# CONFIG_SIBYTE_RHONE is not set
39# CONFIG_SIBYTE_SWARM is not set
40# CONFIG_SIBYTE_LITTLESUR is not set
41# CONFIG_SIBYTE_SENTOSA is not set
42# CONFIG_SIBYTE_BIGSUR is not set
51# CONFIG_SNI_RM is not set 43# CONFIG_SNI_RM is not set
52# CONFIG_TOSHIBA_JMR3927 is not set 44# CONFIG_MACH_TX39XX is not set
53# CONFIG_TOSHIBA_RBTX4927 is not set 45# CONFIG_MACH_TX49XX is not set
54# CONFIG_TOSHIBA_RBTX4938 is not set 46# CONFIG_MIKROTIK_RB532 is not set
47# CONFIG_WR_PPMC is not set
48# CONFIG_CAVIUM_OCTEON_SIMULATOR is not set
49# CONFIG_CAVIUM_OCTEON_REFERENCE_BOARD is not set
50CONFIG_ALCHEMY_GPIOINT_AU1000=y
51# CONFIG_ALCHEMY_GPIO_INDIRECT is not set
52# CONFIG_MIPS_MTX1 is not set
53# CONFIG_MIPS_BOSPORUS is not set
54CONFIG_MIPS_DB1000=y
55# CONFIG_MIPS_DB1100 is not set
56# CONFIG_MIPS_DB1200 is not set
57# CONFIG_MIPS_DB1500 is not set
58# CONFIG_MIPS_DB1550 is not set
59# CONFIG_MIPS_MIRAGE is not set
60# CONFIG_MIPS_PB1000 is not set
61# CONFIG_MIPS_PB1100 is not set
62# CONFIG_MIPS_PB1200 is not set
63# CONFIG_MIPS_PB1500 is not set
64# CONFIG_MIPS_PB1550 is not set
65# CONFIG_MIPS_XXS1500 is not set
66CONFIG_SOC_AU1000=y
67CONFIG_SOC_AU1X00=y
68CONFIG_LOONGSON_UART_BASE=y
55CONFIG_RWSEM_GENERIC_SPINLOCK=y 69CONFIG_RWSEM_GENERIC_SPINLOCK=y
56# CONFIG_ARCH_HAS_ILOG2_U32 is not set 70# CONFIG_ARCH_HAS_ILOG2_U32 is not set
57# CONFIG_ARCH_HAS_ILOG2_U64 is not set 71# CONFIG_ARCH_HAS_ILOG2_U64 is not set
72CONFIG_ARCH_SUPPORTS_OPROFILE=y
58CONFIG_GENERIC_FIND_NEXT_BIT=y 73CONFIG_GENERIC_FIND_NEXT_BIT=y
59CONFIG_GENERIC_HWEIGHT=y 74CONFIG_GENERIC_HWEIGHT=y
60CONFIG_GENERIC_CALIBRATE_DELAY=y 75CONFIG_GENERIC_CALIBRATE_DELAY=y
76CONFIG_GENERIC_CLOCKEVENTS=y
61CONFIG_GENERIC_TIME=y 77CONFIG_GENERIC_TIME=y
62CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 78CONFIG_GENERIC_CMOS_UPDATE=y
63# CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ is not set 79CONFIG_SCHED_OMIT_FRAME_POINTER=y
80CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
81CONFIG_CEVT_R4K_LIB=y
82CONFIG_CSRC_R4K_LIB=y
64CONFIG_DMA_NONCOHERENT=y 83CONFIG_DMA_NONCOHERENT=y
65CONFIG_DMA_NEED_PCI_MAP_STATE=y 84CONFIG_DMA_NEED_PCI_MAP_STATE=y
85CONFIG_SYS_HAS_EARLY_PRINTK=y
86# CONFIG_NO_IOPORT is not set
87CONFIG_GENERIC_GPIO=y
66# CONFIG_CPU_BIG_ENDIAN is not set 88# CONFIG_CPU_BIG_ENDIAN is not set
67CONFIG_CPU_LITTLE_ENDIAN=y 89CONFIG_CPU_LITTLE_ENDIAN=y
68CONFIG_SYS_SUPPORTS_APM_EMULATION=y 90CONFIG_SYS_SUPPORTS_APM_EMULATION=y
69CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y 91CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y
70CONFIG_SOC_AU1000=y 92CONFIG_IRQ_CPU=y
71CONFIG_SOC_AU1X00=y
72CONFIG_MIPS_L1_CACHE_SHIFT=5 93CONFIG_MIPS_L1_CACHE_SHIFT=5
73 94
74# 95#
75# CPU selection 96# CPU selection
76# 97#
98# CONFIG_CPU_LOONGSON2E is not set
99# CONFIG_CPU_LOONGSON2F is not set
77CONFIG_CPU_MIPS32_R1=y 100CONFIG_CPU_MIPS32_R1=y
78# CONFIG_CPU_MIPS32_R2 is not set 101# CONFIG_CPU_MIPS32_R2 is not set
79# CONFIG_CPU_MIPS64_R1 is not set 102# CONFIG_CPU_MIPS64_R1 is not set
@@ -86,6 +109,7 @@ CONFIG_CPU_MIPS32_R1=y
86# CONFIG_CPU_TX49XX is not set 109# CONFIG_CPU_TX49XX is not set
87# CONFIG_CPU_R5000 is not set 110# CONFIG_CPU_R5000 is not set
88# CONFIG_CPU_R5432 is not set 111# CONFIG_CPU_R5432 is not set
112# CONFIG_CPU_R5500 is not set
89# CONFIG_CPU_R6000 is not set 113# CONFIG_CPU_R6000 is not set
90# CONFIG_CPU_NEVADA is not set 114# CONFIG_CPU_NEVADA is not set
91# CONFIG_CPU_R8000 is not set 115# CONFIG_CPU_R8000 is not set
@@ -93,11 +117,14 @@ CONFIG_CPU_MIPS32_R1=y
93# CONFIG_CPU_RM7000 is not set 117# CONFIG_CPU_RM7000 is not set
94# CONFIG_CPU_RM9000 is not set 118# CONFIG_CPU_RM9000 is not set
95# CONFIG_CPU_SB1 is not set 119# CONFIG_CPU_SB1 is not set
120# CONFIG_CPU_CAVIUM_OCTEON is not set
121CONFIG_SYS_SUPPORTS_ZBOOT=y
96CONFIG_SYS_HAS_CPU_MIPS32_R1=y 122CONFIG_SYS_HAS_CPU_MIPS32_R1=y
97CONFIG_CPU_MIPS32=y 123CONFIG_CPU_MIPS32=y
98CONFIG_CPU_MIPSR1=y 124CONFIG_CPU_MIPSR1=y
99CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y 125CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y
100CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y 126CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y
127CONFIG_HARDWARE_WATCHPOINTS=y
101 128
102# 129#
103# Kernel type 130# Kernel type
@@ -107,184 +134,244 @@ CONFIG_32BIT=y
107CONFIG_PAGE_SIZE_4KB=y 134CONFIG_PAGE_SIZE_4KB=y
108# CONFIG_PAGE_SIZE_8KB is not set 135# CONFIG_PAGE_SIZE_8KB is not set
109# CONFIG_PAGE_SIZE_16KB is not set 136# CONFIG_PAGE_SIZE_16KB is not set
137# CONFIG_PAGE_SIZE_32KB is not set
110# CONFIG_PAGE_SIZE_64KB is not set 138# CONFIG_PAGE_SIZE_64KB is not set
111CONFIG_CPU_HAS_PREFETCH=y 139CONFIG_CPU_HAS_PREFETCH=y
112CONFIG_MIPS_MT_DISABLED=y 140CONFIG_MIPS_MT_DISABLED=y
113# CONFIG_MIPS_MT_SMP is not set 141# CONFIG_MIPS_MT_SMP is not set
114# CONFIG_MIPS_MT_SMTC is not set 142# CONFIG_MIPS_MT_SMTC is not set
115# CONFIG_MIPS_VPE_LOADER is not set
116CONFIG_64BIT_PHYS_ADDR=y 143CONFIG_64BIT_PHYS_ADDR=y
144CONFIG_ARCH_PHYS_ADDR_T_64BIT=y
117CONFIG_CPU_HAS_SYNC=y 145CONFIG_CPU_HAS_SYNC=y
118CONFIG_GENERIC_HARDIRQS=y 146CONFIG_GENERIC_HARDIRQS=y
119CONFIG_GENERIC_IRQ_PROBE=y 147CONFIG_GENERIC_IRQ_PROBE=y
120CONFIG_CPU_SUPPORTS_HIGHMEM=y 148CONFIG_CPU_SUPPORTS_HIGHMEM=y
121CONFIG_ARCH_FLATMEM_ENABLE=y 149CONFIG_ARCH_FLATMEM_ENABLE=y
150CONFIG_ARCH_POPULATES_NODE_MAP=y
122CONFIG_SELECT_MEMORY_MODEL=y 151CONFIG_SELECT_MEMORY_MODEL=y
123CONFIG_FLATMEM_MANUAL=y 152CONFIG_FLATMEM_MANUAL=y
124# CONFIG_DISCONTIGMEM_MANUAL is not set 153# CONFIG_DISCONTIGMEM_MANUAL is not set
125# CONFIG_SPARSEMEM_MANUAL is not set 154# CONFIG_SPARSEMEM_MANUAL is not set
126CONFIG_FLATMEM=y 155CONFIG_FLATMEM=y
127CONFIG_FLAT_NODE_MEM_MAP=y 156CONFIG_FLAT_NODE_MEM_MAP=y
128# CONFIG_SPARSEMEM_STATIC is not set 157CONFIG_PAGEFLAGS_EXTENDED=y
129CONFIG_SPLIT_PTLOCK_CPUS=4 158CONFIG_SPLIT_PTLOCK_CPUS=4
130# CONFIG_RESOURCES_64BIT is not set 159CONFIG_PHYS_ADDR_T_64BIT=y
131CONFIG_ZONE_DMA_FLAG=1 160CONFIG_ZONE_DMA_FLAG=0
161CONFIG_VIRT_TO_BUS=y
162# CONFIG_KSM is not set
163CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
164CONFIG_TICK_ONESHOT=y
165CONFIG_NO_HZ=y
166CONFIG_HIGH_RES_TIMERS=y
167CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
132# CONFIG_HZ_48 is not set 168# CONFIG_HZ_48 is not set
133# CONFIG_HZ_100 is not set 169CONFIG_HZ_100=y
134# CONFIG_HZ_128 is not set 170# CONFIG_HZ_128 is not set
135# CONFIG_HZ_250 is not set 171# CONFIG_HZ_250 is not set
136# CONFIG_HZ_256 is not set 172# CONFIG_HZ_256 is not set
137CONFIG_HZ_1000=y 173# CONFIG_HZ_1000 is not set
138# CONFIG_HZ_1024 is not set 174# CONFIG_HZ_1024 is not set
139CONFIG_SYS_SUPPORTS_ARBIT_HZ=y 175CONFIG_SYS_SUPPORTS_ARBIT_HZ=y
140CONFIG_HZ=1000 176CONFIG_HZ=100
141CONFIG_PREEMPT_NONE=y 177CONFIG_PREEMPT_NONE=y
142# CONFIG_PREEMPT_VOLUNTARY is not set 178# CONFIG_PREEMPT_VOLUNTARY is not set
143# CONFIG_PREEMPT is not set 179# CONFIG_PREEMPT is not set
144# CONFIG_KEXEC is not set 180# CONFIG_KEXEC is not set
181# CONFIG_SECCOMP is not set
145CONFIG_LOCKDEP_SUPPORT=y 182CONFIG_LOCKDEP_SUPPORT=y
146CONFIG_STACKTRACE_SUPPORT=y 183CONFIG_STACKTRACE_SUPPORT=y
147CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 184CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
185CONFIG_CONSTRUCTORS=y
148 186
149# 187#
150# Code maturity level options 188# General setup
151# 189#
152CONFIG_EXPERIMENTAL=y 190CONFIG_EXPERIMENTAL=y
153CONFIG_BROKEN_ON_SMP=y 191CONFIG_BROKEN_ON_SMP=y
154CONFIG_INIT_ENV_ARG_LIMIT=32 192CONFIG_INIT_ENV_ARG_LIMIT=32
155 193CONFIG_LOCALVERSION="-db1000"
156#
157# General setup
158#
159CONFIG_LOCALVERSION=""
160CONFIG_LOCALVERSION_AUTO=y 194CONFIG_LOCALVERSION_AUTO=y
195CONFIG_HAVE_KERNEL_GZIP=y
196CONFIG_HAVE_KERNEL_BZIP2=y
197CONFIG_HAVE_KERNEL_LZMA=y
198CONFIG_HAVE_KERNEL_LZO=y
199# CONFIG_KERNEL_GZIP is not set
200# CONFIG_KERNEL_BZIP2 is not set
201CONFIG_KERNEL_LZMA=y
202# CONFIG_KERNEL_LZO is not set
161CONFIG_SWAP=y 203CONFIG_SWAP=y
162CONFIG_SYSVIPC=y 204CONFIG_SYSVIPC=y
163# CONFIG_IPC_NS is not set
164CONFIG_SYSVIPC_SYSCTL=y 205CONFIG_SYSVIPC_SYSCTL=y
165# CONFIG_POSIX_MQUEUE is not set 206CONFIG_POSIX_MQUEUE=y
207CONFIG_POSIX_MQUEUE_SYSCTL=y
166# CONFIG_BSD_PROCESS_ACCT is not set 208# CONFIG_BSD_PROCESS_ACCT is not set
167# CONFIG_TASKSTATS is not set 209# CONFIG_TASKSTATS is not set
168# CONFIG_UTS_NS is not set
169# CONFIG_AUDIT is not set 210# CONFIG_AUDIT is not set
211
212#
213# RCU Subsystem
214#
215# CONFIG_TREE_RCU is not set
216# CONFIG_TREE_PREEMPT_RCU is not set
217CONFIG_TINY_RCU=y
218# CONFIG_TREE_RCU_TRACE is not set
170# CONFIG_IKCONFIG is not set 219# CONFIG_IKCONFIG is not set
171CONFIG_SYSFS_DEPRECATED=y 220CONFIG_LOG_BUF_SHIFT=14
172CONFIG_RELAY=y 221# CONFIG_GROUP_SCHED is not set
222# CONFIG_CGROUPS is not set
223# CONFIG_SYSFS_DEPRECATED_V2 is not set
224# CONFIG_RELAY is not set
225# CONFIG_NAMESPACES is not set
226# CONFIG_BLK_DEV_INITRD is not set
173# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 227# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
174CONFIG_SYSCTL=y 228CONFIG_SYSCTL=y
229CONFIG_ANON_INODES=y
175CONFIG_EMBEDDED=y 230CONFIG_EMBEDDED=y
176CONFIG_SYSCTL_SYSCALL=y 231CONFIG_SYSCTL_SYSCALL=y
177CONFIG_KALLSYMS=y 232# CONFIG_KALLSYMS is not set
178# CONFIG_KALLSYMS_EXTRA_PASS is not set
179CONFIG_HOTPLUG=y 233CONFIG_HOTPLUG=y
180CONFIG_PRINTK=y 234CONFIG_PRINTK=y
181CONFIG_BUG=y 235CONFIG_BUG=y
182CONFIG_ELF_CORE=y 236CONFIG_ELF_CORE=y
237# CONFIG_PCSPKR_PLATFORM is not set
183CONFIG_BASE_FULL=y 238CONFIG_BASE_FULL=y
184CONFIG_FUTEX=y 239CONFIG_FUTEX=y
185CONFIG_EPOLL=y 240CONFIG_EPOLL=y
241CONFIG_SIGNALFD=y
242CONFIG_TIMERFD=y
243CONFIG_EVENTFD=y
186CONFIG_SHMEM=y 244CONFIG_SHMEM=y
245CONFIG_AIO=y
246
247#
248# Kernel Performance Events And Counters
249#
250# CONFIG_VM_EVENT_COUNTERS is not set
251# CONFIG_COMPAT_BRK is not set
187CONFIG_SLAB=y 252CONFIG_SLAB=y
188CONFIG_VM_EVENT_COUNTERS=y 253# CONFIG_SLUB is not set
189CONFIG_RT_MUTEXES=y
190# CONFIG_TINY_SHMEM is not set
191CONFIG_BASE_SMALL=0
192# CONFIG_SLOB is not set 254# CONFIG_SLOB is not set
255# CONFIG_PROFILING is not set
256CONFIG_HAVE_OPROFILE=y
193 257
194# 258#
195# Loadable module support 259# GCOV-based kernel profiling
196# 260#
261# CONFIG_SLOW_WORK is not set
262CONFIG_HAVE_GENERIC_DMA_COHERENT=y
263CONFIG_SLABINFO=y
264CONFIG_RT_MUTEXES=y
265CONFIG_BASE_SMALL=0
197CONFIG_MODULES=y 266CONFIG_MODULES=y
267# CONFIG_MODULE_FORCE_LOAD is not set
198CONFIG_MODULE_UNLOAD=y 268CONFIG_MODULE_UNLOAD=y
199# CONFIG_MODULE_FORCE_UNLOAD is not set 269# CONFIG_MODULE_FORCE_UNLOAD is not set
200CONFIG_MODVERSIONS=y 270# CONFIG_MODVERSIONS is not set
201CONFIG_MODULE_SRCVERSION_ALL=y 271# CONFIG_MODULE_SRCVERSION_ALL is not set
202CONFIG_KMOD=y
203
204#
205# Block layer
206#
207CONFIG_BLOCK=y 272CONFIG_BLOCK=y
208# CONFIG_LBD is not set 273# CONFIG_LBDAF is not set
209# CONFIG_BLK_DEV_IO_TRACE is not set 274# CONFIG_BLK_DEV_BSG is not set
210# CONFIG_LSF is not set 275# CONFIG_BLK_DEV_INTEGRITY is not set
211 276
212# 277#
213# IO Schedulers 278# IO Schedulers
214# 279#
215CONFIG_IOSCHED_NOOP=y 280CONFIG_IOSCHED_NOOP=y
216CONFIG_IOSCHED_AS=y 281# CONFIG_IOSCHED_DEADLINE is not set
217CONFIG_IOSCHED_DEADLINE=y 282# CONFIG_IOSCHED_CFQ is not set
218CONFIG_IOSCHED_CFQ=y
219CONFIG_DEFAULT_AS=y
220# CONFIG_DEFAULT_DEADLINE is not set 283# CONFIG_DEFAULT_DEADLINE is not set
221# CONFIG_DEFAULT_CFQ is not set 284# CONFIG_DEFAULT_CFQ is not set
222# CONFIG_DEFAULT_NOOP is not set 285CONFIG_DEFAULT_NOOP=y
223CONFIG_DEFAULT_IOSCHED="anticipatory" 286CONFIG_DEFAULT_IOSCHED="noop"
287# CONFIG_INLINE_SPIN_TRYLOCK is not set
288# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
289# CONFIG_INLINE_SPIN_LOCK is not set
290# CONFIG_INLINE_SPIN_LOCK_BH is not set
291# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
292# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
293CONFIG_INLINE_SPIN_UNLOCK=y
294# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
295CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
296# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
297# CONFIG_INLINE_READ_TRYLOCK is not set
298# CONFIG_INLINE_READ_LOCK is not set
299# CONFIG_INLINE_READ_LOCK_BH is not set
300# CONFIG_INLINE_READ_LOCK_IRQ is not set
301# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
302CONFIG_INLINE_READ_UNLOCK=y
303# CONFIG_INLINE_READ_UNLOCK_BH is not set
304CONFIG_INLINE_READ_UNLOCK_IRQ=y
305# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
306# CONFIG_INLINE_WRITE_TRYLOCK is not set
307# CONFIG_INLINE_WRITE_LOCK is not set
308# CONFIG_INLINE_WRITE_LOCK_BH is not set
309# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
310# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
311CONFIG_INLINE_WRITE_UNLOCK=y
312# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
313CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
314# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
315# CONFIG_MUTEX_SPIN_ON_OWNER is not set
316CONFIG_FREEZER=y
224 317
225# 318#
226# Bus options (PCI, PCMCIA, EISA, ISA, TC) 319# Bus options (PCI, PCMCIA, EISA, ISA, TC)
227# 320#
228CONFIG_HW_HAS_PCI=y 321CONFIG_HW_HAS_PCI=y
229# CONFIG_PCI is not set 322# CONFIG_PCI is not set
323# CONFIG_ARCH_SUPPORTS_MSI is not set
230CONFIG_MMU=y 324CONFIG_MMU=y
231 325CONFIG_PCCARD=y
232# 326CONFIG_PCMCIA=y
233# PCCARD (PCMCIA/CardBus) support
234#
235CONFIG_PCCARD=m
236# CONFIG_PCMCIA_DEBUG is not set
237CONFIG_PCMCIA=m
238CONFIG_PCMCIA_LOAD_CIS=y 327CONFIG_PCMCIA_LOAD_CIS=y
239CONFIG_PCMCIA_IOCTL=y 328# CONFIG_PCMCIA_IOCTL is not set
240 329
241# 330#
242# PC-card bridges 331# PC-card bridges
243# 332#
244# CONFIG_PCMCIA_AU1X00 is not set 333# CONFIG_PCMCIA_AU1X00 is not set
245 334CONFIG_PCMCIA_ALCHEMY_DEVBOARD=y
246#
247# PCI Hotplug Support
248#
249 335
250# 336#
251# Executable file formats 337# Executable file formats
252# 338#
253CONFIG_BINFMT_ELF=y 339CONFIG_BINFMT_ELF=y
340# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
341# CONFIG_HAVE_AOUT is not set
254# CONFIG_BINFMT_MISC is not set 342# CONFIG_BINFMT_MISC is not set
255CONFIG_TRAD_SIGNALS=y 343CONFIG_TRAD_SIGNALS=y
256 344
257# 345#
258# Power management options 346# Power management options
259# 347#
260# CONFIG_PM is not set 348CONFIG_ARCH_HIBERNATION_POSSIBLE=y
261 349CONFIG_ARCH_SUSPEND_POSSIBLE=y
262# 350CONFIG_PM=y
263# Networking 351# CONFIG_PM_DEBUG is not set
264# 352CONFIG_PM_SLEEP=y
353CONFIG_SUSPEND=y
354CONFIG_SUSPEND_FREEZER=y
355# CONFIG_HIBERNATION is not set
356# CONFIG_APM_EMULATION is not set
357CONFIG_PM_RUNTIME=y
265CONFIG_NET=y 358CONFIG_NET=y
266 359
267# 360#
268# Networking options 361# Networking options
269# 362#
270# CONFIG_NETDEBUG is not set
271CONFIG_PACKET=y 363CONFIG_PACKET=y
272# CONFIG_PACKET_MMAP is not set 364CONFIG_PACKET_MMAP=y
273CONFIG_UNIX=y 365CONFIG_UNIX=y
274CONFIG_XFRM=y 366# CONFIG_NET_KEY is not set
275CONFIG_XFRM_USER=m
276# CONFIG_XFRM_SUB_POLICY is not set
277CONFIG_XFRM_MIGRATE=y
278CONFIG_NET_KEY=y
279CONFIG_NET_KEY_MIGRATE=y
280CONFIG_INET=y 367CONFIG_INET=y
281CONFIG_IP_MULTICAST=y 368CONFIG_IP_MULTICAST=y
282# CONFIG_IP_ADVANCED_ROUTER is not set 369# CONFIG_IP_ADVANCED_ROUTER is not set
283CONFIG_IP_FIB_HASH=y 370CONFIG_IP_FIB_HASH=y
284CONFIG_IP_PNP=y 371CONFIG_IP_PNP=y
285# CONFIG_IP_PNP_DHCP is not set 372CONFIG_IP_PNP_DHCP=y
286CONFIG_IP_PNP_BOOTP=y 373CONFIG_IP_PNP_BOOTP=y
287# CONFIG_IP_PNP_RARP is not set 374CONFIG_IP_PNP_RARP=y
288# CONFIG_NET_IPIP is not set 375# CONFIG_NET_IPIP is not set
289# CONFIG_NET_IPGRE is not set 376# CONFIG_NET_IPGRE is not set
290# CONFIG_IP_MROUTE is not set 377# CONFIG_IP_MROUTE is not set
@@ -295,110 +382,25 @@ CONFIG_IP_PNP_BOOTP=y
295# CONFIG_INET_IPCOMP is not set 382# CONFIG_INET_IPCOMP is not set
296# CONFIG_INET_XFRM_TUNNEL is not set 383# CONFIG_INET_XFRM_TUNNEL is not set
297# CONFIG_INET_TUNNEL is not set 384# CONFIG_INET_TUNNEL is not set
298CONFIG_INET_XFRM_MODE_TRANSPORT=m 385# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
299CONFIG_INET_XFRM_MODE_TUNNEL=m 386# CONFIG_INET_XFRM_MODE_TUNNEL is not set
300CONFIG_INET_XFRM_MODE_BEET=m 387# CONFIG_INET_XFRM_MODE_BEET is not set
301CONFIG_INET_DIAG=y 388CONFIG_INET_LRO=y
302CONFIG_INET_TCP_DIAG=y 389# CONFIG_INET_DIAG is not set
303# CONFIG_TCP_CONG_ADVANCED is not set 390# CONFIG_TCP_CONG_ADVANCED is not set
304CONFIG_TCP_CONG_CUBIC=y 391CONFIG_TCP_CONG_CUBIC=y
305CONFIG_DEFAULT_TCP_CONG="cubic" 392CONFIG_DEFAULT_TCP_CONG="cubic"
306CONFIG_TCP_MD5SIG=y 393# CONFIG_TCP_MD5SIG is not set
307
308#
309# IP: Virtual Server Configuration
310#
311# CONFIG_IP_VS is not set
312# CONFIG_IPV6 is not set 394# CONFIG_IPV6 is not set
313# CONFIG_INET6_XFRM_TUNNEL is not set 395# CONFIG_NETWORK_SECMARK is not set
314# CONFIG_INET6_TUNNEL is not set 396# CONFIG_NETFILTER is not set
315CONFIG_NETWORK_SECMARK=y
316CONFIG_NETFILTER=y
317# CONFIG_NETFILTER_DEBUG is not set
318
319#
320# Core Netfilter Configuration
321#
322CONFIG_NETFILTER_NETLINK=m
323CONFIG_NETFILTER_NETLINK_QUEUE=m
324CONFIG_NETFILTER_NETLINK_LOG=m
325CONFIG_NF_CONNTRACK_ENABLED=m
326CONFIG_NF_CONNTRACK_SUPPORT=y
327# CONFIG_IP_NF_CONNTRACK_SUPPORT is not set
328CONFIG_NF_CONNTRACK=m
329CONFIG_NF_CT_ACCT=y
330CONFIG_NF_CONNTRACK_MARK=y
331CONFIG_NF_CONNTRACK_SECMARK=y
332CONFIG_NF_CONNTRACK_EVENTS=y
333CONFIG_NF_CT_PROTO_GRE=m
334CONFIG_NF_CT_PROTO_SCTP=m
335CONFIG_NF_CONNTRACK_AMANDA=m
336CONFIG_NF_CONNTRACK_FTP=m
337CONFIG_NF_CONNTRACK_H323=m
338CONFIG_NF_CONNTRACK_IRC=m
339# CONFIG_NF_CONNTRACK_NETBIOS_NS is not set
340CONFIG_NF_CONNTRACK_PPTP=m
341CONFIG_NF_CONNTRACK_SANE=m
342CONFIG_NF_CONNTRACK_SIP=m
343CONFIG_NF_CONNTRACK_TFTP=m
344CONFIG_NF_CT_NETLINK=m
345CONFIG_NETFILTER_XTABLES=m
346CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
347CONFIG_NETFILTER_XT_TARGET_MARK=m
348CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
349CONFIG_NETFILTER_XT_TARGET_NFLOG=m
350CONFIG_NETFILTER_XT_TARGET_SECMARK=m
351CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m
352CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
353CONFIG_NETFILTER_XT_MATCH_COMMENT=m
354CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
355CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
356CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
357CONFIG_NETFILTER_XT_MATCH_DCCP=m
358CONFIG_NETFILTER_XT_MATCH_DSCP=m
359CONFIG_NETFILTER_XT_MATCH_ESP=m
360CONFIG_NETFILTER_XT_MATCH_HELPER=m
361CONFIG_NETFILTER_XT_MATCH_LENGTH=m
362CONFIG_NETFILTER_XT_MATCH_LIMIT=m
363CONFIG_NETFILTER_XT_MATCH_MAC=m
364CONFIG_NETFILTER_XT_MATCH_MARK=m
365CONFIG_NETFILTER_XT_MATCH_POLICY=m
366CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
367CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
368CONFIG_NETFILTER_XT_MATCH_QUOTA=m
369CONFIG_NETFILTER_XT_MATCH_REALM=m
370CONFIG_NETFILTER_XT_MATCH_SCTP=m
371CONFIG_NETFILTER_XT_MATCH_STATE=m
372CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
373CONFIG_NETFILTER_XT_MATCH_STRING=m
374CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
375CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
376
377#
378# IP: Netfilter Configuration
379#
380CONFIG_NF_CONNTRACK_IPV4=m
381CONFIG_NF_CONNTRACK_PROC_COMPAT=y
382# CONFIG_IP_NF_QUEUE is not set
383# CONFIG_IP_NF_IPTABLES is not set
384# CONFIG_IP_NF_ARPTABLES is not set
385
386#
387# DCCP Configuration (EXPERIMENTAL)
388#
389# CONFIG_IP_DCCP is not set 397# CONFIG_IP_DCCP is not set
390
391#
392# SCTP Configuration (EXPERIMENTAL)
393#
394# CONFIG_IP_SCTP is not set 398# CONFIG_IP_SCTP is not set
395 399# CONFIG_RDS is not set
396#
397# TIPC Configuration (EXPERIMENTAL)
398#
399# CONFIG_TIPC is not set 400# CONFIG_TIPC is not set
400# CONFIG_ATM is not set 401# CONFIG_ATM is not set
401# CONFIG_BRIDGE is not set 402# CONFIG_BRIDGE is not set
403# CONFIG_NET_DSA is not set
402# CONFIG_VLAN_8021Q is not set 404# CONFIG_VLAN_8021Q is not set
403# CONFIG_DECNET is not set 405# CONFIG_DECNET is not set
404# CONFIG_LLC2 is not set 406# CONFIG_LLC2 is not set
@@ -408,27 +410,24 @@ CONFIG_NF_CONNTRACK_PROC_COMPAT=y
408# CONFIG_LAPB is not set 410# CONFIG_LAPB is not set
409# CONFIG_ECONET is not set 411# CONFIG_ECONET is not set
410# CONFIG_WAN_ROUTER is not set 412# CONFIG_WAN_ROUTER is not set
411 413# CONFIG_PHONET is not set
412# 414# CONFIG_IEEE802154 is not set
413# QoS and/or fair queueing
414#
415# CONFIG_NET_SCHED is not set 415# CONFIG_NET_SCHED is not set
416CONFIG_NET_CLS_ROUTE=y 416# CONFIG_DCB is not set
417 417
418# 418#
419# Network testing 419# Network testing
420# 420#
421# CONFIG_NET_PKTGEN is not set 421# CONFIG_NET_PKTGEN is not set
422# CONFIG_HAMRADIO is not set 422# CONFIG_HAMRADIO is not set
423# CONFIG_CAN is not set
423# CONFIG_IRDA is not set 424# CONFIG_IRDA is not set
424# CONFIG_BT is not set 425# CONFIG_BT is not set
425CONFIG_IEEE80211=m 426# CONFIG_AF_RXRPC is not set
426# CONFIG_IEEE80211_DEBUG is not set 427# CONFIG_WIRELESS is not set
427CONFIG_IEEE80211_CRYPT_WEP=m 428# CONFIG_WIMAX is not set
428CONFIG_IEEE80211_CRYPT_CCMP=m 429# CONFIG_RFKILL is not set
429CONFIG_IEEE80211_SOFTMAC=m 430# CONFIG_NET_9P is not set
430# CONFIG_IEEE80211_SOFTMAC_DEBUG is not set
431CONFIG_WIRELESS_EXT=y
432 431
433# 432#
434# Device Drivers 433# Device Drivers
@@ -437,25 +436,25 @@ CONFIG_WIRELESS_EXT=y
437# 436#
438# Generic Driver Options 437# Generic Driver Options
439# 438#
439CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
440# CONFIG_DEVTMPFS is not set
440CONFIG_STANDALONE=y 441CONFIG_STANDALONE=y
441CONFIG_PREVENT_FIRMWARE_BUILD=y 442CONFIG_PREVENT_FIRMWARE_BUILD=y
442CONFIG_FW_LOADER=m 443CONFIG_FW_LOADER=y
444CONFIG_FIRMWARE_IN_KERNEL=y
445CONFIG_EXTRA_FIRMWARE=""
446# CONFIG_DEBUG_DRIVER is not set
447# CONFIG_DEBUG_DEVRES is not set
443# CONFIG_SYS_HYPERVISOR is not set 448# CONFIG_SYS_HYPERVISOR is not set
444 449# CONFIG_CONNECTOR is not set
445#
446# Connector - unified userspace <-> kernelspace linker
447#
448CONFIG_CONNECTOR=m
449
450#
451# Memory Technology Devices (MTD)
452#
453CONFIG_MTD=y 450CONFIG_MTD=y
454# CONFIG_MTD_DEBUG is not set 451# CONFIG_MTD_DEBUG is not set
452# CONFIG_MTD_TESTS is not set
455# CONFIG_MTD_CONCAT is not set 453# CONFIG_MTD_CONCAT is not set
456CONFIG_MTD_PARTITIONS=y 454CONFIG_MTD_PARTITIONS=y
457# CONFIG_MTD_REDBOOT_PARTS is not set 455# CONFIG_MTD_REDBOOT_PARTS is not set
458# CONFIG_MTD_CMDLINE_PARTS is not set 456CONFIG_MTD_CMDLINE_PARTS=y
457# CONFIG_MTD_AR7_PARTS is not set
459 458
460# 459#
461# User Modules And Translation Layers 460# User Modules And Translation Layers
@@ -468,6 +467,7 @@ CONFIG_MTD_BLOCK=y
468# CONFIG_INFTL is not set 467# CONFIG_INFTL is not set
469# CONFIG_RFD_FTL is not set 468# CONFIG_RFD_FTL is not set
470# CONFIG_SSFDC is not set 469# CONFIG_SSFDC is not set
470# CONFIG_MTD_OOPS is not set
471 471
472# 472#
473# RAM/ROM/Flash chip drivers 473# RAM/ROM/Flash chip drivers
@@ -493,14 +493,13 @@ CONFIG_MTD_CFI_UTIL=y
493# CONFIG_MTD_RAM is not set 493# CONFIG_MTD_RAM is not set
494# CONFIG_MTD_ROM is not set 494# CONFIG_MTD_ROM is not set
495# CONFIG_MTD_ABSENT is not set 495# CONFIG_MTD_ABSENT is not set
496# CONFIG_MTD_OBSOLETE_CHIPS is not set
497 496
498# 497#
499# Mapping drivers for chip access 498# Mapping drivers for chip access
500# 499#
501# CONFIG_MTD_COMPLEX_MAPPINGS is not set 500# CONFIG_MTD_COMPLEX_MAPPINGS is not set
502# CONFIG_MTD_PHYSMAP is not set 501CONFIG_MTD_PHYSMAP=y
503CONFIG_MTD_ALCHEMY=y 502# CONFIG_MTD_PHYSMAP_COMPAT is not set
504# CONFIG_MTD_PLATRAM is not set 503# CONFIG_MTD_PLATRAM is not set
505 504
506# 505#
@@ -517,174 +516,115 @@ CONFIG_MTD_ALCHEMY=y
517# CONFIG_MTD_DOC2000 is not set 516# CONFIG_MTD_DOC2000 is not set
518# CONFIG_MTD_DOC2001 is not set 517# CONFIG_MTD_DOC2001 is not set
519# CONFIG_MTD_DOC2001PLUS is not set 518# CONFIG_MTD_DOC2001PLUS is not set
520
521#
522# NAND Flash Device Drivers
523#
524# CONFIG_MTD_NAND is not set 519# CONFIG_MTD_NAND is not set
525
526#
527# OneNAND Flash Device Drivers
528#
529# CONFIG_MTD_ONENAND is not set 520# CONFIG_MTD_ONENAND is not set
530 521
531# 522#
532# Parallel port support 523# LPDDR flash memory drivers
533# 524#
534# CONFIG_PARPORT is not set 525# CONFIG_MTD_LPDDR is not set
535 526
536# 527#
537# Plug and Play support 528# UBI - Unsorted block images
538# 529#
539# CONFIG_PNPACPI is not set 530# CONFIG_MTD_UBI is not set
531# CONFIG_PARPORT is not set
532CONFIG_BLK_DEV=y
533# CONFIG_BLK_DEV_COW_COMMON is not set
534# CONFIG_BLK_DEV_LOOP is not set
540 535
541# 536#
542# Block devices 537# DRBD disabled because PROC_FS, INET or CONNECTOR not selected
543# 538#
544# CONFIG_BLK_DEV_COW_COMMON is not set
545CONFIG_BLK_DEV_LOOP=y
546# CONFIG_BLK_DEV_CRYPTOLOOP is not set
547# CONFIG_BLK_DEV_NBD is not set 539# CONFIG_BLK_DEV_NBD is not set
540# CONFIG_BLK_DEV_UB is not set
548# CONFIG_BLK_DEV_RAM is not set 541# CONFIG_BLK_DEV_RAM is not set
549# CONFIG_BLK_DEV_INITRD is not set 542# CONFIG_CDROM_PKTCDVD is not set
550CONFIG_CDROM_PKTCDVD=m 543# CONFIG_ATA_OVER_ETH is not set
551CONFIG_CDROM_PKTCDVD_BUFFERS=8 544# CONFIG_BLK_DEV_HD is not set
552# CONFIG_CDROM_PKTCDVD_WCACHE is not set 545# CONFIG_MISC_DEVICES is not set
553CONFIG_ATA_OVER_ETH=m 546CONFIG_HAVE_IDE=y
554
555#
556# Misc devices
557#
558
559#
560# ATA/ATAPI/MFM/RLL support
561#
562# CONFIG_IDE is not set 547# CONFIG_IDE is not set
563 548
564# 549#
565# SCSI device support 550# SCSI device support
566# 551#
567CONFIG_RAID_ATTRS=m 552# CONFIG_RAID_ATTRS is not set
568# CONFIG_SCSI is not set 553# CONFIG_SCSI is not set
554# CONFIG_SCSI_DMA is not set
569# CONFIG_SCSI_NETLINK is not set 555# CONFIG_SCSI_NETLINK is not set
570
571#
572# Serial ATA (prod) and Parallel ATA (experimental) drivers
573#
574# CONFIG_ATA is not set 556# CONFIG_ATA is not set
575
576#
577# Multi-device support (RAID and LVM)
578#
579# CONFIG_MD is not set 557# CONFIG_MD is not set
580
581#
582# Fusion MPT device support
583#
584# CONFIG_FUSION is not set
585
586#
587# IEEE 1394 (FireWire) support
588#
589
590#
591# I2O device support
592#
593
594#
595# Network device support
596#
597CONFIG_NETDEVICES=y 558CONFIG_NETDEVICES=y
598# CONFIG_DUMMY is not set 559# CONFIG_DUMMY is not set
599# CONFIG_BONDING is not set 560# CONFIG_BONDING is not set
561# CONFIG_MACVLAN is not set
600# CONFIG_EQUALIZER is not set 562# CONFIG_EQUALIZER is not set
601# CONFIG_TUN is not set 563# CONFIG_TUN is not set
602 564# CONFIG_VETH is not set
603#
604# PHY device support
605#
606CONFIG_PHYLIB=y 565CONFIG_PHYLIB=y
607 566
608# 567#
609# MII PHY device drivers 568# MII PHY device drivers
610# 569#
611CONFIG_MARVELL_PHY=m 570CONFIG_MARVELL_PHY=y
612CONFIG_DAVICOM_PHY=m 571CONFIG_DAVICOM_PHY=y
613CONFIG_QSEMI_PHY=m 572CONFIG_QSEMI_PHY=y
614CONFIG_LXT_PHY=m 573CONFIG_LXT_PHY=y
615CONFIG_CICADA_PHY=m 574CONFIG_CICADA_PHY=y
616CONFIG_VITESSE_PHY=m 575CONFIG_VITESSE_PHY=y
617CONFIG_SMSC_PHY=m 576CONFIG_SMSC_PHY=y
618# CONFIG_BROADCOM_PHY is not set 577CONFIG_BROADCOM_PHY=y
578CONFIG_ICPLUS_PHY=y
579CONFIG_REALTEK_PHY=y
580CONFIG_NATIONAL_PHY=y
581CONFIG_STE10XP=y
582CONFIG_LSI_ET1011C_PHY=y
619# CONFIG_FIXED_PHY is not set 583# CONFIG_FIXED_PHY is not set
620 584# CONFIG_MDIO_BITBANG is not set
621#
622# Ethernet (10 or 100Mbit)
623#
624CONFIG_NET_ETHERNET=y 585CONFIG_NET_ETHERNET=y
625CONFIG_MII=m 586CONFIG_MII=y
587# CONFIG_AX88796 is not set
626CONFIG_MIPS_AU1X00_ENET=y 588CONFIG_MIPS_AU1X00_ENET=y
627# CONFIG_SMC91X is not set 589# CONFIG_SMC91X is not set
628# CONFIG_DM9000 is not set 590# CONFIG_DM9000 is not set
629 591# CONFIG_ETHOC is not set
630# 592# CONFIG_SMSC911X is not set
631# Ethernet (1000 Mbit) 593# CONFIG_DNET is not set
632# 594# CONFIG_IBM_NEW_EMAC_ZMII is not set
633 595# CONFIG_IBM_NEW_EMAC_RGMII is not set
634# 596# CONFIG_IBM_NEW_EMAC_TAH is not set
635# Ethernet (10000 Mbit) 597# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
636# 598# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
637 599# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
638# 600# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
639# Token Ring devices 601# CONFIG_B44 is not set
640# 602# CONFIG_KS8842 is not set
641 603# CONFIG_KS8851_MLL is not set
642# 604# CONFIG_NETDEV_1000 is not set
643# Wireless LAN (non-hamradio) 605# CONFIG_NETDEV_10000 is not set
644# 606# CONFIG_WLAN is not set
645# CONFIG_NET_RADIO is not set 607
646 608#
647# 609# Enable WiMAX (Networking options) to see the WiMAX drivers
648# PCMCIA network device support 610#
649# 611
650CONFIG_NET_PCMCIA=y 612#
651CONFIG_PCMCIA_3C589=m 613# USB Network Adapters
652CONFIG_PCMCIA_3C574=m 614#
653CONFIG_PCMCIA_FMVJ18X=m 615# CONFIG_USB_CATC is not set
654CONFIG_PCMCIA_PCNET=m 616# CONFIG_USB_KAWETH is not set
655CONFIG_PCMCIA_NMCLAN=m 617# CONFIG_USB_PEGASUS is not set
656CONFIG_PCMCIA_SMC91C92=m 618# CONFIG_USB_RTL8150 is not set
657CONFIG_PCMCIA_XIRC2PS=m 619# CONFIG_USB_USBNET is not set
658CONFIG_PCMCIA_AXNET=m 620# CONFIG_NET_PCMCIA is not set
659
660#
661# Wan interfaces
662#
663# CONFIG_WAN is not set 621# CONFIG_WAN is not set
664CONFIG_PPP=m 622# CONFIG_PPP is not set
665CONFIG_PPP_MULTILINK=y
666# CONFIG_PPP_FILTER is not set
667CONFIG_PPP_ASYNC=m
668# CONFIG_PPP_SYNC_TTY is not set
669CONFIG_PPP_DEFLATE=m
670# CONFIG_PPP_BSDCOMP is not set
671CONFIG_PPP_MPPE=m
672CONFIG_PPPOE=m
673# CONFIG_SLIP is not set 623# CONFIG_SLIP is not set
674CONFIG_SLHC=m
675# CONFIG_SHAPER is not set
676# CONFIG_NETCONSOLE is not set 624# CONFIG_NETCONSOLE is not set
677# CONFIG_NETPOLL is not set 625# CONFIG_NETPOLL is not set
678# CONFIG_NET_POLL_CONTROLLER is not set 626# CONFIG_NET_POLL_CONTROLLER is not set
679
680#
681# ISDN subsystem
682#
683# CONFIG_ISDN is not set 627# CONFIG_ISDN is not set
684
685#
686# Telephony Support
687#
688# CONFIG_PHONE is not set 628# CONFIG_PHONE is not set
689 629
690# 630#
@@ -692,16 +632,14 @@ CONFIG_SLHC=m
692# 632#
693CONFIG_INPUT=y 633CONFIG_INPUT=y
694# CONFIG_INPUT_FF_MEMLESS is not set 634# CONFIG_INPUT_FF_MEMLESS is not set
635# CONFIG_INPUT_POLLDEV is not set
636# CONFIG_INPUT_SPARSEKMAP is not set
695 637
696# 638#
697# Userland interfaces 639# Userland interfaces
698# 640#
699CONFIG_INPUT_MOUSEDEV=y 641# CONFIG_INPUT_MOUSEDEV is not set
700CONFIG_INPUT_MOUSEDEV_PSAUX=y
701CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
702CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
703# CONFIG_INPUT_JOYDEV is not set 642# CONFIG_INPUT_JOYDEV is not set
704# CONFIG_INPUT_TSDEV is not set
705CONFIG_INPUT_EVDEV=y 643CONFIG_INPUT_EVDEV=y
706# CONFIG_INPUT_EVBUG is not set 644# CONFIG_INPUT_EVBUG is not set
707 645
@@ -711,35 +649,33 @@ CONFIG_INPUT_EVDEV=y
711# CONFIG_INPUT_KEYBOARD is not set 649# CONFIG_INPUT_KEYBOARD is not set
712# CONFIG_INPUT_MOUSE is not set 650# CONFIG_INPUT_MOUSE is not set
713# CONFIG_INPUT_JOYSTICK is not set 651# CONFIG_INPUT_JOYSTICK is not set
652# CONFIG_INPUT_TABLET is not set
714# CONFIG_INPUT_TOUCHSCREEN is not set 653# CONFIG_INPUT_TOUCHSCREEN is not set
715# CONFIG_INPUT_MISC is not set 654# CONFIG_INPUT_MISC is not set
716 655
717# 656#
718# Hardware I/O ports 657# Hardware I/O ports
719# 658#
720CONFIG_SERIO=y 659# CONFIG_SERIO is not set
721# CONFIG_SERIO_I8042 is not set
722CONFIG_SERIO_SERPORT=y
723# CONFIG_SERIO_LIBPS2 is not set
724CONFIG_SERIO_RAW=m
725# CONFIG_GAMEPORT is not set 660# CONFIG_GAMEPORT is not set
726 661
727# 662#
728# Character devices 663# Character devices
729# 664#
730CONFIG_VT=y 665CONFIG_VT=y
666CONFIG_CONSOLE_TRANSLATIONS=y
731CONFIG_VT_CONSOLE=y 667CONFIG_VT_CONSOLE=y
732CONFIG_HW_CONSOLE=y 668CONFIG_HW_CONSOLE=y
733CONFIG_VT_HW_CONSOLE_BINDING=y 669# CONFIG_VT_HW_CONSOLE_BINDING is not set
670CONFIG_DEVKMEM=y
734# CONFIG_SERIAL_NONSTANDARD is not set 671# CONFIG_SERIAL_NONSTANDARD is not set
735# CONFIG_AU1X00_GPIO is not set
736 672
737# 673#
738# Serial drivers 674# Serial drivers
739# 675#
740CONFIG_SERIAL_8250=y 676CONFIG_SERIAL_8250=y
741CONFIG_SERIAL_8250_CONSOLE=y 677CONFIG_SERIAL_8250_CONSOLE=y
742CONFIG_SERIAL_8250_CS=m 678# CONFIG_SERIAL_8250_CS is not set
743CONFIG_SERIAL_8250_NR_UARTS=4 679CONFIG_SERIAL_8250_NR_UARTS=4
744CONFIG_SERIAL_8250_RUNTIME_UARTS=4 680CONFIG_SERIAL_8250_RUNTIME_UARTS=4
745# CONFIG_SERIAL_8250_EXTENDED is not set 681# CONFIG_SERIAL_8250_EXTENDED is not set
@@ -751,198 +687,291 @@ CONFIG_SERIAL_8250_AU1X00=y
751CONFIG_SERIAL_CORE=y 687CONFIG_SERIAL_CORE=y
752CONFIG_SERIAL_CORE_CONSOLE=y 688CONFIG_SERIAL_CORE_CONSOLE=y
753CONFIG_UNIX98_PTYS=y 689CONFIG_UNIX98_PTYS=y
754CONFIG_LEGACY_PTYS=y 690# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
755CONFIG_LEGACY_PTY_COUNT=256 691# CONFIG_LEGACY_PTYS is not set
756
757#
758# IPMI
759#
760# CONFIG_IPMI_HANDLER is not set 692# CONFIG_IPMI_HANDLER is not set
761
762#
763# Watchdog Cards
764#
765# CONFIG_WATCHDOG is not set
766# CONFIG_HW_RANDOM is not set 693# CONFIG_HW_RANDOM is not set
767# CONFIG_RTC is not set
768# CONFIG_GEN_RTC is not set
769# CONFIG_DTLK is not set
770# CONFIG_R3964 is not set 694# CONFIG_R3964 is not set
771 695
772# 696#
773# PCMCIA character devices 697# PCMCIA character devices
774# 698#
775CONFIG_SYNCLINK_CS=m 699# CONFIG_SYNCLINK_CS is not set
776# CONFIG_CARDMAN_4000 is not set 700# CONFIG_CARDMAN_4000 is not set
777# CONFIG_CARDMAN_4040 is not set 701# CONFIG_CARDMAN_4040 is not set
702# CONFIG_IPWIRELESS is not set
778# CONFIG_RAW_DRIVER is not set 703# CONFIG_RAW_DRIVER is not set
779
780#
781# TPM devices
782#
783# CONFIG_TCG_TPM is not set 704# CONFIG_TCG_TPM is not set
784
785#
786# I2C support
787#
788# CONFIG_I2C is not set 705# CONFIG_I2C is not set
789
790#
791# SPI support
792#
793# CONFIG_SPI is not set 706# CONFIG_SPI is not set
794# CONFIG_SPI_MASTER is not set
795 707
796# 708#
797# Dallas's 1-wire bus 709# PPS support
798# 710#
711# CONFIG_PPS is not set
712CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
713# CONFIG_GPIOLIB is not set
799# CONFIG_W1 is not set 714# CONFIG_W1 is not set
800 715# CONFIG_POWER_SUPPLY is not set
801#
802# Hardware Monitoring support
803#
804# CONFIG_HWMON is not set 716# CONFIG_HWMON is not set
805# CONFIG_HWMON_VID is not set 717# CONFIG_THERMAL is not set
718# CONFIG_WATCHDOG is not set
719CONFIG_SSB_POSSIBLE=y
806 720
807# 721#
808# Multimedia devices 722# Sonics Silicon Backplane
809# 723#
810# CONFIG_VIDEO_DEV is not set 724# CONFIG_SSB is not set
811 725
812# 726#
813# Digital Video Broadcasting Devices 727# Multifunction device drivers
814# 728#
815# CONFIG_DVB is not set 729# CONFIG_MFD_CORE is not set
730# CONFIG_MFD_SM501 is not set
731# CONFIG_HTC_PASIC3 is not set
732# CONFIG_MFD_TMIO is not set
733# CONFIG_REGULATOR is not set
734# CONFIG_MEDIA_SUPPORT is not set
816 735
817# 736#
818# Graphics support 737# Graphics support
819# 738#
820# CONFIG_FIRMWARE_EDID is not set 739# CONFIG_VGASTATE is not set
740# CONFIG_VIDEO_OUTPUT_CONTROL is not set
821# CONFIG_FB is not set 741# CONFIG_FB is not set
822
823#
824# Console display driver support
825#
826# CONFIG_VGA_CONSOLE is not set
827CONFIG_DUMMY_CONSOLE=y
828# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 742# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
829 743
830# 744#
831# Sound 745# Display device support
832# 746#
833# CONFIG_SOUND is not set 747# CONFIG_DISPLAY_SUPPORT is not set
834 748
835# 749#
836# HID Devices 750# Console display driver support
837#
838# CONFIG_HID is not set
839
840#
841# USB support
842# 751#
752# CONFIG_VGA_CONSOLE is not set
753CONFIG_DUMMY_CONSOLE=y
754# CONFIG_SOUND is not set
755CONFIG_HID_SUPPORT=y
756CONFIG_HID=y
757# CONFIG_HIDRAW is not set
758
759#
760# USB Input Devices
761#
762CONFIG_USB_HID=y
763# CONFIG_HID_PID is not set
764# CONFIG_USB_HIDDEV is not set
765
766#
767# Special HID drivers
768#
769# CONFIG_HID_A4TECH is not set
770# CONFIG_HID_APPLE is not set
771# CONFIG_HID_BELKIN is not set
772# CONFIG_HID_CHERRY is not set
773# CONFIG_HID_CHICONY is not set
774# CONFIG_HID_CYPRESS is not set
775# CONFIG_HID_DRAGONRISE is not set
776# CONFIG_HID_EZKEY is not set
777# CONFIG_HID_KYE is not set
778# CONFIG_HID_GYRATION is not set
779# CONFIG_HID_TWINHAN is not set
780# CONFIG_HID_KENSINGTON is not set
781# CONFIG_HID_LOGITECH is not set
782# CONFIG_HID_MICROSOFT is not set
783# CONFIG_HID_MONTEREY is not set
784# CONFIG_HID_NTRIG is not set
785# CONFIG_HID_PANTHERLORD is not set
786# CONFIG_HID_PETALYNX is not set
787# CONFIG_HID_SAMSUNG is not set
788# CONFIG_HID_SONY is not set
789# CONFIG_HID_SUNPLUS is not set
790# CONFIG_HID_GREENASIA is not set
791# CONFIG_HID_SMARTJOYPLUS is not set
792# CONFIG_HID_TOPSEED is not set
793# CONFIG_HID_THRUSTMASTER is not set
794# CONFIG_HID_ZEROPLUS is not set
795CONFIG_USB_SUPPORT=y
843CONFIG_USB_ARCH_HAS_HCD=y 796CONFIG_USB_ARCH_HAS_HCD=y
844CONFIG_USB_ARCH_HAS_OHCI=y 797CONFIG_USB_ARCH_HAS_OHCI=y
845# CONFIG_USB_ARCH_HAS_EHCI is not set 798# CONFIG_USB_ARCH_HAS_EHCI is not set
846# CONFIG_USB is not set 799CONFIG_USB=y
800# CONFIG_USB_DEBUG is not set
801# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
847 802
848# 803#
849# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 804# Miscellaneous USB options
850# 805#
806# CONFIG_USB_DEVICEFS is not set
807# CONFIG_USB_DEVICE_CLASS is not set
808CONFIG_USB_DYNAMIC_MINORS=y
809CONFIG_USB_SUSPEND=y
810# CONFIG_USB_OTG is not set
811# CONFIG_USB_OTG_WHITELIST is not set
812# CONFIG_USB_OTG_BLACKLIST_HUB is not set
813# CONFIG_USB_MON is not set
814# CONFIG_USB_WUSB is not set
815# CONFIG_USB_WUSB_CBAF is not set
851 816
852# 817#
853# USB Gadget Support 818# USB Host Controller Drivers
854# 819#
855# CONFIG_USB_GADGET is not set 820# CONFIG_USB_C67X00_HCD is not set
821# CONFIG_USB_OXU210HP_HCD is not set
822# CONFIG_USB_ISP116X_HCD is not set
823# CONFIG_USB_ISP1760_HCD is not set
824# CONFIG_USB_ISP1362_HCD is not set
825CONFIG_USB_OHCI_HCD=y
826# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
827# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
828CONFIG_USB_OHCI_LITTLE_ENDIAN=y
829# CONFIG_USB_SL811_HCD is not set
830# CONFIG_USB_R8A66597_HCD is not set
831# CONFIG_USB_HWA_HCD is not set
856 832
857# 833#
858# MMC/SD Card support 834# USB Device Class drivers
859# 835#
860# CONFIG_MMC is not set 836# CONFIG_USB_ACM is not set
837# CONFIG_USB_PRINTER is not set
838# CONFIG_USB_WDM is not set
839# CONFIG_USB_TMC is not set
861 840
862# 841#
863# LED devices 842# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
864# 843#
865# CONFIG_NEW_LEDS is not set
866 844
867# 845#
868# LED drivers 846# also be needed; see USB_STORAGE Help for more info
869# 847#
848# CONFIG_USB_LIBUSUAL is not set
870 849
871# 850#
872# LED Triggers 851# USB Imaging devices
873# 852#
853# CONFIG_USB_MDC800 is not set
874 854
875# 855#
876# InfiniBand support 856# USB port drivers
877# 857#
858# CONFIG_USB_SERIAL is not set
878 859
879# 860#
880# EDAC - error detection and reporting (RAS) (EXPERIMENTAL) 861# USB Miscellaneous drivers
881# 862#
863# CONFIG_USB_EMI62 is not set
864# CONFIG_USB_EMI26 is not set
865# CONFIG_USB_ADUTUX is not set
866# CONFIG_USB_SEVSEG is not set
867# CONFIG_USB_RIO500 is not set
868# CONFIG_USB_LEGOTOWER is not set
869# CONFIG_USB_LCD is not set
870# CONFIG_USB_BERRY_CHARGE is not set
871# CONFIG_USB_LED is not set
872# CONFIG_USB_CYPRESS_CY7C63 is not set
873# CONFIG_USB_CYTHERM is not set
874# CONFIG_USB_IDMOUSE is not set
875# CONFIG_USB_FTDI_ELAN is not set
876# CONFIG_USB_APPLEDISPLAY is not set
877# CONFIG_USB_LD is not set
878# CONFIG_USB_TRANCEVIBRATOR is not set
879# CONFIG_USB_IOWARRIOR is not set
880# CONFIG_USB_TEST is not set
881# CONFIG_USB_ISIGHTFW is not set
882# CONFIG_USB_VST is not set
883# CONFIG_USB_GADGET is not set
882 884
883# 885#
884# Real Time Clock 886# OTG and related infrastructure
885# 887#
886# CONFIG_RTC_CLASS is not set 888# CONFIG_USB_GPIO_VBUS is not set
889# CONFIG_NOP_USB_XCEIV is not set
890# CONFIG_MMC is not set
891# CONFIG_MEMSTICK is not set
892# CONFIG_NEW_LEDS is not set
893# CONFIG_ACCESSIBILITY is not set
894CONFIG_RTC_LIB=y
895CONFIG_RTC_CLASS=y
896CONFIG_RTC_HCTOSYS=y
897CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
898# CONFIG_RTC_DEBUG is not set
887 899
888# 900#
889# DMA Engine support 901# RTC interfaces
890# 902#
891# CONFIG_DMA_ENGINE is not set 903CONFIG_RTC_INTF_SYSFS=y
904CONFIG_RTC_INTF_PROC=y
905CONFIG_RTC_INTF_DEV=y
906# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
907# CONFIG_RTC_DRV_TEST is not set
892 908
893# 909#
894# DMA Clients 910# SPI RTC drivers
895# 911#
896 912
897# 913#
898# DMA Devices 914# Platform RTC drivers
899# 915#
916# CONFIG_RTC_DRV_CMOS is not set
917# CONFIG_RTC_DRV_DS1286 is not set
918# CONFIG_RTC_DRV_DS1511 is not set
919# CONFIG_RTC_DRV_DS1553 is not set
920# CONFIG_RTC_DRV_DS1742 is not set
921# CONFIG_RTC_DRV_STK17TA8 is not set
922# CONFIG_RTC_DRV_M48T86 is not set
923# CONFIG_RTC_DRV_M48T35 is not set
924# CONFIG_RTC_DRV_M48T59 is not set
925# CONFIG_RTC_DRV_MSM6242 is not set
926# CONFIG_RTC_DRV_BQ4802 is not set
927# CONFIG_RTC_DRV_RP5C01 is not set
928# CONFIG_RTC_DRV_V3020 is not set
900 929
901# 930#
902# Auxiliary Display support 931# on-CPU RTC drivers
903# 932#
933CONFIG_RTC_DRV_AU1XXX=y
934# CONFIG_DMADEVICES is not set
935# CONFIG_AUXDISPLAY is not set
936# CONFIG_UIO is not set
904 937
905# 938#
906# Virtualization 939# TI VLYNQ
907# 940#
941# CONFIG_STAGING is not set
908 942
909# 943#
910# File systems 944# File systems
911# 945#
912CONFIG_EXT2_FS=y 946CONFIG_EXT2_FS=y
913CONFIG_EXT2_FS_XATTR=y 947# CONFIG_EXT2_FS_XATTR is not set
914CONFIG_EXT2_FS_POSIX_ACL=y
915# CONFIG_EXT2_FS_SECURITY is not set
916# CONFIG_EXT2_FS_XIP is not set 948# CONFIG_EXT2_FS_XIP is not set
917CONFIG_EXT3_FS=y 949CONFIG_EXT3_FS=y
918CONFIG_EXT3_FS_XATTR=y 950# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
919CONFIG_EXT3_FS_POSIX_ACL=y 951# CONFIG_EXT3_FS_XATTR is not set
920CONFIG_EXT3_FS_SECURITY=y 952# CONFIG_EXT4_FS is not set
921# CONFIG_EXT4DEV_FS is not set
922CONFIG_JBD=y 953CONFIG_JBD=y
923# CONFIG_JBD_DEBUG is not set 954# CONFIG_REISERFS_FS is not set
924CONFIG_FS_MBCACHE=y
925CONFIG_REISERFS_FS=m
926# CONFIG_REISERFS_CHECK is not set
927# CONFIG_REISERFS_PROC_INFO is not set
928CONFIG_REISERFS_FS_XATTR=y
929CONFIG_REISERFS_FS_POSIX_ACL=y
930CONFIG_REISERFS_FS_SECURITY=y
931# CONFIG_JFS_FS is not set 955# CONFIG_JFS_FS is not set
932CONFIG_FS_POSIX_ACL=y 956# CONFIG_FS_POSIX_ACL is not set
933# CONFIG_XFS_FS is not set 957# CONFIG_XFS_FS is not set
934# CONFIG_GFS2_FS is not set
935# CONFIG_OCFS2_FS is not set 958# CONFIG_OCFS2_FS is not set
936# CONFIG_MINIX_FS is not set 959# CONFIG_BTRFS_FS is not set
937# CONFIG_ROMFS_FS is not set 960# CONFIG_NILFS2_FS is not set
961CONFIG_FILE_LOCKING=y
962CONFIG_FSNOTIFY=y
963CONFIG_DNOTIFY=y
938CONFIG_INOTIFY=y 964CONFIG_INOTIFY=y
939CONFIG_INOTIFY_USER=y 965CONFIG_INOTIFY_USER=y
940# CONFIG_QUOTA is not set 966# CONFIG_QUOTA is not set
941CONFIG_DNOTIFY=y 967# CONFIG_AUTOFS_FS is not set
942CONFIG_AUTOFS_FS=m 968# CONFIG_AUTOFS4_FS is not set
943CONFIG_AUTOFS4_FS=m 969# CONFIG_FUSE_FS is not set
944CONFIG_FUSE_FS=m 970
945CONFIG_GENERIC_ACL=y 971#
972# Caches
973#
974# CONFIG_FSCACHE is not set
946 975
947# 976#
948# CD-ROM/DVD Filesystems 977# CD-ROM/DVD Filesystems
@@ -961,74 +990,65 @@ CONFIG_GENERIC_ACL=y
961# Pseudo filesystems 990# Pseudo filesystems
962# 991#
963CONFIG_PROC_FS=y 992CONFIG_PROC_FS=y
964CONFIG_PROC_KCORE=y 993# CONFIG_PROC_KCORE is not set
965CONFIG_PROC_SYSCTL=y 994CONFIG_PROC_SYSCTL=y
995# CONFIG_PROC_PAGE_MONITOR is not set
966CONFIG_SYSFS=y 996CONFIG_SYSFS=y
967CONFIG_TMPFS=y 997CONFIG_TMPFS=y
968CONFIG_TMPFS_POSIX_ACL=y 998# CONFIG_TMPFS_POSIX_ACL is not set
969# CONFIG_HUGETLB_PAGE is not set 999# CONFIG_HUGETLB_PAGE is not set
970CONFIG_RAMFS=y 1000# CONFIG_CONFIGFS_FS is not set
971CONFIG_CONFIGFS_FS=m 1001CONFIG_MISC_FILESYSTEMS=y
972
973#
974# Miscellaneous filesystems
975#
976# CONFIG_ADFS_FS is not set 1002# CONFIG_ADFS_FS is not set
977# CONFIG_AFFS_FS is not set 1003# CONFIG_AFFS_FS is not set
978# CONFIG_ECRYPT_FS is not set
979# CONFIG_HFS_FS is not set 1004# CONFIG_HFS_FS is not set
980# CONFIG_HFSPLUS_FS is not set 1005# CONFIG_HFSPLUS_FS is not set
981# CONFIG_BEFS_FS is not set 1006# CONFIG_BEFS_FS is not set
982# CONFIG_BFS_FS is not set 1007# CONFIG_BFS_FS is not set
983# CONFIG_EFS_FS is not set 1008# CONFIG_EFS_FS is not set
984# CONFIG_JFFS2_FS is not set 1009# CONFIG_JFFS2_FS is not set
985CONFIG_CRAMFS=m 1010CONFIG_CRAMFS=y
1011CONFIG_SQUASHFS=y
1012# CONFIG_SQUASHFS_EMBEDDED is not set
1013CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
986# CONFIG_VXFS_FS is not set 1014# CONFIG_VXFS_FS is not set
1015# CONFIG_MINIX_FS is not set
1016# CONFIG_OMFS_FS is not set
987# CONFIG_HPFS_FS is not set 1017# CONFIG_HPFS_FS is not set
988# CONFIG_QNX4FS_FS is not set 1018# CONFIG_QNX4FS_FS is not set
1019# CONFIG_ROMFS_FS is not set
989# CONFIG_SYSV_FS is not set 1020# CONFIG_SYSV_FS is not set
990# CONFIG_UFS_FS is not set 1021# CONFIG_UFS_FS is not set
991 1022CONFIG_NETWORK_FILESYSTEMS=y
992#
993# Network File Systems
994#
995CONFIG_NFS_FS=y 1023CONFIG_NFS_FS=y
996# CONFIG_NFS_V3 is not set 1024CONFIG_NFS_V3=y
1025# CONFIG_NFS_V3_ACL is not set
997# CONFIG_NFS_V4 is not set 1026# CONFIG_NFS_V4 is not set
998# CONFIG_NFS_DIRECTIO is not set
999CONFIG_NFSD=m
1000# CONFIG_NFSD_V3 is not set
1001# CONFIG_NFSD_TCP is not set
1002CONFIG_ROOT_NFS=y 1027CONFIG_ROOT_NFS=y
1028# CONFIG_NFSD is not set
1003CONFIG_LOCKD=y 1029CONFIG_LOCKD=y
1004CONFIG_EXPORTFS=m 1030CONFIG_LOCKD_V4=y
1005CONFIG_NFS_COMMON=y 1031CONFIG_NFS_COMMON=y
1006CONFIG_SUNRPC=y 1032CONFIG_SUNRPC=y
1007# CONFIG_RPCSEC_GSS_KRB5 is not set 1033# CONFIG_RPCSEC_GSS_KRB5 is not set
1008# CONFIG_RPCSEC_GSS_SPKM3 is not set 1034# CONFIG_RPCSEC_GSS_SPKM3 is not set
1009CONFIG_SMB_FS=m 1035# CONFIG_SMB_FS is not set
1010# CONFIG_SMB_NLS_DEFAULT is not set
1011# CONFIG_CIFS is not set 1036# CONFIG_CIFS is not set
1012# CONFIG_NCP_FS is not set 1037# CONFIG_NCP_FS is not set
1013# CONFIG_CODA_FS is not set 1038# CONFIG_CODA_FS is not set
1014# CONFIG_AFS_FS is not set 1039# CONFIG_AFS_FS is not set
1015# CONFIG_9P_FS is not set
1016 1040
1017# 1041#
1018# Partition Types 1042# Partition Types
1019# 1043#
1020# CONFIG_PARTITION_ADVANCED is not set 1044# CONFIG_PARTITION_ADVANCED is not set
1021CONFIG_MSDOS_PARTITION=y 1045CONFIG_MSDOS_PARTITION=y
1022 1046CONFIG_NLS=y
1023#
1024# Native Language Support
1025#
1026CONFIG_NLS=m
1027CONFIG_NLS_DEFAULT="iso8859-1" 1047CONFIG_NLS_DEFAULT="iso8859-1"
1028# CONFIG_NLS_CODEPAGE_437 is not set 1048CONFIG_NLS_CODEPAGE_437=y
1029# CONFIG_NLS_CODEPAGE_737 is not set 1049# CONFIG_NLS_CODEPAGE_737 is not set
1030# CONFIG_NLS_CODEPAGE_775 is not set 1050# CONFIG_NLS_CODEPAGE_775 is not set
1031# CONFIG_NLS_CODEPAGE_850 is not set 1051CONFIG_NLS_CODEPAGE_850=y
1032# CONFIG_NLS_CODEPAGE_852 is not set 1052# CONFIG_NLS_CODEPAGE_852 is not set
1033# CONFIG_NLS_CODEPAGE_855 is not set 1053# CONFIG_NLS_CODEPAGE_855 is not set
1034# CONFIG_NLS_CODEPAGE_857 is not set 1054# CONFIG_NLS_CODEPAGE_857 is not set
@@ -1046,10 +1066,10 @@ CONFIG_NLS_DEFAULT="iso8859-1"
1046# CONFIG_NLS_CODEPAGE_949 is not set 1066# CONFIG_NLS_CODEPAGE_949 is not set
1047# CONFIG_NLS_CODEPAGE_874 is not set 1067# CONFIG_NLS_CODEPAGE_874 is not set
1048# CONFIG_NLS_ISO8859_8 is not set 1068# CONFIG_NLS_ISO8859_8 is not set
1049# CONFIG_NLS_CODEPAGE_1250 is not set 1069CONFIG_NLS_CODEPAGE_1250=y
1050# CONFIG_NLS_CODEPAGE_1251 is not set 1070# CONFIG_NLS_CODEPAGE_1251 is not set
1051# CONFIG_NLS_ASCII is not set 1071# CONFIG_NLS_ASCII is not set
1052# CONFIG_NLS_ISO8859_1 is not set 1072CONFIG_NLS_ISO8859_1=y
1053# CONFIG_NLS_ISO8859_2 is not set 1073# CONFIG_NLS_ISO8859_2 is not set
1054# CONFIG_NLS_ISO8859_3 is not set 1074# CONFIG_NLS_ISO8859_3 is not set
1055# CONFIG_NLS_ISO8859_4 is not set 1075# CONFIG_NLS_ISO8859_4 is not set
@@ -1059,38 +1079,75 @@ CONFIG_NLS_DEFAULT="iso8859-1"
1059# CONFIG_NLS_ISO8859_9 is not set 1079# CONFIG_NLS_ISO8859_9 is not set
1060# CONFIG_NLS_ISO8859_13 is not set 1080# CONFIG_NLS_ISO8859_13 is not set
1061# CONFIG_NLS_ISO8859_14 is not set 1081# CONFIG_NLS_ISO8859_14 is not set
1062# CONFIG_NLS_ISO8859_15 is not set 1082CONFIG_NLS_ISO8859_15=y
1063# CONFIG_NLS_KOI8_R is not set 1083# CONFIG_NLS_KOI8_R is not set
1064# CONFIG_NLS_KOI8_U is not set 1084# CONFIG_NLS_KOI8_U is not set
1065# CONFIG_NLS_UTF8 is not set 1085CONFIG_NLS_UTF8=y
1066 1086# CONFIG_DLM is not set
1067#
1068# Distributed Lock Manager
1069#
1070CONFIG_DLM=m
1071CONFIG_DLM_TCP=y
1072# CONFIG_DLM_SCTP is not set
1073# CONFIG_DLM_DEBUG is not set
1074
1075#
1076# Profiling support
1077#
1078# CONFIG_PROFILING is not set
1079 1087
1080# 1088#
1081# Kernel hacking 1089# Kernel hacking
1082# 1090#
1083CONFIG_TRACE_IRQFLAGS_SUPPORT=y 1091CONFIG_TRACE_IRQFLAGS_SUPPORT=y
1084# CONFIG_PRINTK_TIME is not set 1092# CONFIG_PRINTK_TIME is not set
1085CONFIG_ENABLE_MUST_CHECK=y 1093# CONFIG_ENABLE_WARN_DEPRECATED is not set
1094# CONFIG_ENABLE_MUST_CHECK is not set
1095CONFIG_FRAME_WARN=1024
1086# CONFIG_MAGIC_SYSRQ is not set 1096# CONFIG_MAGIC_SYSRQ is not set
1097CONFIG_STRIP_ASM_SYMS=y
1087# CONFIG_UNUSED_SYMBOLS is not set 1098# CONFIG_UNUSED_SYMBOLS is not set
1088# CONFIG_DEBUG_FS is not set 1099# CONFIG_DEBUG_FS is not set
1089# CONFIG_HEADERS_CHECK is not set 1100# CONFIG_HEADERS_CHECK is not set
1090# CONFIG_DEBUG_KERNEL is not set 1101CONFIG_DEBUG_KERNEL=y
1091CONFIG_LOG_BUF_SHIFT=14 1102# CONFIG_DEBUG_SHIRQ is not set
1092CONFIG_CROSSCOMPILE=y 1103# CONFIG_DETECT_SOFTLOCKUP is not set
1093CONFIG_CMDLINE="" 1104# CONFIG_DETECT_HUNG_TASK is not set
1105# CONFIG_SCHED_DEBUG is not set
1106# CONFIG_SCHEDSTATS is not set
1107# CONFIG_TIMER_STATS is not set
1108# CONFIG_DEBUG_OBJECTS is not set
1109# CONFIG_DEBUG_SLAB is not set
1110# CONFIG_DEBUG_RT_MUTEXES is not set
1111# CONFIG_RT_MUTEX_TESTER is not set
1112# CONFIG_DEBUG_SPINLOCK is not set
1113# CONFIG_DEBUG_MUTEXES is not set
1114# CONFIG_DEBUG_LOCK_ALLOC is not set
1115# CONFIG_PROVE_LOCKING is not set
1116# CONFIG_LOCK_STAT is not set
1117# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1118# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1119# CONFIG_DEBUG_KOBJECT is not set
1120# CONFIG_DEBUG_INFO is not set
1121# CONFIG_DEBUG_VM is not set
1122# CONFIG_DEBUG_WRITECOUNT is not set
1123# CONFIG_DEBUG_MEMORY_INIT is not set
1124# CONFIG_DEBUG_LIST is not set
1125# CONFIG_DEBUG_SG is not set
1126# CONFIG_DEBUG_NOTIFIERS is not set
1127# CONFIG_DEBUG_CREDENTIALS is not set
1128# CONFIG_BOOT_PRINTK_DELAY is not set
1129# CONFIG_RCU_TORTURE_TEST is not set
1130# CONFIG_BACKTRACE_SELF_TEST is not set
1131# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1132# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
1133# CONFIG_FAULT_INJECTION is not set
1134# CONFIG_SYSCTL_SYSCALL_CHECK is not set
1135# CONFIG_PAGE_POISONING is not set
1136CONFIG_HAVE_FUNCTION_TRACER=y
1137CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1138CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y
1139CONFIG_HAVE_DYNAMIC_FTRACE=y
1140CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1141CONFIG_TRACING_SUPPORT=y
1142# CONFIG_FTRACE is not set
1143# CONFIG_SAMPLES is not set
1144CONFIG_HAVE_ARCH_KGDB=y
1145# CONFIG_KGDB is not set
1146CONFIG_EARLY_PRINTK=y
1147# CONFIG_CMDLINE_BOOL is not set
1148# CONFIG_DEBUG_STACK_USAGE is not set
1149# CONFIG_RUNTIME_DEBUG is not set
1150CONFIG_DEBUG_ZBOOT=y
1094 1151
1095# 1152#
1096# Security options 1153# Security options
@@ -1098,67 +1155,29 @@ CONFIG_CMDLINE=""
1098CONFIG_KEYS=y 1155CONFIG_KEYS=y
1099CONFIG_KEYS_DEBUG_PROC_KEYS=y 1156CONFIG_KEYS_DEBUG_PROC_KEYS=y
1100# CONFIG_SECURITY is not set 1157# CONFIG_SECURITY is not set
1101 1158# CONFIG_SECURITYFS is not set
1102# 1159# CONFIG_DEFAULT_SECURITY_SELINUX is not set
1103# Cryptographic options 1160# CONFIG_DEFAULT_SECURITY_SMACK is not set
1104# 1161# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
1105CONFIG_CRYPTO=y 1162CONFIG_DEFAULT_SECURITY_DAC=y
1106CONFIG_CRYPTO_ALGAPI=y 1163CONFIG_DEFAULT_SECURITY=""
1107CONFIG_CRYPTO_BLKCIPHER=m 1164# CONFIG_CRYPTO is not set
1108CONFIG_CRYPTO_HASH=y 1165# CONFIG_BINARY_PRINTF is not set
1109CONFIG_CRYPTO_MANAGER=y
1110CONFIG_CRYPTO_HMAC=y
1111CONFIG_CRYPTO_XCBC=m
1112CONFIG_CRYPTO_NULL=m
1113CONFIG_CRYPTO_MD4=m
1114CONFIG_CRYPTO_MD5=y
1115CONFIG_CRYPTO_SHA1=m
1116CONFIG_CRYPTO_SHA256=m
1117CONFIG_CRYPTO_SHA512=m
1118CONFIG_CRYPTO_WP512=m
1119CONFIG_CRYPTO_TGR192=m
1120CONFIG_CRYPTO_GF128MUL=m
1121CONFIG_CRYPTO_ECB=m
1122CONFIG_CRYPTO_CBC=m
1123CONFIG_CRYPTO_PCBC=m
1124CONFIG_CRYPTO_LRW=m
1125CONFIG_CRYPTO_DES=m
1126CONFIG_CRYPTO_FCRYPT=m
1127CONFIG_CRYPTO_BLOWFISH=m
1128CONFIG_CRYPTO_TWOFISH=m
1129CONFIG_CRYPTO_TWOFISH_COMMON=m
1130CONFIG_CRYPTO_SERPENT=m
1131CONFIG_CRYPTO_AES=m
1132CONFIG_CRYPTO_CAST5=m
1133CONFIG_CRYPTO_CAST6=m
1134CONFIG_CRYPTO_TEA=m
1135CONFIG_CRYPTO_ARC4=m
1136CONFIG_CRYPTO_KHAZAD=m
1137CONFIG_CRYPTO_ANUBIS=m
1138CONFIG_CRYPTO_DEFLATE=m
1139CONFIG_CRYPTO_MICHAEL_MIC=m
1140CONFIG_CRYPTO_CRC32C=m
1141CONFIG_CRYPTO_CAMELLIA=m
1142# CONFIG_CRYPTO_TEST is not set
1143
1144#
1145# Hardware crypto devices
1146#
1147 1166
1148# 1167#
1149# Library routines 1168# Library routines
1150# 1169#
1151CONFIG_BITREVERSE=y 1170CONFIG_BITREVERSE=y
1152CONFIG_CRC_CCITT=m 1171CONFIG_GENERIC_FIND_LAST_BIT=y
1153CONFIG_CRC16=m 1172# CONFIG_CRC_CCITT is not set
1173# CONFIG_CRC16 is not set
1174# CONFIG_CRC_T10DIF is not set
1175# CONFIG_CRC_ITU_T is not set
1154CONFIG_CRC32=y 1176CONFIG_CRC32=y
1155CONFIG_LIBCRC32C=m 1177# CONFIG_CRC7 is not set
1156CONFIG_ZLIB_INFLATE=m 1178# CONFIG_LIBCRC32C is not set
1157CONFIG_ZLIB_DEFLATE=m 1179CONFIG_ZLIB_INFLATE=y
1158CONFIG_TEXTSEARCH=y
1159CONFIG_TEXTSEARCH_KMP=m
1160CONFIG_TEXTSEARCH_BM=m
1161CONFIG_TEXTSEARCH_FSM=m
1162CONFIG_PLIST=y
1163CONFIG_HAS_IOMEM=y 1180CONFIG_HAS_IOMEM=y
1164CONFIG_HAS_IOPORT=y 1181CONFIG_HAS_IOPORT=y
1182CONFIG_HAS_DMA=y
1183CONFIG_NLATTR=y
diff --git a/arch/mips/configs/db1100_defconfig b/arch/mips/configs/db1100_defconfig
index fa6814475898..abb9a5805adc 100644
--- a/arch/mips/configs/db1100_defconfig
+++ b/arch/mips/configs/db1100_defconfig
@@ -1,79 +1,102 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.20 3# Linux kernel version: 2.6.33
4# Tue Feb 20 21:47:24 2007 4# Fri Feb 26 08:50:15 2010
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
8# 8#
9# Machine selection 9# Machine selection
10# 10#
11CONFIG_ZONE_DMA=y
12CONFIG_MACH_ALCHEMY=y 11CONFIG_MACH_ALCHEMY=y
13# CONFIG_MIPS_MTX1 is not set 12# CONFIG_AR7 is not set
14# CONFIG_MIPS_BOSPORUS is not set 13# CONFIG_BCM47XX is not set
15# CONFIG_MIPS_PB1000 is not set 14# CONFIG_BCM63XX is not set
16# CONFIG_MIPS_PB1100 is not set
17# CONFIG_MIPS_PB1500 is not set
18# CONFIG_MIPS_PB1550 is not set
19# CONFIG_MIPS_PB1200 is not set
20# CONFIG_MIPS_DB1000 is not set
21CONFIG_MIPS_DB1100=y
22# CONFIG_MIPS_DB1500 is not set
23# CONFIG_MIPS_DB1550 is not set
24# CONFIG_MIPS_DB1200 is not set
25# CONFIG_MIPS_MIRAGE is not set
26# CONFIG_BASLER_EXCITE is not set
27# CONFIG_MIPS_COBALT is not set 15# CONFIG_MIPS_COBALT is not set
28# CONFIG_MACH_DECSTATION is not set 16# CONFIG_MACH_DECSTATION is not set
29# CONFIG_MACH_JAZZ is not set 17# CONFIG_MACH_JAZZ is not set
18# CONFIG_LASAT is not set
19# CONFIG_MACH_LOONGSON is not set
30# CONFIG_MIPS_MALTA is not set 20# CONFIG_MIPS_MALTA is not set
31# CONFIG_WR_PPMC is not set
32# CONFIG_MIPS_SIM is not set 21# CONFIG_MIPS_SIM is not set
33# CONFIG_MOMENCO_JAGUAR_ATX is not set 22# CONFIG_NEC_MARKEINS is not set
34# CONFIG_MIPS_XXS1500 is not set 23# CONFIG_MACH_VR41XX is not set
24# CONFIG_NXP_STB220 is not set
25# CONFIG_NXP_STB225 is not set
35# CONFIG_PNX8550_JBS is not set 26# CONFIG_PNX8550_JBS is not set
36# CONFIG_PNX8550_STB810 is not set 27# CONFIG_PNX8550_STB810 is not set
37# CONFIG_MACH_VR41XX is not set 28# CONFIG_PMC_MSP is not set
38# CONFIG_PMC_YOSEMITE is not set 29# CONFIG_PMC_YOSEMITE is not set
39# CONFIG_MARKEINS is not set 30# CONFIG_POWERTV is not set
40# CONFIG_SGI_IP22 is not set 31# CONFIG_SGI_IP22 is not set
41# CONFIG_SGI_IP27 is not set 32# CONFIG_SGI_IP27 is not set
33# CONFIG_SGI_IP28 is not set
42# CONFIG_SGI_IP32 is not set 34# CONFIG_SGI_IP32 is not set
43# CONFIG_SIBYTE_BIGSUR is not set
44# CONFIG_SIBYTE_SWARM is not set
45# CONFIG_SIBYTE_SENTOSA is not set
46# CONFIG_SIBYTE_RHONE is not set
47# CONFIG_SIBYTE_CARMEL is not set
48# CONFIG_SIBYTE_LITTLESUR is not set
49# CONFIG_SIBYTE_CRHINE is not set 35# CONFIG_SIBYTE_CRHINE is not set
36# CONFIG_SIBYTE_CARMEL is not set
50# CONFIG_SIBYTE_CRHONE is not set 37# CONFIG_SIBYTE_CRHONE is not set
38# CONFIG_SIBYTE_RHONE is not set
39# CONFIG_SIBYTE_SWARM is not set
40# CONFIG_SIBYTE_LITTLESUR is not set
41# CONFIG_SIBYTE_SENTOSA is not set
42# CONFIG_SIBYTE_BIGSUR is not set
51# CONFIG_SNI_RM is not set 43# CONFIG_SNI_RM is not set
52# CONFIG_TOSHIBA_JMR3927 is not set 44# CONFIG_MACH_TX39XX is not set
53# CONFIG_TOSHIBA_RBTX4927 is not set 45# CONFIG_MACH_TX49XX is not set
54# CONFIG_TOSHIBA_RBTX4938 is not set 46# CONFIG_MIKROTIK_RB532 is not set
47# CONFIG_WR_PPMC is not set
48# CONFIG_CAVIUM_OCTEON_SIMULATOR is not set
49# CONFIG_CAVIUM_OCTEON_REFERENCE_BOARD is not set
50CONFIG_ALCHEMY_GPIOINT_AU1000=y
51# CONFIG_ALCHEMY_GPIO_INDIRECT is not set
52# CONFIG_MIPS_MTX1 is not set
53# CONFIG_MIPS_BOSPORUS is not set
54# CONFIG_MIPS_DB1000 is not set
55CONFIG_MIPS_DB1100=y
56# CONFIG_MIPS_DB1200 is not set
57# CONFIG_MIPS_DB1500 is not set
58# CONFIG_MIPS_DB1550 is not set
59# CONFIG_MIPS_MIRAGE is not set
60# CONFIG_MIPS_PB1000 is not set
61# CONFIG_MIPS_PB1100 is not set
62# CONFIG_MIPS_PB1200 is not set
63# CONFIG_MIPS_PB1500 is not set
64# CONFIG_MIPS_PB1550 is not set
65# CONFIG_MIPS_XXS1500 is not set
66CONFIG_SOC_AU1100=y
67CONFIG_SOC_AU1X00=y
68CONFIG_LOONGSON_UART_BASE=y
55CONFIG_RWSEM_GENERIC_SPINLOCK=y 69CONFIG_RWSEM_GENERIC_SPINLOCK=y
56# CONFIG_ARCH_HAS_ILOG2_U32 is not set 70# CONFIG_ARCH_HAS_ILOG2_U32 is not set
57# CONFIG_ARCH_HAS_ILOG2_U64 is not set 71# CONFIG_ARCH_HAS_ILOG2_U64 is not set
72CONFIG_ARCH_SUPPORTS_OPROFILE=y
58CONFIG_GENERIC_FIND_NEXT_BIT=y 73CONFIG_GENERIC_FIND_NEXT_BIT=y
59CONFIG_GENERIC_HWEIGHT=y 74CONFIG_GENERIC_HWEIGHT=y
60CONFIG_GENERIC_CALIBRATE_DELAY=y 75CONFIG_GENERIC_CALIBRATE_DELAY=y
76CONFIG_GENERIC_CLOCKEVENTS=y
61CONFIG_GENERIC_TIME=y 77CONFIG_GENERIC_TIME=y
62CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 78CONFIG_GENERIC_CMOS_UPDATE=y
63# CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ is not set 79CONFIG_SCHED_OMIT_FRAME_POINTER=y
80CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
81CONFIG_CEVT_R4K_LIB=y
82CONFIG_CSRC_R4K_LIB=y
64CONFIG_DMA_NONCOHERENT=y 83CONFIG_DMA_NONCOHERENT=y
65CONFIG_DMA_NEED_PCI_MAP_STATE=y 84CONFIG_DMA_NEED_PCI_MAP_STATE=y
85CONFIG_SYS_HAS_EARLY_PRINTK=y
86# CONFIG_NO_IOPORT is not set
87CONFIG_GENERIC_GPIO=y
66# CONFIG_CPU_BIG_ENDIAN is not set 88# CONFIG_CPU_BIG_ENDIAN is not set
67CONFIG_CPU_LITTLE_ENDIAN=y 89CONFIG_CPU_LITTLE_ENDIAN=y
68CONFIG_SYS_SUPPORTS_APM_EMULATION=y 90CONFIG_SYS_SUPPORTS_APM_EMULATION=y
69CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y 91CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y
70CONFIG_SOC_AU1100=y 92CONFIG_IRQ_CPU=y
71CONFIG_SOC_AU1X00=y
72CONFIG_MIPS_L1_CACHE_SHIFT=5 93CONFIG_MIPS_L1_CACHE_SHIFT=5
73 94
74# 95#
75# CPU selection 96# CPU selection
76# 97#
98# CONFIG_CPU_LOONGSON2E is not set
99# CONFIG_CPU_LOONGSON2F is not set
77CONFIG_CPU_MIPS32_R1=y 100CONFIG_CPU_MIPS32_R1=y
78# CONFIG_CPU_MIPS32_R2 is not set 101# CONFIG_CPU_MIPS32_R2 is not set
79# CONFIG_CPU_MIPS64_R1 is not set 102# CONFIG_CPU_MIPS64_R1 is not set
@@ -86,6 +109,7 @@ CONFIG_CPU_MIPS32_R1=y
86# CONFIG_CPU_TX49XX is not set 109# CONFIG_CPU_TX49XX is not set
87# CONFIG_CPU_R5000 is not set 110# CONFIG_CPU_R5000 is not set
88# CONFIG_CPU_R5432 is not set 111# CONFIG_CPU_R5432 is not set
112# CONFIG_CPU_R5500 is not set
89# CONFIG_CPU_R6000 is not set 113# CONFIG_CPU_R6000 is not set
90# CONFIG_CPU_NEVADA is not set 114# CONFIG_CPU_NEVADA is not set
91# CONFIG_CPU_R8000 is not set 115# CONFIG_CPU_R8000 is not set
@@ -93,11 +117,14 @@ CONFIG_CPU_MIPS32_R1=y
93# CONFIG_CPU_RM7000 is not set 117# CONFIG_CPU_RM7000 is not set
94# CONFIG_CPU_RM9000 is not set 118# CONFIG_CPU_RM9000 is not set
95# CONFIG_CPU_SB1 is not set 119# CONFIG_CPU_SB1 is not set
120# CONFIG_CPU_CAVIUM_OCTEON is not set
121CONFIG_SYS_SUPPORTS_ZBOOT=y
96CONFIG_SYS_HAS_CPU_MIPS32_R1=y 122CONFIG_SYS_HAS_CPU_MIPS32_R1=y
97CONFIG_CPU_MIPS32=y 123CONFIG_CPU_MIPS32=y
98CONFIG_CPU_MIPSR1=y 124CONFIG_CPU_MIPSR1=y
99CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y 125CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y
100CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y 126CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y
127CONFIG_HARDWARE_WATCHPOINTS=y
101 128
102# 129#
103# Kernel type 130# Kernel type
@@ -107,173 +134,242 @@ CONFIG_32BIT=y
107CONFIG_PAGE_SIZE_4KB=y 134CONFIG_PAGE_SIZE_4KB=y
108# CONFIG_PAGE_SIZE_8KB is not set 135# CONFIG_PAGE_SIZE_8KB is not set
109# CONFIG_PAGE_SIZE_16KB is not set 136# CONFIG_PAGE_SIZE_16KB is not set
137# CONFIG_PAGE_SIZE_32KB is not set
110# CONFIG_PAGE_SIZE_64KB is not set 138# CONFIG_PAGE_SIZE_64KB is not set
111CONFIG_CPU_HAS_PREFETCH=y 139CONFIG_CPU_HAS_PREFETCH=y
112CONFIG_MIPS_MT_DISABLED=y 140CONFIG_MIPS_MT_DISABLED=y
113# CONFIG_MIPS_MT_SMP is not set 141# CONFIG_MIPS_MT_SMP is not set
114# CONFIG_MIPS_MT_SMTC is not set 142# CONFIG_MIPS_MT_SMTC is not set
115# CONFIG_MIPS_VPE_LOADER is not set
116CONFIG_64BIT_PHYS_ADDR=y 143CONFIG_64BIT_PHYS_ADDR=y
144CONFIG_ARCH_PHYS_ADDR_T_64BIT=y
117CONFIG_CPU_HAS_SYNC=y 145CONFIG_CPU_HAS_SYNC=y
118CONFIG_GENERIC_HARDIRQS=y 146CONFIG_GENERIC_HARDIRQS=y
119CONFIG_GENERIC_IRQ_PROBE=y 147CONFIG_GENERIC_IRQ_PROBE=y
120CONFIG_CPU_SUPPORTS_HIGHMEM=y 148CONFIG_CPU_SUPPORTS_HIGHMEM=y
121CONFIG_ARCH_FLATMEM_ENABLE=y 149CONFIG_ARCH_FLATMEM_ENABLE=y
150CONFIG_ARCH_POPULATES_NODE_MAP=y
122CONFIG_SELECT_MEMORY_MODEL=y 151CONFIG_SELECT_MEMORY_MODEL=y
123CONFIG_FLATMEM_MANUAL=y 152CONFIG_FLATMEM_MANUAL=y
124# CONFIG_DISCONTIGMEM_MANUAL is not set 153# CONFIG_DISCONTIGMEM_MANUAL is not set
125# CONFIG_SPARSEMEM_MANUAL is not set 154# CONFIG_SPARSEMEM_MANUAL is not set
126CONFIG_FLATMEM=y 155CONFIG_FLATMEM=y
127CONFIG_FLAT_NODE_MEM_MAP=y 156CONFIG_FLAT_NODE_MEM_MAP=y
128# CONFIG_SPARSEMEM_STATIC is not set 157CONFIG_PAGEFLAGS_EXTENDED=y
129CONFIG_SPLIT_PTLOCK_CPUS=4 158CONFIG_SPLIT_PTLOCK_CPUS=4
130# CONFIG_RESOURCES_64BIT is not set 159CONFIG_PHYS_ADDR_T_64BIT=y
131CONFIG_ZONE_DMA_FLAG=1 160CONFIG_ZONE_DMA_FLAG=0
161CONFIG_VIRT_TO_BUS=y
162# CONFIG_KSM is not set
163CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
164CONFIG_TICK_ONESHOT=y
165CONFIG_NO_HZ=y
166CONFIG_HIGH_RES_TIMERS=y
167CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
132# CONFIG_HZ_48 is not set 168# CONFIG_HZ_48 is not set
133# CONFIG_HZ_100 is not set 169CONFIG_HZ_100=y
134# CONFIG_HZ_128 is not set 170# CONFIG_HZ_128 is not set
135# CONFIG_HZ_250 is not set 171# CONFIG_HZ_250 is not set
136# CONFIG_HZ_256 is not set 172# CONFIG_HZ_256 is not set
137CONFIG_HZ_1000=y 173# CONFIG_HZ_1000 is not set
138# CONFIG_HZ_1024 is not set 174# CONFIG_HZ_1024 is not set
139CONFIG_SYS_SUPPORTS_ARBIT_HZ=y 175CONFIG_SYS_SUPPORTS_ARBIT_HZ=y
140CONFIG_HZ=1000 176CONFIG_HZ=100
141CONFIG_PREEMPT_NONE=y 177CONFIG_PREEMPT_NONE=y
142# CONFIG_PREEMPT_VOLUNTARY is not set 178# CONFIG_PREEMPT_VOLUNTARY is not set
143# CONFIG_PREEMPT is not set 179# CONFIG_PREEMPT is not set
144# CONFIG_KEXEC is not set 180# CONFIG_KEXEC is not set
181# CONFIG_SECCOMP is not set
145CONFIG_LOCKDEP_SUPPORT=y 182CONFIG_LOCKDEP_SUPPORT=y
146CONFIG_STACKTRACE_SUPPORT=y 183CONFIG_STACKTRACE_SUPPORT=y
147CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 184CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
185CONFIG_CONSTRUCTORS=y
148 186
149# 187#
150# Code maturity level options 188# General setup
151# 189#
152CONFIG_EXPERIMENTAL=y 190CONFIG_EXPERIMENTAL=y
153CONFIG_BROKEN_ON_SMP=y 191CONFIG_BROKEN_ON_SMP=y
154CONFIG_INIT_ENV_ARG_LIMIT=32 192CONFIG_INIT_ENV_ARG_LIMIT=32
155 193CONFIG_LOCALVERSION="-db1100"
156#
157# General setup
158#
159CONFIG_LOCALVERSION=""
160CONFIG_LOCALVERSION_AUTO=y 194CONFIG_LOCALVERSION_AUTO=y
195CONFIG_HAVE_KERNEL_GZIP=y
196CONFIG_HAVE_KERNEL_BZIP2=y
197CONFIG_HAVE_KERNEL_LZMA=y
198CONFIG_HAVE_KERNEL_LZO=y
199# CONFIG_KERNEL_GZIP is not set
200# CONFIG_KERNEL_BZIP2 is not set
201CONFIG_KERNEL_LZMA=y
202# CONFIG_KERNEL_LZO is not set
161CONFIG_SWAP=y 203CONFIG_SWAP=y
162CONFIG_SYSVIPC=y 204CONFIG_SYSVIPC=y
163# CONFIG_IPC_NS is not set
164CONFIG_SYSVIPC_SYSCTL=y 205CONFIG_SYSVIPC_SYSCTL=y
165# CONFIG_POSIX_MQUEUE is not set 206CONFIG_POSIX_MQUEUE=y
207CONFIG_POSIX_MQUEUE_SYSCTL=y
166# CONFIG_BSD_PROCESS_ACCT is not set 208# CONFIG_BSD_PROCESS_ACCT is not set
167# CONFIG_TASKSTATS is not set 209# CONFIG_TASKSTATS is not set
168# CONFIG_UTS_NS is not set
169# CONFIG_AUDIT is not set 210# CONFIG_AUDIT is not set
211
212#
213# RCU Subsystem
214#
215# CONFIG_TREE_RCU is not set
216# CONFIG_TREE_PREEMPT_RCU is not set
217CONFIG_TINY_RCU=y
218# CONFIG_TREE_RCU_TRACE is not set
170# CONFIG_IKCONFIG is not set 219# CONFIG_IKCONFIG is not set
171CONFIG_SYSFS_DEPRECATED=y 220CONFIG_LOG_BUF_SHIFT=14
172CONFIG_RELAY=y 221# CONFIG_GROUP_SCHED is not set
173# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 222# CONFIG_CGROUPS is not set
223# CONFIG_SYSFS_DEPRECATED_V2 is not set
224# CONFIG_RELAY is not set
225# CONFIG_NAMESPACES is not set
226# CONFIG_BLK_DEV_INITRD is not set
227CONFIG_CC_OPTIMIZE_FOR_SIZE=y
174CONFIG_SYSCTL=y 228CONFIG_SYSCTL=y
229CONFIG_ANON_INODES=y
175CONFIG_EMBEDDED=y 230CONFIG_EMBEDDED=y
176CONFIG_SYSCTL_SYSCALL=y 231# CONFIG_SYSCTL_SYSCALL is not set
177CONFIG_KALLSYMS=y 232# CONFIG_KALLSYMS is not set
178# CONFIG_KALLSYMS_EXTRA_PASS is not set
179CONFIG_HOTPLUG=y 233CONFIG_HOTPLUG=y
180CONFIG_PRINTK=y 234CONFIG_PRINTK=y
181CONFIG_BUG=y 235CONFIG_BUG=y
182CONFIG_ELF_CORE=y 236CONFIG_ELF_CORE=y
237# CONFIG_PCSPKR_PLATFORM is not set
183CONFIG_BASE_FULL=y 238CONFIG_BASE_FULL=y
184CONFIG_FUTEX=y 239CONFIG_FUTEX=y
185CONFIG_EPOLL=y 240CONFIG_EPOLL=y
241CONFIG_SIGNALFD=y
242CONFIG_TIMERFD=y
243CONFIG_EVENTFD=y
186CONFIG_SHMEM=y 244CONFIG_SHMEM=y
187CONFIG_SLAB=y 245CONFIG_AIO=y
246
247#
248# Kernel Performance Events And Counters
249#
188CONFIG_VM_EVENT_COUNTERS=y 250CONFIG_VM_EVENT_COUNTERS=y
189CONFIG_RT_MUTEXES=y 251# CONFIG_COMPAT_BRK is not set
190# CONFIG_TINY_SHMEM is not set 252CONFIG_SLAB=y
191CONFIG_BASE_SMALL=0 253# CONFIG_SLUB is not set
192# CONFIG_SLOB is not set 254# CONFIG_SLOB is not set
255# CONFIG_PROFILING is not set
256CONFIG_HAVE_OPROFILE=y
193 257
194# 258#
195# Loadable module support 259# GCOV-based kernel profiling
196# 260#
261# CONFIG_SLOW_WORK is not set
262CONFIG_HAVE_GENERIC_DMA_COHERENT=y
263CONFIG_SLABINFO=y
264CONFIG_RT_MUTEXES=y
265CONFIG_BASE_SMALL=0
197CONFIG_MODULES=y 266CONFIG_MODULES=y
267# CONFIG_MODULE_FORCE_LOAD is not set
198CONFIG_MODULE_UNLOAD=y 268CONFIG_MODULE_UNLOAD=y
199# CONFIG_MODULE_FORCE_UNLOAD is not set 269# CONFIG_MODULE_FORCE_UNLOAD is not set
200CONFIG_MODVERSIONS=y 270# CONFIG_MODVERSIONS is not set
201CONFIG_MODULE_SRCVERSION_ALL=y 271# CONFIG_MODULE_SRCVERSION_ALL is not set
202CONFIG_KMOD=y
203
204#
205# Block layer
206#
207CONFIG_BLOCK=y 272CONFIG_BLOCK=y
208# CONFIG_LBD is not set 273# CONFIG_LBDAF is not set
209# CONFIG_BLK_DEV_IO_TRACE is not set 274# CONFIG_BLK_DEV_BSG is not set
210# CONFIG_LSF is not set 275# CONFIG_BLK_DEV_INTEGRITY is not set
211 276
212# 277#
213# IO Schedulers 278# IO Schedulers
214# 279#
215CONFIG_IOSCHED_NOOP=y 280CONFIG_IOSCHED_NOOP=y
216CONFIG_IOSCHED_AS=y 281# CONFIG_IOSCHED_DEADLINE is not set
217CONFIG_IOSCHED_DEADLINE=y 282# CONFIG_IOSCHED_CFQ is not set
218CONFIG_IOSCHED_CFQ=y
219CONFIG_DEFAULT_AS=y
220# CONFIG_DEFAULT_DEADLINE is not set 283# CONFIG_DEFAULT_DEADLINE is not set
221# CONFIG_DEFAULT_CFQ is not set 284# CONFIG_DEFAULT_CFQ is not set
222# CONFIG_DEFAULT_NOOP is not set 285CONFIG_DEFAULT_NOOP=y
223CONFIG_DEFAULT_IOSCHED="anticipatory" 286CONFIG_DEFAULT_IOSCHED="noop"
287# CONFIG_INLINE_SPIN_TRYLOCK is not set
288# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
289# CONFIG_INLINE_SPIN_LOCK is not set
290# CONFIG_INLINE_SPIN_LOCK_BH is not set
291# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
292# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
293CONFIG_INLINE_SPIN_UNLOCK=y
294# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
295CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
296# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
297# CONFIG_INLINE_READ_TRYLOCK is not set
298# CONFIG_INLINE_READ_LOCK is not set
299# CONFIG_INLINE_READ_LOCK_BH is not set
300# CONFIG_INLINE_READ_LOCK_IRQ is not set
301# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
302CONFIG_INLINE_READ_UNLOCK=y
303# CONFIG_INLINE_READ_UNLOCK_BH is not set
304CONFIG_INLINE_READ_UNLOCK_IRQ=y
305# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
306# CONFIG_INLINE_WRITE_TRYLOCK is not set
307# CONFIG_INLINE_WRITE_LOCK is not set
308# CONFIG_INLINE_WRITE_LOCK_BH is not set
309# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
310# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
311CONFIG_INLINE_WRITE_UNLOCK=y
312# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
313CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
314# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
315# CONFIG_MUTEX_SPIN_ON_OWNER is not set
316CONFIG_FREEZER=y
224 317
225# 318#
226# Bus options (PCI, PCMCIA, EISA, ISA, TC) 319# Bus options (PCI, PCMCIA, EISA, ISA, TC)
227# 320#
321# CONFIG_ARCH_SUPPORTS_MSI is not set
228CONFIG_MMU=y 322CONFIG_MMU=y
323CONFIG_PCCARD=y
324CONFIG_PCMCIA=y
325CONFIG_PCMCIA_LOAD_CIS=y
326# CONFIG_PCMCIA_IOCTL is not set
229 327
230# 328#
231# PCCARD (PCMCIA/CardBus) support 329# PC-card bridges
232#
233# CONFIG_PCCARD is not set
234
235#
236# PCI Hotplug Support
237# 330#
331# CONFIG_PCMCIA_AU1X00 is not set
332CONFIG_PCMCIA_ALCHEMY_DEVBOARD=y
238 333
239# 334#
240# Executable file formats 335# Executable file formats
241# 336#
242CONFIG_BINFMT_ELF=y 337CONFIG_BINFMT_ELF=y
338# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
339# CONFIG_HAVE_AOUT is not set
243# CONFIG_BINFMT_MISC is not set 340# CONFIG_BINFMT_MISC is not set
244CONFIG_TRAD_SIGNALS=y 341CONFIG_TRAD_SIGNALS=y
245 342
246# 343#
247# Power management options 344# Power management options
248# 345#
249# CONFIG_PM is not set 346CONFIG_ARCH_HIBERNATION_POSSIBLE=y
250 347CONFIG_ARCH_SUSPEND_POSSIBLE=y
251# 348CONFIG_PM=y
252# Networking 349# CONFIG_PM_DEBUG is not set
253# 350CONFIG_PM_SLEEP=y
351CONFIG_SUSPEND=y
352CONFIG_SUSPEND_FREEZER=y
353# CONFIG_HIBERNATION is not set
354# CONFIG_APM_EMULATION is not set
355CONFIG_PM_RUNTIME=y
254CONFIG_NET=y 356CONFIG_NET=y
255 357
256# 358#
257# Networking options 359# Networking options
258# 360#
259# CONFIG_NETDEBUG is not set
260CONFIG_PACKET=y 361CONFIG_PACKET=y
261# CONFIG_PACKET_MMAP is not set 362CONFIG_PACKET_MMAP=y
262CONFIG_UNIX=y 363CONFIG_UNIX=y
263CONFIG_XFRM=y 364# CONFIG_NET_KEY is not set
264CONFIG_XFRM_USER=m
265# CONFIG_XFRM_SUB_POLICY is not set
266CONFIG_XFRM_MIGRATE=y
267CONFIG_NET_KEY=y
268CONFIG_NET_KEY_MIGRATE=y
269CONFIG_INET=y 365CONFIG_INET=y
270CONFIG_IP_MULTICAST=y 366CONFIG_IP_MULTICAST=y
271# CONFIG_IP_ADVANCED_ROUTER is not set 367# CONFIG_IP_ADVANCED_ROUTER is not set
272CONFIG_IP_FIB_HASH=y 368CONFIG_IP_FIB_HASH=y
273CONFIG_IP_PNP=y 369CONFIG_IP_PNP=y
274# CONFIG_IP_PNP_DHCP is not set 370CONFIG_IP_PNP_DHCP=y
275CONFIG_IP_PNP_BOOTP=y 371CONFIG_IP_PNP_BOOTP=y
276# CONFIG_IP_PNP_RARP is not set 372CONFIG_IP_PNP_RARP=y
277# CONFIG_NET_IPIP is not set 373# CONFIG_NET_IPIP is not set
278# CONFIG_NET_IPGRE is not set 374# CONFIG_NET_IPGRE is not set
279# CONFIG_IP_MROUTE is not set 375# CONFIG_IP_MROUTE is not set
@@ -284,110 +380,25 @@ CONFIG_IP_PNP_BOOTP=y
284# CONFIG_INET_IPCOMP is not set 380# CONFIG_INET_IPCOMP is not set
285# CONFIG_INET_XFRM_TUNNEL is not set 381# CONFIG_INET_XFRM_TUNNEL is not set
286# CONFIG_INET_TUNNEL is not set 382# CONFIG_INET_TUNNEL is not set
287CONFIG_INET_XFRM_MODE_TRANSPORT=m 383# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
288CONFIG_INET_XFRM_MODE_TUNNEL=m 384# CONFIG_INET_XFRM_MODE_TUNNEL is not set
289CONFIG_INET_XFRM_MODE_BEET=m 385# CONFIG_INET_XFRM_MODE_BEET is not set
290CONFIG_INET_DIAG=y 386CONFIG_INET_LRO=y
291CONFIG_INET_TCP_DIAG=y 387# CONFIG_INET_DIAG is not set
292# CONFIG_TCP_CONG_ADVANCED is not set 388# CONFIG_TCP_CONG_ADVANCED is not set
293CONFIG_TCP_CONG_CUBIC=y 389CONFIG_TCP_CONG_CUBIC=y
294CONFIG_DEFAULT_TCP_CONG="cubic" 390CONFIG_DEFAULT_TCP_CONG="cubic"
295CONFIG_TCP_MD5SIG=y 391# CONFIG_TCP_MD5SIG is not set
296
297#
298# IP: Virtual Server Configuration
299#
300# CONFIG_IP_VS is not set
301# CONFIG_IPV6 is not set 392# CONFIG_IPV6 is not set
302# CONFIG_INET6_XFRM_TUNNEL is not set 393# CONFIG_NETWORK_SECMARK is not set
303# CONFIG_INET6_TUNNEL is not set 394# CONFIG_NETFILTER is not set
304CONFIG_NETWORK_SECMARK=y
305CONFIG_NETFILTER=y
306# CONFIG_NETFILTER_DEBUG is not set
307
308#
309# Core Netfilter Configuration
310#
311CONFIG_NETFILTER_NETLINK=m
312CONFIG_NETFILTER_NETLINK_QUEUE=m
313CONFIG_NETFILTER_NETLINK_LOG=m
314CONFIG_NF_CONNTRACK_ENABLED=m
315CONFIG_NF_CONNTRACK_SUPPORT=y
316# CONFIG_IP_NF_CONNTRACK_SUPPORT is not set
317CONFIG_NF_CONNTRACK=m
318CONFIG_NF_CT_ACCT=y
319CONFIG_NF_CONNTRACK_MARK=y
320CONFIG_NF_CONNTRACK_SECMARK=y
321CONFIG_NF_CONNTRACK_EVENTS=y
322CONFIG_NF_CT_PROTO_GRE=m
323CONFIG_NF_CT_PROTO_SCTP=m
324CONFIG_NF_CONNTRACK_AMANDA=m
325CONFIG_NF_CONNTRACK_FTP=m
326CONFIG_NF_CONNTRACK_H323=m
327CONFIG_NF_CONNTRACK_IRC=m
328# CONFIG_NF_CONNTRACK_NETBIOS_NS is not set
329CONFIG_NF_CONNTRACK_PPTP=m
330CONFIG_NF_CONNTRACK_SANE=m
331CONFIG_NF_CONNTRACK_SIP=m
332CONFIG_NF_CONNTRACK_TFTP=m
333CONFIG_NF_CT_NETLINK=m
334CONFIG_NETFILTER_XTABLES=m
335CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
336CONFIG_NETFILTER_XT_TARGET_MARK=m
337CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
338CONFIG_NETFILTER_XT_TARGET_NFLOG=m
339CONFIG_NETFILTER_XT_TARGET_SECMARK=m
340CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m
341CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
342CONFIG_NETFILTER_XT_MATCH_COMMENT=m
343CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
344CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
345CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
346CONFIG_NETFILTER_XT_MATCH_DCCP=m
347CONFIG_NETFILTER_XT_MATCH_DSCP=m
348CONFIG_NETFILTER_XT_MATCH_ESP=m
349CONFIG_NETFILTER_XT_MATCH_HELPER=m
350CONFIG_NETFILTER_XT_MATCH_LENGTH=m
351CONFIG_NETFILTER_XT_MATCH_LIMIT=m
352CONFIG_NETFILTER_XT_MATCH_MAC=m
353CONFIG_NETFILTER_XT_MATCH_MARK=m
354CONFIG_NETFILTER_XT_MATCH_POLICY=m
355CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
356CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
357CONFIG_NETFILTER_XT_MATCH_QUOTA=m
358CONFIG_NETFILTER_XT_MATCH_REALM=m
359CONFIG_NETFILTER_XT_MATCH_SCTP=m
360CONFIG_NETFILTER_XT_MATCH_STATE=m
361CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
362CONFIG_NETFILTER_XT_MATCH_STRING=m
363CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
364CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
365
366#
367# IP: Netfilter Configuration
368#
369CONFIG_NF_CONNTRACK_IPV4=m
370CONFIG_NF_CONNTRACK_PROC_COMPAT=y
371# CONFIG_IP_NF_QUEUE is not set
372# CONFIG_IP_NF_IPTABLES is not set
373# CONFIG_IP_NF_ARPTABLES is not set
374
375#
376# DCCP Configuration (EXPERIMENTAL)
377#
378# CONFIG_IP_DCCP is not set 395# CONFIG_IP_DCCP is not set
379
380#
381# SCTP Configuration (EXPERIMENTAL)
382#
383# CONFIG_IP_SCTP is not set 396# CONFIG_IP_SCTP is not set
384 397# CONFIG_RDS is not set
385#
386# TIPC Configuration (EXPERIMENTAL)
387#
388# CONFIG_TIPC is not set 398# CONFIG_TIPC is not set
389# CONFIG_ATM is not set 399# CONFIG_ATM is not set
390# CONFIG_BRIDGE is not set 400# CONFIG_BRIDGE is not set
401# CONFIG_NET_DSA is not set
391# CONFIG_VLAN_8021Q is not set 402# CONFIG_VLAN_8021Q is not set
392# CONFIG_DECNET is not set 403# CONFIG_DECNET is not set
393# CONFIG_LLC2 is not set 404# CONFIG_LLC2 is not set
@@ -397,27 +408,24 @@ CONFIG_NF_CONNTRACK_PROC_COMPAT=y
397# CONFIG_LAPB is not set 408# CONFIG_LAPB is not set
398# CONFIG_ECONET is not set 409# CONFIG_ECONET is not set
399# CONFIG_WAN_ROUTER is not set 410# CONFIG_WAN_ROUTER is not set
400 411# CONFIG_PHONET is not set
401# 412# CONFIG_IEEE802154 is not set
402# QoS and/or fair queueing
403#
404# CONFIG_NET_SCHED is not set 413# CONFIG_NET_SCHED is not set
405CONFIG_NET_CLS_ROUTE=y 414# CONFIG_DCB is not set
406 415
407# 416#
408# Network testing 417# Network testing
409# 418#
410# CONFIG_NET_PKTGEN is not set 419# CONFIG_NET_PKTGEN is not set
411# CONFIG_HAMRADIO is not set 420# CONFIG_HAMRADIO is not set
421# CONFIG_CAN is not set
412# CONFIG_IRDA is not set 422# CONFIG_IRDA is not set
413# CONFIG_BT is not set 423# CONFIG_BT is not set
414CONFIG_IEEE80211=m 424# CONFIG_AF_RXRPC is not set
415# CONFIG_IEEE80211_DEBUG is not set 425# CONFIG_WIRELESS is not set
416CONFIG_IEEE80211_CRYPT_WEP=m 426# CONFIG_WIMAX is not set
417CONFIG_IEEE80211_CRYPT_CCMP=m 427# CONFIG_RFKILL is not set
418CONFIG_IEEE80211_SOFTMAC=m 428# CONFIG_NET_9P is not set
419# CONFIG_IEEE80211_SOFTMAC_DEBUG is not set
420CONFIG_WIRELESS_EXT=y
421 429
422# 430#
423# Device Drivers 431# Device Drivers
@@ -426,25 +434,25 @@ CONFIG_WIRELESS_EXT=y
426# 434#
427# Generic Driver Options 435# Generic Driver Options
428# 436#
437CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
438# CONFIG_DEVTMPFS is not set
429CONFIG_STANDALONE=y 439CONFIG_STANDALONE=y
430CONFIG_PREVENT_FIRMWARE_BUILD=y 440CONFIG_PREVENT_FIRMWARE_BUILD=y
431# CONFIG_FW_LOADER is not set 441CONFIG_FW_LOADER=y
442CONFIG_FIRMWARE_IN_KERNEL=y
443CONFIG_EXTRA_FIRMWARE=""
444# CONFIG_DEBUG_DRIVER is not set
445# CONFIG_DEBUG_DEVRES is not set
432# CONFIG_SYS_HYPERVISOR is not set 446# CONFIG_SYS_HYPERVISOR is not set
433 447# CONFIG_CONNECTOR is not set
434#
435# Connector - unified userspace <-> kernelspace linker
436#
437CONFIG_CONNECTOR=m
438
439#
440# Memory Technology Devices (MTD)
441#
442CONFIG_MTD=y 448CONFIG_MTD=y
443# CONFIG_MTD_DEBUG is not set 449# CONFIG_MTD_DEBUG is not set
450# CONFIG_MTD_TESTS is not set
444# CONFIG_MTD_CONCAT is not set 451# CONFIG_MTD_CONCAT is not set
445CONFIG_MTD_PARTITIONS=y 452CONFIG_MTD_PARTITIONS=y
446# CONFIG_MTD_REDBOOT_PARTS is not set 453# CONFIG_MTD_REDBOOT_PARTS is not set
447# CONFIG_MTD_CMDLINE_PARTS is not set 454# CONFIG_MTD_CMDLINE_PARTS is not set
455# CONFIG_MTD_AR7_PARTS is not set
448 456
449# 457#
450# User Modules And Translation Layers 458# User Modules And Translation Layers
@@ -457,6 +465,7 @@ CONFIG_MTD_BLOCK=y
457# CONFIG_INFTL is not set 465# CONFIG_INFTL is not set
458# CONFIG_RFD_FTL is not set 466# CONFIG_RFD_FTL is not set
459# CONFIG_SSFDC is not set 467# CONFIG_SSFDC is not set
468# CONFIG_MTD_OOPS is not set
460 469
461# 470#
462# RAM/ROM/Flash chip drivers 471# RAM/ROM/Flash chip drivers
@@ -482,14 +491,13 @@ CONFIG_MTD_CFI_UTIL=y
482# CONFIG_MTD_RAM is not set 491# CONFIG_MTD_RAM is not set
483# CONFIG_MTD_ROM is not set 492# CONFIG_MTD_ROM is not set
484# CONFIG_MTD_ABSENT is not set 493# CONFIG_MTD_ABSENT is not set
485# CONFIG_MTD_OBSOLETE_CHIPS is not set
486 494
487# 495#
488# Mapping drivers for chip access 496# Mapping drivers for chip access
489# 497#
490# CONFIG_MTD_COMPLEX_MAPPINGS is not set 498# CONFIG_MTD_COMPLEX_MAPPINGS is not set
491# CONFIG_MTD_PHYSMAP is not set 499CONFIG_MTD_PHYSMAP=y
492CONFIG_MTD_ALCHEMY=y 500# CONFIG_MTD_PHYSMAP_COMPAT is not set
493# CONFIG_MTD_PLATRAM is not set 501# CONFIG_MTD_PLATRAM is not set
494 502
495# 503#
@@ -506,161 +514,123 @@ CONFIG_MTD_ALCHEMY=y
506# CONFIG_MTD_DOC2000 is not set 514# CONFIG_MTD_DOC2000 is not set
507# CONFIG_MTD_DOC2001 is not set 515# CONFIG_MTD_DOC2001 is not set
508# CONFIG_MTD_DOC2001PLUS is not set 516# CONFIG_MTD_DOC2001PLUS is not set
509
510#
511# NAND Flash Device Drivers
512#
513# CONFIG_MTD_NAND is not set 517# CONFIG_MTD_NAND is not set
514
515#
516# OneNAND Flash Device Drivers
517#
518# CONFIG_MTD_ONENAND is not set 518# CONFIG_MTD_ONENAND is not set
519 519
520# 520#
521# Parallel port support 521# LPDDR flash memory drivers
522# 522#
523# CONFIG_PARPORT is not set 523# CONFIG_MTD_LPDDR is not set
524 524
525# 525#
526# Plug and Play support 526# UBI - Unsorted block images
527#
528# CONFIG_PNPACPI is not set
529
530# 527#
531# Block devices 528# CONFIG_MTD_UBI is not set
532# 529# CONFIG_PARPORT is not set
533# CONFIG_BLK_DEV_COW_COMMON is not set 530# CONFIG_BLK_DEV is not set
534CONFIG_BLK_DEV_LOOP=y 531# CONFIG_MISC_DEVICES is not set
535# CONFIG_BLK_DEV_CRYPTOLOOP is not set 532CONFIG_HAVE_IDE=y
536# CONFIG_BLK_DEV_NBD is not set 533CONFIG_IDE=y
537# CONFIG_BLK_DEV_RAM is not set
538# CONFIG_BLK_DEV_INITRD is not set
539CONFIG_CDROM_PKTCDVD=m
540CONFIG_CDROM_PKTCDVD_BUFFERS=8
541# CONFIG_CDROM_PKTCDVD_WCACHE is not set
542CONFIG_ATA_OVER_ETH=m
543 534
544# 535#
545# Misc devices 536# Please see Documentation/ide/ide.txt for help/info on IDE drives
546# 537#
538# CONFIG_BLK_DEV_IDE_SATA is not set
539CONFIG_IDE_GD=y
540CONFIG_IDE_GD_ATA=y
541# CONFIG_IDE_GD_ATAPI is not set
542# CONFIG_BLK_DEV_IDECS is not set
543# CONFIG_BLK_DEV_IDECD is not set
544# CONFIG_BLK_DEV_IDETAPE is not set
545CONFIG_IDE_TASK_IOCTL=y
546CONFIG_IDE_PROC_FS=y
547 547
548# 548#
549# ATA/ATAPI/MFM/RLL support 549# IDE chipset support/bugfixes
550# 550#
551# CONFIG_IDE is not set 551# CONFIG_IDE_GENERIC is not set
552# CONFIG_BLK_DEV_PLATFORM is not set
553# CONFIG_BLK_DEV_IDEDMA is not set
552 554
553# 555#
554# SCSI device support 556# SCSI device support
555# 557#
556CONFIG_RAID_ATTRS=m 558# CONFIG_RAID_ATTRS is not set
557# CONFIG_SCSI is not set 559# CONFIG_SCSI is not set
560# CONFIG_SCSI_DMA is not set
558# CONFIG_SCSI_NETLINK is not set 561# CONFIG_SCSI_NETLINK is not set
559
560#
561# Serial ATA (prod) and Parallel ATA (experimental) drivers
562#
563# CONFIG_ATA is not set 562# CONFIG_ATA is not set
564
565#
566# Multi-device support (RAID and LVM)
567#
568# CONFIG_MD is not set 563# CONFIG_MD is not set
569
570#
571# Fusion MPT device support
572#
573# CONFIG_FUSION is not set
574
575#
576# IEEE 1394 (FireWire) support
577#
578
579#
580# I2O device support
581#
582
583#
584# Network device support
585#
586CONFIG_NETDEVICES=y 564CONFIG_NETDEVICES=y
587# CONFIG_DUMMY is not set 565# CONFIG_DUMMY is not set
588# CONFIG_BONDING is not set 566# CONFIG_BONDING is not set
567# CONFIG_MACVLAN is not set
589# CONFIG_EQUALIZER is not set 568# CONFIG_EQUALIZER is not set
590# CONFIG_TUN is not set 569# CONFIG_TUN is not set
591 570# CONFIG_VETH is not set
592#
593# PHY device support
594#
595CONFIG_PHYLIB=y 571CONFIG_PHYLIB=y
596 572
597# 573#
598# MII PHY device drivers 574# MII PHY device drivers
599# 575#
600CONFIG_MARVELL_PHY=m 576CONFIG_MARVELL_PHY=y
601CONFIG_DAVICOM_PHY=m 577CONFIG_DAVICOM_PHY=y
602CONFIG_QSEMI_PHY=m 578CONFIG_QSEMI_PHY=y
603CONFIG_LXT_PHY=m 579CONFIG_LXT_PHY=y
604CONFIG_CICADA_PHY=m 580CONFIG_CICADA_PHY=y
605CONFIG_VITESSE_PHY=m 581CONFIG_VITESSE_PHY=y
606CONFIG_SMSC_PHY=m 582CONFIG_SMSC_PHY=y
607# CONFIG_BROADCOM_PHY is not set 583CONFIG_BROADCOM_PHY=y
584CONFIG_ICPLUS_PHY=y
585CONFIG_REALTEK_PHY=y
586CONFIG_NATIONAL_PHY=y
587CONFIG_STE10XP=y
588CONFIG_LSI_ET1011C_PHY=y
608# CONFIG_FIXED_PHY is not set 589# CONFIG_FIXED_PHY is not set
609 590# CONFIG_MDIO_BITBANG is not set
610#
611# Ethernet (10 or 100Mbit)
612#
613CONFIG_NET_ETHERNET=y 591CONFIG_NET_ETHERNET=y
614CONFIG_MII=m 592CONFIG_MII=y
593# CONFIG_AX88796 is not set
615CONFIG_MIPS_AU1X00_ENET=y 594CONFIG_MIPS_AU1X00_ENET=y
616# CONFIG_SMC91X is not set 595# CONFIG_SMC91X is not set
617# CONFIG_DM9000 is not set 596# CONFIG_DM9000 is not set
618 597# CONFIG_ETHOC is not set
619# 598# CONFIG_SMSC911X is not set
620# Ethernet (1000 Mbit) 599# CONFIG_DNET is not set
621# 600# CONFIG_IBM_NEW_EMAC_ZMII is not set
622 601# CONFIG_IBM_NEW_EMAC_RGMII is not set
623# 602# CONFIG_IBM_NEW_EMAC_TAH is not set
624# Ethernet (10000 Mbit) 603# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
625# 604# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
626 605# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
627# 606# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
628# Token Ring devices 607# CONFIG_B44 is not set
629# 608# CONFIG_KS8842 is not set
630 609# CONFIG_KS8851_MLL is not set
631# 610# CONFIG_NETDEV_1000 is not set
632# Wireless LAN (non-hamradio) 611# CONFIG_NETDEV_10000 is not set
633# 612# CONFIG_WLAN is not set
634# CONFIG_NET_RADIO is not set 613
635 614#
636# 615# Enable WiMAX (Networking options) to see the WiMAX drivers
637# Wan interfaces 616#
638# 617
618#
619# USB Network Adapters
620#
621# CONFIG_USB_CATC is not set
622# CONFIG_USB_KAWETH is not set
623# CONFIG_USB_PEGASUS is not set
624# CONFIG_USB_RTL8150 is not set
625# CONFIG_USB_USBNET is not set
626# CONFIG_NET_PCMCIA is not set
639# CONFIG_WAN is not set 627# CONFIG_WAN is not set
640CONFIG_PPP=m 628# CONFIG_PPP is not set
641CONFIG_PPP_MULTILINK=y
642# CONFIG_PPP_FILTER is not set
643CONFIG_PPP_ASYNC=m
644# CONFIG_PPP_SYNC_TTY is not set
645CONFIG_PPP_DEFLATE=m
646# CONFIG_PPP_BSDCOMP is not set
647CONFIG_PPP_MPPE=m
648CONFIG_PPPOE=m
649# CONFIG_SLIP is not set 629# CONFIG_SLIP is not set
650CONFIG_SLHC=m
651# CONFIG_SHAPER is not set
652# CONFIG_NETCONSOLE is not set 630# CONFIG_NETCONSOLE is not set
653# CONFIG_NETPOLL is not set 631# CONFIG_NETPOLL is not set
654# CONFIG_NET_POLL_CONTROLLER is not set 632# CONFIG_NET_POLL_CONTROLLER is not set
655
656#
657# ISDN subsystem
658#
659# CONFIG_ISDN is not set 633# CONFIG_ISDN is not set
660
661#
662# Telephony Support
663#
664# CONFIG_PHONE is not set 634# CONFIG_PHONE is not set
665 635
666# 636#
@@ -668,16 +638,14 @@ CONFIG_SLHC=m
668# 638#
669CONFIG_INPUT=y 639CONFIG_INPUT=y
670# CONFIG_INPUT_FF_MEMLESS is not set 640# CONFIG_INPUT_FF_MEMLESS is not set
641# CONFIG_INPUT_POLLDEV is not set
642# CONFIG_INPUT_SPARSEKMAP is not set
671 643
672# 644#
673# Userland interfaces 645# Userland interfaces
674# 646#
675CONFIG_INPUT_MOUSEDEV=y 647# CONFIG_INPUT_MOUSEDEV is not set
676CONFIG_INPUT_MOUSEDEV_PSAUX=y
677CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
678CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
679# CONFIG_INPUT_JOYDEV is not set 648# CONFIG_INPUT_JOYDEV is not set
680# CONFIG_INPUT_TSDEV is not set
681CONFIG_INPUT_EVDEV=y 649CONFIG_INPUT_EVDEV=y
682# CONFIG_INPUT_EVBUG is not set 650# CONFIG_INPUT_EVBUG is not set
683 651
@@ -687,34 +655,33 @@ CONFIG_INPUT_EVDEV=y
687# CONFIG_INPUT_KEYBOARD is not set 655# CONFIG_INPUT_KEYBOARD is not set
688# CONFIG_INPUT_MOUSE is not set 656# CONFIG_INPUT_MOUSE is not set
689# CONFIG_INPUT_JOYSTICK is not set 657# CONFIG_INPUT_JOYSTICK is not set
658# CONFIG_INPUT_TABLET is not set
690# CONFIG_INPUT_TOUCHSCREEN is not set 659# CONFIG_INPUT_TOUCHSCREEN is not set
691# CONFIG_INPUT_MISC is not set 660# CONFIG_INPUT_MISC is not set
692 661
693# 662#
694# Hardware I/O ports 663# Hardware I/O ports
695# 664#
696CONFIG_SERIO=y 665# CONFIG_SERIO is not set
697# CONFIG_SERIO_I8042 is not set
698CONFIG_SERIO_SERPORT=y
699CONFIG_SERIO_LIBPS2=m
700CONFIG_SERIO_RAW=m
701# CONFIG_GAMEPORT is not set 666# CONFIG_GAMEPORT is not set
702 667
703# 668#
704# Character devices 669# Character devices
705# 670#
706CONFIG_VT=y 671CONFIG_VT=y
672CONFIG_CONSOLE_TRANSLATIONS=y
707CONFIG_VT_CONSOLE=y 673CONFIG_VT_CONSOLE=y
708CONFIG_HW_CONSOLE=y 674CONFIG_HW_CONSOLE=y
709CONFIG_VT_HW_CONSOLE_BINDING=y 675CONFIG_VT_HW_CONSOLE_BINDING=y
676CONFIG_DEVKMEM=y
710# CONFIG_SERIAL_NONSTANDARD is not set 677# CONFIG_SERIAL_NONSTANDARD is not set
711# CONFIG_AU1X00_GPIO is not set
712 678
713# 679#
714# Serial drivers 680# Serial drivers
715# 681#
716CONFIG_SERIAL_8250=y 682CONFIG_SERIAL_8250=y
717CONFIG_SERIAL_8250_CONSOLE=y 683CONFIG_SERIAL_8250_CONSOLE=y
684# CONFIG_SERIAL_8250_CS is not set
718CONFIG_SERIAL_8250_NR_UARTS=4 685CONFIG_SERIAL_8250_NR_UARTS=4
719CONFIG_SERIAL_8250_RUNTIME_UARTS=4 686CONFIG_SERIAL_8250_RUNTIME_UARTS=4
720# CONFIG_SERIAL_8250_EXTENDED is not set 687# CONFIG_SERIAL_8250_EXTENDED is not set
@@ -726,78 +693,91 @@ CONFIG_SERIAL_8250_AU1X00=y
726CONFIG_SERIAL_CORE=y 693CONFIG_SERIAL_CORE=y
727CONFIG_SERIAL_CORE_CONSOLE=y 694CONFIG_SERIAL_CORE_CONSOLE=y
728CONFIG_UNIX98_PTYS=y 695CONFIG_UNIX98_PTYS=y
729CONFIG_LEGACY_PTYS=y 696# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
730CONFIG_LEGACY_PTY_COUNT=256 697# CONFIG_LEGACY_PTYS is not set
731
732#
733# IPMI
734#
735# CONFIG_IPMI_HANDLER is not set 698# CONFIG_IPMI_HANDLER is not set
736
737#
738# Watchdog Cards
739#
740# CONFIG_WATCHDOG is not set
741# CONFIG_HW_RANDOM is not set 699# CONFIG_HW_RANDOM is not set
742# CONFIG_RTC is not set
743# CONFIG_GEN_RTC is not set
744# CONFIG_DTLK is not set
745# CONFIG_R3964 is not set 700# CONFIG_R3964 is not set
746# CONFIG_RAW_DRIVER is not set
747 701
748# 702#
749# TPM devices 703# PCMCIA character devices
750# 704#
705# CONFIG_SYNCLINK_CS is not set
706# CONFIG_CARDMAN_4000 is not set
707# CONFIG_CARDMAN_4040 is not set
708# CONFIG_IPWIRELESS is not set
709# CONFIG_RAW_DRIVER is not set
751# CONFIG_TCG_TPM is not set 710# CONFIG_TCG_TPM is not set
752
753#
754# I2C support
755#
756# CONFIG_I2C is not set 711# CONFIG_I2C is not set
757
758#
759# SPI support
760#
761# CONFIG_SPI is not set 712# CONFIG_SPI is not set
762# CONFIG_SPI_MASTER is not set
763 713
764# 714#
765# Dallas's 1-wire bus 715# PPS support
766# 716#
717# CONFIG_PPS is not set
718CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
719# CONFIG_GPIOLIB is not set
767# CONFIG_W1 is not set 720# CONFIG_W1 is not set
768 721# CONFIG_POWER_SUPPLY is not set
769#
770# Hardware Monitoring support
771#
772# CONFIG_HWMON is not set 722# CONFIG_HWMON is not set
773# CONFIG_HWMON_VID is not set 723# CONFIG_THERMAL is not set
724# CONFIG_WATCHDOG is not set
725CONFIG_SSB_POSSIBLE=y
774 726
775# 727#
776# Multimedia devices 728# Sonics Silicon Backplane
777# 729#
778# CONFIG_VIDEO_DEV is not set 730# CONFIG_SSB is not set
779 731
780# 732#
781# Digital Video Broadcasting Devices 733# Multifunction device drivers
782# 734#
783# CONFIG_DVB is not set 735# CONFIG_MFD_CORE is not set
736# CONFIG_MFD_SM501 is not set
737# CONFIG_HTC_PASIC3 is not set
738# CONFIG_MFD_TMIO is not set
739# CONFIG_REGULATOR is not set
740# CONFIG_MEDIA_SUPPORT is not set
784 741
785# 742#
786# Graphics support 743# Graphics support
787# 744#
788# CONFIG_FIRMWARE_EDID is not set 745# CONFIG_VGASTATE is not set
746# CONFIG_VIDEO_OUTPUT_CONTROL is not set
789CONFIG_FB=y 747CONFIG_FB=y
748# CONFIG_FIRMWARE_EDID is not set
749# CONFIG_FB_DDC is not set
750# CONFIG_FB_BOOT_VESA_SUPPORT is not set
790CONFIG_FB_CFB_FILLRECT=y 751CONFIG_FB_CFB_FILLRECT=y
791CONFIG_FB_CFB_COPYAREA=y 752CONFIG_FB_CFB_COPYAREA=y
792CONFIG_FB_CFB_IMAGEBLIT=y 753CONFIG_FB_CFB_IMAGEBLIT=y
754# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
755# CONFIG_FB_SYS_FILLRECT is not set
756# CONFIG_FB_SYS_COPYAREA is not set
757# CONFIG_FB_SYS_IMAGEBLIT is not set
758# CONFIG_FB_FOREIGN_ENDIAN is not set
759# CONFIG_FB_SYS_FOPS is not set
793# CONFIG_FB_SVGALIB is not set 760# CONFIG_FB_SVGALIB is not set
794# CONFIG_FB_MACMODES is not set 761# CONFIG_FB_MACMODES is not set
795# CONFIG_FB_BACKLIGHT is not set 762# CONFIG_FB_BACKLIGHT is not set
796# CONFIG_FB_MODE_HELPERS is not set 763# CONFIG_FB_MODE_HELPERS is not set
797# CONFIG_FB_TILEBLITTING is not set 764# CONFIG_FB_TILEBLITTING is not set
765
766#
767# Frame buffer hardware drivers
768#
798# CONFIG_FB_S1D13XXX is not set 769# CONFIG_FB_S1D13XXX is not set
799CONFIG_FB_AU1100=y 770CONFIG_FB_AU1100=y
800# CONFIG_FB_VIRTUAL is not set 771# CONFIG_FB_VIRTUAL is not set
772# CONFIG_FB_METRONOME is not set
773# CONFIG_FB_MB862XX is not set
774# CONFIG_FB_BROADSHEET is not set
775# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
776
777#
778# Display device support
779#
780# CONFIG_DISPLAY_SUPPORT is not set
801 781
802# 782#
803# Console display driver support 783# Console display driver support
@@ -805,9 +785,10 @@ CONFIG_FB_AU1100=y
805# CONFIG_VGA_CONSOLE is not set 785# CONFIG_VGA_CONSOLE is not set
806CONFIG_DUMMY_CONSOLE=y 786CONFIG_DUMMY_CONSOLE=y
807CONFIG_FRAMEBUFFER_CONSOLE=y 787CONFIG_FRAMEBUFFER_CONSOLE=y
788# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
808# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set 789# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
809CONFIG_FONTS=y 790CONFIG_FONTS=y
810CONFIG_FONT_8x8=y 791# CONFIG_FONT_8x8 is not set
811CONFIG_FONT_8x16=y 792CONFIG_FONT_8x16=y
812# CONFIG_FONT_6x11 is not set 793# CONFIG_FONT_6x11 is not set
813# CONFIG_FONT_7x14 is not set 794# CONFIG_FONT_7x14 is not set
@@ -817,132 +798,186 @@ CONFIG_FONT_8x16=y
817# CONFIG_FONT_SUN8x16 is not set 798# CONFIG_FONT_SUN8x16 is not set
818# CONFIG_FONT_SUN12x22 is not set 799# CONFIG_FONT_SUN12x22 is not set
819# CONFIG_FONT_10x18 is not set 800# CONFIG_FONT_10x18 is not set
820 801# CONFIG_LOGO is not set
821#
822# Logo configuration
823#
824CONFIG_LOGO=y
825CONFIG_LOGO_LINUX_MONO=y
826CONFIG_LOGO_LINUX_VGA16=y
827CONFIG_LOGO_LINUX_CLUT224=y
828# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
829
830#
831# Sound
832#
833# CONFIG_SOUND is not set 802# CONFIG_SOUND is not set
834 803# CONFIG_HID_SUPPORT is not set
835# 804CONFIG_USB_SUPPORT=y
836# HID Devices
837#
838# CONFIG_HID is not set
839
840#
841# USB support
842#
843CONFIG_USB_ARCH_HAS_HCD=y 805CONFIG_USB_ARCH_HAS_HCD=y
844CONFIG_USB_ARCH_HAS_OHCI=y 806CONFIG_USB_ARCH_HAS_OHCI=y
845# CONFIG_USB_ARCH_HAS_EHCI is not set 807# CONFIG_USB_ARCH_HAS_EHCI is not set
846# CONFIG_USB is not set 808CONFIG_USB=y
809# CONFIG_USB_DEBUG is not set
810# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
847 811
848# 812#
849# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 813# Miscellaneous USB options
850# 814#
815# CONFIG_USB_DEVICEFS is not set
816# CONFIG_USB_DEVICE_CLASS is not set
817CONFIG_USB_DYNAMIC_MINORS=y
818CONFIG_USB_SUSPEND=y
819# CONFIG_USB_OTG is not set
820# CONFIG_USB_OTG_WHITELIST is not set
821# CONFIG_USB_OTG_BLACKLIST_HUB is not set
822# CONFIG_USB_MON is not set
823# CONFIG_USB_WUSB is not set
824# CONFIG_USB_WUSB_CBAF is not set
851 825
852# 826#
853# USB Gadget Support 827# USB Host Controller Drivers
854# 828#
855# CONFIG_USB_GADGET is not set 829# CONFIG_USB_C67X00_HCD is not set
830# CONFIG_USB_OXU210HP_HCD is not set
831# CONFIG_USB_ISP116X_HCD is not set
832# CONFIG_USB_ISP1760_HCD is not set
833# CONFIG_USB_ISP1362_HCD is not set
834CONFIG_USB_OHCI_HCD=y
835# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
836# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
837CONFIG_USB_OHCI_LITTLE_ENDIAN=y
838# CONFIG_USB_SL811_HCD is not set
839# CONFIG_USB_R8A66597_HCD is not set
840# CONFIG_USB_HWA_HCD is not set
856 841
857# 842#
858# MMC/SD Card support 843# USB Device Class drivers
859# 844#
860# CONFIG_MMC is not set 845# CONFIG_USB_ACM is not set
846# CONFIG_USB_PRINTER is not set
847# CONFIG_USB_WDM is not set
848# CONFIG_USB_TMC is not set
861 849
862# 850#
863# LED devices 851# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
864# 852#
865# CONFIG_NEW_LEDS is not set
866 853
867# 854#
868# LED drivers 855# also be needed; see USB_STORAGE Help for more info
869# 856#
857# CONFIG_USB_LIBUSUAL is not set
870 858
871# 859#
872# LED Triggers 860# USB Imaging devices
873# 861#
862# CONFIG_USB_MDC800 is not set
874 863
875# 864#
876# InfiniBand support 865# USB port drivers
877# 866#
867# CONFIG_USB_SERIAL is not set
878 868
879# 869#
880# EDAC - error detection and reporting (RAS) (EXPERIMENTAL) 870# USB Miscellaneous drivers
881# 871#
872# CONFIG_USB_EMI62 is not set
873# CONFIG_USB_EMI26 is not set
874# CONFIG_USB_ADUTUX is not set
875# CONFIG_USB_SEVSEG is not set
876# CONFIG_USB_RIO500 is not set
877# CONFIG_USB_LEGOTOWER is not set
878# CONFIG_USB_LCD is not set
879# CONFIG_USB_BERRY_CHARGE is not set
880# CONFIG_USB_LED is not set
881# CONFIG_USB_CYPRESS_CY7C63 is not set
882# CONFIG_USB_CYTHERM is not set
883# CONFIG_USB_IDMOUSE is not set
884# CONFIG_USB_FTDI_ELAN is not set
885# CONFIG_USB_APPLEDISPLAY is not set
886# CONFIG_USB_LD is not set
887# CONFIG_USB_TRANCEVIBRATOR is not set
888# CONFIG_USB_IOWARRIOR is not set
889# CONFIG_USB_TEST is not set
890# CONFIG_USB_ISIGHTFW is not set
891# CONFIG_USB_VST is not set
892# CONFIG_USB_GADGET is not set
882 893
883# 894#
884# Real Time Clock 895# OTG and related infrastructure
885# 896#
886# CONFIG_RTC_CLASS is not set 897# CONFIG_USB_GPIO_VBUS is not set
898# CONFIG_NOP_USB_XCEIV is not set
899# CONFIG_MMC is not set
900# CONFIG_MEMSTICK is not set
901# CONFIG_NEW_LEDS is not set
902# CONFIG_ACCESSIBILITY is not set
903CONFIG_RTC_LIB=y
904CONFIG_RTC_CLASS=y
905CONFIG_RTC_HCTOSYS=y
906CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
907# CONFIG_RTC_DEBUG is not set
887 908
888# 909#
889# DMA Engine support 910# RTC interfaces
890# 911#
891# CONFIG_DMA_ENGINE is not set 912CONFIG_RTC_INTF_SYSFS=y
913CONFIG_RTC_INTF_PROC=y
914CONFIG_RTC_INTF_DEV=y
915# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
916# CONFIG_RTC_DRV_TEST is not set
892 917
893# 918#
894# DMA Clients 919# SPI RTC drivers
895# 920#
896 921
897# 922#
898# DMA Devices 923# Platform RTC drivers
899# 924#
925# CONFIG_RTC_DRV_CMOS is not set
926# CONFIG_RTC_DRV_DS1286 is not set
927# CONFIG_RTC_DRV_DS1511 is not set
928# CONFIG_RTC_DRV_DS1553 is not set
929# CONFIG_RTC_DRV_DS1742 is not set
930# CONFIG_RTC_DRV_STK17TA8 is not set
931# CONFIG_RTC_DRV_M48T86 is not set
932# CONFIG_RTC_DRV_M48T35 is not set
933# CONFIG_RTC_DRV_M48T59 is not set
934# CONFIG_RTC_DRV_MSM6242 is not set
935# CONFIG_RTC_DRV_BQ4802 is not set
936# CONFIG_RTC_DRV_RP5C01 is not set
937# CONFIG_RTC_DRV_V3020 is not set
900 938
901# 939#
902# Auxiliary Display support 940# on-CPU RTC drivers
903# 941#
942CONFIG_RTC_DRV_AU1XXX=y
943# CONFIG_DMADEVICES is not set
944# CONFIG_AUXDISPLAY is not set
945# CONFIG_UIO is not set
904 946
905# 947#
906# Virtualization 948# TI VLYNQ
907# 949#
950# CONFIG_STAGING is not set
908 951
909# 952#
910# File systems 953# File systems
911# 954#
912CONFIG_EXT2_FS=y 955CONFIG_EXT2_FS=y
913CONFIG_EXT2_FS_XATTR=y 956# CONFIG_EXT2_FS_XATTR is not set
914CONFIG_EXT2_FS_POSIX_ACL=y
915# CONFIG_EXT2_FS_SECURITY is not set
916# CONFIG_EXT2_FS_XIP is not set 957# CONFIG_EXT2_FS_XIP is not set
917CONFIG_EXT3_FS=y 958# CONFIG_EXT3_FS is not set
918CONFIG_EXT3_FS_XATTR=y 959# CONFIG_EXT4_FS is not set
919CONFIG_EXT3_FS_POSIX_ACL=y 960# CONFIG_REISERFS_FS is not set
920CONFIG_EXT3_FS_SECURITY=y
921# CONFIG_EXT4DEV_FS is not set
922CONFIG_JBD=y
923# CONFIG_JBD_DEBUG is not set
924CONFIG_FS_MBCACHE=y
925CONFIG_REISERFS_FS=m
926# CONFIG_REISERFS_CHECK is not set
927# CONFIG_REISERFS_PROC_INFO is not set
928CONFIG_REISERFS_FS_XATTR=y
929CONFIG_REISERFS_FS_POSIX_ACL=y
930CONFIG_REISERFS_FS_SECURITY=y
931# CONFIG_JFS_FS is not set 961# CONFIG_JFS_FS is not set
932CONFIG_FS_POSIX_ACL=y 962CONFIG_FS_POSIX_ACL=y
933# CONFIG_XFS_FS is not set 963# CONFIG_XFS_FS is not set
934# CONFIG_GFS2_FS is not set
935# CONFIG_OCFS2_FS is not set 964# CONFIG_OCFS2_FS is not set
936# CONFIG_MINIX_FS is not set 965# CONFIG_BTRFS_FS is not set
937# CONFIG_ROMFS_FS is not set 966# CONFIG_NILFS2_FS is not set
967CONFIG_FILE_LOCKING=y
968CONFIG_FSNOTIFY=y
969CONFIG_DNOTIFY=y
938CONFIG_INOTIFY=y 970CONFIG_INOTIFY=y
939CONFIG_INOTIFY_USER=y 971CONFIG_INOTIFY_USER=y
940# CONFIG_QUOTA is not set 972# CONFIG_QUOTA is not set
941CONFIG_DNOTIFY=y 973# CONFIG_AUTOFS_FS is not set
942CONFIG_AUTOFS_FS=m 974# CONFIG_AUTOFS4_FS is not set
943CONFIG_AUTOFS4_FS=m 975# CONFIG_FUSE_FS is not set
944CONFIG_FUSE_FS=m 976
945CONFIG_GENERIC_ACL=y 977#
978# Caches
979#
980# CONFIG_FSCACHE is not set
946 981
947# 982#
948# CD-ROM/DVD Filesystems 983# CD-ROM/DVD Filesystems
@@ -961,69 +996,76 @@ CONFIG_GENERIC_ACL=y
961# Pseudo filesystems 996# Pseudo filesystems
962# 997#
963CONFIG_PROC_FS=y 998CONFIG_PROC_FS=y
964CONFIG_PROC_KCORE=y 999# CONFIG_PROC_KCORE is not set
965CONFIG_PROC_SYSCTL=y 1000CONFIG_PROC_SYSCTL=y
1001# CONFIG_PROC_PAGE_MONITOR is not set
966CONFIG_SYSFS=y 1002CONFIG_SYSFS=y
967CONFIG_TMPFS=y 1003CONFIG_TMPFS=y
968CONFIG_TMPFS_POSIX_ACL=y 1004# CONFIG_TMPFS_POSIX_ACL is not set
969# CONFIG_HUGETLB_PAGE is not set 1005# CONFIG_HUGETLB_PAGE is not set
970CONFIG_RAMFS=y 1006# CONFIG_CONFIGFS_FS is not set
971CONFIG_CONFIGFS_FS=m 1007CONFIG_MISC_FILESYSTEMS=y
972
973#
974# Miscellaneous filesystems
975#
976# CONFIG_ADFS_FS is not set 1008# CONFIG_ADFS_FS is not set
977# CONFIG_AFFS_FS is not set 1009# CONFIG_AFFS_FS is not set
978# CONFIG_ECRYPT_FS is not set
979# CONFIG_HFS_FS is not set 1010# CONFIG_HFS_FS is not set
980# CONFIG_HFSPLUS_FS is not set 1011# CONFIG_HFSPLUS_FS is not set
981# CONFIG_BEFS_FS is not set 1012# CONFIG_BEFS_FS is not set
982# CONFIG_BFS_FS is not set 1013# CONFIG_BFS_FS is not set
983# CONFIG_EFS_FS is not set 1014# CONFIG_EFS_FS is not set
984# CONFIG_JFFS2_FS is not set 1015CONFIG_JFFS2_FS=y
985CONFIG_CRAMFS=m 1016CONFIG_JFFS2_FS_DEBUG=0
1017CONFIG_JFFS2_FS_WRITEBUFFER=y
1018# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
1019CONFIG_JFFS2_SUMMARY=y
1020CONFIG_JFFS2_FS_XATTR=y
1021CONFIG_JFFS2_FS_POSIX_ACL=y
1022CONFIG_JFFS2_FS_SECURITY=y
1023CONFIG_JFFS2_COMPRESSION_OPTIONS=y
1024CONFIG_JFFS2_ZLIB=y
1025CONFIG_JFFS2_LZO=y
1026CONFIG_JFFS2_RTIME=y
1027CONFIG_JFFS2_RUBIN=y
1028# CONFIG_JFFS2_CMODE_NONE is not set
1029CONFIG_JFFS2_CMODE_PRIORITY=y
1030# CONFIG_JFFS2_CMODE_SIZE is not set
1031# CONFIG_JFFS2_CMODE_FAVOURLZO is not set
1032# CONFIG_CRAMFS is not set
1033CONFIG_SQUASHFS=y
1034# CONFIG_SQUASHFS_EMBEDDED is not set
1035CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
986# CONFIG_VXFS_FS is not set 1036# CONFIG_VXFS_FS is not set
1037# CONFIG_MINIX_FS is not set
1038# CONFIG_OMFS_FS is not set
987# CONFIG_HPFS_FS is not set 1039# CONFIG_HPFS_FS is not set
988# CONFIG_QNX4FS_FS is not set 1040# CONFIG_QNX4FS_FS is not set
1041# CONFIG_ROMFS_FS is not set
989# CONFIG_SYSV_FS is not set 1042# CONFIG_SYSV_FS is not set
990# CONFIG_UFS_FS is not set 1043# CONFIG_UFS_FS is not set
991 1044CONFIG_NETWORK_FILESYSTEMS=y
992#
993# Network File Systems
994#
995CONFIG_NFS_FS=y 1045CONFIG_NFS_FS=y
996# CONFIG_NFS_V3 is not set 1046CONFIG_NFS_V3=y
1047# CONFIG_NFS_V3_ACL is not set
997# CONFIG_NFS_V4 is not set 1048# CONFIG_NFS_V4 is not set
998# CONFIG_NFS_DIRECTIO is not set
999CONFIG_NFSD=m
1000# CONFIG_NFSD_V3 is not set
1001# CONFIG_NFSD_TCP is not set
1002CONFIG_ROOT_NFS=y 1049CONFIG_ROOT_NFS=y
1050# CONFIG_NFSD is not set
1003CONFIG_LOCKD=y 1051CONFIG_LOCKD=y
1004CONFIG_EXPORTFS=m 1052CONFIG_LOCKD_V4=y
1005CONFIG_NFS_COMMON=y 1053CONFIG_NFS_COMMON=y
1006CONFIG_SUNRPC=y 1054CONFIG_SUNRPC=y
1007# CONFIG_RPCSEC_GSS_KRB5 is not set 1055# CONFIG_RPCSEC_GSS_KRB5 is not set
1008# CONFIG_RPCSEC_GSS_SPKM3 is not set 1056# CONFIG_RPCSEC_GSS_SPKM3 is not set
1009CONFIG_SMB_FS=m 1057# CONFIG_SMB_FS is not set
1010# CONFIG_SMB_NLS_DEFAULT is not set
1011# CONFIG_CIFS is not set 1058# CONFIG_CIFS is not set
1012# CONFIG_NCP_FS is not set 1059# CONFIG_NCP_FS is not set
1013# CONFIG_CODA_FS is not set 1060# CONFIG_CODA_FS is not set
1014# CONFIG_AFS_FS is not set 1061# CONFIG_AFS_FS is not set
1015# CONFIG_9P_FS is not set
1016 1062
1017# 1063#
1018# Partition Types 1064# Partition Types
1019# 1065#
1020# CONFIG_PARTITION_ADVANCED is not set 1066# CONFIG_PARTITION_ADVANCED is not set
1021CONFIG_MSDOS_PARTITION=y 1067CONFIG_MSDOS_PARTITION=y
1022 1068CONFIG_NLS=y
1023#
1024# Native Language Support
1025#
1026CONFIG_NLS=m
1027CONFIG_NLS_DEFAULT="iso8859-1" 1069CONFIG_NLS_DEFAULT="iso8859-1"
1028# CONFIG_NLS_CODEPAGE_437 is not set 1070# CONFIG_NLS_CODEPAGE_437 is not set
1029# CONFIG_NLS_CODEPAGE_737 is not set 1071# CONFIG_NLS_CODEPAGE_737 is not set
@@ -1063,34 +1105,71 @@ CONFIG_NLS_DEFAULT="iso8859-1"
1063# CONFIG_NLS_KOI8_R is not set 1105# CONFIG_NLS_KOI8_R is not set
1064# CONFIG_NLS_KOI8_U is not set 1106# CONFIG_NLS_KOI8_U is not set
1065# CONFIG_NLS_UTF8 is not set 1107# CONFIG_NLS_UTF8 is not set
1066 1108# CONFIG_DLM is not set
1067#
1068# Distributed Lock Manager
1069#
1070CONFIG_DLM=m
1071CONFIG_DLM_TCP=y
1072# CONFIG_DLM_SCTP is not set
1073# CONFIG_DLM_DEBUG is not set
1074
1075#
1076# Profiling support
1077#
1078# CONFIG_PROFILING is not set
1079 1109
1080# 1110#
1081# Kernel hacking 1111# Kernel hacking
1082# 1112#
1083CONFIG_TRACE_IRQFLAGS_SUPPORT=y 1113CONFIG_TRACE_IRQFLAGS_SUPPORT=y
1084# CONFIG_PRINTK_TIME is not set 1114# CONFIG_PRINTK_TIME is not set
1115CONFIG_ENABLE_WARN_DEPRECATED=y
1085CONFIG_ENABLE_MUST_CHECK=y 1116CONFIG_ENABLE_MUST_CHECK=y
1117CONFIG_FRAME_WARN=1024
1086# CONFIG_MAGIC_SYSRQ is not set 1118# CONFIG_MAGIC_SYSRQ is not set
1119CONFIG_STRIP_ASM_SYMS=y
1087# CONFIG_UNUSED_SYMBOLS is not set 1120# CONFIG_UNUSED_SYMBOLS is not set
1088# CONFIG_DEBUG_FS is not set 1121# CONFIG_DEBUG_FS is not set
1089# CONFIG_HEADERS_CHECK is not set 1122# CONFIG_HEADERS_CHECK is not set
1090# CONFIG_DEBUG_KERNEL is not set 1123CONFIG_DEBUG_KERNEL=y
1091CONFIG_LOG_BUF_SHIFT=14 1124# CONFIG_DEBUG_SHIRQ is not set
1092CONFIG_CROSSCOMPILE=y 1125# CONFIG_DETECT_SOFTLOCKUP is not set
1093CONFIG_CMDLINE="" 1126# CONFIG_DETECT_HUNG_TASK is not set
1127# CONFIG_SCHED_DEBUG is not set
1128# CONFIG_SCHEDSTATS is not set
1129# CONFIG_TIMER_STATS is not set
1130# CONFIG_DEBUG_OBJECTS is not set
1131# CONFIG_DEBUG_SLAB is not set
1132# CONFIG_DEBUG_RT_MUTEXES is not set
1133# CONFIG_RT_MUTEX_TESTER is not set
1134# CONFIG_DEBUG_SPINLOCK is not set
1135# CONFIG_DEBUG_MUTEXES is not set
1136# CONFIG_DEBUG_LOCK_ALLOC is not set
1137# CONFIG_PROVE_LOCKING is not set
1138# CONFIG_LOCK_STAT is not set
1139# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1140# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1141# CONFIG_DEBUG_KOBJECT is not set
1142# CONFIG_DEBUG_INFO is not set
1143# CONFIG_DEBUG_VM is not set
1144# CONFIG_DEBUG_WRITECOUNT is not set
1145# CONFIG_DEBUG_MEMORY_INIT is not set
1146# CONFIG_DEBUG_LIST is not set
1147# CONFIG_DEBUG_SG is not set
1148# CONFIG_DEBUG_NOTIFIERS is not set
1149# CONFIG_DEBUG_CREDENTIALS is not set
1150# CONFIG_BOOT_PRINTK_DELAY is not set
1151# CONFIG_RCU_TORTURE_TEST is not set
1152# CONFIG_BACKTRACE_SELF_TEST is not set
1153# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1154# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
1155# CONFIG_FAULT_INJECTION is not set
1156# CONFIG_SYSCTL_SYSCALL_CHECK is not set
1157# CONFIG_PAGE_POISONING is not set
1158CONFIG_HAVE_FUNCTION_TRACER=y
1159CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1160CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y
1161CONFIG_HAVE_DYNAMIC_FTRACE=y
1162CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1163CONFIG_TRACING_SUPPORT=y
1164# CONFIG_FTRACE is not set
1165# CONFIG_SAMPLES is not set
1166CONFIG_HAVE_ARCH_KGDB=y
1167# CONFIG_KGDB is not set
1168CONFIG_EARLY_PRINTK=y
1169# CONFIG_CMDLINE_BOOL is not set
1170# CONFIG_DEBUG_STACK_USAGE is not set
1171# CONFIG_RUNTIME_DEBUG is not set
1172CONFIG_DEBUG_ZBOOT=y
1094 1173
1095# 1174#
1096# Security options 1175# Security options
@@ -1098,67 +1177,32 @@ CONFIG_CMDLINE=""
1098CONFIG_KEYS=y 1177CONFIG_KEYS=y
1099CONFIG_KEYS_DEBUG_PROC_KEYS=y 1178CONFIG_KEYS_DEBUG_PROC_KEYS=y
1100# CONFIG_SECURITY is not set 1179# CONFIG_SECURITY is not set
1101 1180CONFIG_SECURITYFS=y
1102# 1181# CONFIG_DEFAULT_SECURITY_SELINUX is not set
1103# Cryptographic options 1182# CONFIG_DEFAULT_SECURITY_SMACK is not set
1104# 1183# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
1105CONFIG_CRYPTO=y 1184CONFIG_DEFAULT_SECURITY_DAC=y
1106CONFIG_CRYPTO_ALGAPI=y 1185CONFIG_DEFAULT_SECURITY=""
1107CONFIG_CRYPTO_BLKCIPHER=m 1186# CONFIG_CRYPTO is not set
1108CONFIG_CRYPTO_HASH=y 1187# CONFIG_BINARY_PRINTF is not set
1109CONFIG_CRYPTO_MANAGER=y
1110CONFIG_CRYPTO_HMAC=y
1111CONFIG_CRYPTO_XCBC=m
1112CONFIG_CRYPTO_NULL=m
1113CONFIG_CRYPTO_MD4=m
1114CONFIG_CRYPTO_MD5=y
1115CONFIG_CRYPTO_SHA1=m
1116CONFIG_CRYPTO_SHA256=m
1117CONFIG_CRYPTO_SHA512=m
1118CONFIG_CRYPTO_WP512=m
1119CONFIG_CRYPTO_TGR192=m
1120CONFIG_CRYPTO_GF128MUL=m
1121CONFIG_CRYPTO_ECB=m
1122CONFIG_CRYPTO_CBC=m
1123CONFIG_CRYPTO_PCBC=m
1124CONFIG_CRYPTO_LRW=m
1125CONFIG_CRYPTO_DES=m
1126CONFIG_CRYPTO_FCRYPT=m
1127CONFIG_CRYPTO_BLOWFISH=m
1128CONFIG_CRYPTO_TWOFISH=m
1129CONFIG_CRYPTO_TWOFISH_COMMON=m
1130CONFIG_CRYPTO_SERPENT=m
1131CONFIG_CRYPTO_AES=m
1132CONFIG_CRYPTO_CAST5=m
1133CONFIG_CRYPTO_CAST6=m
1134CONFIG_CRYPTO_TEA=m
1135CONFIG_CRYPTO_ARC4=m
1136CONFIG_CRYPTO_KHAZAD=m
1137CONFIG_CRYPTO_ANUBIS=m
1138CONFIG_CRYPTO_DEFLATE=m
1139CONFIG_CRYPTO_MICHAEL_MIC=m
1140CONFIG_CRYPTO_CRC32C=m
1141CONFIG_CRYPTO_CAMELLIA=m
1142# CONFIG_CRYPTO_TEST is not set
1143
1144#
1145# Hardware crypto devices
1146#
1147 1188
1148# 1189#
1149# Library routines 1190# Library routines
1150# 1191#
1151CONFIG_BITREVERSE=y 1192CONFIG_BITREVERSE=y
1152CONFIG_CRC_CCITT=m 1193CONFIG_GENERIC_FIND_LAST_BIT=y
1153CONFIG_CRC16=m 1194# CONFIG_CRC_CCITT is not set
1195# CONFIG_CRC16 is not set
1196# CONFIG_CRC_T10DIF is not set
1197# CONFIG_CRC_ITU_T is not set
1154CONFIG_CRC32=y 1198CONFIG_CRC32=y
1155CONFIG_LIBCRC32C=m 1199# CONFIG_CRC7 is not set
1156CONFIG_ZLIB_INFLATE=m 1200# CONFIG_LIBCRC32C is not set
1157CONFIG_ZLIB_DEFLATE=m 1201CONFIG_ZLIB_INFLATE=y
1158CONFIG_TEXTSEARCH=y 1202CONFIG_ZLIB_DEFLATE=y
1159CONFIG_TEXTSEARCH_KMP=m 1203CONFIG_LZO_COMPRESS=y
1160CONFIG_TEXTSEARCH_BM=m 1204CONFIG_LZO_DECOMPRESS=y
1161CONFIG_TEXTSEARCH_FSM=m
1162CONFIG_PLIST=y
1163CONFIG_HAS_IOMEM=y 1205CONFIG_HAS_IOMEM=y
1164CONFIG_HAS_IOPORT=y 1206CONFIG_HAS_IOPORT=y
1207CONFIG_HAS_DMA=y
1208CONFIG_NLATTR=y
diff --git a/arch/mips/configs/db1200_defconfig b/arch/mips/configs/db1200_defconfig
index d73f1de43b5d..991c20adf471 100644
--- a/arch/mips/configs/db1200_defconfig
+++ b/arch/mips/configs/db1200_defconfig
@@ -1,79 +1,102 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.20 3# Linux kernel version: 2.6.33
4# Tue Feb 20 21:47:25 2007 4# Fri Feb 26 10:18:09 2010
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
8# 8#
9# Machine selection 9# Machine selection
10# 10#
11CONFIG_ZONE_DMA=y
12CONFIG_MACH_ALCHEMY=y 11CONFIG_MACH_ALCHEMY=y
13# CONFIG_MIPS_MTX1 is not set 12# CONFIG_AR7 is not set
14# CONFIG_MIPS_BOSPORUS is not set 13# CONFIG_BCM47XX is not set
15# CONFIG_MIPS_PB1000 is not set 14# CONFIG_BCM63XX is not set
16# CONFIG_MIPS_PB1100 is not set
17# CONFIG_MIPS_PB1500 is not set
18# CONFIG_MIPS_PB1550 is not set
19# CONFIG_MIPS_PB1200 is not set
20# CONFIG_MIPS_DB1000 is not set
21# CONFIG_MIPS_DB1100 is not set
22# CONFIG_MIPS_DB1500 is not set
23# CONFIG_MIPS_DB1550 is not set
24CONFIG_MIPS_DB1200=y
25# CONFIG_MIPS_MIRAGE is not set
26# CONFIG_BASLER_EXCITE is not set
27# CONFIG_MIPS_COBALT is not set 15# CONFIG_MIPS_COBALT is not set
28# CONFIG_MACH_DECSTATION is not set 16# CONFIG_MACH_DECSTATION is not set
29# CONFIG_MACH_JAZZ is not set 17# CONFIG_MACH_JAZZ is not set
18# CONFIG_LASAT is not set
19# CONFIG_MACH_LOONGSON is not set
30# CONFIG_MIPS_MALTA is not set 20# CONFIG_MIPS_MALTA is not set
31# CONFIG_WR_PPMC is not set
32# CONFIG_MIPS_SIM is not set 21# CONFIG_MIPS_SIM is not set
33# CONFIG_MOMENCO_JAGUAR_ATX is not set 22# CONFIG_NEC_MARKEINS is not set
34# CONFIG_MIPS_XXS1500 is not set 23# CONFIG_MACH_VR41XX is not set
24# CONFIG_NXP_STB220 is not set
25# CONFIG_NXP_STB225 is not set
35# CONFIG_PNX8550_JBS is not set 26# CONFIG_PNX8550_JBS is not set
36# CONFIG_PNX8550_STB810 is not set 27# CONFIG_PNX8550_STB810 is not set
37# CONFIG_MACH_VR41XX is not set 28# CONFIG_PMC_MSP is not set
38# CONFIG_PMC_YOSEMITE is not set 29# CONFIG_PMC_YOSEMITE is not set
39# CONFIG_MARKEINS is not set 30# CONFIG_POWERTV is not set
40# CONFIG_SGI_IP22 is not set 31# CONFIG_SGI_IP22 is not set
41# CONFIG_SGI_IP27 is not set 32# CONFIG_SGI_IP27 is not set
33# CONFIG_SGI_IP28 is not set
42# CONFIG_SGI_IP32 is not set 34# CONFIG_SGI_IP32 is not set
43# CONFIG_SIBYTE_BIGSUR is not set
44# CONFIG_SIBYTE_SWARM is not set
45# CONFIG_SIBYTE_SENTOSA is not set
46# CONFIG_SIBYTE_RHONE is not set
47# CONFIG_SIBYTE_CARMEL is not set
48# CONFIG_SIBYTE_LITTLESUR is not set
49# CONFIG_SIBYTE_CRHINE is not set 35# CONFIG_SIBYTE_CRHINE is not set
36# CONFIG_SIBYTE_CARMEL is not set
50# CONFIG_SIBYTE_CRHONE is not set 37# CONFIG_SIBYTE_CRHONE is not set
38# CONFIG_SIBYTE_RHONE is not set
39# CONFIG_SIBYTE_SWARM is not set
40# CONFIG_SIBYTE_LITTLESUR is not set
41# CONFIG_SIBYTE_SENTOSA is not set
42# CONFIG_SIBYTE_BIGSUR is not set
51# CONFIG_SNI_RM is not set 43# CONFIG_SNI_RM is not set
52# CONFIG_TOSHIBA_JMR3927 is not set 44# CONFIG_MACH_TX39XX is not set
53# CONFIG_TOSHIBA_RBTX4927 is not set 45# CONFIG_MACH_TX49XX is not set
54# CONFIG_TOSHIBA_RBTX4938 is not set 46# CONFIG_MIKROTIK_RB532 is not set
47# CONFIG_WR_PPMC is not set
48# CONFIG_CAVIUM_OCTEON_SIMULATOR is not set
49# CONFIG_CAVIUM_OCTEON_REFERENCE_BOARD is not set
50CONFIG_ALCHEMY_GPIOINT_AU1000=y
51# CONFIG_ALCHEMY_GPIO_INDIRECT is not set
52# CONFIG_MIPS_MTX1 is not set
53# CONFIG_MIPS_BOSPORUS is not set
54# CONFIG_MIPS_DB1000 is not set
55# CONFIG_MIPS_DB1100 is not set
56CONFIG_MIPS_DB1200=y
57# CONFIG_MIPS_DB1500 is not set
58# CONFIG_MIPS_DB1550 is not set
59# CONFIG_MIPS_MIRAGE is not set
60# CONFIG_MIPS_PB1000 is not set
61# CONFIG_MIPS_PB1100 is not set
62# CONFIG_MIPS_PB1200 is not set
63# CONFIG_MIPS_PB1500 is not set
64# CONFIG_MIPS_PB1550 is not set
65# CONFIG_MIPS_XXS1500 is not set
66CONFIG_SOC_AU1200=y
67CONFIG_SOC_AU1X00=y
68CONFIG_LOONGSON_UART_BASE=y
55CONFIG_RWSEM_GENERIC_SPINLOCK=y 69CONFIG_RWSEM_GENERIC_SPINLOCK=y
56# CONFIG_ARCH_HAS_ILOG2_U32 is not set 70# CONFIG_ARCH_HAS_ILOG2_U32 is not set
57# CONFIG_ARCH_HAS_ILOG2_U64 is not set 71# CONFIG_ARCH_HAS_ILOG2_U64 is not set
72CONFIG_ARCH_SUPPORTS_OPROFILE=y
58CONFIG_GENERIC_FIND_NEXT_BIT=y 73CONFIG_GENERIC_FIND_NEXT_BIT=y
59CONFIG_GENERIC_HWEIGHT=y 74CONFIG_GENERIC_HWEIGHT=y
60CONFIG_GENERIC_CALIBRATE_DELAY=y 75CONFIG_GENERIC_CALIBRATE_DELAY=y
76CONFIG_GENERIC_CLOCKEVENTS=y
61CONFIG_GENERIC_TIME=y 77CONFIG_GENERIC_TIME=y
62CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 78CONFIG_GENERIC_CMOS_UPDATE=y
63# CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ is not set 79CONFIG_SCHED_OMIT_FRAME_POINTER=y
80CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
81CONFIG_CEVT_R4K_LIB=y
82CONFIG_CSRC_R4K_LIB=y
64CONFIG_DMA_COHERENT=y 83CONFIG_DMA_COHERENT=y
84CONFIG_SYS_HAS_EARLY_PRINTK=y
65CONFIG_MIPS_DISABLE_OBSOLETE_IDE=y 85CONFIG_MIPS_DISABLE_OBSOLETE_IDE=y
86# CONFIG_NO_IOPORT is not set
87CONFIG_GENERIC_GPIO=y
66# CONFIG_CPU_BIG_ENDIAN is not set 88# CONFIG_CPU_BIG_ENDIAN is not set
67CONFIG_CPU_LITTLE_ENDIAN=y 89CONFIG_CPU_LITTLE_ENDIAN=y
68CONFIG_SYS_SUPPORTS_APM_EMULATION=y 90CONFIG_SYS_SUPPORTS_APM_EMULATION=y
69CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y 91CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y
70CONFIG_SOC_AU1200=y 92CONFIG_IRQ_CPU=y
71CONFIG_SOC_AU1X00=y
72CONFIG_MIPS_L1_CACHE_SHIFT=5 93CONFIG_MIPS_L1_CACHE_SHIFT=5
73 94
74# 95#
75# CPU selection 96# CPU selection
76# 97#
98# CONFIG_CPU_LOONGSON2E is not set
99# CONFIG_CPU_LOONGSON2F is not set
77CONFIG_CPU_MIPS32_R1=y 100CONFIG_CPU_MIPS32_R1=y
78# CONFIG_CPU_MIPS32_R2 is not set 101# CONFIG_CPU_MIPS32_R2 is not set
79# CONFIG_CPU_MIPS64_R1 is not set 102# CONFIG_CPU_MIPS64_R1 is not set
@@ -86,6 +109,7 @@ CONFIG_CPU_MIPS32_R1=y
86# CONFIG_CPU_TX49XX is not set 109# CONFIG_CPU_TX49XX is not set
87# CONFIG_CPU_R5000 is not set 110# CONFIG_CPU_R5000 is not set
88# CONFIG_CPU_R5432 is not set 111# CONFIG_CPU_R5432 is not set
112# CONFIG_CPU_R5500 is not set
89# CONFIG_CPU_R6000 is not set 113# CONFIG_CPU_R6000 is not set
90# CONFIG_CPU_NEVADA is not set 114# CONFIG_CPU_NEVADA is not set
91# CONFIG_CPU_R8000 is not set 115# CONFIG_CPU_R8000 is not set
@@ -93,11 +117,14 @@ CONFIG_CPU_MIPS32_R1=y
93# CONFIG_CPU_RM7000 is not set 117# CONFIG_CPU_RM7000 is not set
94# CONFIG_CPU_RM9000 is not set 118# CONFIG_CPU_RM9000 is not set
95# CONFIG_CPU_SB1 is not set 119# CONFIG_CPU_SB1 is not set
120# CONFIG_CPU_CAVIUM_OCTEON is not set
121CONFIG_SYS_SUPPORTS_ZBOOT=y
96CONFIG_SYS_HAS_CPU_MIPS32_R1=y 122CONFIG_SYS_HAS_CPU_MIPS32_R1=y
97CONFIG_CPU_MIPS32=y 123CONFIG_CPU_MIPS32=y
98CONFIG_CPU_MIPSR1=y 124CONFIG_CPU_MIPSR1=y
99CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y 125CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y
100CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y 126CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y
127CONFIG_HARDWARE_WATCHPOINTS=y
101 128
102# 129#
103# Kernel type 130# Kernel type
@@ -107,180 +134,235 @@ CONFIG_32BIT=y
107CONFIG_PAGE_SIZE_4KB=y 134CONFIG_PAGE_SIZE_4KB=y
108# CONFIG_PAGE_SIZE_8KB is not set 135# CONFIG_PAGE_SIZE_8KB is not set
109# CONFIG_PAGE_SIZE_16KB is not set 136# CONFIG_PAGE_SIZE_16KB is not set
137# CONFIG_PAGE_SIZE_32KB is not set
110# CONFIG_PAGE_SIZE_64KB is not set 138# CONFIG_PAGE_SIZE_64KB is not set
111CONFIG_CPU_HAS_PREFETCH=y 139CONFIG_CPU_HAS_PREFETCH=y
112CONFIG_MIPS_MT_DISABLED=y 140CONFIG_MIPS_MT_DISABLED=y
113# CONFIG_MIPS_MT_SMP is not set 141# CONFIG_MIPS_MT_SMP is not set
114# CONFIG_MIPS_MT_SMTC is not set 142# CONFIG_MIPS_MT_SMTC is not set
115# CONFIG_MIPS_VPE_LOADER is not set
116CONFIG_64BIT_PHYS_ADDR=y 143CONFIG_64BIT_PHYS_ADDR=y
144CONFIG_ARCH_PHYS_ADDR_T_64BIT=y
117CONFIG_CPU_HAS_SYNC=y 145CONFIG_CPU_HAS_SYNC=y
118CONFIG_GENERIC_HARDIRQS=y 146CONFIG_GENERIC_HARDIRQS=y
119CONFIG_GENERIC_IRQ_PROBE=y 147CONFIG_GENERIC_IRQ_PROBE=y
120CONFIG_CPU_SUPPORTS_HIGHMEM=y 148CONFIG_CPU_SUPPORTS_HIGHMEM=y
121CONFIG_ARCH_FLATMEM_ENABLE=y 149CONFIG_ARCH_FLATMEM_ENABLE=y
150CONFIG_ARCH_POPULATES_NODE_MAP=y
122CONFIG_SELECT_MEMORY_MODEL=y 151CONFIG_SELECT_MEMORY_MODEL=y
123CONFIG_FLATMEM_MANUAL=y 152CONFIG_FLATMEM_MANUAL=y
124# CONFIG_DISCONTIGMEM_MANUAL is not set 153# CONFIG_DISCONTIGMEM_MANUAL is not set
125# CONFIG_SPARSEMEM_MANUAL is not set 154# CONFIG_SPARSEMEM_MANUAL is not set
126CONFIG_FLATMEM=y 155CONFIG_FLATMEM=y
127CONFIG_FLAT_NODE_MEM_MAP=y 156CONFIG_FLAT_NODE_MEM_MAP=y
128# CONFIG_SPARSEMEM_STATIC is not set 157CONFIG_PAGEFLAGS_EXTENDED=y
129CONFIG_SPLIT_PTLOCK_CPUS=4 158CONFIG_SPLIT_PTLOCK_CPUS=4
130# CONFIG_RESOURCES_64BIT is not set 159CONFIG_PHYS_ADDR_T_64BIT=y
131CONFIG_ZONE_DMA_FLAG=1 160CONFIG_ZONE_DMA_FLAG=0
161CONFIG_VIRT_TO_BUS=y
162CONFIG_KSM=y
163CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
164CONFIG_TICK_ONESHOT=y
165CONFIG_NO_HZ=y
166CONFIG_HIGH_RES_TIMERS=y
167CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
132# CONFIG_HZ_48 is not set 168# CONFIG_HZ_48 is not set
133# CONFIG_HZ_100 is not set 169CONFIG_HZ_100=y
134# CONFIG_HZ_128 is not set 170# CONFIG_HZ_128 is not set
135# CONFIG_HZ_250 is not set 171# CONFIG_HZ_250 is not set
136# CONFIG_HZ_256 is not set 172# CONFIG_HZ_256 is not set
137CONFIG_HZ_1000=y 173# CONFIG_HZ_1000 is not set
138# CONFIG_HZ_1024 is not set 174# CONFIG_HZ_1024 is not set
139CONFIG_SYS_SUPPORTS_ARBIT_HZ=y 175CONFIG_SYS_SUPPORTS_ARBIT_HZ=y
140CONFIG_HZ=1000 176CONFIG_HZ=100
141CONFIG_PREEMPT_NONE=y 177CONFIG_PREEMPT_NONE=y
142# CONFIG_PREEMPT_VOLUNTARY is not set 178# CONFIG_PREEMPT_VOLUNTARY is not set
143# CONFIG_PREEMPT is not set 179# CONFIG_PREEMPT is not set
144# CONFIG_KEXEC is not set 180# CONFIG_KEXEC is not set
181# CONFIG_SECCOMP is not set
145CONFIG_LOCKDEP_SUPPORT=y 182CONFIG_LOCKDEP_SUPPORT=y
146CONFIG_STACKTRACE_SUPPORT=y 183CONFIG_STACKTRACE_SUPPORT=y
147CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 184CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
185CONFIG_CONSTRUCTORS=y
148 186
149# 187#
150# Code maturity level options 188# General setup
151# 189#
152CONFIG_EXPERIMENTAL=y 190CONFIG_EXPERIMENTAL=y
153CONFIG_BROKEN_ON_SMP=y 191CONFIG_BROKEN_ON_SMP=y
154CONFIG_INIT_ENV_ARG_LIMIT=32 192CONFIG_INIT_ENV_ARG_LIMIT=32
155 193CONFIG_LOCALVERSION="-db1200"
156#
157# General setup
158#
159CONFIG_LOCALVERSION=""
160CONFIG_LOCALVERSION_AUTO=y 194CONFIG_LOCALVERSION_AUTO=y
195CONFIG_HAVE_KERNEL_GZIP=y
196CONFIG_HAVE_KERNEL_BZIP2=y
197CONFIG_HAVE_KERNEL_LZMA=y
198CONFIG_HAVE_KERNEL_LZO=y
199# CONFIG_KERNEL_GZIP is not set
200# CONFIG_KERNEL_BZIP2 is not set
201CONFIG_KERNEL_LZMA=y
202# CONFIG_KERNEL_LZO is not set
161CONFIG_SWAP=y 203CONFIG_SWAP=y
162CONFIG_SYSVIPC=y 204CONFIG_SYSVIPC=y
163# CONFIG_IPC_NS is not set
164CONFIG_SYSVIPC_SYSCTL=y 205CONFIG_SYSVIPC_SYSCTL=y
165# CONFIG_POSIX_MQUEUE is not set 206CONFIG_POSIX_MQUEUE=y
207CONFIG_POSIX_MQUEUE_SYSCTL=y
166# CONFIG_BSD_PROCESS_ACCT is not set 208# CONFIG_BSD_PROCESS_ACCT is not set
167# CONFIG_TASKSTATS is not set 209# CONFIG_TASKSTATS is not set
168# CONFIG_UTS_NS is not set
169# CONFIG_AUDIT is not set 210# CONFIG_AUDIT is not set
170CONFIG_IKCONFIG=y 211
171CONFIG_IKCONFIG_PROC=y 212#
172CONFIG_SYSFS_DEPRECATED=y 213# RCU Subsystem
214#
215# CONFIG_TREE_RCU is not set
216# CONFIG_TREE_PREEMPT_RCU is not set
217CONFIG_TINY_RCU=y
218# CONFIG_TREE_RCU_TRACE is not set
219# CONFIG_IKCONFIG is not set
220CONFIG_LOG_BUF_SHIFT=14
221# CONFIG_GROUP_SCHED is not set
222# CONFIG_CGROUPS is not set
223# CONFIG_SYSFS_DEPRECATED_V2 is not set
173# CONFIG_RELAY is not set 224# CONFIG_RELAY is not set
174# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 225# CONFIG_NAMESPACES is not set
226# CONFIG_BLK_DEV_INITRD is not set
227CONFIG_CC_OPTIMIZE_FOR_SIZE=y
175CONFIG_SYSCTL=y 228CONFIG_SYSCTL=y
229CONFIG_ANON_INODES=y
176CONFIG_EMBEDDED=y 230CONFIG_EMBEDDED=y
177CONFIG_SYSCTL_SYSCALL=y 231# CONFIG_SYSCTL_SYSCALL is not set
178CONFIG_KALLSYMS=y 232# CONFIG_KALLSYMS is not set
179# CONFIG_KALLSYMS_EXTRA_PASS is not set
180CONFIG_HOTPLUG=y 233CONFIG_HOTPLUG=y
181CONFIG_PRINTK=y 234CONFIG_PRINTK=y
182CONFIG_BUG=y 235CONFIG_BUG=y
183CONFIG_ELF_CORE=y 236CONFIG_ELF_CORE=y
237# CONFIG_PCSPKR_PLATFORM is not set
184CONFIG_BASE_FULL=y 238CONFIG_BASE_FULL=y
185CONFIG_FUTEX=y 239CONFIG_FUTEX=y
186CONFIG_EPOLL=y 240CONFIG_EPOLL=y
241CONFIG_SIGNALFD=y
242CONFIG_TIMERFD=y
243CONFIG_EVENTFD=y
187CONFIG_SHMEM=y 244CONFIG_SHMEM=y
245CONFIG_AIO=y
246
247#
248# Kernel Performance Events And Counters
249#
250# CONFIG_VM_EVENT_COUNTERS is not set
251# CONFIG_COMPAT_BRK is not set
188CONFIG_SLAB=y 252CONFIG_SLAB=y
189CONFIG_VM_EVENT_COUNTERS=y 253# CONFIG_SLUB is not set
190CONFIG_RT_MUTEXES=y
191# CONFIG_TINY_SHMEM is not set
192CONFIG_BASE_SMALL=0
193# CONFIG_SLOB is not set 254# CONFIG_SLOB is not set
255# CONFIG_PROFILING is not set
256CONFIG_HAVE_OPROFILE=y
194 257
195# 258#
196# Loadable module support 259# GCOV-based kernel profiling
197# 260#
261# CONFIG_SLOW_WORK is not set
262CONFIG_HAVE_GENERIC_DMA_COHERENT=y
263CONFIG_SLABINFO=y
264CONFIG_RT_MUTEXES=y
265CONFIG_BASE_SMALL=0
198CONFIG_MODULES=y 266CONFIG_MODULES=y
267# CONFIG_MODULE_FORCE_LOAD is not set
199CONFIG_MODULE_UNLOAD=y 268CONFIG_MODULE_UNLOAD=y
200# CONFIG_MODULE_FORCE_UNLOAD is not set 269# CONFIG_MODULE_FORCE_UNLOAD is not set
201CONFIG_MODVERSIONS=y 270# CONFIG_MODVERSIONS is not set
202CONFIG_MODULE_SRCVERSION_ALL=y 271# CONFIG_MODULE_SRCVERSION_ALL is not set
203CONFIG_KMOD=y
204
205#
206# Block layer
207#
208CONFIG_BLOCK=y 272CONFIG_BLOCK=y
209# CONFIG_LBD is not set 273# CONFIG_LBDAF is not set
210# CONFIG_BLK_DEV_IO_TRACE is not set 274# CONFIG_BLK_DEV_BSG is not set
211# CONFIG_LSF is not set 275# CONFIG_BLK_DEV_INTEGRITY is not set
212 276
213# 277#
214# IO Schedulers 278# IO Schedulers
215# 279#
216CONFIG_IOSCHED_NOOP=y 280CONFIG_IOSCHED_NOOP=y
217CONFIG_IOSCHED_AS=y 281# CONFIG_IOSCHED_DEADLINE is not set
218CONFIG_IOSCHED_DEADLINE=y 282# CONFIG_IOSCHED_CFQ is not set
219CONFIG_IOSCHED_CFQ=y
220CONFIG_DEFAULT_AS=y
221# CONFIG_DEFAULT_DEADLINE is not set 283# CONFIG_DEFAULT_DEADLINE is not set
222# CONFIG_DEFAULT_CFQ is not set 284# CONFIG_DEFAULT_CFQ is not set
223# CONFIG_DEFAULT_NOOP is not set 285CONFIG_DEFAULT_NOOP=y
224CONFIG_DEFAULT_IOSCHED="anticipatory" 286CONFIG_DEFAULT_IOSCHED="noop"
287# CONFIG_INLINE_SPIN_TRYLOCK is not set
288# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
289# CONFIG_INLINE_SPIN_LOCK is not set
290# CONFIG_INLINE_SPIN_LOCK_BH is not set
291# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
292# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
293CONFIG_INLINE_SPIN_UNLOCK=y
294# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
295CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
296# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
297# CONFIG_INLINE_READ_TRYLOCK is not set
298# CONFIG_INLINE_READ_LOCK is not set
299# CONFIG_INLINE_READ_LOCK_BH is not set
300# CONFIG_INLINE_READ_LOCK_IRQ is not set
301# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
302CONFIG_INLINE_READ_UNLOCK=y
303# CONFIG_INLINE_READ_UNLOCK_BH is not set
304CONFIG_INLINE_READ_UNLOCK_IRQ=y
305# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
306# CONFIG_INLINE_WRITE_TRYLOCK is not set
307# CONFIG_INLINE_WRITE_LOCK is not set
308# CONFIG_INLINE_WRITE_LOCK_BH is not set
309# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
310# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
311CONFIG_INLINE_WRITE_UNLOCK=y
312# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
313CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
314# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
315# CONFIG_MUTEX_SPIN_ON_OWNER is not set
316# CONFIG_FREEZER is not set
225 317
226# 318#
227# Bus options (PCI, PCMCIA, EISA, ISA, TC) 319# Bus options (PCI, PCMCIA, EISA, ISA, TC)
228# 320#
321# CONFIG_ARCH_SUPPORTS_MSI is not set
229CONFIG_MMU=y 322CONFIG_MMU=y
230 323CONFIG_PCCARD=y
231# 324CONFIG_PCMCIA=y
232# PCCARD (PCMCIA/CardBus) support
233#
234CONFIG_PCCARD=m
235# CONFIG_PCMCIA_DEBUG is not set
236CONFIG_PCMCIA=m
237CONFIG_PCMCIA_LOAD_CIS=y 325CONFIG_PCMCIA_LOAD_CIS=y
238CONFIG_PCMCIA_IOCTL=y 326# CONFIG_PCMCIA_IOCTL is not set
239 327
240# 328#
241# PC-card bridges 329# PC-card bridges
242# 330#
243CONFIG_PCMCIA_AU1X00=m 331# CONFIG_PCMCIA_AU1X00 is not set
244 332CONFIG_PCMCIA_ALCHEMY_DEVBOARD=y
245#
246# PCI Hotplug Support
247#
248 333
249# 334#
250# Executable file formats 335# Executable file formats
251# 336#
252CONFIG_BINFMT_ELF=y 337CONFIG_BINFMT_ELF=y
253# CONFIG_BINFMT_MISC is not set 338CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y
339# CONFIG_HAVE_AOUT is not set
340CONFIG_BINFMT_MISC=y
254CONFIG_TRAD_SIGNALS=y 341CONFIG_TRAD_SIGNALS=y
255 342
256# 343#
257# Power management options 344# Power management options
258# 345#
346CONFIG_ARCH_HIBERNATION_POSSIBLE=y
347CONFIG_ARCH_SUSPEND_POSSIBLE=y
259# CONFIG_PM is not set 348# CONFIG_PM is not set
260
261#
262# Networking
263#
264CONFIG_NET=y 349CONFIG_NET=y
265 350
266# 351#
267# Networking options 352# Networking options
268# 353#
269# CONFIG_NETDEBUG is not set
270CONFIG_PACKET=y 354CONFIG_PACKET=y
271# CONFIG_PACKET_MMAP is not set 355CONFIG_PACKET_MMAP=y
272CONFIG_UNIX=y 356CONFIG_UNIX=y
273CONFIG_XFRM=y 357# CONFIG_NET_KEY is not set
274CONFIG_XFRM_USER=m
275# CONFIG_XFRM_SUB_POLICY is not set
276CONFIG_XFRM_MIGRATE=y
277CONFIG_NET_KEY=y
278CONFIG_NET_KEY_MIGRATE=y
279CONFIG_INET=y 358CONFIG_INET=y
280CONFIG_IP_MULTICAST=y 359CONFIG_IP_MULTICAST=y
281# CONFIG_IP_ADVANCED_ROUTER is not set 360# CONFIG_IP_ADVANCED_ROUTER is not set
282CONFIG_IP_FIB_HASH=y 361CONFIG_IP_FIB_HASH=y
283# CONFIG_IP_PNP is not set 362CONFIG_IP_PNP=y
363# CONFIG_IP_PNP_DHCP is not set
364# CONFIG_IP_PNP_BOOTP is not set
365# CONFIG_IP_PNP_RARP is not set
284# CONFIG_NET_IPIP is not set 366# CONFIG_NET_IPIP is not set
285# CONFIG_NET_IPGRE is not set 367# CONFIG_NET_IPGRE is not set
286# CONFIG_IP_MROUTE is not set 368# CONFIG_IP_MROUTE is not set
@@ -291,107 +373,25 @@ CONFIG_IP_FIB_HASH=y
291# CONFIG_INET_IPCOMP is not set 373# CONFIG_INET_IPCOMP is not set
292# CONFIG_INET_XFRM_TUNNEL is not set 374# CONFIG_INET_XFRM_TUNNEL is not set
293# CONFIG_INET_TUNNEL is not set 375# CONFIG_INET_TUNNEL is not set
294CONFIG_INET_XFRM_MODE_TRANSPORT=m 376# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
295CONFIG_INET_XFRM_MODE_TUNNEL=m 377# CONFIG_INET_XFRM_MODE_TUNNEL is not set
296CONFIG_INET_XFRM_MODE_BEET=m 378# CONFIG_INET_XFRM_MODE_BEET is not set
297CONFIG_INET_DIAG=y 379CONFIG_INET_LRO=y
298CONFIG_INET_TCP_DIAG=y 380# CONFIG_INET_DIAG is not set
299# CONFIG_TCP_CONG_ADVANCED is not set 381# CONFIG_TCP_CONG_ADVANCED is not set
300CONFIG_TCP_CONG_CUBIC=y 382CONFIG_TCP_CONG_CUBIC=y
301CONFIG_DEFAULT_TCP_CONG="cubic" 383CONFIG_DEFAULT_TCP_CONG="cubic"
302CONFIG_TCP_MD5SIG=y 384# CONFIG_TCP_MD5SIG is not set
303
304#
305# IP: Virtual Server Configuration
306#
307# CONFIG_IP_VS is not set
308# CONFIG_IPV6 is not set 385# CONFIG_IPV6 is not set
309# CONFIG_INET6_XFRM_TUNNEL is not set 386# CONFIG_NETWORK_SECMARK is not set
310# CONFIG_INET6_TUNNEL is not set 387# CONFIG_NETFILTER is not set
311CONFIG_NETWORK_SECMARK=y
312CONFIG_NETFILTER=y
313# CONFIG_NETFILTER_DEBUG is not set
314
315#
316# Core Netfilter Configuration
317#
318# CONFIG_NETFILTER_NETLINK is not set
319CONFIG_NF_CONNTRACK_ENABLED=m
320CONFIG_NF_CONNTRACK_SUPPORT=y
321# CONFIG_IP_NF_CONNTRACK_SUPPORT is not set
322CONFIG_NF_CONNTRACK=m
323CONFIG_NF_CT_ACCT=y
324CONFIG_NF_CONNTRACK_MARK=y
325CONFIG_NF_CONNTRACK_SECMARK=y
326CONFIG_NF_CONNTRACK_EVENTS=y
327CONFIG_NF_CT_PROTO_GRE=m
328CONFIG_NF_CT_PROTO_SCTP=m
329CONFIG_NF_CONNTRACK_AMANDA=m
330CONFIG_NF_CONNTRACK_FTP=m
331CONFIG_NF_CONNTRACK_H323=m
332CONFIG_NF_CONNTRACK_IRC=m
333# CONFIG_NF_CONNTRACK_NETBIOS_NS is not set
334CONFIG_NF_CONNTRACK_PPTP=m
335CONFIG_NF_CONNTRACK_SANE=m
336CONFIG_NF_CONNTRACK_SIP=m
337CONFIG_NF_CONNTRACK_TFTP=m
338CONFIG_NETFILTER_XTABLES=m
339CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
340CONFIG_NETFILTER_XT_TARGET_MARK=m
341CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
342CONFIG_NETFILTER_XT_TARGET_NFLOG=m
343CONFIG_NETFILTER_XT_TARGET_SECMARK=m
344CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m
345CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
346CONFIG_NETFILTER_XT_MATCH_COMMENT=m
347CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
348CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
349CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
350CONFIG_NETFILTER_XT_MATCH_DCCP=m
351CONFIG_NETFILTER_XT_MATCH_DSCP=m
352CONFIG_NETFILTER_XT_MATCH_ESP=m
353CONFIG_NETFILTER_XT_MATCH_HELPER=m
354CONFIG_NETFILTER_XT_MATCH_LENGTH=m
355CONFIG_NETFILTER_XT_MATCH_LIMIT=m
356CONFIG_NETFILTER_XT_MATCH_MAC=m
357CONFIG_NETFILTER_XT_MATCH_MARK=m
358CONFIG_NETFILTER_XT_MATCH_POLICY=m
359CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
360CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
361CONFIG_NETFILTER_XT_MATCH_QUOTA=m
362CONFIG_NETFILTER_XT_MATCH_REALM=m
363CONFIG_NETFILTER_XT_MATCH_SCTP=m
364CONFIG_NETFILTER_XT_MATCH_STATE=m
365CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
366CONFIG_NETFILTER_XT_MATCH_STRING=m
367CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
368CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
369
370#
371# IP: Netfilter Configuration
372#
373CONFIG_NF_CONNTRACK_IPV4=m
374CONFIG_NF_CONNTRACK_PROC_COMPAT=y
375# CONFIG_IP_NF_QUEUE is not set
376# CONFIG_IP_NF_IPTABLES is not set
377# CONFIG_IP_NF_ARPTABLES is not set
378
379#
380# DCCP Configuration (EXPERIMENTAL)
381#
382# CONFIG_IP_DCCP is not set 388# CONFIG_IP_DCCP is not set
383
384#
385# SCTP Configuration (EXPERIMENTAL)
386#
387# CONFIG_IP_SCTP is not set 389# CONFIG_IP_SCTP is not set
388 390# CONFIG_RDS is not set
389#
390# TIPC Configuration (EXPERIMENTAL)
391#
392# CONFIG_TIPC is not set 391# CONFIG_TIPC is not set
393# CONFIG_ATM is not set 392# CONFIG_ATM is not set
394# CONFIG_BRIDGE is not set 393# CONFIG_BRIDGE is not set
394# CONFIG_NET_DSA is not set
395# CONFIG_VLAN_8021Q is not set 395# CONFIG_VLAN_8021Q is not set
396# CONFIG_DECNET is not set 396# CONFIG_DECNET is not set
397# CONFIG_LLC2 is not set 397# CONFIG_LLC2 is not set
@@ -401,21 +401,24 @@ CONFIG_NF_CONNTRACK_PROC_COMPAT=y
401# CONFIG_LAPB is not set 401# CONFIG_LAPB is not set
402# CONFIG_ECONET is not set 402# CONFIG_ECONET is not set
403# CONFIG_WAN_ROUTER is not set 403# CONFIG_WAN_ROUTER is not set
404 404# CONFIG_PHONET is not set
405# 405# CONFIG_IEEE802154 is not set
406# QoS and/or fair queueing
407#
408# CONFIG_NET_SCHED is not set 406# CONFIG_NET_SCHED is not set
409CONFIG_NET_CLS_ROUTE=y 407# CONFIG_DCB is not set
410 408
411# 409#
412# Network testing 410# Network testing
413# 411#
414# CONFIG_NET_PKTGEN is not set 412# CONFIG_NET_PKTGEN is not set
415# CONFIG_HAMRADIO is not set 413# CONFIG_HAMRADIO is not set
414# CONFIG_CAN is not set
416# CONFIG_IRDA is not set 415# CONFIG_IRDA is not set
417# CONFIG_BT is not set 416# CONFIG_BT is not set
418# CONFIG_IEEE80211 is not set 417# CONFIG_AF_RXRPC is not set
418# CONFIG_WIRELESS is not set
419# CONFIG_WIMAX is not set
420# CONFIG_RFKILL is not set
421# CONFIG_NET_9P is not set
419 422
420# 423#
421# Device Drivers 424# Device Drivers
@@ -424,25 +427,25 @@ CONFIG_NET_CLS_ROUTE=y
424# 427#
425# Generic Driver Options 428# Generic Driver Options
426# 429#
430CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
431# CONFIG_DEVTMPFS is not set
427CONFIG_STANDALONE=y 432CONFIG_STANDALONE=y
428CONFIG_PREVENT_FIRMWARE_BUILD=y 433CONFIG_PREVENT_FIRMWARE_BUILD=y
429CONFIG_FW_LOADER=y 434CONFIG_FW_LOADER=y
435CONFIG_FIRMWARE_IN_KERNEL=y
436CONFIG_EXTRA_FIRMWARE=""
437# CONFIG_DEBUG_DRIVER is not set
438# CONFIG_DEBUG_DEVRES is not set
430# CONFIG_SYS_HYPERVISOR is not set 439# CONFIG_SYS_HYPERVISOR is not set
431
432#
433# Connector - unified userspace <-> kernelspace linker
434#
435# CONFIG_CONNECTOR is not set 440# CONFIG_CONNECTOR is not set
436
437#
438# Memory Technology Devices (MTD)
439#
440CONFIG_MTD=y 441CONFIG_MTD=y
441# CONFIG_MTD_DEBUG is not set 442# CONFIG_MTD_DEBUG is not set
443# CONFIG_MTD_TESTS is not set
442# CONFIG_MTD_CONCAT is not set 444# CONFIG_MTD_CONCAT is not set
443CONFIG_MTD_PARTITIONS=y 445CONFIG_MTD_PARTITIONS=y
444# CONFIG_MTD_REDBOOT_PARTS is not set 446# CONFIG_MTD_REDBOOT_PARTS is not set
445# CONFIG_MTD_CMDLINE_PARTS is not set 447CONFIG_MTD_CMDLINE_PARTS=y
448# CONFIG_MTD_AR7_PARTS is not set
446 449
447# 450#
448# User Modules And Translation Layers 451# User Modules And Translation Layers
@@ -455,6 +458,7 @@ CONFIG_MTD_BLOCK=y
455# CONFIG_INFTL is not set 458# CONFIG_INFTL is not set
456# CONFIG_RFD_FTL is not set 459# CONFIG_RFD_FTL is not set
457# CONFIG_SSFDC is not set 460# CONFIG_SSFDC is not set
461# CONFIG_MTD_OOPS is not set
458 462
459# 463#
460# RAM/ROM/Flash chip drivers 464# RAM/ROM/Flash chip drivers
@@ -480,19 +484,21 @@ CONFIG_MTD_CFI_UTIL=y
480# CONFIG_MTD_RAM is not set 484# CONFIG_MTD_RAM is not set
481# CONFIG_MTD_ROM is not set 485# CONFIG_MTD_ROM is not set
482# CONFIG_MTD_ABSENT is not set 486# CONFIG_MTD_ABSENT is not set
483# CONFIG_MTD_OBSOLETE_CHIPS is not set
484 487
485# 488#
486# Mapping drivers for chip access 489# Mapping drivers for chip access
487# 490#
488# CONFIG_MTD_COMPLEX_MAPPINGS is not set 491# CONFIG_MTD_COMPLEX_MAPPINGS is not set
489# CONFIG_MTD_PHYSMAP is not set 492CONFIG_MTD_PHYSMAP=y
490CONFIG_MTD_ALCHEMY=y 493# CONFIG_MTD_PHYSMAP_COMPAT is not set
491# CONFIG_MTD_PLATRAM is not set 494# CONFIG_MTD_PLATRAM is not set
492 495
493# 496#
494# Self-contained MTD device drivers 497# Self-contained MTD device drivers
495# 498#
499# CONFIG_MTD_DATAFLASH is not set
500# CONFIG_MTD_M25P80 is not set
501# CONFIG_MTD_SST25L is not set
496# CONFIG_MTD_SLRAM is not set 502# CONFIG_MTD_SLRAM is not set
497# CONFIG_MTD_PHRAM is not set 503# CONFIG_MTD_PHRAM is not set
498# CONFIG_MTD_MTDRAM is not set 504# CONFIG_MTD_MTDRAM is not set
@@ -504,224 +510,134 @@ CONFIG_MTD_ALCHEMY=y
504# CONFIG_MTD_DOC2000 is not set 510# CONFIG_MTD_DOC2000 is not set
505# CONFIG_MTD_DOC2001 is not set 511# CONFIG_MTD_DOC2001 is not set
506# CONFIG_MTD_DOC2001PLUS is not set 512# CONFIG_MTD_DOC2001PLUS is not set
507
508#
509# NAND Flash Device Drivers
510#
511CONFIG_MTD_NAND=y 513CONFIG_MTD_NAND=y
512# CONFIG_MTD_NAND_VERIFY_WRITE is not set 514# CONFIG_MTD_NAND_VERIFY_WRITE is not set
513# CONFIG_MTD_NAND_ECC_SMC is not set 515# CONFIG_MTD_NAND_ECC_SMC is not set
516# CONFIG_MTD_NAND_MUSEUM_IDS is not set
514CONFIG_MTD_NAND_IDS=y 517CONFIG_MTD_NAND_IDS=y
515# CONFIG_MTD_NAND_AU1550 is not set 518# CONFIG_MTD_NAND_AU1550 is not set
516# CONFIG_MTD_NAND_DISKONCHIP is not set 519# CONFIG_MTD_NAND_DISKONCHIP is not set
517# CONFIG_MTD_NAND_NANDSIM is not set 520# CONFIG_MTD_NAND_NANDSIM is not set
518 521CONFIG_MTD_NAND_PLATFORM=y
519# 522# CONFIG_MTD_ALAUDA is not set
520# OneNAND Flash Device Drivers
521#
522# CONFIG_MTD_ONENAND is not set 523# CONFIG_MTD_ONENAND is not set
523 524
524# 525#
525# Parallel port support 526# LPDDR flash memory drivers
526# 527#
527# CONFIG_PARPORT is not set 528# CONFIG_MTD_LPDDR is not set
528 529
529# 530#
530# Plug and Play support 531# UBI - Unsorted block images
531#
532# CONFIG_PNPACPI is not set
533
534#
535# Block devices
536# 532#
533# CONFIG_MTD_UBI is not set
534# CONFIG_PARPORT is not set
535CONFIG_BLK_DEV=y
537# CONFIG_BLK_DEV_COW_COMMON is not set 536# CONFIG_BLK_DEV_COW_COMMON is not set
538CONFIG_BLK_DEV_LOOP=y 537CONFIG_BLK_DEV_LOOP=y
539# CONFIG_BLK_DEV_CRYPTOLOOP is not set 538# CONFIG_BLK_DEV_CRYPTOLOOP is not set
540# CONFIG_BLK_DEV_NBD is not set
541CONFIG_BLK_DEV_RAM=y
542CONFIG_BLK_DEV_RAM_COUNT=16
543CONFIG_BLK_DEV_RAM_SIZE=4096
544CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
545# CONFIG_BLK_DEV_INITRD is not set
546# CONFIG_CDROM_PKTCDVD is not set
547# CONFIG_ATA_OVER_ETH is not set
548 539
549# 540#
550# Misc devices 541# DRBD disabled because PROC_FS, INET or CONNECTOR not selected
551#
552
553#
554# ATA/ATAPI/MFM/RLL support
555# 542#
543# CONFIG_BLK_DEV_NBD is not set
544CONFIG_BLK_DEV_UB=y
545# CONFIG_BLK_DEV_RAM is not set
546# CONFIG_CDROM_PKTCDVD is not set
547# CONFIG_ATA_OVER_ETH is not set
548# CONFIG_BLK_DEV_HD is not set
549# CONFIG_MISC_DEVICES is not set
550CONFIG_HAVE_IDE=y
556CONFIG_IDE=y 551CONFIG_IDE=y
557CONFIG_IDE_MAX_HWIFS=4
558CONFIG_BLK_DEV_IDE=y
559 552
560# 553#
561# Please see Documentation/ide.txt for help/info on IDE drives 554# Please see Documentation/ide/ide.txt for help/info on IDE drives
562# 555#
556CONFIG_IDE_XFER_MODE=y
557CONFIG_IDE_ATAPI=y
563# CONFIG_BLK_DEV_IDE_SATA is not set 558# CONFIG_BLK_DEV_IDE_SATA is not set
564CONFIG_BLK_DEV_IDEDISK=y 559CONFIG_IDE_GD=y
565CONFIG_IDEDISK_MULTI_MODE=y 560CONFIG_IDE_GD_ATA=y
566CONFIG_BLK_DEV_IDECS=m 561# CONFIG_IDE_GD_ATAPI is not set
567# CONFIG_BLK_DEV_IDECD is not set 562CONFIG_BLK_DEV_IDECS=y
563CONFIG_BLK_DEV_IDECD=y
564CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y
568# CONFIG_BLK_DEV_IDETAPE is not set 565# CONFIG_BLK_DEV_IDETAPE is not set
569# CONFIG_BLK_DEV_IDEFLOPPY is not set 566CONFIG_IDE_TASK_IOCTL=y
570# CONFIG_BLK_DEV_IDESCSI is not set 567# CONFIG_IDE_PROC_FS is not set
571# CONFIG_IDE_TASK_IOCTL is not set
572 568
573# 569#
574# IDE chipset support/bugfixes 570# IDE chipset support/bugfixes
575# 571#
576CONFIG_IDE_GENERIC=y 572# CONFIG_IDE_GENERIC is not set
573# CONFIG_BLK_DEV_PLATFORM is not set
577CONFIG_BLK_DEV_IDE_AU1XXX=y 574CONFIG_BLK_DEV_IDE_AU1XXX=y
578CONFIG_BLK_DEV_IDE_AU1XXX_PIO_DBDMA=y 575CONFIG_BLK_DEV_IDE_AU1XXX_PIO_DBDMA=y
579# CONFIG_BLK_DEV_IDE_AU1XXX_MDMA2_DBDMA is not set 576# CONFIG_BLK_DEV_IDE_AU1XXX_MDMA2_DBDMA is not set
580CONFIG_BLK_DEV_IDE_AU1XXX_SEQTS_PER_RQ=128
581# CONFIG_IDE_ARM is not set
582# CONFIG_BLK_DEV_IDEDMA is not set 577# CONFIG_BLK_DEV_IDEDMA is not set
583# CONFIG_IDEDMA_AUTO is not set
584# CONFIG_BLK_DEV_HD is not set
585 578
586# 579#
587# SCSI device support 580# SCSI device support
588# 581#
589# CONFIG_RAID_ATTRS is not set 582# CONFIG_RAID_ATTRS is not set
590CONFIG_SCSI=y 583# CONFIG_SCSI is not set
591CONFIG_SCSI_TGT=m 584# CONFIG_SCSI_DMA is not set
592# CONFIG_SCSI_NETLINK is not set 585# CONFIG_SCSI_NETLINK is not set
593CONFIG_SCSI_PROC_FS=y
594
595#
596# SCSI support type (disk, tape, CD-ROM)
597#
598CONFIG_BLK_DEV_SD=y
599# CONFIG_CHR_DEV_ST is not set
600# CONFIG_CHR_DEV_OSST is not set
601CONFIG_BLK_DEV_SR=y
602# CONFIG_BLK_DEV_SR_VENDOR is not set
603CONFIG_CHR_DEV_SG=y
604# CONFIG_CHR_DEV_SCH is not set
605
606#
607# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
608#
609CONFIG_SCSI_MULTI_LUN=y
610# CONFIG_SCSI_CONSTANTS is not set
611# CONFIG_SCSI_LOGGING is not set
612CONFIG_SCSI_SCAN_ASYNC=y
613
614#
615# SCSI Transports
616#
617# CONFIG_SCSI_SPI_ATTRS is not set
618# CONFIG_SCSI_FC_ATTRS is not set
619# CONFIG_SCSI_ISCSI_ATTRS is not set
620# CONFIG_SCSI_SAS_ATTRS is not set
621# CONFIG_SCSI_SAS_LIBSAS is not set
622
623#
624# SCSI low-level drivers
625#
626# CONFIG_ISCSI_TCP is not set
627# CONFIG_SCSI_DEBUG is not set
628
629#
630# PCMCIA SCSI adapter support
631#
632# CONFIG_PCMCIA_AHA152X is not set
633# CONFIG_PCMCIA_FDOMAIN is not set
634# CONFIG_PCMCIA_NINJA_SCSI is not set
635# CONFIG_PCMCIA_QLOGIC is not set
636# CONFIG_PCMCIA_SYM53C500 is not set
637
638#
639# Serial ATA (prod) and Parallel ATA (experimental) drivers
640#
641# CONFIG_ATA is not set 586# CONFIG_ATA is not set
642
643#
644# Multi-device support (RAID and LVM)
645#
646# CONFIG_MD is not set 587# CONFIG_MD is not set
647
648#
649# Fusion MPT device support
650#
651# CONFIG_FUSION is not set
652
653#
654# IEEE 1394 (FireWire) support
655#
656
657#
658# I2O device support
659#
660
661#
662# Network device support
663#
664CONFIG_NETDEVICES=y 588CONFIG_NETDEVICES=y
665# CONFIG_DUMMY is not set 589# CONFIG_DUMMY is not set
666# CONFIG_BONDING is not set 590# CONFIG_BONDING is not set
591# CONFIG_MACVLAN is not set
667# CONFIG_EQUALIZER is not set 592# CONFIG_EQUALIZER is not set
668# CONFIG_TUN is not set 593# CONFIG_TUN is not set
669 594# CONFIG_VETH is not set
670#
671# PHY device support
672#
673# CONFIG_PHYLIB is not set 595# CONFIG_PHYLIB is not set
674
675#
676# Ethernet (10 or 100Mbit)
677#
678CONFIG_NET_ETHERNET=y 596CONFIG_NET_ETHERNET=y
679CONFIG_MII=m 597CONFIG_MII=y
598# CONFIG_AX88796 is not set
680# CONFIG_MIPS_AU1X00_ENET is not set 599# CONFIG_MIPS_AU1X00_ENET is not set
681# CONFIG_SMC91X is not set 600CONFIG_SMC91X=y
682# CONFIG_DM9000 is not set 601# CONFIG_DM9000 is not set
683 602# CONFIG_ENC28J60 is not set
684# 603# CONFIG_ETHOC is not set
685# Ethernet (1000 Mbit) 604# CONFIG_SMSC911X is not set
686# 605# CONFIG_DNET is not set
687 606# CONFIG_IBM_NEW_EMAC_ZMII is not set
688# 607# CONFIG_IBM_NEW_EMAC_RGMII is not set
689# Ethernet (10000 Mbit) 608# CONFIG_IBM_NEW_EMAC_TAH is not set
690# 609# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
691 610# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
692# 611# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
693# Token Ring devices 612# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
694# 613# CONFIG_B44 is not set
695 614# CONFIG_KS8842 is not set
696# 615# CONFIG_KS8851 is not set
697# Wireless LAN (non-hamradio) 616# CONFIG_KS8851_MLL is not set
698# 617# CONFIG_NETDEV_1000 is not set
699# CONFIG_NET_RADIO is not set 618# CONFIG_NETDEV_10000 is not set
700 619# CONFIG_WLAN is not set
701# 620
702# PCMCIA network device support 621#
703# 622# Enable WiMAX (Networking options) to see the WiMAX drivers
623#
624
625#
626# USB Network Adapters
627#
628# CONFIG_USB_CATC is not set
629# CONFIG_USB_KAWETH is not set
630# CONFIG_USB_PEGASUS is not set
631# CONFIG_USB_RTL8150 is not set
632# CONFIG_USB_USBNET is not set
704# CONFIG_NET_PCMCIA is not set 633# CONFIG_NET_PCMCIA is not set
705
706#
707# Wan interfaces
708#
709# CONFIG_WAN is not set 634# CONFIG_WAN is not set
710# CONFIG_PPP is not set 635# CONFIG_PPP is not set
711# CONFIG_SLIP is not set 636# CONFIG_SLIP is not set
712# CONFIG_SHAPER is not set
713# CONFIG_NETCONSOLE is not set 637# CONFIG_NETCONSOLE is not set
714# CONFIG_NETPOLL is not set 638# CONFIG_NETPOLL is not set
715# CONFIG_NET_POLL_CONTROLLER is not set 639# CONFIG_NET_POLL_CONTROLLER is not set
716
717#
718# ISDN subsystem
719#
720# CONFIG_ISDN is not set 640# CONFIG_ISDN is not set
721
722#
723# Telephony Support
724#
725# CONFIG_PHONE is not set 641# CONFIG_PHONE is not set
726 642
727# 643#
@@ -729,16 +645,14 @@ CONFIG_MII=m
729# 645#
730CONFIG_INPUT=y 646CONFIG_INPUT=y
731# CONFIG_INPUT_FF_MEMLESS is not set 647# CONFIG_INPUT_FF_MEMLESS is not set
648# CONFIG_INPUT_POLLDEV is not set
649# CONFIG_INPUT_SPARSEKMAP is not set
732 650
733# 651#
734# Userland interfaces 652# Userland interfaces
735# 653#
736CONFIG_INPUT_MOUSEDEV=y 654# CONFIG_INPUT_MOUSEDEV is not set
737CONFIG_INPUT_MOUSEDEV_PSAUX=y
738CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
739CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
740# CONFIG_INPUT_JOYDEV is not set 655# CONFIG_INPUT_JOYDEV is not set
741# CONFIG_INPUT_TSDEV is not set
742CONFIG_INPUT_EVDEV=y 656CONFIG_INPUT_EVDEV=y
743# CONFIG_INPUT_EVBUG is not set 657# CONFIG_INPUT_EVBUG is not set
744 658
@@ -748,28 +662,26 @@ CONFIG_INPUT_EVDEV=y
748# CONFIG_INPUT_KEYBOARD is not set 662# CONFIG_INPUT_KEYBOARD is not set
749# CONFIG_INPUT_MOUSE is not set 663# CONFIG_INPUT_MOUSE is not set
750# CONFIG_INPUT_JOYSTICK is not set 664# CONFIG_INPUT_JOYSTICK is not set
665# CONFIG_INPUT_TABLET is not set
751# CONFIG_INPUT_TOUCHSCREEN is not set 666# CONFIG_INPUT_TOUCHSCREEN is not set
752# CONFIG_INPUT_MISC is not set 667# CONFIG_INPUT_MISC is not set
753 668
754# 669#
755# Hardware I/O ports 670# Hardware I/O ports
756# 671#
757CONFIG_SERIO=y 672# CONFIG_SERIO is not set
758# CONFIG_SERIO_I8042 is not set
759CONFIG_SERIO_SERPORT=y
760# CONFIG_SERIO_LIBPS2 is not set
761CONFIG_SERIO_RAW=y
762# CONFIG_GAMEPORT is not set 673# CONFIG_GAMEPORT is not set
763 674
764# 675#
765# Character devices 676# Character devices
766# 677#
767CONFIG_VT=y 678CONFIG_VT=y
679CONFIG_CONSOLE_TRANSLATIONS=y
768CONFIG_VT_CONSOLE=y 680CONFIG_VT_CONSOLE=y
769CONFIG_HW_CONSOLE=y 681CONFIG_HW_CONSOLE=y
770CONFIG_VT_HW_CONSOLE_BINDING=y 682CONFIG_VT_HW_CONSOLE_BINDING=y
683CONFIG_DEVKMEM=y
771# CONFIG_SERIAL_NONSTANDARD is not set 684# CONFIG_SERIAL_NONSTANDARD is not set
772# CONFIG_AU1X00_GPIO is not set
773 685
774# 686#
775# Serial drivers 687# Serial drivers
@@ -777,33 +689,22 @@ CONFIG_VT_HW_CONSOLE_BINDING=y
777CONFIG_SERIAL_8250=y 689CONFIG_SERIAL_8250=y
778CONFIG_SERIAL_8250_CONSOLE=y 690CONFIG_SERIAL_8250_CONSOLE=y
779# CONFIG_SERIAL_8250_CS is not set 691# CONFIG_SERIAL_8250_CS is not set
780CONFIG_SERIAL_8250_NR_UARTS=4 692CONFIG_SERIAL_8250_NR_UARTS=2
781CONFIG_SERIAL_8250_RUNTIME_UARTS=4 693CONFIG_SERIAL_8250_RUNTIME_UARTS=2
782# CONFIG_SERIAL_8250_EXTENDED is not set 694# CONFIG_SERIAL_8250_EXTENDED is not set
783CONFIG_SERIAL_8250_AU1X00=y 695CONFIG_SERIAL_8250_AU1X00=y
784 696
785# 697#
786# Non-8250 serial port support 698# Non-8250 serial port support
787# 699#
700# CONFIG_SERIAL_MAX3100 is not set
788CONFIG_SERIAL_CORE=y 701CONFIG_SERIAL_CORE=y
789CONFIG_SERIAL_CORE_CONSOLE=y 702CONFIG_SERIAL_CORE_CONSOLE=y
790CONFIG_UNIX98_PTYS=y 703CONFIG_UNIX98_PTYS=y
791CONFIG_LEGACY_PTYS=y 704# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
792CONFIG_LEGACY_PTY_COUNT=256 705# CONFIG_LEGACY_PTYS is not set
793
794#
795# IPMI
796#
797# CONFIG_IPMI_HANDLER is not set 706# CONFIG_IPMI_HANDLER is not set
798
799#
800# Watchdog Cards
801#
802# CONFIG_WATCHDOG is not set
803# CONFIG_HW_RANDOM is not set 707# CONFIG_HW_RANDOM is not set
804# CONFIG_RTC is not set
805# CONFIG_GEN_RTC is not set
806# CONFIG_DTLK is not set
807# CONFIG_R3964 is not set 708# CONFIG_R3964 is not set
808 709
809# 710#
@@ -812,223 +713,624 @@ CONFIG_LEGACY_PTY_COUNT=256
812# CONFIG_SYNCLINK_CS is not set 713# CONFIG_SYNCLINK_CS is not set
813# CONFIG_CARDMAN_4000 is not set 714# CONFIG_CARDMAN_4000 is not set
814# CONFIG_CARDMAN_4040 is not set 715# CONFIG_CARDMAN_4040 is not set
716# CONFIG_IPWIRELESS is not set
815# CONFIG_RAW_DRIVER is not set 717# CONFIG_RAW_DRIVER is not set
718# CONFIG_TCG_TPM is not set
719CONFIG_I2C=y
720CONFIG_I2C_BOARDINFO=y
721# CONFIG_I2C_COMPAT is not set
722CONFIG_I2C_CHARDEV=y
723# CONFIG_I2C_HELPER_AUTO is not set
816 724
817# 725#
818# TPM devices 726# I2C Algorithms
819# 727#
820# CONFIG_TCG_TPM is not set 728# CONFIG_I2C_ALGOBIT is not set
729# CONFIG_I2C_ALGOPCF is not set
730# CONFIG_I2C_ALGOPCA is not set
821 731
822# 732#
823# I2C support 733# I2C Hardware Bus support
824# 734#
825# CONFIG_I2C is not set
826 735
827# 736#
828# SPI support 737# I2C system bus drivers (mostly embedded / system-on-chip)
829# 738#
830# CONFIG_SPI is not set 739CONFIG_I2C_AU1550=y
831# CONFIG_SPI_MASTER is not set 740# CONFIG_I2C_GPIO is not set
741# CONFIG_I2C_OCORES is not set
742# CONFIG_I2C_SIMTEC is not set
832 743
833# 744#
834# Dallas's 1-wire bus 745# External I2C/SMBus adapter drivers
835# 746#
836# CONFIG_W1 is not set 747# CONFIG_I2C_PARPORT_LIGHT is not set
748# CONFIG_I2C_TAOS_EVM is not set
749# CONFIG_I2C_TINY_USB is not set
837 750
838# 751#
839# Hardware Monitoring support 752# Other I2C/SMBus bus drivers
840# 753#
841# CONFIG_HWMON is not set 754# CONFIG_I2C_PCA_PLATFORM is not set
842# CONFIG_HWMON_VID is not set 755# CONFIG_I2C_STUB is not set
843 756
844# 757#
845# Multimedia devices 758# Miscellaneous I2C Chip support
846# 759#
847# CONFIG_VIDEO_DEV is not set 760# CONFIG_SENSORS_TSL2550 is not set
761# CONFIG_I2C_DEBUG_CORE is not set
762# CONFIG_I2C_DEBUG_ALGO is not set
763# CONFIG_I2C_DEBUG_BUS is not set
764# CONFIG_I2C_DEBUG_CHIP is not set
765CONFIG_SPI=y
766# CONFIG_SPI_DEBUG is not set
767CONFIG_SPI_MASTER=y
848 768
849# 769#
850# Digital Video Broadcasting Devices 770# SPI Master Controller Drivers
851# 771#
852# CONFIG_DVB is not set 772CONFIG_SPI_AU1550=y
773CONFIG_SPI_BITBANG=y
774# CONFIG_SPI_GPIO is not set
775# CONFIG_SPI_XILINX is not set
776# CONFIG_SPI_DESIGNWARE is not set
777
778#
779# SPI Protocol Masters
780#
781# CONFIG_SPI_SPIDEV is not set
782# CONFIG_SPI_TLE62X0 is not set
783
784#
785# PPS support
786#
787# CONFIG_PPS is not set
788CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
789CONFIG_GPIOLIB=y
790# CONFIG_DEBUG_GPIO is not set
791CONFIG_GPIO_SYSFS=y
792
793#
794# Memory mapped GPIO expanders:
795#
796
797#
798# I2C GPIO expanders:
799#
800# CONFIG_GPIO_MAX732X is not set
801# CONFIG_GPIO_PCA953X is not set
802# CONFIG_GPIO_PCF857X is not set
803# CONFIG_GPIO_ADP5588 is not set
804
805#
806# PCI GPIO expanders:
807#
808
809#
810# SPI GPIO expanders:
811#
812# CONFIG_GPIO_MAX7301 is not set
813# CONFIG_GPIO_MCP23S08 is not set
814# CONFIG_GPIO_MC33880 is not set
815
816#
817# AC97 GPIO expanders:
818#
819# CONFIG_W1 is not set
820# CONFIG_POWER_SUPPLY is not set
821CONFIG_HWMON=y
822CONFIG_HWMON_VID=y
823# CONFIG_HWMON_DEBUG_CHIP is not set
824
825#
826# Native drivers
827#
828# CONFIG_SENSORS_AD7414 is not set
829# CONFIG_SENSORS_AD7418 is not set
830# CONFIG_SENSORS_ADCXX is not set
831# CONFIG_SENSORS_ADM1021 is not set
832CONFIG_SENSORS_ADM1025=y
833# CONFIG_SENSORS_ADM1026 is not set
834# CONFIG_SENSORS_ADM1029 is not set
835# CONFIG_SENSORS_ADM1031 is not set
836# CONFIG_SENSORS_ADM9240 is not set
837# CONFIG_SENSORS_ADT7462 is not set
838# CONFIG_SENSORS_ADT7470 is not set
839# CONFIG_SENSORS_ADT7473 is not set
840# CONFIG_SENSORS_ADT7475 is not set
841# CONFIG_SENSORS_ATXP1 is not set
842# CONFIG_SENSORS_DS1621 is not set
843# CONFIG_SENSORS_F71805F is not set
844# CONFIG_SENSORS_F71882FG is not set
845# CONFIG_SENSORS_F75375S is not set
846# CONFIG_SENSORS_G760A is not set
847# CONFIG_SENSORS_GL518SM is not set
848# CONFIG_SENSORS_GL520SM is not set
849# CONFIG_SENSORS_IT87 is not set
850# CONFIG_SENSORS_LM63 is not set
851CONFIG_SENSORS_LM70=y
852# CONFIG_SENSORS_LM73 is not set
853# CONFIG_SENSORS_LM75 is not set
854# CONFIG_SENSORS_LM77 is not set
855# CONFIG_SENSORS_LM78 is not set
856# CONFIG_SENSORS_LM80 is not set
857# CONFIG_SENSORS_LM83 is not set
858# CONFIG_SENSORS_LM85 is not set
859# CONFIG_SENSORS_LM87 is not set
860# CONFIG_SENSORS_LM90 is not set
861# CONFIG_SENSORS_LM92 is not set
862# CONFIG_SENSORS_LM93 is not set
863# CONFIG_SENSORS_LTC4215 is not set
864# CONFIG_SENSORS_LTC4245 is not set
865# CONFIG_SENSORS_LM95241 is not set
866# CONFIG_SENSORS_MAX1111 is not set
867# CONFIG_SENSORS_MAX1619 is not set
868# CONFIG_SENSORS_MAX6650 is not set
869# CONFIG_SENSORS_PC87360 is not set
870# CONFIG_SENSORS_PC87427 is not set
871# CONFIG_SENSORS_PCF8591 is not set
872# CONFIG_SENSORS_SHT15 is not set
873# CONFIG_SENSORS_DME1737 is not set
874# CONFIG_SENSORS_SMSC47M1 is not set
875# CONFIG_SENSORS_SMSC47M192 is not set
876# CONFIG_SENSORS_SMSC47B397 is not set
877# CONFIG_SENSORS_ADS7828 is not set
878# CONFIG_SENSORS_AMC6821 is not set
879# CONFIG_SENSORS_THMC50 is not set
880# CONFIG_SENSORS_TMP401 is not set
881# CONFIG_SENSORS_TMP421 is not set
882# CONFIG_SENSORS_VT1211 is not set
883# CONFIG_SENSORS_W83781D is not set
884# CONFIG_SENSORS_W83791D is not set
885# CONFIG_SENSORS_W83792D is not set
886# CONFIG_SENSORS_W83793 is not set
887# CONFIG_SENSORS_W83L785TS is not set
888# CONFIG_SENSORS_W83L786NG is not set
889# CONFIG_SENSORS_W83627HF is not set
890# CONFIG_SENSORS_W83627EHF is not set
891# CONFIG_SENSORS_LIS3_SPI is not set
892# CONFIG_SENSORS_LIS3_I2C is not set
893# CONFIG_THERMAL is not set
894# CONFIG_WATCHDOG is not set
895CONFIG_SSB_POSSIBLE=y
896
897#
898# Sonics Silicon Backplane
899#
900# CONFIG_SSB is not set
901
902#
903# Multifunction device drivers
904#
905# CONFIG_MFD_CORE is not set
906# CONFIG_MFD_SM501 is not set
907# CONFIG_HTC_PASIC3 is not set
908# CONFIG_UCB1400_CORE is not set
909# CONFIG_TPS65010 is not set
910# CONFIG_TWL4030_CORE is not set
911# CONFIG_MFD_TMIO is not set
912# CONFIG_PMIC_DA903X is not set
913# CONFIG_PMIC_ADP5520 is not set
914# CONFIG_MFD_WM8400 is not set
915# CONFIG_MFD_WM831X is not set
916# CONFIG_MFD_WM8350_I2C is not set
917# CONFIG_MFD_PCF50633 is not set
918# CONFIG_MFD_MC13783 is not set
919# CONFIG_AB3100_CORE is not set
920# CONFIG_EZX_PCAP is not set
921# CONFIG_MFD_88PM8607 is not set
922# CONFIG_AB4500_CORE is not set
923# CONFIG_REGULATOR is not set
924# CONFIG_MEDIA_SUPPORT is not set
853 925
854# 926#
855# Graphics support 927# Graphics support
856# 928#
857# CONFIG_FIRMWARE_EDID is not set 929# CONFIG_VGASTATE is not set
930# CONFIG_VIDEO_OUTPUT_CONTROL is not set
858CONFIG_FB=y 931CONFIG_FB=y
932# CONFIG_FIRMWARE_EDID is not set
933# CONFIG_FB_DDC is not set
934# CONFIG_FB_BOOT_VESA_SUPPORT is not set
859CONFIG_FB_CFB_FILLRECT=y 935CONFIG_FB_CFB_FILLRECT=y
860CONFIG_FB_CFB_COPYAREA=y 936CONFIG_FB_CFB_COPYAREA=y
861CONFIG_FB_CFB_IMAGEBLIT=y 937CONFIG_FB_CFB_IMAGEBLIT=y
938# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
939# CONFIG_FB_SYS_FILLRECT is not set
940# CONFIG_FB_SYS_COPYAREA is not set
941# CONFIG_FB_SYS_IMAGEBLIT is not set
942# CONFIG_FB_FOREIGN_ENDIAN is not set
943# CONFIG_FB_SYS_FOPS is not set
862# CONFIG_FB_SVGALIB is not set 944# CONFIG_FB_SVGALIB is not set
863# CONFIG_FB_MACMODES is not set 945# CONFIG_FB_MACMODES is not set
864# CONFIG_FB_BACKLIGHT is not set 946# CONFIG_FB_BACKLIGHT is not set
865# CONFIG_FB_MODE_HELPERS is not set 947# CONFIG_FB_MODE_HELPERS is not set
866# CONFIG_FB_TILEBLITTING is not set 948# CONFIG_FB_TILEBLITTING is not set
949
950#
951# Frame buffer hardware drivers
952#
867# CONFIG_FB_S1D13XXX is not set 953# CONFIG_FB_S1D13XXX is not set
868CONFIG_FB_AU1200=y 954CONFIG_FB_AU1200=y
869# CONFIG_FB_VIRTUAL is not set 955# CONFIG_FB_VIRTUAL is not set
956# CONFIG_FB_METRONOME is not set
957# CONFIG_FB_MB862XX is not set
958# CONFIG_FB_BROADSHEET is not set
959# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
960
961#
962# Display device support
963#
964# CONFIG_DISPLAY_SUPPORT is not set
870 965
871# 966#
872# Console display driver support 967# Console display driver support
873# 968#
874CONFIG_VGA_CONSOLE=y 969# CONFIG_VGA_CONSOLE is not set
875# CONFIG_VGACON_SOFT_SCROLLBACK is not set
876CONFIG_DUMMY_CONSOLE=y 970CONFIG_DUMMY_CONSOLE=y
877# CONFIG_FRAMEBUFFER_CONSOLE is not set 971CONFIG_FRAMEBUFFER_CONSOLE=y
972# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
973# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
974CONFIG_FONTS=y
975# CONFIG_FONT_8x8 is not set
976CONFIG_FONT_8x16=y
977# CONFIG_FONT_6x11 is not set
978# CONFIG_FONT_7x14 is not set
979# CONFIG_FONT_PEARL_8x8 is not set
980# CONFIG_FONT_ACORN_8x8 is not set
981# CONFIG_FONT_MINI_4x6 is not set
982# CONFIG_FONT_SUN8x16 is not set
983# CONFIG_FONT_SUN12x22 is not set
984# CONFIG_FONT_10x18 is not set
985# CONFIG_LOGO is not set
986CONFIG_SOUND=y
987# CONFIG_SOUND_OSS_CORE is not set
988CONFIG_SND=y
989CONFIG_SND_TIMER=y
990CONFIG_SND_PCM=y
991CONFIG_SND_JACK=y
992# CONFIG_SND_SEQUENCER is not set
993# CONFIG_SND_MIXER_OSS is not set
994# CONFIG_SND_PCM_OSS is not set
995# CONFIG_SND_HRTIMER is not set
996CONFIG_SND_DYNAMIC_MINORS=y
997# CONFIG_SND_SUPPORT_OLD_API is not set
998# CONFIG_SND_VERBOSE_PROCFS is not set
999# CONFIG_SND_VERBOSE_PRINTK is not set
1000# CONFIG_SND_DEBUG is not set
1001CONFIG_SND_VMASTER=y
1002# CONFIG_SND_RAWMIDI_SEQ is not set
1003# CONFIG_SND_OPL3_LIB_SEQ is not set
1004# CONFIG_SND_OPL4_LIB_SEQ is not set
1005# CONFIG_SND_SBAWE_SEQ is not set
1006# CONFIG_SND_EMU10K1_SEQ is not set
1007CONFIG_SND_AC97_CODEC=y
1008# CONFIG_SND_DRIVERS is not set
1009# CONFIG_SND_SPI is not set
1010# CONFIG_SND_MIPS is not set
1011# CONFIG_SND_USB is not set
1012# CONFIG_SND_PCMCIA is not set
1013CONFIG_SND_SOC=y
1014CONFIG_SND_SOC_AC97_BUS=y
1015CONFIG_SND_SOC_AU1XPSC=y
1016CONFIG_SND_SOC_AU1XPSC_I2S=y
1017CONFIG_SND_SOC_AU1XPSC_AC97=y
1018CONFIG_SND_SOC_DB1200=y
1019CONFIG_SND_SOC_I2C_AND_SPI=y
1020# CONFIG_SND_SOC_ALL_CODECS is not set
1021CONFIG_SND_SOC_AC97_CODEC=y
1022CONFIG_SND_SOC_WM8731=y
1023# CONFIG_SOUND_PRIME is not set
1024CONFIG_AC97_BUS=y
1025CONFIG_HID_SUPPORT=y
1026CONFIG_HID=y
1027CONFIG_HIDRAW=y
1028
1029#
1030# USB Input Devices
1031#
1032CONFIG_USB_HID=y
1033# CONFIG_HID_PID is not set
1034CONFIG_USB_HIDDEV=y
1035
1036#
1037# Special HID drivers
1038#
1039# CONFIG_HID_A4TECH is not set
1040# CONFIG_HID_APPLE is not set
1041# CONFIG_HID_BELKIN is not set
1042# CONFIG_HID_CHERRY is not set
1043# CONFIG_HID_CHICONY is not set
1044# CONFIG_HID_CYPRESS is not set
1045# CONFIG_HID_DRAGONRISE is not set
1046# CONFIG_HID_EZKEY is not set
1047# CONFIG_HID_KYE is not set
1048# CONFIG_HID_GYRATION is not set
1049# CONFIG_HID_TWINHAN is not set
1050# CONFIG_HID_KENSINGTON is not set
1051# CONFIG_HID_LOGITECH is not set
1052# CONFIG_HID_MICROSOFT is not set
1053# CONFIG_HID_MONTEREY is not set
1054# CONFIG_HID_NTRIG is not set
1055# CONFIG_HID_PANTHERLORD is not set
1056# CONFIG_HID_PETALYNX is not set
1057# CONFIG_HID_SAMSUNG is not set
1058# CONFIG_HID_SONY is not set
1059# CONFIG_HID_SUNPLUS is not set
1060# CONFIG_HID_GREENASIA is not set
1061# CONFIG_HID_SMARTJOYPLUS is not set
1062# CONFIG_HID_TOPSEED is not set
1063# CONFIG_HID_THRUSTMASTER is not set
1064# CONFIG_HID_ZEROPLUS is not set
1065CONFIG_USB_SUPPORT=y
1066CONFIG_USB_ARCH_HAS_HCD=y
1067CONFIG_USB_ARCH_HAS_OHCI=y
1068CONFIG_USB_ARCH_HAS_EHCI=y
1069CONFIG_USB=y
1070CONFIG_USB_DEBUG=y
1071CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
878 1072
879# 1073#
880# Logo configuration 1074# Miscellaneous USB options
881# 1075#
882CONFIG_LOGO=y 1076# CONFIG_USB_DEVICEFS is not set
883CONFIG_LOGO_LINUX_MONO=y 1077# CONFIG_USB_DEVICE_CLASS is not set
884CONFIG_LOGO_LINUX_VGA16=y 1078CONFIG_USB_DYNAMIC_MINORS=y
885CONFIG_LOGO_LINUX_CLUT224=y 1079# CONFIG_USB_OTG is not set
886# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 1080# CONFIG_USB_OTG_WHITELIST is not set
1081# CONFIG_USB_OTG_BLACKLIST_HUB is not set
1082# CONFIG_USB_MON is not set
1083# CONFIG_USB_WUSB is not set
1084# CONFIG_USB_WUSB_CBAF is not set
887 1085
888# 1086#
889# Sound 1087# USB Host Controller Drivers
890# 1088#
891# CONFIG_SOUND is not set 1089# CONFIG_USB_C67X00_HCD is not set
1090CONFIG_USB_EHCI_HCD=y
1091CONFIG_USB_EHCI_ROOT_HUB_TT=y
1092CONFIG_USB_EHCI_TT_NEWSCHED=y
1093# CONFIG_USB_OXU210HP_HCD is not set
1094# CONFIG_USB_ISP116X_HCD is not set
1095# CONFIG_USB_ISP1760_HCD is not set
1096# CONFIG_USB_ISP1362_HCD is not set
1097CONFIG_USB_OHCI_HCD=y
1098# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
1099# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
1100CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1101# CONFIG_USB_SL811_HCD is not set
1102# CONFIG_USB_R8A66597_HCD is not set
1103# CONFIG_USB_HWA_HCD is not set
892 1104
893# 1105#
894# HID Devices 1106# USB Device Class drivers
895# 1107#
896CONFIG_HID=y 1108# CONFIG_USB_ACM is not set
897# CONFIG_HID_DEBUG is not set 1109# CONFIG_USB_PRINTER is not set
1110# CONFIG_USB_WDM is not set
1111# CONFIG_USB_TMC is not set
898 1112
899# 1113#
900# USB support 1114# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
901# 1115#
902CONFIG_USB_ARCH_HAS_HCD=y
903CONFIG_USB_ARCH_HAS_OHCI=y
904CONFIG_USB_ARCH_HAS_EHCI=y
905# CONFIG_USB is not set
906 1116
907# 1117#
908# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1118# also be needed; see USB_STORAGE Help for more info
909# 1119#
1120# CONFIG_USB_LIBUSUAL is not set
910 1121
911# 1122#
912# USB Gadget Support 1123# USB Imaging devices
913# 1124#
914CONFIG_USB_GADGET=m 1125# CONFIG_USB_MDC800 is not set
915# CONFIG_USB_GADGET_DEBUG_FILES is not set
916# CONFIG_USB_GADGET_NET2280 is not set
917# CONFIG_USB_GADGET_PXA2XX is not set
918# CONFIG_USB_GADGET_GOKU is not set
919# CONFIG_USB_GADGET_LH7A40X is not set
920# CONFIG_USB_GADGET_OMAP is not set
921# CONFIG_USB_GADGET_AT91 is not set
922# CONFIG_USB_GADGET_DUMMY_HCD is not set
923# CONFIG_USB_GADGET_DUALSPEED is not set
924 1126
925# 1127#
926# MMC/SD Card support 1128# USB port drivers
927# 1129#
1130# CONFIG_USB_SERIAL is not set
1131
1132#
1133# USB Miscellaneous drivers
1134#
1135# CONFIG_USB_EMI62 is not set
1136# CONFIG_USB_EMI26 is not set
1137# CONFIG_USB_ADUTUX is not set
1138# CONFIG_USB_SEVSEG is not set
1139# CONFIG_USB_RIO500 is not set
1140# CONFIG_USB_LEGOTOWER is not set
1141# CONFIG_USB_LCD is not set
1142# CONFIG_USB_BERRY_CHARGE is not set
1143# CONFIG_USB_LED is not set
1144# CONFIG_USB_CYPRESS_CY7C63 is not set
1145# CONFIG_USB_CYTHERM is not set
1146# CONFIG_USB_IDMOUSE is not set
1147# CONFIG_USB_FTDI_ELAN is not set
1148# CONFIG_USB_APPLEDISPLAY is not set
1149# CONFIG_USB_SISUSBVGA is not set
1150# CONFIG_USB_LD is not set
1151# CONFIG_USB_TRANCEVIBRATOR is not set
1152# CONFIG_USB_IOWARRIOR is not set
1153# CONFIG_USB_TEST is not set
1154# CONFIG_USB_ISIGHTFW is not set
1155# CONFIG_USB_VST is not set
1156# CONFIG_USB_GADGET is not set
1157
1158#
1159# OTG and related infrastructure
1160#
1161# CONFIG_USB_GPIO_VBUS is not set
1162# CONFIG_NOP_USB_XCEIV is not set
928CONFIG_MMC=y 1163CONFIG_MMC=y
929# CONFIG_MMC_DEBUG is not set 1164# CONFIG_MMC_DEBUG is not set
930CONFIG_MMC_BLOCK=y 1165# CONFIG_MMC_UNSAFE_RESUME is not set
931CONFIG_MMC_AU1X=y
932 1166
933# 1167#
934# LED devices 1168# MMC/SD/SDIO Card Drivers
935# 1169#
936# CONFIG_NEW_LEDS is not set 1170CONFIG_MMC_BLOCK=y
1171# CONFIG_MMC_BLOCK_BOUNCE is not set
1172# CONFIG_SDIO_UART is not set
1173# CONFIG_MMC_TEST is not set
937 1174
938# 1175#
939# LED drivers 1176# MMC/SD/SDIO Host Controller Drivers
940# 1177#
1178# CONFIG_MMC_SDHCI is not set
1179CONFIG_MMC_AU1X=y
1180# CONFIG_MMC_AT91 is not set
1181# CONFIG_MMC_ATMELMCI is not set
1182# CONFIG_MMC_SPI is not set
1183# CONFIG_MEMSTICK is not set
1184CONFIG_NEW_LEDS=y
1185CONFIG_LEDS_CLASS=y
941 1186
942# 1187#
943# LED Triggers 1188# LED drivers
944# 1189#
1190# CONFIG_LEDS_PCA9532 is not set
1191# CONFIG_LEDS_GPIO is not set
1192# CONFIG_LEDS_LP3944 is not set
1193# CONFIG_LEDS_PCA955X is not set
1194# CONFIG_LEDS_DAC124S085 is not set
1195# CONFIG_LEDS_BD2802 is not set
1196# CONFIG_LEDS_LT3593 is not set
945 1197
946# 1198#
947# InfiniBand support 1199# LED Triggers
948# 1200#
1201CONFIG_LEDS_TRIGGERS=y
1202# CONFIG_LEDS_TRIGGER_TIMER is not set
1203# CONFIG_LEDS_TRIGGER_IDE_DISK is not set
1204# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set
1205# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
1206# CONFIG_LEDS_TRIGGER_GPIO is not set
1207# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set
949 1208
950# 1209#
951# EDAC - error detection and reporting (RAS) (EXPERIMENTAL) 1210# iptables trigger is under Netfilter config (LED target)
952# 1211#
1212# CONFIG_ACCESSIBILITY is not set
1213CONFIG_RTC_LIB=y
1214CONFIG_RTC_CLASS=y
1215CONFIG_RTC_HCTOSYS=y
1216CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
1217# CONFIG_RTC_DEBUG is not set
953 1218
954# 1219#
955# Real Time Clock 1220# RTC interfaces
956# 1221#
957# CONFIG_RTC_CLASS is not set 1222CONFIG_RTC_INTF_SYSFS=y
1223CONFIG_RTC_INTF_PROC=y
1224CONFIG_RTC_INTF_DEV=y
1225# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
1226# CONFIG_RTC_DRV_TEST is not set
958 1227
959# 1228#
960# DMA Engine support 1229# I2C RTC drivers
961# 1230#
962# CONFIG_DMA_ENGINE is not set 1231# CONFIG_RTC_DRV_DS1307 is not set
1232# CONFIG_RTC_DRV_DS1374 is not set
1233# CONFIG_RTC_DRV_DS1672 is not set
1234# CONFIG_RTC_DRV_MAX6900 is not set
1235# CONFIG_RTC_DRV_RS5C372 is not set
1236# CONFIG_RTC_DRV_ISL1208 is not set
1237# CONFIG_RTC_DRV_X1205 is not set
1238# CONFIG_RTC_DRV_PCF8563 is not set
1239# CONFIG_RTC_DRV_PCF8583 is not set
1240# CONFIG_RTC_DRV_M41T80 is not set
1241# CONFIG_RTC_DRV_BQ32K is not set
1242# CONFIG_RTC_DRV_S35390A is not set
1243# CONFIG_RTC_DRV_FM3130 is not set
1244# CONFIG_RTC_DRV_RX8581 is not set
1245# CONFIG_RTC_DRV_RX8025 is not set
963 1246
964# 1247#
965# DMA Clients 1248# SPI RTC drivers
966# 1249#
1250# CONFIG_RTC_DRV_M41T94 is not set
1251# CONFIG_RTC_DRV_DS1305 is not set
1252# CONFIG_RTC_DRV_DS1390 is not set
1253# CONFIG_RTC_DRV_MAX6902 is not set
1254# CONFIG_RTC_DRV_R9701 is not set
1255# CONFIG_RTC_DRV_RS5C348 is not set
1256# CONFIG_RTC_DRV_DS3234 is not set
1257# CONFIG_RTC_DRV_PCF2123 is not set
967 1258
968# 1259#
969# DMA Devices 1260# Platform RTC drivers
970# 1261#
1262# CONFIG_RTC_DRV_CMOS is not set
1263# CONFIG_RTC_DRV_DS1286 is not set
1264# CONFIG_RTC_DRV_DS1511 is not set
1265# CONFIG_RTC_DRV_DS1553 is not set
1266# CONFIG_RTC_DRV_DS1742 is not set
1267# CONFIG_RTC_DRV_STK17TA8 is not set
1268# CONFIG_RTC_DRV_M48T86 is not set
1269# CONFIG_RTC_DRV_M48T35 is not set
1270# CONFIG_RTC_DRV_M48T59 is not set
1271# CONFIG_RTC_DRV_MSM6242 is not set
1272# CONFIG_RTC_DRV_BQ4802 is not set
1273# CONFIG_RTC_DRV_RP5C01 is not set
1274# CONFIG_RTC_DRV_V3020 is not set
971 1275
972# 1276#
973# Auxiliary Display support 1277# on-CPU RTC drivers
974# 1278#
1279CONFIG_RTC_DRV_AU1XXX=y
1280# CONFIG_DMADEVICES is not set
1281# CONFIG_AUXDISPLAY is not set
1282# CONFIG_UIO is not set
975 1283
976# 1284#
977# Virtualization 1285# TI VLYNQ
978# 1286#
1287# CONFIG_STAGING is not set
979 1288
980# 1289#
981# File systems 1290# File systems
982# 1291#
983CONFIG_EXT2_FS=y 1292CONFIG_EXT2_FS=y
984CONFIG_EXT2_FS_XATTR=y 1293# CONFIG_EXT2_FS_XATTR is not set
985CONFIG_EXT2_FS_POSIX_ACL=y
986# CONFIG_EXT2_FS_SECURITY is not set
987# CONFIG_EXT2_FS_XIP is not set 1294# CONFIG_EXT2_FS_XIP is not set
988CONFIG_EXT3_FS=y 1295# CONFIG_EXT3_FS is not set
989CONFIG_EXT3_FS_XATTR=y 1296# CONFIG_EXT4_FS is not set
990CONFIG_EXT3_FS_POSIX_ACL=y
991CONFIG_EXT3_FS_SECURITY=y
992# CONFIG_EXT4DEV_FS is not set
993CONFIG_JBD=y
994# CONFIG_JBD_DEBUG is not set
995CONFIG_FS_MBCACHE=y
996# CONFIG_REISERFS_FS is not set 1297# CONFIG_REISERFS_FS is not set
997CONFIG_JFS_FS=y 1298# CONFIG_JFS_FS is not set
998# CONFIG_JFS_POSIX_ACL is not set 1299# CONFIG_FS_POSIX_ACL is not set
999# CONFIG_JFS_SECURITY is not set
1000# CONFIG_JFS_DEBUG is not set
1001# CONFIG_JFS_STATISTICS is not set
1002CONFIG_FS_POSIX_ACL=y
1003# CONFIG_XFS_FS is not set 1300# CONFIG_XFS_FS is not set
1004# CONFIG_GFS2_FS is not set
1005# CONFIG_OCFS2_FS is not set 1301# CONFIG_OCFS2_FS is not set
1006# CONFIG_MINIX_FS is not set 1302# CONFIG_BTRFS_FS is not set
1007# CONFIG_ROMFS_FS is not set 1303# CONFIG_NILFS2_FS is not set
1304CONFIG_FILE_LOCKING=y
1305CONFIG_FSNOTIFY=y
1306CONFIG_DNOTIFY=y
1008CONFIG_INOTIFY=y 1307CONFIG_INOTIFY=y
1009CONFIG_INOTIFY_USER=y 1308CONFIG_INOTIFY_USER=y
1010# CONFIG_QUOTA is not set 1309# CONFIG_QUOTA is not set
1011CONFIG_DNOTIFY=y
1012# CONFIG_AUTOFS_FS is not set 1310# CONFIG_AUTOFS_FS is not set
1013# CONFIG_AUTOFS4_FS is not set 1311# CONFIG_AUTOFS4_FS is not set
1014# CONFIG_FUSE_FS is not set 1312# CONFIG_FUSE_FS is not set
1015CONFIG_GENERIC_ACL=y 1313
1314#
1315# Caches
1316#
1317# CONFIG_FSCACHE is not set
1016 1318
1017# 1319#
1018# CD-ROM/DVD Filesystems 1320# CD-ROM/DVD Filesystems
1019# 1321#
1020CONFIG_ISO9660_FS=m 1322CONFIG_ISO9660_FS=y
1021CONFIG_JOLIET=y 1323CONFIG_JOLIET=y
1022CONFIG_ZISOFS=y 1324CONFIG_ZISOFS=y
1023CONFIG_UDF_FS=m 1325CONFIG_UDF_FS=y
1024CONFIG_UDF_NLS=y 1326CONFIG_UDF_NLS=y
1025 1327
1026# 1328#
1027# DOS/FAT/NT Filesystems 1329# DOS/FAT/NT Filesystems
1028# 1330#
1029CONFIG_FAT_FS=m 1331CONFIG_FAT_FS=y
1030CONFIG_MSDOS_FS=m 1332# CONFIG_MSDOS_FS is not set
1031CONFIG_VFAT_FS=m 1333CONFIG_VFAT_FS=y
1032CONFIG_FAT_DEFAULT_CODEPAGE=437 1334CONFIG_FAT_DEFAULT_CODEPAGE=437
1033CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" 1335CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
1034# CONFIG_NTFS_FS is not set 1336# CONFIG_NTFS_FS is not set
@@ -1037,21 +1339,17 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
1037# Pseudo filesystems 1339# Pseudo filesystems
1038# 1340#
1039CONFIG_PROC_FS=y 1341CONFIG_PROC_FS=y
1040CONFIG_PROC_KCORE=y 1342# CONFIG_PROC_KCORE is not set
1041CONFIG_PROC_SYSCTL=y 1343CONFIG_PROC_SYSCTL=y
1344# CONFIG_PROC_PAGE_MONITOR is not set
1042CONFIG_SYSFS=y 1345CONFIG_SYSFS=y
1043CONFIG_TMPFS=y 1346CONFIG_TMPFS=y
1044CONFIG_TMPFS_POSIX_ACL=y 1347# CONFIG_TMPFS_POSIX_ACL is not set
1045# CONFIG_HUGETLB_PAGE is not set 1348# CONFIG_HUGETLB_PAGE is not set
1046CONFIG_RAMFS=y 1349# CONFIG_CONFIGFS_FS is not set
1047CONFIG_CONFIGFS_FS=m 1350CONFIG_MISC_FILESYSTEMS=y
1048
1049#
1050# Miscellaneous filesystems
1051#
1052# CONFIG_ADFS_FS is not set 1351# CONFIG_ADFS_FS is not set
1053# CONFIG_AFFS_FS is not set 1352# CONFIG_AFFS_FS is not set
1054# CONFIG_ECRYPT_FS is not set
1055# CONFIG_HFS_FS is not set 1353# CONFIG_HFS_FS is not set
1056# CONFIG_HFSPLUS_FS is not set 1354# CONFIG_HFSPLUS_FS is not set
1057# CONFIG_BEFS_FS is not set 1355# CONFIG_BEFS_FS is not set
@@ -1060,27 +1358,36 @@ CONFIG_CONFIGFS_FS=m
1060CONFIG_JFFS2_FS=y 1358CONFIG_JFFS2_FS=y
1061CONFIG_JFFS2_FS_DEBUG=0 1359CONFIG_JFFS2_FS_DEBUG=0
1062CONFIG_JFFS2_FS_WRITEBUFFER=y 1360CONFIG_JFFS2_FS_WRITEBUFFER=y
1063# CONFIG_JFFS2_SUMMARY is not set 1361# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
1362CONFIG_JFFS2_SUMMARY=y
1064# CONFIG_JFFS2_FS_XATTR is not set 1363# CONFIG_JFFS2_FS_XATTR is not set
1065# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set 1364CONFIG_JFFS2_COMPRESSION_OPTIONS=y
1066CONFIG_JFFS2_ZLIB=y 1365CONFIG_JFFS2_ZLIB=y
1366CONFIG_JFFS2_LZO=y
1067CONFIG_JFFS2_RTIME=y 1367CONFIG_JFFS2_RTIME=y
1068# CONFIG_JFFS2_RUBIN is not set 1368CONFIG_JFFS2_RUBIN=y
1069CONFIG_CRAMFS=m 1369# CONFIG_JFFS2_CMODE_NONE is not set
1370CONFIG_JFFS2_CMODE_PRIORITY=y
1371# CONFIG_JFFS2_CMODE_SIZE is not set
1372# CONFIG_JFFS2_CMODE_FAVOURLZO is not set
1373# CONFIG_CRAMFS is not set
1374CONFIG_SQUASHFS=y
1375# CONFIG_SQUASHFS_EMBEDDED is not set
1376CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
1070# CONFIG_VXFS_FS is not set 1377# CONFIG_VXFS_FS is not set
1378# CONFIG_MINIX_FS is not set
1379# CONFIG_OMFS_FS is not set
1071# CONFIG_HPFS_FS is not set 1380# CONFIG_HPFS_FS is not set
1072# CONFIG_QNX4FS_FS is not set 1381# CONFIG_QNX4FS_FS is not set
1382# CONFIG_ROMFS_FS is not set
1073# CONFIG_SYSV_FS is not set 1383# CONFIG_SYSV_FS is not set
1074# CONFIG_UFS_FS is not set 1384# CONFIG_UFS_FS is not set
1075 1385CONFIG_NETWORK_FILESYSTEMS=y
1076#
1077# Network File Systems
1078#
1079CONFIG_NFS_FS=y 1386CONFIG_NFS_FS=y
1080CONFIG_NFS_V3=y 1387CONFIG_NFS_V3=y
1081# CONFIG_NFS_V3_ACL is not set 1388# CONFIG_NFS_V3_ACL is not set
1082# CONFIG_NFS_V4 is not set 1389# CONFIG_NFS_V4 is not set
1083# CONFIG_NFS_DIRECTIO is not set 1390CONFIG_ROOT_NFS=y
1084# CONFIG_NFSD is not set 1391# CONFIG_NFSD is not set
1085CONFIG_LOCKD=y 1392CONFIG_LOCKD=y
1086CONFIG_LOCKD_V4=y 1393CONFIG_LOCKD_V4=y
@@ -1088,91 +1395,140 @@ CONFIG_NFS_COMMON=y
1088CONFIG_SUNRPC=y 1395CONFIG_SUNRPC=y
1089# CONFIG_RPCSEC_GSS_KRB5 is not set 1396# CONFIG_RPCSEC_GSS_KRB5 is not set
1090# CONFIG_RPCSEC_GSS_SPKM3 is not set 1397# CONFIG_RPCSEC_GSS_SPKM3 is not set
1091CONFIG_SMB_FS=y 1398# CONFIG_SMB_FS is not set
1092# CONFIG_SMB_NLS_DEFAULT is not set
1093# CONFIG_CIFS is not set 1399# CONFIG_CIFS is not set
1094# CONFIG_NCP_FS is not set 1400# CONFIG_NCP_FS is not set
1095# CONFIG_CODA_FS is not set 1401# CONFIG_CODA_FS is not set
1096# CONFIG_AFS_FS is not set 1402# CONFIG_AFS_FS is not set
1097# CONFIG_9P_FS is not set
1098 1403
1099# 1404#
1100# Partition Types 1405# Partition Types
1101# 1406#
1102# CONFIG_PARTITION_ADVANCED is not set 1407CONFIG_PARTITION_ADVANCED=y
1408# CONFIG_ACORN_PARTITION is not set
1409# CONFIG_OSF_PARTITION is not set
1410# CONFIG_AMIGA_PARTITION is not set
1411# CONFIG_ATARI_PARTITION is not set
1412# CONFIG_MAC_PARTITION is not set
1103CONFIG_MSDOS_PARTITION=y 1413CONFIG_MSDOS_PARTITION=y
1104 1414# CONFIG_BSD_DISKLABEL is not set
1105# 1415# CONFIG_MINIX_SUBPARTITION is not set
1106# Native Language Support 1416# CONFIG_SOLARIS_X86_PARTITION is not set
1107# 1417# CONFIG_UNIXWARE_DISKLABEL is not set
1418# CONFIG_LDM_PARTITION is not set
1419# CONFIG_SGI_PARTITION is not set
1420# CONFIG_ULTRIX_PARTITION is not set
1421# CONFIG_SUN_PARTITION is not set
1422# CONFIG_KARMA_PARTITION is not set
1423CONFIG_EFI_PARTITION=y
1424# CONFIG_SYSV68_PARTITION is not set
1108CONFIG_NLS=y 1425CONFIG_NLS=y
1109CONFIG_NLS_DEFAULT="iso8859-1" 1426CONFIG_NLS_DEFAULT="iso8859-1"
1110CONFIG_NLS_CODEPAGE_437=m 1427CONFIG_NLS_CODEPAGE_437=y
1111CONFIG_NLS_CODEPAGE_737=m 1428# CONFIG_NLS_CODEPAGE_737 is not set
1112CONFIG_NLS_CODEPAGE_775=m 1429# CONFIG_NLS_CODEPAGE_775 is not set
1113CONFIG_NLS_CODEPAGE_850=m 1430CONFIG_NLS_CODEPAGE_850=y
1114CONFIG_NLS_CODEPAGE_852=m 1431CONFIG_NLS_CODEPAGE_852=y
1115CONFIG_NLS_CODEPAGE_855=m 1432# CONFIG_NLS_CODEPAGE_855 is not set
1116CONFIG_NLS_CODEPAGE_857=m 1433# CONFIG_NLS_CODEPAGE_857 is not set
1117CONFIG_NLS_CODEPAGE_860=m 1434# CONFIG_NLS_CODEPAGE_860 is not set
1118CONFIG_NLS_CODEPAGE_861=m 1435# CONFIG_NLS_CODEPAGE_861 is not set
1119CONFIG_NLS_CODEPAGE_862=m 1436# CONFIG_NLS_CODEPAGE_862 is not set
1120CONFIG_NLS_CODEPAGE_863=m 1437# CONFIG_NLS_CODEPAGE_863 is not set
1121CONFIG_NLS_CODEPAGE_864=m 1438# CONFIG_NLS_CODEPAGE_864 is not set
1122CONFIG_NLS_CODEPAGE_865=m 1439# CONFIG_NLS_CODEPAGE_865 is not set
1123CONFIG_NLS_CODEPAGE_866=m 1440# CONFIG_NLS_CODEPAGE_866 is not set
1124CONFIG_NLS_CODEPAGE_869=m 1441# CONFIG_NLS_CODEPAGE_869 is not set
1125CONFIG_NLS_CODEPAGE_936=m 1442# CONFIG_NLS_CODEPAGE_936 is not set
1126CONFIG_NLS_CODEPAGE_950=m 1443# CONFIG_NLS_CODEPAGE_950 is not set
1127CONFIG_NLS_CODEPAGE_932=m 1444# CONFIG_NLS_CODEPAGE_932 is not set
1128CONFIG_NLS_CODEPAGE_949=m 1445# CONFIG_NLS_CODEPAGE_949 is not set
1129CONFIG_NLS_CODEPAGE_874=m 1446# CONFIG_NLS_CODEPAGE_874 is not set
1130CONFIG_NLS_ISO8859_8=m 1447# CONFIG_NLS_ISO8859_8 is not set
1131CONFIG_NLS_CODEPAGE_1250=m 1448CONFIG_NLS_CODEPAGE_1250=y
1132CONFIG_NLS_CODEPAGE_1251=m 1449# CONFIG_NLS_CODEPAGE_1251 is not set
1133CONFIG_NLS_ASCII=m 1450CONFIG_NLS_ASCII=y
1134CONFIG_NLS_ISO8859_1=m 1451CONFIG_NLS_ISO8859_1=y
1135CONFIG_NLS_ISO8859_2=m 1452CONFIG_NLS_ISO8859_2=y
1136CONFIG_NLS_ISO8859_3=m 1453# CONFIG_NLS_ISO8859_3 is not set
1137CONFIG_NLS_ISO8859_4=m 1454# CONFIG_NLS_ISO8859_4 is not set
1138CONFIG_NLS_ISO8859_5=m 1455# CONFIG_NLS_ISO8859_5 is not set
1139CONFIG_NLS_ISO8859_6=m 1456# CONFIG_NLS_ISO8859_6 is not set
1140CONFIG_NLS_ISO8859_7=m 1457# CONFIG_NLS_ISO8859_7 is not set
1141CONFIG_NLS_ISO8859_9=m 1458# CONFIG_NLS_ISO8859_9 is not set
1142CONFIG_NLS_ISO8859_13=m 1459# CONFIG_NLS_ISO8859_13 is not set
1143CONFIG_NLS_ISO8859_14=m 1460# CONFIG_NLS_ISO8859_14 is not set
1144CONFIG_NLS_ISO8859_15=m 1461CONFIG_NLS_ISO8859_15=y
1145CONFIG_NLS_KOI8_R=m 1462# CONFIG_NLS_KOI8_R is not set
1146CONFIG_NLS_KOI8_U=m 1463# CONFIG_NLS_KOI8_U is not set
1147CONFIG_NLS_UTF8=m 1464CONFIG_NLS_UTF8=y
1148 1465# CONFIG_DLM is not set
1149#
1150# Distributed Lock Manager
1151#
1152CONFIG_DLM=m
1153CONFIG_DLM_TCP=y
1154# CONFIG_DLM_SCTP is not set
1155# CONFIG_DLM_DEBUG is not set
1156
1157#
1158# Profiling support
1159#
1160# CONFIG_PROFILING is not set
1161 1466
1162# 1467#
1163# Kernel hacking 1468# Kernel hacking
1164# 1469#
1165CONFIG_TRACE_IRQFLAGS_SUPPORT=y 1470CONFIG_TRACE_IRQFLAGS_SUPPORT=y
1166# CONFIG_PRINTK_TIME is not set 1471# CONFIG_PRINTK_TIME is not set
1167CONFIG_ENABLE_MUST_CHECK=y 1472# CONFIG_ENABLE_WARN_DEPRECATED is not set
1168# CONFIG_MAGIC_SYSRQ is not set 1473# CONFIG_ENABLE_MUST_CHECK is not set
1474CONFIG_FRAME_WARN=1024
1475CONFIG_MAGIC_SYSRQ=y
1476CONFIG_STRIP_ASM_SYMS=y
1169# CONFIG_UNUSED_SYMBOLS is not set 1477# CONFIG_UNUSED_SYMBOLS is not set
1170# CONFIG_DEBUG_FS is not set 1478# CONFIG_DEBUG_FS is not set
1171# CONFIG_HEADERS_CHECK is not set 1479# CONFIG_HEADERS_CHECK is not set
1172# CONFIG_DEBUG_KERNEL is not set 1480CONFIG_DEBUG_KERNEL=y
1173CONFIG_LOG_BUF_SHIFT=14 1481# CONFIG_DEBUG_SHIRQ is not set
1174CONFIG_CROSSCOMPILE=y 1482# CONFIG_DETECT_SOFTLOCKUP is not set
1175CONFIG_CMDLINE="mem=48M" 1483# CONFIG_DETECT_HUNG_TASK is not set
1484# CONFIG_SCHED_DEBUG is not set
1485# CONFIG_SCHEDSTATS is not set
1486# CONFIG_TIMER_STATS is not set
1487# CONFIG_DEBUG_OBJECTS is not set
1488# CONFIG_DEBUG_SLAB is not set
1489# CONFIG_DEBUG_RT_MUTEXES is not set
1490# CONFIG_RT_MUTEX_TESTER is not set
1491# CONFIG_DEBUG_SPINLOCK is not set
1492# CONFIG_DEBUG_MUTEXES is not set
1493# CONFIG_DEBUG_LOCK_ALLOC is not set
1494# CONFIG_PROVE_LOCKING is not set
1495# CONFIG_LOCK_STAT is not set
1496# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1497# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1498# CONFIG_DEBUG_KOBJECT is not set
1499# CONFIG_DEBUG_INFO is not set
1500# CONFIG_DEBUG_VM is not set
1501# CONFIG_DEBUG_WRITECOUNT is not set
1502# CONFIG_DEBUG_MEMORY_INIT is not set
1503# CONFIG_DEBUG_LIST is not set
1504# CONFIG_DEBUG_SG is not set
1505# CONFIG_DEBUG_NOTIFIERS is not set
1506# CONFIG_DEBUG_CREDENTIALS is not set
1507# CONFIG_BOOT_PRINTK_DELAY is not set
1508# CONFIG_RCU_TORTURE_TEST is not set
1509# CONFIG_BACKTRACE_SELF_TEST is not set
1510# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1511# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
1512# CONFIG_FAULT_INJECTION is not set
1513# CONFIG_SYSCTL_SYSCALL_CHECK is not set
1514# CONFIG_PAGE_POISONING is not set
1515CONFIG_HAVE_FUNCTION_TRACER=y
1516CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1517CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y
1518CONFIG_HAVE_DYNAMIC_FTRACE=y
1519CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1520CONFIG_TRACING_SUPPORT=y
1521# CONFIG_FTRACE is not set
1522# CONFIG_SAMPLES is not set
1523CONFIG_HAVE_ARCH_KGDB=y
1524# CONFIG_KGDB is not set
1525CONFIG_EARLY_PRINTK=y
1526CONFIG_CMDLINE_BOOL=y
1527CONFIG_CMDLINE="console=ttyS0,115200"
1528# CONFIG_CMDLINE_OVERRIDE is not set
1529# CONFIG_DEBUG_STACK_USAGE is not set
1530# CONFIG_RUNTIME_DEBUG is not set
1531CONFIG_DEBUG_ZBOOT=y
1176 1532
1177# 1533#
1178# Security options 1534# Security options
@@ -1180,67 +1536,32 @@ CONFIG_CMDLINE="mem=48M"
1180CONFIG_KEYS=y 1536CONFIG_KEYS=y
1181CONFIG_KEYS_DEBUG_PROC_KEYS=y 1537CONFIG_KEYS_DEBUG_PROC_KEYS=y
1182# CONFIG_SECURITY is not set 1538# CONFIG_SECURITY is not set
1183 1539CONFIG_SECURITYFS=y
1184# 1540# CONFIG_DEFAULT_SECURITY_SELINUX is not set
1185# Cryptographic options 1541# CONFIG_DEFAULT_SECURITY_SMACK is not set
1186# 1542# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
1187CONFIG_CRYPTO=y 1543CONFIG_DEFAULT_SECURITY_DAC=y
1188CONFIG_CRYPTO_ALGAPI=y 1544CONFIG_DEFAULT_SECURITY=""
1189CONFIG_CRYPTO_BLKCIPHER=m 1545# CONFIG_CRYPTO is not set
1190CONFIG_CRYPTO_HASH=m 1546# CONFIG_BINARY_PRINTF is not set
1191CONFIG_CRYPTO_MANAGER=m
1192CONFIG_CRYPTO_HMAC=m
1193CONFIG_CRYPTO_XCBC=m
1194CONFIG_CRYPTO_NULL=m
1195CONFIG_CRYPTO_MD4=m
1196CONFIG_CRYPTO_MD5=y
1197CONFIG_CRYPTO_SHA1=m
1198CONFIG_CRYPTO_SHA256=m
1199CONFIG_CRYPTO_SHA512=m
1200CONFIG_CRYPTO_WP512=m
1201CONFIG_CRYPTO_TGR192=m
1202CONFIG_CRYPTO_GF128MUL=m
1203CONFIG_CRYPTO_ECB=m
1204CONFIG_CRYPTO_CBC=m
1205CONFIG_CRYPTO_PCBC=m
1206CONFIG_CRYPTO_LRW=m
1207CONFIG_CRYPTO_DES=m
1208CONFIG_CRYPTO_FCRYPT=m
1209CONFIG_CRYPTO_BLOWFISH=m
1210CONFIG_CRYPTO_TWOFISH=m
1211CONFIG_CRYPTO_TWOFISH_COMMON=m
1212CONFIG_CRYPTO_SERPENT=m
1213CONFIG_CRYPTO_AES=m
1214CONFIG_CRYPTO_CAST5=m
1215CONFIG_CRYPTO_CAST6=m
1216CONFIG_CRYPTO_TEA=m
1217CONFIG_CRYPTO_ARC4=m
1218CONFIG_CRYPTO_KHAZAD=m
1219CONFIG_CRYPTO_ANUBIS=m
1220CONFIG_CRYPTO_DEFLATE=m
1221CONFIG_CRYPTO_MICHAEL_MIC=m
1222CONFIG_CRYPTO_CRC32C=m
1223CONFIG_CRYPTO_CAMELLIA=m
1224# CONFIG_CRYPTO_TEST is not set
1225
1226#
1227# Hardware crypto devices
1228#
1229 1547
1230# 1548#
1231# Library routines 1549# Library routines
1232# 1550#
1233CONFIG_BITREVERSE=y 1551CONFIG_BITREVERSE=y
1234CONFIG_CRC_CCITT=y 1552CONFIG_GENERIC_FIND_LAST_BIT=y
1553# CONFIG_CRC_CCITT is not set
1235# CONFIG_CRC16 is not set 1554# CONFIG_CRC16 is not set
1555# CONFIG_CRC_T10DIF is not set
1556CONFIG_CRC_ITU_T=y
1236CONFIG_CRC32=y 1557CONFIG_CRC32=y
1237CONFIG_LIBCRC32C=y 1558# CONFIG_CRC7 is not set
1559# CONFIG_LIBCRC32C is not set
1238CONFIG_ZLIB_INFLATE=y 1560CONFIG_ZLIB_INFLATE=y
1239CONFIG_ZLIB_DEFLATE=y 1561CONFIG_ZLIB_DEFLATE=y
1240CONFIG_TEXTSEARCH=y 1562CONFIG_LZO_COMPRESS=y
1241CONFIG_TEXTSEARCH_KMP=m 1563CONFIG_LZO_DECOMPRESS=y
1242CONFIG_TEXTSEARCH_BM=m
1243CONFIG_TEXTSEARCH_FSM=m
1244CONFIG_PLIST=y
1245CONFIG_HAS_IOMEM=y 1564CONFIG_HAS_IOMEM=y
1246CONFIG_HAS_IOPORT=y 1565CONFIG_HAS_IOPORT=y
1566CONFIG_HAS_DMA=y
1567CONFIG_NLATTR=y
diff --git a/arch/mips/configs/db1500_defconfig b/arch/mips/configs/db1500_defconfig
index ec3e028a5b2e..5424c9167bf2 100644
--- a/arch/mips/configs/db1500_defconfig
+++ b/arch/mips/configs/db1500_defconfig
@@ -1,81 +1,104 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.20 3# Linux kernel version: 2.6.33
4# Tue Feb 20 21:47:26 2007 4# Fri Feb 26 08:46:33 2010
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
8# 8#
9# Machine selection 9# Machine selection
10# 10#
11CONFIG_ZONE_DMA=y
12CONFIG_MACH_ALCHEMY=y 11CONFIG_MACH_ALCHEMY=y
13# CONFIG_MIPS_MTX1 is not set 12# CONFIG_AR7 is not set
14# CONFIG_MIPS_BOSPORUS is not set 13# CONFIG_BCM47XX is not set
15# CONFIG_MIPS_PB1000 is not set 14# CONFIG_BCM63XX is not set
16# CONFIG_MIPS_PB1100 is not set
17# CONFIG_MIPS_PB1500 is not set
18# CONFIG_MIPS_PB1550 is not set
19# CONFIG_MIPS_PB1200 is not set
20# CONFIG_MIPS_DB1000 is not set
21# CONFIG_MIPS_DB1100 is not set
22CONFIG_MIPS_DB1500=y
23# CONFIG_MIPS_DB1550 is not set
24# CONFIG_MIPS_DB1200 is not set
25# CONFIG_MIPS_MIRAGE is not set
26# CONFIG_BASLER_EXCITE is not set
27# CONFIG_MIPS_COBALT is not set 15# CONFIG_MIPS_COBALT is not set
28# CONFIG_MACH_DECSTATION is not set 16# CONFIG_MACH_DECSTATION is not set
29# CONFIG_MACH_JAZZ is not set 17# CONFIG_MACH_JAZZ is not set
18# CONFIG_LASAT is not set
19# CONFIG_MACH_LOONGSON is not set
30# CONFIG_MIPS_MALTA is not set 20# CONFIG_MIPS_MALTA is not set
31# CONFIG_WR_PPMC is not set
32# CONFIG_MIPS_SIM is not set 21# CONFIG_MIPS_SIM is not set
33# CONFIG_MOMENCO_JAGUAR_ATX is not set 22# CONFIG_NEC_MARKEINS is not set
34# CONFIG_MIPS_XXS1500 is not set 23# CONFIG_MACH_VR41XX is not set
24# CONFIG_NXP_STB220 is not set
25# CONFIG_NXP_STB225 is not set
35# CONFIG_PNX8550_JBS is not set 26# CONFIG_PNX8550_JBS is not set
36# CONFIG_PNX8550_STB810 is not set 27# CONFIG_PNX8550_STB810 is not set
37# CONFIG_MACH_VR41XX is not set 28# CONFIG_PMC_MSP is not set
38# CONFIG_PMC_YOSEMITE is not set 29# CONFIG_PMC_YOSEMITE is not set
39# CONFIG_MARKEINS is not set 30# CONFIG_POWERTV is not set
40# CONFIG_SGI_IP22 is not set 31# CONFIG_SGI_IP22 is not set
41# CONFIG_SGI_IP27 is not set 32# CONFIG_SGI_IP27 is not set
33# CONFIG_SGI_IP28 is not set
42# CONFIG_SGI_IP32 is not set 34# CONFIG_SGI_IP32 is not set
43# CONFIG_SIBYTE_BIGSUR is not set
44# CONFIG_SIBYTE_SWARM is not set
45# CONFIG_SIBYTE_SENTOSA is not set
46# CONFIG_SIBYTE_RHONE is not set
47# CONFIG_SIBYTE_CARMEL is not set
48# CONFIG_SIBYTE_LITTLESUR is not set
49# CONFIG_SIBYTE_CRHINE is not set 35# CONFIG_SIBYTE_CRHINE is not set
36# CONFIG_SIBYTE_CARMEL is not set
50# CONFIG_SIBYTE_CRHONE is not set 37# CONFIG_SIBYTE_CRHONE is not set
38# CONFIG_SIBYTE_RHONE is not set
39# CONFIG_SIBYTE_SWARM is not set
40# CONFIG_SIBYTE_LITTLESUR is not set
41# CONFIG_SIBYTE_SENTOSA is not set
42# CONFIG_SIBYTE_BIGSUR is not set
51# CONFIG_SNI_RM is not set 43# CONFIG_SNI_RM is not set
52# CONFIG_TOSHIBA_JMR3927 is not set 44# CONFIG_MACH_TX39XX is not set
53# CONFIG_TOSHIBA_RBTX4927 is not set 45# CONFIG_MACH_TX49XX is not set
54# CONFIG_TOSHIBA_RBTX4938 is not set 46# CONFIG_MIKROTIK_RB532 is not set
47# CONFIG_WR_PPMC is not set
48# CONFIG_CAVIUM_OCTEON_SIMULATOR is not set
49# CONFIG_CAVIUM_OCTEON_REFERENCE_BOARD is not set
50CONFIG_ALCHEMY_GPIOINT_AU1000=y
51# CONFIG_ALCHEMY_GPIO_INDIRECT is not set
52# CONFIG_MIPS_MTX1 is not set
53# CONFIG_MIPS_BOSPORUS is not set
54# CONFIG_MIPS_DB1000 is not set
55# CONFIG_MIPS_DB1100 is not set
56# CONFIG_MIPS_DB1200 is not set
57CONFIG_MIPS_DB1500=y
58# CONFIG_MIPS_DB1550 is not set
59# CONFIG_MIPS_MIRAGE is not set
60# CONFIG_MIPS_PB1000 is not set
61# CONFIG_MIPS_PB1100 is not set
62# CONFIG_MIPS_PB1200 is not set
63# CONFIG_MIPS_PB1500 is not set
64# CONFIG_MIPS_PB1550 is not set
65# CONFIG_MIPS_XXS1500 is not set
66CONFIG_SOC_AU1500=y
67CONFIG_SOC_AU1X00=y
68CONFIG_LOONGSON_UART_BASE=y
55CONFIG_RWSEM_GENERIC_SPINLOCK=y 69CONFIG_RWSEM_GENERIC_SPINLOCK=y
56# CONFIG_ARCH_HAS_ILOG2_U32 is not set 70# CONFIG_ARCH_HAS_ILOG2_U32 is not set
57# CONFIG_ARCH_HAS_ILOG2_U64 is not set 71# CONFIG_ARCH_HAS_ILOG2_U64 is not set
72CONFIG_ARCH_SUPPORTS_OPROFILE=y
58CONFIG_GENERIC_FIND_NEXT_BIT=y 73CONFIG_GENERIC_FIND_NEXT_BIT=y
59CONFIG_GENERIC_HWEIGHT=y 74CONFIG_GENERIC_HWEIGHT=y
60CONFIG_GENERIC_CALIBRATE_DELAY=y 75CONFIG_GENERIC_CALIBRATE_DELAY=y
76CONFIG_GENERIC_CLOCKEVENTS=y
61CONFIG_GENERIC_TIME=y 77CONFIG_GENERIC_TIME=y
62CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 78CONFIG_GENERIC_CMOS_UPDATE=y
63# CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ is not set 79CONFIG_SCHED_OMIT_FRAME_POINTER=y
80CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
81CONFIG_CEVT_R4K_LIB=y
82CONFIG_CSRC_R4K_LIB=y
64CONFIG_DMA_NONCOHERENT=y 83CONFIG_DMA_NONCOHERENT=y
65CONFIG_DMA_NEED_PCI_MAP_STATE=y 84CONFIG_DMA_NEED_PCI_MAP_STATE=y
85CONFIG_SYS_HAS_EARLY_PRINTK=y
66CONFIG_MIPS_DISABLE_OBSOLETE_IDE=y 86CONFIG_MIPS_DISABLE_OBSOLETE_IDE=y
87# CONFIG_NO_IOPORT is not set
88CONFIG_GENERIC_GPIO=y
67# CONFIG_CPU_BIG_ENDIAN is not set 89# CONFIG_CPU_BIG_ENDIAN is not set
68CONFIG_CPU_LITTLE_ENDIAN=y 90CONFIG_CPU_LITTLE_ENDIAN=y
69CONFIG_SYS_SUPPORTS_APM_EMULATION=y 91CONFIG_SYS_SUPPORTS_APM_EMULATION=y
70CONFIG_SYS_SUPPORTS_BIG_ENDIAN=y 92CONFIG_SYS_SUPPORTS_BIG_ENDIAN=y
71CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y 93CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y
72CONFIG_SOC_AU1500=y 94CONFIG_IRQ_CPU=y
73CONFIG_SOC_AU1X00=y
74CONFIG_MIPS_L1_CACHE_SHIFT=5 95CONFIG_MIPS_L1_CACHE_SHIFT=5
75 96
76# 97#
77# CPU selection 98# CPU selection
78# 99#
100# CONFIG_CPU_LOONGSON2E is not set
101# CONFIG_CPU_LOONGSON2F is not set
79CONFIG_CPU_MIPS32_R1=y 102CONFIG_CPU_MIPS32_R1=y
80# CONFIG_CPU_MIPS32_R2 is not set 103# CONFIG_CPU_MIPS32_R2 is not set
81# CONFIG_CPU_MIPS64_R1 is not set 104# CONFIG_CPU_MIPS64_R1 is not set
@@ -88,6 +111,7 @@ CONFIG_CPU_MIPS32_R1=y
88# CONFIG_CPU_TX49XX is not set 111# CONFIG_CPU_TX49XX is not set
89# CONFIG_CPU_R5000 is not set 112# CONFIG_CPU_R5000 is not set
90# CONFIG_CPU_R5432 is not set 113# CONFIG_CPU_R5432 is not set
114# CONFIG_CPU_R5500 is not set
91# CONFIG_CPU_R6000 is not set 115# CONFIG_CPU_R6000 is not set
92# CONFIG_CPU_NEVADA is not set 116# CONFIG_CPU_NEVADA is not set
93# CONFIG_CPU_R8000 is not set 117# CONFIG_CPU_R8000 is not set
@@ -95,11 +119,14 @@ CONFIG_CPU_MIPS32_R1=y
95# CONFIG_CPU_RM7000 is not set 119# CONFIG_CPU_RM7000 is not set
96# CONFIG_CPU_RM9000 is not set 120# CONFIG_CPU_RM9000 is not set
97# CONFIG_CPU_SB1 is not set 121# CONFIG_CPU_SB1 is not set
122# CONFIG_CPU_CAVIUM_OCTEON is not set
123CONFIG_SYS_SUPPORTS_ZBOOT=y
98CONFIG_SYS_HAS_CPU_MIPS32_R1=y 124CONFIG_SYS_HAS_CPU_MIPS32_R1=y
99CONFIG_CPU_MIPS32=y 125CONFIG_CPU_MIPS32=y
100CONFIG_CPU_MIPSR1=y 126CONFIG_CPU_MIPSR1=y
101CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y 127CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y
102CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y 128CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y
129CONFIG_HARDWARE_WATCHPOINTS=y
103 130
104# 131#
105# Kernel type 132# Kernel type
@@ -109,137 +136,207 @@ CONFIG_32BIT=y
109CONFIG_PAGE_SIZE_4KB=y 136CONFIG_PAGE_SIZE_4KB=y
110# CONFIG_PAGE_SIZE_8KB is not set 137# CONFIG_PAGE_SIZE_8KB is not set
111# CONFIG_PAGE_SIZE_16KB is not set 138# CONFIG_PAGE_SIZE_16KB is not set
139# CONFIG_PAGE_SIZE_32KB is not set
112# CONFIG_PAGE_SIZE_64KB is not set 140# CONFIG_PAGE_SIZE_64KB is not set
113CONFIG_CPU_HAS_PREFETCH=y 141CONFIG_CPU_HAS_PREFETCH=y
114CONFIG_MIPS_MT_DISABLED=y 142CONFIG_MIPS_MT_DISABLED=y
115# CONFIG_MIPS_MT_SMP is not set 143# CONFIG_MIPS_MT_SMP is not set
116# CONFIG_MIPS_MT_SMTC is not set 144# CONFIG_MIPS_MT_SMTC is not set
117# CONFIG_MIPS_VPE_LOADER is not set
118CONFIG_64BIT_PHYS_ADDR=y 145CONFIG_64BIT_PHYS_ADDR=y
146CONFIG_ARCH_PHYS_ADDR_T_64BIT=y
119CONFIG_CPU_HAS_SYNC=y 147CONFIG_CPU_HAS_SYNC=y
120CONFIG_GENERIC_HARDIRQS=y 148CONFIG_GENERIC_HARDIRQS=y
121CONFIG_GENERIC_IRQ_PROBE=y 149CONFIG_GENERIC_IRQ_PROBE=y
122CONFIG_CPU_SUPPORTS_HIGHMEM=y 150CONFIG_CPU_SUPPORTS_HIGHMEM=y
123CONFIG_ARCH_FLATMEM_ENABLE=y 151CONFIG_ARCH_FLATMEM_ENABLE=y
152CONFIG_ARCH_POPULATES_NODE_MAP=y
124CONFIG_SELECT_MEMORY_MODEL=y 153CONFIG_SELECT_MEMORY_MODEL=y
125CONFIG_FLATMEM_MANUAL=y 154CONFIG_FLATMEM_MANUAL=y
126# CONFIG_DISCONTIGMEM_MANUAL is not set 155# CONFIG_DISCONTIGMEM_MANUAL is not set
127# CONFIG_SPARSEMEM_MANUAL is not set 156# CONFIG_SPARSEMEM_MANUAL is not set
128CONFIG_FLATMEM=y 157CONFIG_FLATMEM=y
129CONFIG_FLAT_NODE_MEM_MAP=y 158CONFIG_FLAT_NODE_MEM_MAP=y
130# CONFIG_SPARSEMEM_STATIC is not set 159CONFIG_PAGEFLAGS_EXTENDED=y
131CONFIG_SPLIT_PTLOCK_CPUS=4 160CONFIG_SPLIT_PTLOCK_CPUS=4
132CONFIG_RESOURCES_64BIT=y 161CONFIG_PHYS_ADDR_T_64BIT=y
133CONFIG_ZONE_DMA_FLAG=1 162CONFIG_ZONE_DMA_FLAG=0
163CONFIG_VIRT_TO_BUS=y
164# CONFIG_KSM is not set
165CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
166CONFIG_TICK_ONESHOT=y
167CONFIG_NO_HZ=y
168CONFIG_HIGH_RES_TIMERS=y
169CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
134# CONFIG_HZ_48 is not set 170# CONFIG_HZ_48 is not set
135# CONFIG_HZ_100 is not set 171CONFIG_HZ_100=y
136# CONFIG_HZ_128 is not set 172# CONFIG_HZ_128 is not set
137# CONFIG_HZ_250 is not set 173# CONFIG_HZ_250 is not set
138# CONFIG_HZ_256 is not set 174# CONFIG_HZ_256 is not set
139CONFIG_HZ_1000=y 175# CONFIG_HZ_1000 is not set
140# CONFIG_HZ_1024 is not set 176# CONFIG_HZ_1024 is not set
141CONFIG_SYS_SUPPORTS_ARBIT_HZ=y 177CONFIG_SYS_SUPPORTS_ARBIT_HZ=y
142CONFIG_HZ=1000 178CONFIG_HZ=100
143CONFIG_PREEMPT_NONE=y 179CONFIG_PREEMPT_NONE=y
144# CONFIG_PREEMPT_VOLUNTARY is not set 180# CONFIG_PREEMPT_VOLUNTARY is not set
145# CONFIG_PREEMPT is not set 181# CONFIG_PREEMPT is not set
146# CONFIG_KEXEC is not set 182# CONFIG_KEXEC is not set
183# CONFIG_SECCOMP is not set
147CONFIG_LOCKDEP_SUPPORT=y 184CONFIG_LOCKDEP_SUPPORT=y
148CONFIG_STACKTRACE_SUPPORT=y 185CONFIG_STACKTRACE_SUPPORT=y
149CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 186CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
187CONFIG_CONSTRUCTORS=y
150 188
151# 189#
152# Code maturity level options 190# General setup
153# 191#
154CONFIG_EXPERIMENTAL=y 192CONFIG_EXPERIMENTAL=y
155CONFIG_BROKEN_ON_SMP=y 193CONFIG_BROKEN_ON_SMP=y
156CONFIG_INIT_ENV_ARG_LIMIT=32 194CONFIG_INIT_ENV_ARG_LIMIT=32
157 195CONFIG_LOCALVERSION="-db1500"
158#
159# General setup
160#
161CONFIG_LOCALVERSION=""
162CONFIG_LOCALVERSION_AUTO=y 196CONFIG_LOCALVERSION_AUTO=y
197CONFIG_HAVE_KERNEL_GZIP=y
198CONFIG_HAVE_KERNEL_BZIP2=y
199CONFIG_HAVE_KERNEL_LZMA=y
200CONFIG_HAVE_KERNEL_LZO=y
201# CONFIG_KERNEL_GZIP is not set
202# CONFIG_KERNEL_BZIP2 is not set
203CONFIG_KERNEL_LZMA=y
204# CONFIG_KERNEL_LZO is not set
163CONFIG_SWAP=y 205CONFIG_SWAP=y
164CONFIG_SYSVIPC=y 206CONFIG_SYSVIPC=y
165# CONFIG_IPC_NS is not set
166CONFIG_SYSVIPC_SYSCTL=y 207CONFIG_SYSVIPC_SYSCTL=y
167# CONFIG_POSIX_MQUEUE is not set 208# CONFIG_POSIX_MQUEUE is not set
168# CONFIG_BSD_PROCESS_ACCT is not set 209# CONFIG_BSD_PROCESS_ACCT is not set
169# CONFIG_TASKSTATS is not set 210# CONFIG_TASKSTATS is not set
170# CONFIG_UTS_NS is not set
171# CONFIG_AUDIT is not set 211# CONFIG_AUDIT is not set
212
213#
214# RCU Subsystem
215#
216CONFIG_TREE_RCU=y
217# CONFIG_TREE_PREEMPT_RCU is not set
218# CONFIG_TINY_RCU is not set
219# CONFIG_RCU_TRACE is not set
220CONFIG_RCU_FANOUT=32
221# CONFIG_RCU_FANOUT_EXACT is not set
222# CONFIG_TREE_RCU_TRACE is not set
172# CONFIG_IKCONFIG is not set 223# CONFIG_IKCONFIG is not set
173CONFIG_SYSFS_DEPRECATED=y 224CONFIG_LOG_BUF_SHIFT=14
174CONFIG_RELAY=y 225# CONFIG_GROUP_SCHED is not set
175# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 226# CONFIG_CGROUPS is not set
227# CONFIG_SYSFS_DEPRECATED_V2 is not set
228# CONFIG_RELAY is not set
229# CONFIG_NAMESPACES is not set
230# CONFIG_BLK_DEV_INITRD is not set
231CONFIG_CC_OPTIMIZE_FOR_SIZE=y
176CONFIG_SYSCTL=y 232CONFIG_SYSCTL=y
233CONFIG_ANON_INODES=y
177CONFIG_EMBEDDED=y 234CONFIG_EMBEDDED=y
178CONFIG_SYSCTL_SYSCALL=y 235CONFIG_SYSCTL_SYSCALL=y
179CONFIG_KALLSYMS=y 236# CONFIG_KALLSYMS is not set
180# CONFIG_KALLSYMS_EXTRA_PASS is not set
181CONFIG_HOTPLUG=y 237CONFIG_HOTPLUG=y
182CONFIG_PRINTK=y 238CONFIG_PRINTK=y
183CONFIG_BUG=y 239CONFIG_BUG=y
184CONFIG_ELF_CORE=y 240CONFIG_ELF_CORE=y
241# CONFIG_PCSPKR_PLATFORM is not set
185CONFIG_BASE_FULL=y 242CONFIG_BASE_FULL=y
186CONFIG_FUTEX=y 243CONFIG_FUTEX=y
187CONFIG_EPOLL=y 244CONFIG_EPOLL=y
245CONFIG_SIGNALFD=y
246CONFIG_TIMERFD=y
247CONFIG_EVENTFD=y
188CONFIG_SHMEM=y 248CONFIG_SHMEM=y
249CONFIG_AIO=y
250
251#
252# Kernel Performance Events And Counters
253#
254# CONFIG_VM_EVENT_COUNTERS is not set
255CONFIG_PCI_QUIRKS=y
256# CONFIG_COMPAT_BRK is not set
189CONFIG_SLAB=y 257CONFIG_SLAB=y
190CONFIG_VM_EVENT_COUNTERS=y 258# CONFIG_SLUB is not set
191CONFIG_RT_MUTEXES=y
192# CONFIG_TINY_SHMEM is not set
193CONFIG_BASE_SMALL=0
194# CONFIG_SLOB is not set 259# CONFIG_SLOB is not set
260# CONFIG_PROFILING is not set
261CONFIG_HAVE_OPROFILE=y
195 262
196# 263#
197# Loadable module support 264# GCOV-based kernel profiling
198# 265#
266# CONFIG_SLOW_WORK is not set
267CONFIG_HAVE_GENERIC_DMA_COHERENT=y
268CONFIG_SLABINFO=y
269CONFIG_RT_MUTEXES=y
270CONFIG_BASE_SMALL=0
199CONFIG_MODULES=y 271CONFIG_MODULES=y
272# CONFIG_MODULE_FORCE_LOAD is not set
200CONFIG_MODULE_UNLOAD=y 273CONFIG_MODULE_UNLOAD=y
201# CONFIG_MODULE_FORCE_UNLOAD is not set 274# CONFIG_MODULE_FORCE_UNLOAD is not set
202CONFIG_MODVERSIONS=y 275# CONFIG_MODVERSIONS is not set
203CONFIG_MODULE_SRCVERSION_ALL=y 276# CONFIG_MODULE_SRCVERSION_ALL is not set
204CONFIG_KMOD=y
205
206#
207# Block layer
208#
209CONFIG_BLOCK=y 277CONFIG_BLOCK=y
210# CONFIG_LBD is not set 278CONFIG_LBDAF=y
211# CONFIG_BLK_DEV_IO_TRACE is not set 279CONFIG_BLK_DEV_BSG=y
212# CONFIG_LSF is not set 280# CONFIG_BLK_DEV_INTEGRITY is not set
213 281
214# 282#
215# IO Schedulers 283# IO Schedulers
216# 284#
217CONFIG_IOSCHED_NOOP=y 285CONFIG_IOSCHED_NOOP=y
218CONFIG_IOSCHED_AS=y 286# CONFIG_IOSCHED_DEADLINE is not set
219CONFIG_IOSCHED_DEADLINE=y 287# CONFIG_IOSCHED_CFQ is not set
220CONFIG_IOSCHED_CFQ=y
221CONFIG_DEFAULT_AS=y
222# CONFIG_DEFAULT_DEADLINE is not set 288# CONFIG_DEFAULT_DEADLINE is not set
223# CONFIG_DEFAULT_CFQ is not set 289# CONFIG_DEFAULT_CFQ is not set
224# CONFIG_DEFAULT_NOOP is not set 290CONFIG_DEFAULT_NOOP=y
225CONFIG_DEFAULT_IOSCHED="anticipatory" 291CONFIG_DEFAULT_IOSCHED="noop"
292# CONFIG_INLINE_SPIN_TRYLOCK is not set
293# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
294# CONFIG_INLINE_SPIN_LOCK is not set
295# CONFIG_INLINE_SPIN_LOCK_BH is not set
296# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
297# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
298CONFIG_INLINE_SPIN_UNLOCK=y
299# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
300CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
301# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
302# CONFIG_INLINE_READ_TRYLOCK is not set
303# CONFIG_INLINE_READ_LOCK is not set
304# CONFIG_INLINE_READ_LOCK_BH is not set
305# CONFIG_INLINE_READ_LOCK_IRQ is not set
306# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
307CONFIG_INLINE_READ_UNLOCK=y
308# CONFIG_INLINE_READ_UNLOCK_BH is not set
309CONFIG_INLINE_READ_UNLOCK_IRQ=y
310# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
311# CONFIG_INLINE_WRITE_TRYLOCK is not set
312# CONFIG_INLINE_WRITE_LOCK is not set
313# CONFIG_INLINE_WRITE_LOCK_BH is not set
314# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
315# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
316CONFIG_INLINE_WRITE_UNLOCK=y
317# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
318CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
319# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
320# CONFIG_MUTEX_SPIN_ON_OWNER is not set
321CONFIG_FREEZER=y
226 322
227# 323#
228# Bus options (PCI, PCMCIA, EISA, ISA, TC) 324# Bus options (PCI, PCMCIA, EISA, ISA, TC)
229# 325#
230CONFIG_HW_HAS_PCI=y 326CONFIG_HW_HAS_PCI=y
231CONFIG_PCI=y 327CONFIG_PCI=y
328CONFIG_PCI_DOMAINS=y
329# CONFIG_ARCH_SUPPORTS_MSI is not set
330# CONFIG_PCI_LEGACY is not set
331# CONFIG_PCI_DEBUG is not set
332# CONFIG_PCI_STUB is not set
333# CONFIG_PCI_IOV is not set
232CONFIG_MMU=y 334CONFIG_MMU=y
233 335CONFIG_PCCARD=y
234# 336CONFIG_PCMCIA=y
235# PCCARD (PCMCIA/CardBus) support
236#
237CONFIG_PCCARD=m
238# CONFIG_PCMCIA_DEBUG is not set
239CONFIG_PCMCIA=m
240CONFIG_PCMCIA_LOAD_CIS=y 337CONFIG_PCMCIA_LOAD_CIS=y
241CONFIG_PCMCIA_IOCTL=y 338# CONFIG_PCMCIA_IOCTL is not set
242CONFIG_CARDBUS=y 339# CONFIG_CARDBUS is not set
243 340
244# 341#
245# PC-card bridges 342# PC-card bridges
@@ -247,51 +344,49 @@ CONFIG_CARDBUS=y
247# CONFIG_YENTA is not set 344# CONFIG_YENTA is not set
248# CONFIG_PD6729 is not set 345# CONFIG_PD6729 is not set
249# CONFIG_I82092 is not set 346# CONFIG_I82092 is not set
250CONFIG_PCMCIA_AU1X00=m 347# CONFIG_PCMCIA_AU1X00 is not set
251 348CONFIG_PCMCIA_ALCHEMY_DEVBOARD=y
252#
253# PCI Hotplug Support
254#
255# CONFIG_HOTPLUG_PCI is not set 349# CONFIG_HOTPLUG_PCI is not set
256 350
257# 351#
258# Executable file formats 352# Executable file formats
259# 353#
260CONFIG_BINFMT_ELF=y 354CONFIG_BINFMT_ELF=y
355# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
356# CONFIG_HAVE_AOUT is not set
261# CONFIG_BINFMT_MISC is not set 357# CONFIG_BINFMT_MISC is not set
262CONFIG_TRAD_SIGNALS=y 358CONFIG_TRAD_SIGNALS=y
263 359
264# 360#
265# Power management options 361# Power management options
266# 362#
267# CONFIG_PM is not set 363CONFIG_ARCH_HIBERNATION_POSSIBLE=y
268 364CONFIG_ARCH_SUSPEND_POSSIBLE=y
269# 365CONFIG_PM=y
270# Networking 366# CONFIG_PM_DEBUG is not set
271# 367CONFIG_PM_SLEEP=y
368CONFIG_SUSPEND=y
369CONFIG_SUSPEND_FREEZER=y
370# CONFIG_HIBERNATION is not set
371# CONFIG_APM_EMULATION is not set
372CONFIG_PM_RUNTIME=y
272CONFIG_NET=y 373CONFIG_NET=y
273 374
274# 375#
275# Networking options 376# Networking options
276# 377#
277# CONFIG_NETDEBUG is not set
278CONFIG_PACKET=y 378CONFIG_PACKET=y
279# CONFIG_PACKET_MMAP is not set 379CONFIG_PACKET_MMAP=y
280CONFIG_UNIX=y 380CONFIG_UNIX=y
281CONFIG_XFRM=y 381# CONFIG_NET_KEY is not set
282CONFIG_XFRM_USER=m
283# CONFIG_XFRM_SUB_POLICY is not set
284CONFIG_XFRM_MIGRATE=y
285CONFIG_NET_KEY=y
286CONFIG_NET_KEY_MIGRATE=y
287CONFIG_INET=y 382CONFIG_INET=y
288CONFIG_IP_MULTICAST=y 383CONFIG_IP_MULTICAST=y
289# CONFIG_IP_ADVANCED_ROUTER is not set 384# CONFIG_IP_ADVANCED_ROUTER is not set
290CONFIG_IP_FIB_HASH=y 385CONFIG_IP_FIB_HASH=y
291CONFIG_IP_PNP=y 386CONFIG_IP_PNP=y
292# CONFIG_IP_PNP_DHCP is not set 387CONFIG_IP_PNP_DHCP=y
293CONFIG_IP_PNP_BOOTP=y 388CONFIG_IP_PNP_BOOTP=y
294# CONFIG_IP_PNP_RARP is not set 389CONFIG_IP_PNP_RARP=y
295# CONFIG_NET_IPIP is not set 390# CONFIG_NET_IPIP is not set
296# CONFIG_NET_IPGRE is not set 391# CONFIG_NET_IPGRE is not set
297# CONFIG_IP_MROUTE is not set 392# CONFIG_IP_MROUTE is not set
@@ -302,110 +397,25 @@ CONFIG_IP_PNP_BOOTP=y
302# CONFIG_INET_IPCOMP is not set 397# CONFIG_INET_IPCOMP is not set
303# CONFIG_INET_XFRM_TUNNEL is not set 398# CONFIG_INET_XFRM_TUNNEL is not set
304# CONFIG_INET_TUNNEL is not set 399# CONFIG_INET_TUNNEL is not set
305CONFIG_INET_XFRM_MODE_TRANSPORT=m 400# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
306CONFIG_INET_XFRM_MODE_TUNNEL=m 401# CONFIG_INET_XFRM_MODE_TUNNEL is not set
307CONFIG_INET_XFRM_MODE_BEET=m 402# CONFIG_INET_XFRM_MODE_BEET is not set
308CONFIG_INET_DIAG=y 403CONFIG_INET_LRO=y
309CONFIG_INET_TCP_DIAG=y 404# CONFIG_INET_DIAG is not set
310# CONFIG_TCP_CONG_ADVANCED is not set 405# CONFIG_TCP_CONG_ADVANCED is not set
311CONFIG_TCP_CONG_CUBIC=y 406CONFIG_TCP_CONG_CUBIC=y
312CONFIG_DEFAULT_TCP_CONG="cubic" 407CONFIG_DEFAULT_TCP_CONG="cubic"
313CONFIG_TCP_MD5SIG=y 408# CONFIG_TCP_MD5SIG is not set
314
315#
316# IP: Virtual Server Configuration
317#
318# CONFIG_IP_VS is not set
319# CONFIG_IPV6 is not set 409# CONFIG_IPV6 is not set
320# CONFIG_INET6_XFRM_TUNNEL is not set 410# CONFIG_NETWORK_SECMARK is not set
321# CONFIG_INET6_TUNNEL is not set 411# CONFIG_NETFILTER is not set
322CONFIG_NETWORK_SECMARK=y
323CONFIG_NETFILTER=y
324# CONFIG_NETFILTER_DEBUG is not set
325
326#
327# Core Netfilter Configuration
328#
329CONFIG_NETFILTER_NETLINK=m
330CONFIG_NETFILTER_NETLINK_QUEUE=m
331CONFIG_NETFILTER_NETLINK_LOG=m
332CONFIG_NF_CONNTRACK_ENABLED=m
333CONFIG_NF_CONNTRACK_SUPPORT=y
334# CONFIG_IP_NF_CONNTRACK_SUPPORT is not set
335CONFIG_NF_CONNTRACK=m
336CONFIG_NF_CT_ACCT=y
337CONFIG_NF_CONNTRACK_MARK=y
338CONFIG_NF_CONNTRACK_SECMARK=y
339CONFIG_NF_CONNTRACK_EVENTS=y
340CONFIG_NF_CT_PROTO_GRE=m
341CONFIG_NF_CT_PROTO_SCTP=m
342CONFIG_NF_CONNTRACK_AMANDA=m
343CONFIG_NF_CONNTRACK_FTP=m
344CONFIG_NF_CONNTRACK_H323=m
345CONFIG_NF_CONNTRACK_IRC=m
346# CONFIG_NF_CONNTRACK_NETBIOS_NS is not set
347CONFIG_NF_CONNTRACK_PPTP=m
348CONFIG_NF_CONNTRACK_SANE=m
349CONFIG_NF_CONNTRACK_SIP=m
350CONFIG_NF_CONNTRACK_TFTP=m
351CONFIG_NF_CT_NETLINK=m
352CONFIG_NETFILTER_XTABLES=m
353CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
354CONFIG_NETFILTER_XT_TARGET_MARK=m
355CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
356CONFIG_NETFILTER_XT_TARGET_NFLOG=m
357CONFIG_NETFILTER_XT_TARGET_SECMARK=m
358CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m
359CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
360CONFIG_NETFILTER_XT_MATCH_COMMENT=m
361CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
362CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
363CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
364CONFIG_NETFILTER_XT_MATCH_DCCP=m
365CONFIG_NETFILTER_XT_MATCH_DSCP=m
366CONFIG_NETFILTER_XT_MATCH_ESP=m
367CONFIG_NETFILTER_XT_MATCH_HELPER=m
368CONFIG_NETFILTER_XT_MATCH_LENGTH=m
369CONFIG_NETFILTER_XT_MATCH_LIMIT=m
370CONFIG_NETFILTER_XT_MATCH_MAC=m
371CONFIG_NETFILTER_XT_MATCH_MARK=m
372CONFIG_NETFILTER_XT_MATCH_POLICY=m
373CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
374CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
375CONFIG_NETFILTER_XT_MATCH_QUOTA=m
376CONFIG_NETFILTER_XT_MATCH_REALM=m
377CONFIG_NETFILTER_XT_MATCH_SCTP=m
378CONFIG_NETFILTER_XT_MATCH_STATE=m
379CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
380CONFIG_NETFILTER_XT_MATCH_STRING=m
381CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
382CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
383
384#
385# IP: Netfilter Configuration
386#
387CONFIG_NF_CONNTRACK_IPV4=m
388CONFIG_NF_CONNTRACK_PROC_COMPAT=y
389# CONFIG_IP_NF_QUEUE is not set
390# CONFIG_IP_NF_IPTABLES is not set
391# CONFIG_IP_NF_ARPTABLES is not set
392
393#
394# DCCP Configuration (EXPERIMENTAL)
395#
396# CONFIG_IP_DCCP is not set 412# CONFIG_IP_DCCP is not set
397
398#
399# SCTP Configuration (EXPERIMENTAL)
400#
401# CONFIG_IP_SCTP is not set 413# CONFIG_IP_SCTP is not set
402 414# CONFIG_RDS is not set
403#
404# TIPC Configuration (EXPERIMENTAL)
405#
406# CONFIG_TIPC is not set 415# CONFIG_TIPC is not set
407# CONFIG_ATM is not set 416# CONFIG_ATM is not set
408# CONFIG_BRIDGE is not set 417# CONFIG_BRIDGE is not set
418# CONFIG_NET_DSA is not set
409# CONFIG_VLAN_8021Q is not set 419# CONFIG_VLAN_8021Q is not set
410# CONFIG_DECNET is not set 420# CONFIG_DECNET is not set
411# CONFIG_LLC2 is not set 421# CONFIG_LLC2 is not set
@@ -415,27 +425,24 @@ CONFIG_NF_CONNTRACK_PROC_COMPAT=y
415# CONFIG_LAPB is not set 425# CONFIG_LAPB is not set
416# CONFIG_ECONET is not set 426# CONFIG_ECONET is not set
417# CONFIG_WAN_ROUTER is not set 427# CONFIG_WAN_ROUTER is not set
418 428# CONFIG_PHONET is not set
419# 429# CONFIG_IEEE802154 is not set
420# QoS and/or fair queueing
421#
422# CONFIG_NET_SCHED is not set 430# CONFIG_NET_SCHED is not set
423CONFIG_NET_CLS_ROUTE=y 431# CONFIG_DCB is not set
424 432
425# 433#
426# Network testing 434# Network testing
427# 435#
428# CONFIG_NET_PKTGEN is not set 436# CONFIG_NET_PKTGEN is not set
429# CONFIG_HAMRADIO is not set 437# CONFIG_HAMRADIO is not set
438# CONFIG_CAN is not set
430# CONFIG_IRDA is not set 439# CONFIG_IRDA is not set
431# CONFIG_BT is not set 440# CONFIG_BT is not set
432CONFIG_IEEE80211=m 441# CONFIG_AF_RXRPC is not set
433# CONFIG_IEEE80211_DEBUG is not set 442# CONFIG_WIRELESS is not set
434CONFIG_IEEE80211_CRYPT_WEP=m 443# CONFIG_WIMAX is not set
435CONFIG_IEEE80211_CRYPT_CCMP=m 444# CONFIG_RFKILL is not set
436CONFIG_IEEE80211_SOFTMAC=m 445# CONFIG_NET_9P is not set
437# CONFIG_IEEE80211_SOFTMAC_DEBUG is not set
438CONFIG_WIRELESS_EXT=y
439 446
440# 447#
441# Device Drivers 448# Device Drivers
@@ -444,25 +451,25 @@ CONFIG_WIRELESS_EXT=y
444# 451#
445# Generic Driver Options 452# Generic Driver Options
446# 453#
454CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
455# CONFIG_DEVTMPFS is not set
447CONFIG_STANDALONE=y 456CONFIG_STANDALONE=y
448CONFIG_PREVENT_FIRMWARE_BUILD=y 457CONFIG_PREVENT_FIRMWARE_BUILD=y
449CONFIG_FW_LOADER=m 458CONFIG_FW_LOADER=y
459CONFIG_FIRMWARE_IN_KERNEL=y
460CONFIG_EXTRA_FIRMWARE=""
461# CONFIG_DEBUG_DRIVER is not set
462# CONFIG_DEBUG_DEVRES is not set
450# CONFIG_SYS_HYPERVISOR is not set 463# CONFIG_SYS_HYPERVISOR is not set
451 464# CONFIG_CONNECTOR is not set
452#
453# Connector - unified userspace <-> kernelspace linker
454#
455CONFIG_CONNECTOR=m
456
457#
458# Memory Technology Devices (MTD)
459#
460CONFIG_MTD=y 465CONFIG_MTD=y
461# CONFIG_MTD_DEBUG is not set 466# CONFIG_MTD_DEBUG is not set
467# CONFIG_MTD_TESTS is not set
462# CONFIG_MTD_CONCAT is not set 468# CONFIG_MTD_CONCAT is not set
463CONFIG_MTD_PARTITIONS=y 469CONFIG_MTD_PARTITIONS=y
464# CONFIG_MTD_REDBOOT_PARTS is not set 470# CONFIG_MTD_REDBOOT_PARTS is not set
465# CONFIG_MTD_CMDLINE_PARTS is not set 471CONFIG_MTD_CMDLINE_PARTS=y
472# CONFIG_MTD_AR7_PARTS is not set
466 473
467# 474#
468# User Modules And Translation Layers 475# User Modules And Translation Layers
@@ -475,6 +482,7 @@ CONFIG_MTD_BLOCK=y
475# CONFIG_INFTL is not set 482# CONFIG_INFTL is not set
476# CONFIG_RFD_FTL is not set 483# CONFIG_RFD_FTL is not set
477# CONFIG_SSFDC is not set 484# CONFIG_SSFDC is not set
485# CONFIG_MTD_OOPS is not set
478 486
479# 487#
480# RAM/ROM/Flash chip drivers 488# RAM/ROM/Flash chip drivers
@@ -500,14 +508,14 @@ CONFIG_MTD_CFI_UTIL=y
500# CONFIG_MTD_RAM is not set 508# CONFIG_MTD_RAM is not set
501# CONFIG_MTD_ROM is not set 509# CONFIG_MTD_ROM is not set
502# CONFIG_MTD_ABSENT is not set 510# CONFIG_MTD_ABSENT is not set
503# CONFIG_MTD_OBSOLETE_CHIPS is not set
504 511
505# 512#
506# Mapping drivers for chip access 513# Mapping drivers for chip access
507# 514#
508# CONFIG_MTD_COMPLEX_MAPPINGS is not set 515# CONFIG_MTD_COMPLEX_MAPPINGS is not set
509# CONFIG_MTD_PHYSMAP is not set 516CONFIG_MTD_PHYSMAP=y
510CONFIG_MTD_ALCHEMY=y 517# CONFIG_MTD_PHYSMAP_COMPAT is not set
518# CONFIG_MTD_INTEL_VR_NOR is not set
511# CONFIG_MTD_PLATRAM is not set 519# CONFIG_MTD_PLATRAM is not set
512 520
513# 521#
@@ -525,152 +533,152 @@ CONFIG_MTD_ALCHEMY=y
525# CONFIG_MTD_DOC2000 is not set 533# CONFIG_MTD_DOC2000 is not set
526# CONFIG_MTD_DOC2001 is not set 534# CONFIG_MTD_DOC2001 is not set
527# CONFIG_MTD_DOC2001PLUS is not set 535# CONFIG_MTD_DOC2001PLUS is not set
528
529#
530# NAND Flash Device Drivers
531#
532# CONFIG_MTD_NAND is not set 536# CONFIG_MTD_NAND is not set
533
534#
535# OneNAND Flash Device Drivers
536#
537# CONFIG_MTD_ONENAND is not set 537# CONFIG_MTD_ONENAND is not set
538 538
539# 539#
540# Parallel port support 540# LPDDR flash memory drivers
541#
542# CONFIG_PARPORT is not set
543
544#
545# Plug and Play support
546# 541#
547# CONFIG_PNPACPI is not set 542# CONFIG_MTD_LPDDR is not set
548 543
549# 544#
550# Block devices 545# UBI - Unsorted block images
551# 546#
547# CONFIG_MTD_UBI is not set
548# CONFIG_PARPORT is not set
549CONFIG_BLK_DEV=y
552# CONFIG_BLK_CPQ_DA is not set 550# CONFIG_BLK_CPQ_DA is not set
553# CONFIG_BLK_CPQ_CISS_DA is not set 551# CONFIG_BLK_CPQ_CISS_DA is not set
554# CONFIG_BLK_DEV_DAC960 is not set 552# CONFIG_BLK_DEV_DAC960 is not set
555# CONFIG_BLK_DEV_UMEM is not set 553# CONFIG_BLK_DEV_UMEM is not set
556# CONFIG_BLK_DEV_COW_COMMON is not set 554# CONFIG_BLK_DEV_COW_COMMON is not set
557CONFIG_BLK_DEV_LOOP=y 555# CONFIG_BLK_DEV_LOOP is not set
558# CONFIG_BLK_DEV_CRYPTOLOOP is not set 556
557#
558# DRBD disabled because PROC_FS, INET or CONNECTOR not selected
559#
559# CONFIG_BLK_DEV_NBD is not set 560# CONFIG_BLK_DEV_NBD is not set
560# CONFIG_BLK_DEV_SX8 is not set 561# CONFIG_BLK_DEV_SX8 is not set
561# CONFIG_BLK_DEV_UB is not set 562# CONFIG_BLK_DEV_UB is not set
562# CONFIG_BLK_DEV_RAM is not set 563# CONFIG_BLK_DEV_RAM is not set
563# CONFIG_BLK_DEV_INITRD is not set 564# CONFIG_CDROM_PKTCDVD is not set
564CONFIG_CDROM_PKTCDVD=m 565# CONFIG_ATA_OVER_ETH is not set
565CONFIG_CDROM_PKTCDVD_BUFFERS=8 566# CONFIG_BLK_DEV_HD is not set
566# CONFIG_CDROM_PKTCDVD_WCACHE is not set 567# CONFIG_MISC_DEVICES is not set
567CONFIG_ATA_OVER_ETH=m 568CONFIG_HAVE_IDE=y
568
569#
570# Misc devices
571#
572CONFIG_SGI_IOC4=m
573# CONFIG_TIFM_CORE is not set
574
575#
576# ATA/ATAPI/MFM/RLL support
577#
578CONFIG_IDE=y 569CONFIG_IDE=y
579CONFIG_IDE_MAX_HWIFS=4
580CONFIG_BLK_DEV_IDE=y
581 570
582# 571#
583# Please see Documentation/ide.txt for help/info on IDE drives 572# Please see Documentation/ide/ide.txt for help/info on IDE drives
584# 573#
574CONFIG_IDE_XFER_MODE=y
585# CONFIG_BLK_DEV_IDE_SATA is not set 575# CONFIG_BLK_DEV_IDE_SATA is not set
586CONFIG_BLK_DEV_IDEDISK=y 576CONFIG_IDE_GD=y
587# CONFIG_IDEDISK_MULTI_MODE is not set 577CONFIG_IDE_GD_ATA=y
588CONFIG_BLK_DEV_IDECS=m 578# CONFIG_IDE_GD_ATAPI is not set
589# CONFIG_BLK_DEV_DELKIN is not set 579CONFIG_BLK_DEV_IDECS=y
590# CONFIG_BLK_DEV_IDECD is not set 580# CONFIG_BLK_DEV_IDECD is not set
591# CONFIG_BLK_DEV_IDETAPE is not set 581# CONFIG_BLK_DEV_IDETAPE is not set
592# CONFIG_BLK_DEV_IDEFLOPPY is not set
593# CONFIG_IDE_TASK_IOCTL is not set 582# CONFIG_IDE_TASK_IOCTL is not set
583CONFIG_IDE_PROC_FS=y
594 584
595# 585#
596# IDE chipset support/bugfixes 586# IDE chipset support/bugfixes
597# 587#
598# CONFIG_IDE_GENERIC is not set 588# CONFIG_IDE_GENERIC is not set
599# CONFIG_BLK_DEV_IDEPCI is not set 589# CONFIG_BLK_DEV_PLATFORM is not set
600# CONFIG_IDE_ARM is not set 590CONFIG_BLK_DEV_IDEDMA_SFF=y
601# CONFIG_BLK_DEV_IDEDMA is not set 591
602# CONFIG_IDEDMA_AUTO is not set 592#
603# CONFIG_BLK_DEV_HD is not set 593# PCI IDE chipsets support
594#
595CONFIG_BLK_DEV_IDEPCI=y
596# CONFIG_IDEPCI_PCIBUS_ORDER is not set
597# CONFIG_BLK_DEV_OFFBOARD is not set
598# CONFIG_BLK_DEV_GENERIC is not set
599# CONFIG_BLK_DEV_OPTI621 is not set
600CONFIG_BLK_DEV_IDEDMA_PCI=y
601# CONFIG_BLK_DEV_AEC62XX is not set
602# CONFIG_BLK_DEV_ALI15X3 is not set
603# CONFIG_BLK_DEV_AMD74XX is not set
604# CONFIG_BLK_DEV_CMD64X is not set
605# CONFIG_BLK_DEV_TRIFLEX is not set
606# CONFIG_BLK_DEV_CS5520 is not set
607# CONFIG_BLK_DEV_CS5530 is not set
608CONFIG_BLK_DEV_HPT366=y
609# CONFIG_BLK_DEV_JMICRON is not set
610# CONFIG_BLK_DEV_SC1200 is not set
611# CONFIG_BLK_DEV_PIIX is not set
612# CONFIG_BLK_DEV_IT8172 is not set
613# CONFIG_BLK_DEV_IT8213 is not set
614# CONFIG_BLK_DEV_IT821X is not set
615# CONFIG_BLK_DEV_NS87415 is not set
616# CONFIG_BLK_DEV_PDC202XX_OLD is not set
617# CONFIG_BLK_DEV_PDC202XX_NEW is not set
618# CONFIG_BLK_DEV_SVWKS is not set
619# CONFIG_BLK_DEV_SIIMAGE is not set
620# CONFIG_BLK_DEV_SLC90E66 is not set
621# CONFIG_BLK_DEV_TRM290 is not set
622# CONFIG_BLK_DEV_VIA82CXXX is not set
623# CONFIG_BLK_DEV_TC86C001 is not set
624CONFIG_BLK_DEV_IDEDMA=y
604 625
605# 626#
606# SCSI device support 627# SCSI device support
607# 628#
608CONFIG_RAID_ATTRS=m 629# CONFIG_RAID_ATTRS is not set
609# CONFIG_SCSI is not set 630# CONFIG_SCSI is not set
631# CONFIG_SCSI_DMA is not set
610# CONFIG_SCSI_NETLINK is not set 632# CONFIG_SCSI_NETLINK is not set
611
612#
613# Serial ATA (prod) and Parallel ATA (experimental) drivers
614#
615# CONFIG_ATA is not set 633# CONFIG_ATA is not set
616
617#
618# Multi-device support (RAID and LVM)
619#
620# CONFIG_MD is not set 634# CONFIG_MD is not set
621
622#
623# Fusion MPT device support
624#
625# CONFIG_FUSION is not set 635# CONFIG_FUSION is not set
626 636
627# 637#
628# IEEE 1394 (FireWire) support 638# IEEE 1394 (FireWire) support
629# 639#
630# CONFIG_IEEE1394 is not set
631 640
632# 641#
633# I2O device support 642# You can enable one or both FireWire driver stacks.
634# 643#
635# CONFIG_I2O is not set
636 644
637# 645#
638# Network device support 646# The newer stack is recommended.
639# 647#
648# CONFIG_FIREWIRE is not set
649# CONFIG_IEEE1394 is not set
650# CONFIG_I2O is not set
640CONFIG_NETDEVICES=y 651CONFIG_NETDEVICES=y
641# CONFIG_DUMMY is not set 652# CONFIG_DUMMY is not set
642# CONFIG_BONDING is not set 653# CONFIG_BONDING is not set
654# CONFIG_MACVLAN is not set
643# CONFIG_EQUALIZER is not set 655# CONFIG_EQUALIZER is not set
644# CONFIG_TUN is not set 656# CONFIG_TUN is not set
645 657# CONFIG_VETH is not set
646#
647# ARCnet devices
648#
649# CONFIG_ARCNET is not set 658# CONFIG_ARCNET is not set
650
651#
652# PHY device support
653#
654CONFIG_PHYLIB=y 659CONFIG_PHYLIB=y
655 660
656# 661#
657# MII PHY device drivers 662# MII PHY device drivers
658# 663#
659CONFIG_MARVELL_PHY=m 664CONFIG_MARVELL_PHY=y
660CONFIG_DAVICOM_PHY=m 665CONFIG_DAVICOM_PHY=y
661CONFIG_QSEMI_PHY=m 666CONFIG_QSEMI_PHY=y
662CONFIG_LXT_PHY=m 667CONFIG_LXT_PHY=y
663CONFIG_CICADA_PHY=m 668CONFIG_CICADA_PHY=y
664CONFIG_VITESSE_PHY=m 669CONFIG_VITESSE_PHY=y
665CONFIG_SMSC_PHY=m 670CONFIG_SMSC_PHY=y
666# CONFIG_BROADCOM_PHY is not set 671CONFIG_BROADCOM_PHY=y
672CONFIG_ICPLUS_PHY=y
673CONFIG_REALTEK_PHY=y
674CONFIG_NATIONAL_PHY=y
675CONFIG_STE10XP=y
676CONFIG_LSI_ET1011C_PHY=y
667# CONFIG_FIXED_PHY is not set 677# CONFIG_FIXED_PHY is not set
668 678# CONFIG_MDIO_BITBANG is not set
669#
670# Ethernet (10 or 100Mbit)
671#
672CONFIG_NET_ETHERNET=y 679CONFIG_NET_ETHERNET=y
673# CONFIG_MII is not set 680CONFIG_MII=y
681# CONFIG_AX88796 is not set
674CONFIG_MIPS_AU1X00_ENET=y 682CONFIG_MIPS_AU1X00_ENET=y
675# CONFIG_HAPPYMEAL is not set 683# CONFIG_HAPPYMEAL is not set
676# CONFIG_SUNGEM is not set 684# CONFIG_SUNGEM is not set
@@ -678,88 +686,51 @@ CONFIG_MIPS_AU1X00_ENET=y
678# CONFIG_NET_VENDOR_3COM is not set 686# CONFIG_NET_VENDOR_3COM is not set
679# CONFIG_SMC91X is not set 687# CONFIG_SMC91X is not set
680# CONFIG_DM9000 is not set 688# CONFIG_DM9000 is not set
681 689# CONFIG_ETHOC is not set
682# 690# CONFIG_SMSC911X is not set
683# Tulip family network device support 691# CONFIG_DNET is not set
684#
685# CONFIG_NET_TULIP is not set 692# CONFIG_NET_TULIP is not set
686# CONFIG_HP100 is not set 693# CONFIG_HP100 is not set
694# CONFIG_IBM_NEW_EMAC_ZMII is not set
695# CONFIG_IBM_NEW_EMAC_RGMII is not set
696# CONFIG_IBM_NEW_EMAC_TAH is not set
697# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
698# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
699# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
700# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
687# CONFIG_NET_PCI is not set 701# CONFIG_NET_PCI is not set
688 702# CONFIG_B44 is not set
689# 703# CONFIG_KS8842 is not set
690# Ethernet (1000 Mbit) 704# CONFIG_KS8851_MLL is not set
691# 705# CONFIG_ATL2 is not set
692# CONFIG_ACENIC is not set 706# CONFIG_NETDEV_1000 is not set
693# CONFIG_DL2K is not set 707# CONFIG_NETDEV_10000 is not set
694# CONFIG_E1000 is not set
695# CONFIG_NS83820 is not set
696# CONFIG_HAMACHI is not set
697# CONFIG_YELLOWFIN is not set
698# CONFIG_R8169 is not set
699# CONFIG_SIS190 is not set
700# CONFIG_SKGE is not set
701# CONFIG_SKY2 is not set
702# CONFIG_SK98LIN is not set
703# CONFIG_TIGON3 is not set
704# CONFIG_BNX2 is not set
705CONFIG_QLA3XXX=m
706# CONFIG_ATL1 is not set
707
708#
709# Ethernet (10000 Mbit)
710#
711# CONFIG_CHELSIO_T1 is not set
712CONFIG_CHELSIO_T3=m
713# CONFIG_IXGB is not set
714# CONFIG_S2IO is not set
715# CONFIG_MYRI10GE is not set
716CONFIG_NETXEN_NIC=m
717
718#
719# Token Ring devices
720#
721# CONFIG_TR is not set 708# CONFIG_TR is not set
709# CONFIG_WLAN is not set
722 710
723# 711#
724# Wireless LAN (non-hamradio) 712# Enable WiMAX (Networking options) to see the WiMAX drivers
725# 713#
726# CONFIG_NET_RADIO is not set
727 714
728# 715#
729# PCMCIA network device support 716# USB Network Adapters
730# 717#
718# CONFIG_USB_CATC is not set
719# CONFIG_USB_KAWETH is not set
720# CONFIG_USB_PEGASUS is not set
721# CONFIG_USB_RTL8150 is not set
722# CONFIG_USB_USBNET is not set
731# CONFIG_NET_PCMCIA is not set 723# CONFIG_NET_PCMCIA is not set
732
733#
734# Wan interfaces
735#
736# CONFIG_WAN is not set 724# CONFIG_WAN is not set
737# CONFIG_FDDI is not set 725# CONFIG_FDDI is not set
738# CONFIG_HIPPI is not set 726# CONFIG_HIPPI is not set
739CONFIG_PPP=m 727# CONFIG_PPP is not set
740CONFIG_PPP_MULTILINK=y
741# CONFIG_PPP_FILTER is not set
742CONFIG_PPP_ASYNC=m
743# CONFIG_PPP_SYNC_TTY is not set
744CONFIG_PPP_DEFLATE=m
745# CONFIG_PPP_BSDCOMP is not set
746CONFIG_PPP_MPPE=m
747CONFIG_PPPOE=m
748# CONFIG_SLIP is not set 728# CONFIG_SLIP is not set
749CONFIG_SLHC=m
750# CONFIG_SHAPER is not set
751# CONFIG_NETCONSOLE is not set 729# CONFIG_NETCONSOLE is not set
752# CONFIG_NETPOLL is not set 730# CONFIG_NETPOLL is not set
753# CONFIG_NET_POLL_CONTROLLER is not set 731# CONFIG_NET_POLL_CONTROLLER is not set
754 732# CONFIG_VMXNET3 is not set
755#
756# ISDN subsystem
757#
758# CONFIG_ISDN is not set 733# CONFIG_ISDN is not set
759
760#
761# Telephony Support
762#
763# CONFIG_PHONE is not set 734# CONFIG_PHONE is not set
764 735
765# 736#
@@ -767,16 +738,14 @@ CONFIG_SLHC=m
767# 738#
768CONFIG_INPUT=y 739CONFIG_INPUT=y
769# CONFIG_INPUT_FF_MEMLESS is not set 740# CONFIG_INPUT_FF_MEMLESS is not set
741# CONFIG_INPUT_POLLDEV is not set
742# CONFIG_INPUT_SPARSEKMAP is not set
770 743
771# 744#
772# Userland interfaces 745# Userland interfaces
773# 746#
774CONFIG_INPUT_MOUSEDEV=y 747# CONFIG_INPUT_MOUSEDEV is not set
775CONFIG_INPUT_MOUSEDEV_PSAUX=y
776CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
777CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
778# CONFIG_INPUT_JOYDEV is not set 748# CONFIG_INPUT_JOYDEV is not set
779# CONFIG_INPUT_TSDEV is not set
780CONFIG_INPUT_EVDEV=y 749CONFIG_INPUT_EVDEV=y
781# CONFIG_INPUT_EVBUG is not set 750# CONFIG_INPUT_EVBUG is not set
782 751
@@ -786,33 +755,34 @@ CONFIG_INPUT_EVDEV=y
786# CONFIG_INPUT_KEYBOARD is not set 755# CONFIG_INPUT_KEYBOARD is not set
787# CONFIG_INPUT_MOUSE is not set 756# CONFIG_INPUT_MOUSE is not set
788# CONFIG_INPUT_JOYSTICK is not set 757# CONFIG_INPUT_JOYSTICK is not set
758# CONFIG_INPUT_TABLET is not set
789# CONFIG_INPUT_TOUCHSCREEN is not set 759# CONFIG_INPUT_TOUCHSCREEN is not set
790# CONFIG_INPUT_MISC is not set 760# CONFIG_INPUT_MISC is not set
791 761
792# 762#
793# Hardware I/O ports 763# Hardware I/O ports
794# 764#
795CONFIG_SERIO=y 765# CONFIG_SERIO is not set
796# CONFIG_SERIO_I8042 is not set
797CONFIG_SERIO_SERPORT=y
798# CONFIG_SERIO_PCIPS2 is not set
799# CONFIG_SERIO_LIBPS2 is not set
800CONFIG_SERIO_RAW=m
801# CONFIG_GAMEPORT is not set 766# CONFIG_GAMEPORT is not set
802 767
803# 768#
804# Character devices 769# Character devices
805# 770#
806# CONFIG_VT is not set 771CONFIG_VT=y
772CONFIG_CONSOLE_TRANSLATIONS=y
773CONFIG_VT_CONSOLE=y
774CONFIG_HW_CONSOLE=y
775# CONFIG_VT_HW_CONSOLE_BINDING is not set
776CONFIG_DEVKMEM=y
807# CONFIG_SERIAL_NONSTANDARD is not set 777# CONFIG_SERIAL_NONSTANDARD is not set
808# CONFIG_AU1X00_GPIO is not set 778# CONFIG_NOZOMI is not set
809 779
810# 780#
811# Serial drivers 781# Serial drivers
812# 782#
813CONFIG_SERIAL_8250=y 783CONFIG_SERIAL_8250=y
814CONFIG_SERIAL_8250_CONSOLE=y 784CONFIG_SERIAL_8250_CONSOLE=y
815CONFIG_SERIAL_8250_PCI=y 785# CONFIG_SERIAL_8250_PCI is not set
816# CONFIG_SERIAL_8250_CS is not set 786# CONFIG_SERIAL_8250_CS is not set
817CONFIG_SERIAL_8250_NR_UARTS=4 787CONFIG_SERIAL_8250_NR_UARTS=4
818CONFIG_SERIAL_8250_RUNTIME_UARTS=4 788CONFIG_SERIAL_8250_RUNTIME_UARTS=4
@@ -826,301 +796,143 @@ CONFIG_SERIAL_CORE=y
826CONFIG_SERIAL_CORE_CONSOLE=y 796CONFIG_SERIAL_CORE_CONSOLE=y
827# CONFIG_SERIAL_JSM is not set 797# CONFIG_SERIAL_JSM is not set
828CONFIG_UNIX98_PTYS=y 798CONFIG_UNIX98_PTYS=y
829CONFIG_LEGACY_PTYS=y 799# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
830CONFIG_LEGACY_PTY_COUNT=256 800# CONFIG_LEGACY_PTYS is not set
831
832#
833# IPMI
834#
835# CONFIG_IPMI_HANDLER is not set 801# CONFIG_IPMI_HANDLER is not set
836
837#
838# Watchdog Cards
839#
840# CONFIG_WATCHDOG is not set
841# CONFIG_HW_RANDOM is not set 802# CONFIG_HW_RANDOM is not set
842# CONFIG_RTC is not set
843# CONFIG_GEN_RTC is not set
844# CONFIG_DTLK is not set
845# CONFIG_R3964 is not set 803# CONFIG_R3964 is not set
846# CONFIG_APPLICOM is not set 804# CONFIG_APPLICOM is not set
847# CONFIG_DRM is not set
848 805
849# 806#
850# PCMCIA character devices 807# PCMCIA character devices
851# 808#
852CONFIG_SYNCLINK_CS=m 809# CONFIG_SYNCLINK_CS is not set
853# CONFIG_CARDMAN_4000 is not set 810# CONFIG_CARDMAN_4000 is not set
854# CONFIG_CARDMAN_4040 is not set 811# CONFIG_CARDMAN_4040 is not set
812# CONFIG_IPWIRELESS is not set
855# CONFIG_RAW_DRIVER is not set 813# CONFIG_RAW_DRIVER is not set
856
857#
858# TPM devices
859#
860# CONFIG_TCG_TPM is not set 814# CONFIG_TCG_TPM is not set
861 815CONFIG_DEVPORT=y
862#
863# I2C support
864#
865# CONFIG_I2C is not set 816# CONFIG_I2C is not set
866
867#
868# SPI support
869#
870# CONFIG_SPI is not set 817# CONFIG_SPI is not set
871# CONFIG_SPI_MASTER is not set
872 818
873# 819#
874# Dallas's 1-wire bus 820# PPS support
875# 821#
822# CONFIG_PPS is not set
823CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
824# CONFIG_GPIOLIB is not set
876# CONFIG_W1 is not set 825# CONFIG_W1 is not set
877 826# CONFIG_POWER_SUPPLY is not set
878#
879# Hardware Monitoring support
880#
881# CONFIG_HWMON is not set 827# CONFIG_HWMON is not set
882# CONFIG_HWMON_VID is not set 828# CONFIG_THERMAL is not set
829# CONFIG_WATCHDOG is not set
830CONFIG_SSB_POSSIBLE=y
883 831
884# 832#
885# Multimedia devices 833# Sonics Silicon Backplane
886# 834#
887# CONFIG_VIDEO_DEV is not set 835# CONFIG_SSB is not set
888 836
889# 837#
890# Digital Video Broadcasting Devices 838# Multifunction device drivers
891# 839#
892# CONFIG_DVB is not set 840# CONFIG_MFD_CORE is not set
893# CONFIG_USB_DABUSB is not set 841# CONFIG_MFD_SM501 is not set
842# CONFIG_HTC_PASIC3 is not set
843# CONFIG_MFD_TMIO is not set
844# CONFIG_REGULATOR is not set
845# CONFIG_MEDIA_SUPPORT is not set
894 846
895# 847#
896# Graphics support 848# Graphics support
897# 849#
898# CONFIG_FIRMWARE_EDID is not set 850# CONFIG_VGA_ARB is not set
851# CONFIG_DRM is not set
852# CONFIG_VGASTATE is not set
853# CONFIG_VIDEO_OUTPUT_CONTROL is not set
899# CONFIG_FB is not set 854# CONFIG_FB is not set
900# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 855# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
901 856
902# 857#
903# Sound 858# Display device support
904# 859#
905CONFIG_SOUND=y 860# CONFIG_DISPLAY_SUPPORT is not set
906 861
907# 862#
908# Advanced Linux Sound Architecture 863# Console display driver support
909#
910CONFIG_SND=m
911CONFIG_SND_TIMER=m
912CONFIG_SND_PCM=m
913CONFIG_SND_RAWMIDI=m
914CONFIG_SND_SEQUENCER=m
915CONFIG_SND_SEQ_DUMMY=m
916CONFIG_SND_OSSEMUL=y
917CONFIG_SND_MIXER_OSS=m
918CONFIG_SND_PCM_OSS=m
919CONFIG_SND_PCM_OSS_PLUGINS=y
920CONFIG_SND_SEQUENCER_OSS=y
921# CONFIG_SND_DYNAMIC_MINORS is not set
922CONFIG_SND_SUPPORT_OLD_API=y
923CONFIG_SND_VERBOSE_PROCFS=y
924# CONFIG_SND_VERBOSE_PRINTK is not set
925# CONFIG_SND_DEBUG is not set
926
927#
928# Generic devices
929#
930CONFIG_SND_AC97_CODEC=m
931# CONFIG_SND_DUMMY is not set
932CONFIG_SND_VIRMIDI=m
933CONFIG_SND_MTPAV=m
934# CONFIG_SND_SERIAL_U16550 is not set
935# CONFIG_SND_MPU401 is not set
936
937#
938# PCI devices
939#
940# CONFIG_SND_AD1889 is not set
941# CONFIG_SND_ALS300 is not set
942# CONFIG_SND_ALI5451 is not set
943# CONFIG_SND_ATIIXP is not set
944# CONFIG_SND_ATIIXP_MODEM is not set
945# CONFIG_SND_AU8810 is not set
946# CONFIG_SND_AU8820 is not set
947# CONFIG_SND_AU8830 is not set
948# CONFIG_SND_AZT3328 is not set
949# CONFIG_SND_BT87X is not set
950# CONFIG_SND_CA0106 is not set
951# CONFIG_SND_CMIPCI is not set
952# CONFIG_SND_CS4281 is not set
953# CONFIG_SND_CS46XX is not set
954# CONFIG_SND_DARLA20 is not set
955# CONFIG_SND_GINA20 is not set
956# CONFIG_SND_LAYLA20 is not set
957# CONFIG_SND_DARLA24 is not set
958# CONFIG_SND_GINA24 is not set
959# CONFIG_SND_LAYLA24 is not set
960# CONFIG_SND_MONA is not set
961# CONFIG_SND_MIA is not set
962# CONFIG_SND_ECHO3G is not set
963# CONFIG_SND_INDIGO is not set
964# CONFIG_SND_INDIGOIO is not set
965# CONFIG_SND_INDIGODJ is not set
966# CONFIG_SND_EMU10K1 is not set
967# CONFIG_SND_EMU10K1X is not set
968# CONFIG_SND_ENS1370 is not set
969# CONFIG_SND_ENS1371 is not set
970# CONFIG_SND_ES1938 is not set
971# CONFIG_SND_ES1968 is not set
972# CONFIG_SND_FM801 is not set
973# CONFIG_SND_HDA_INTEL is not set
974# CONFIG_SND_HDSP is not set
975# CONFIG_SND_HDSPM is not set
976# CONFIG_SND_ICE1712 is not set
977# CONFIG_SND_ICE1724 is not set
978# CONFIG_SND_INTEL8X0 is not set
979# CONFIG_SND_INTEL8X0M is not set
980# CONFIG_SND_KORG1212 is not set
981# CONFIG_SND_MAESTRO3 is not set
982# CONFIG_SND_MIXART is not set
983# CONFIG_SND_NM256 is not set
984# CONFIG_SND_PCXHR is not set
985# CONFIG_SND_RIPTIDE is not set
986# CONFIG_SND_RME32 is not set
987# CONFIG_SND_RME96 is not set
988# CONFIG_SND_RME9652 is not set
989# CONFIG_SND_SONICVIBES is not set
990# CONFIG_SND_TRIDENT is not set
991# CONFIG_SND_VIA82XX is not set
992# CONFIG_SND_VIA82XX_MODEM is not set
993# CONFIG_SND_VX222 is not set
994# CONFIG_SND_YMFPCI is not set
995# CONFIG_SND_AC97_POWER_SAVE is not set
996
997#
998# ALSA MIPS devices
999#
1000CONFIG_SND_AU1X00=m
1001
1002#
1003# USB devices
1004#
1005# CONFIG_SND_USB_AUDIO is not set
1006
1007#
1008# PCMCIA devices
1009#
1010# CONFIG_SND_VXPOCKET is not set
1011# CONFIG_SND_PDAUDIOCF is not set
1012
1013#
1014# SoC audio support
1015#
1016# CONFIG_SND_SOC is not set
1017
1018#
1019# Open Sound System
1020#
1021CONFIG_SOUND_PRIME=y
1022# CONFIG_OBSOLETE_OSS is not set
1023# CONFIG_SOUND_BT878 is not set
1024# CONFIG_SOUND_ICH is not set
1025# CONFIG_SOUND_TRIDENT is not set
1026# CONFIG_SOUND_MSNDCLAS is not set
1027# CONFIG_SOUND_MSNDPIN is not set
1028# CONFIG_SOUND_VIA82CXXX is not set
1029CONFIG_AC97_BUS=m
1030
1031#
1032# HID Devices
1033#
1034CONFIG_HID=y
1035# CONFIG_HID_DEBUG is not set
1036
1037#
1038# USB support
1039# 864#
865# CONFIG_VGA_CONSOLE is not set
866CONFIG_DUMMY_CONSOLE=y
867# CONFIG_SOUND is not set
868# CONFIG_HID_SUPPORT is not set
869CONFIG_USB_SUPPORT=y
1040CONFIG_USB_ARCH_HAS_HCD=y 870CONFIG_USB_ARCH_HAS_HCD=y
1041CONFIG_USB_ARCH_HAS_OHCI=y 871CONFIG_USB_ARCH_HAS_OHCI=y
1042CONFIG_USB_ARCH_HAS_EHCI=y 872CONFIG_USB_ARCH_HAS_EHCI=y
1043CONFIG_USB=y 873CONFIG_USB=y
1044# CONFIG_USB_DEBUG is not set 874# CONFIG_USB_DEBUG is not set
875# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
1045 876
1046# 877#
1047# Miscellaneous USB options 878# Miscellaneous USB options
1048# 879#
1049# CONFIG_USB_DEVICEFS is not set 880# CONFIG_USB_DEVICEFS is not set
1050# CONFIG_USB_DYNAMIC_MINORS is not set 881# CONFIG_USB_DEVICE_CLASS is not set
882CONFIG_USB_DYNAMIC_MINORS=y
883CONFIG_USB_SUSPEND=y
1051# CONFIG_USB_OTG is not set 884# CONFIG_USB_OTG is not set
885# CONFIG_USB_OTG_WHITELIST is not set
886# CONFIG_USB_OTG_BLACKLIST_HUB is not set
887# CONFIG_USB_MON is not set
888# CONFIG_USB_WUSB is not set
889# CONFIG_USB_WUSB_CBAF is not set
1052 890
1053# 891#
1054# USB Host Controller Drivers 892# USB Host Controller Drivers
1055# 893#
894# CONFIG_USB_C67X00_HCD is not set
895# CONFIG_USB_XHCI_HCD is not set
1056# CONFIG_USB_EHCI_HCD is not set 896# CONFIG_USB_EHCI_HCD is not set
897# CONFIG_USB_OXU210HP_HCD is not set
1057# CONFIG_USB_ISP116X_HCD is not set 898# CONFIG_USB_ISP116X_HCD is not set
899# CONFIG_USB_ISP1760_HCD is not set
900# CONFIG_USB_ISP1362_HCD is not set
1058CONFIG_USB_OHCI_HCD=y 901CONFIG_USB_OHCI_HCD=y
1059# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set 902# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
1060# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set 903# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
1061CONFIG_USB_OHCI_LITTLE_ENDIAN=y 904CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1062# CONFIG_USB_UHCI_HCD is not set 905# CONFIG_USB_UHCI_HCD is not set
1063# CONFIG_USB_SL811_HCD is not set 906# CONFIG_USB_SL811_HCD is not set
907# CONFIG_USB_R8A66597_HCD is not set
908# CONFIG_USB_WHCI_HCD is not set
909# CONFIG_USB_HWA_HCD is not set
1064 910
1065# 911#
1066# USB Device Class drivers 912# USB Device Class drivers
1067# 913#
1068# CONFIG_USB_ACM is not set 914# CONFIG_USB_ACM is not set
1069# CONFIG_USB_PRINTER is not set 915# CONFIG_USB_PRINTER is not set
916# CONFIG_USB_WDM is not set
917# CONFIG_USB_TMC is not set
1070 918
1071# 919#
1072# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 920# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
1073# 921#
1074 922
1075# 923#
1076# may also be needed; see USB_STORAGE Help for more information 924# also be needed; see USB_STORAGE Help for more info
1077# 925#
1078# CONFIG_USB_LIBUSUAL is not set 926# CONFIG_USB_LIBUSUAL is not set
1079 927
1080# 928#
1081# USB Input Devices
1082#
1083CONFIG_USB_HID=y
1084# CONFIG_USB_HIDINPUT_POWERBOOK is not set
1085# CONFIG_HID_FF is not set
1086# CONFIG_USB_HIDDEV is not set
1087# CONFIG_USB_AIPTEK is not set
1088# CONFIG_USB_WACOM is not set
1089# CONFIG_USB_ACECAD is not set
1090# CONFIG_USB_KBTAB is not set
1091# CONFIG_USB_POWERMATE is not set
1092# CONFIG_USB_TOUCHSCREEN is not set
1093CONFIG_USB_YEALINK=m
1094# CONFIG_USB_XPAD is not set
1095# CONFIG_USB_ATI_REMOTE is not set
1096# CONFIG_USB_ATI_REMOTE2 is not set
1097# CONFIG_USB_KEYSPAN_REMOTE is not set
1098# CONFIG_USB_APPLETOUCH is not set
1099# CONFIG_USB_GTCO is not set
1100
1101#
1102# USB Imaging devices 929# USB Imaging devices
1103# 930#
1104# CONFIG_USB_MDC800 is not set 931# CONFIG_USB_MDC800 is not set
1105 932
1106# 933#
1107# USB Network Adapters
1108#
1109# CONFIG_USB_CATC is not set
1110# CONFIG_USB_KAWETH is not set
1111# CONFIG_USB_PEGASUS is not set
1112# CONFIG_USB_RTL8150 is not set
1113# CONFIG_USB_USBNET_MII is not set
1114# CONFIG_USB_USBNET is not set
1115CONFIG_USB_MON=y
1116
1117#
1118# USB port drivers 934# USB port drivers
1119# 935#
1120
1121#
1122# USB Serial Converter support
1123#
1124# CONFIG_USB_SERIAL is not set 936# CONFIG_USB_SERIAL is not set
1125 937
1126# 938#
@@ -1129,7 +941,7 @@ CONFIG_USB_MON=y
1129# CONFIG_USB_EMI62 is not set 941# CONFIG_USB_EMI62 is not set
1130# CONFIG_USB_EMI26 is not set 942# CONFIG_USB_EMI26 is not set
1131# CONFIG_USB_ADUTUX is not set 943# CONFIG_USB_ADUTUX is not set
1132# CONFIG_USB_AUERSWALD is not set 944# CONFIG_USB_SEVSEG is not set
1133# CONFIG_USB_RIO500 is not set 945# CONFIG_USB_RIO500 is not set
1134# CONFIG_USB_LEGOTOWER is not set 946# CONFIG_USB_LEGOTOWER is not set
1135# CONFIG_USB_LCD is not set 947# CONFIG_USB_LCD is not set
@@ -1137,112 +949,107 @@ CONFIG_USB_MON=y
1137# CONFIG_USB_LED is not set 949# CONFIG_USB_LED is not set
1138# CONFIG_USB_CYPRESS_CY7C63 is not set 950# CONFIG_USB_CYPRESS_CY7C63 is not set
1139# CONFIG_USB_CYTHERM is not set 951# CONFIG_USB_CYTHERM is not set
1140# CONFIG_USB_PHIDGET is not set
1141# CONFIG_USB_IDMOUSE is not set 952# CONFIG_USB_IDMOUSE is not set
1142# CONFIG_USB_FTDI_ELAN is not set 953# CONFIG_USB_FTDI_ELAN is not set
1143# CONFIG_USB_APPLEDISPLAY is not set 954# CONFIG_USB_APPLEDISPLAY is not set
1144CONFIG_USB_LD=m 955# CONFIG_USB_LD is not set
1145# CONFIG_USB_TRANCEVIBRATOR is not set 956# CONFIG_USB_TRANCEVIBRATOR is not set
1146 957# CONFIG_USB_IOWARRIOR is not set
1147# 958# CONFIG_USB_TEST is not set
1148# USB DSL modem support 959# CONFIG_USB_ISIGHTFW is not set
1149# 960# CONFIG_USB_VST is not set
1150
1151#
1152# USB Gadget Support
1153#
1154# CONFIG_USB_GADGET is not set 961# CONFIG_USB_GADGET is not set
1155 962
1156# 963#
1157# MMC/SD Card support 964# OTG and related infrastructure
1158# 965#
966# CONFIG_USB_GPIO_VBUS is not set
967# CONFIG_NOP_USB_XCEIV is not set
968# CONFIG_UWB is not set
1159# CONFIG_MMC is not set 969# CONFIG_MMC is not set
1160 970# CONFIG_MEMSTICK is not set
1161#
1162# LED devices
1163#
1164# CONFIG_NEW_LEDS is not set 971# CONFIG_NEW_LEDS is not set
1165 972# CONFIG_ACCESSIBILITY is not set
1166#
1167# LED drivers
1168#
1169
1170#
1171# LED Triggers
1172#
1173
1174#
1175# InfiniBand support
1176#
1177# CONFIG_INFINIBAND is not set 973# CONFIG_INFINIBAND is not set
974CONFIG_RTC_LIB=y
975CONFIG_RTC_CLASS=y
976CONFIG_RTC_HCTOSYS=y
977CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
978# CONFIG_RTC_DEBUG is not set
1178 979
1179# 980#
1180# EDAC - error detection and reporting (RAS) (EXPERIMENTAL) 981# RTC interfaces
1181#
1182
1183#
1184# Real Time Clock
1185# 982#
1186# CONFIG_RTC_CLASS is not set 983CONFIG_RTC_INTF_SYSFS=y
984CONFIG_RTC_INTF_PROC=y
985CONFIG_RTC_INTF_DEV=y
986# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
987# CONFIG_RTC_DRV_TEST is not set
1187 988
1188# 989#
1189# DMA Engine support 990# SPI RTC drivers
1190# 991#
1191# CONFIG_DMA_ENGINE is not set
1192 992
1193# 993#
1194# DMA Clients 994# Platform RTC drivers
1195# 995#
996# CONFIG_RTC_DRV_CMOS is not set
997# CONFIG_RTC_DRV_DS1286 is not set
998# CONFIG_RTC_DRV_DS1511 is not set
999# CONFIG_RTC_DRV_DS1553 is not set
1000# CONFIG_RTC_DRV_DS1742 is not set
1001# CONFIG_RTC_DRV_STK17TA8 is not set
1002# CONFIG_RTC_DRV_M48T86 is not set
1003# CONFIG_RTC_DRV_M48T35 is not set
1004# CONFIG_RTC_DRV_M48T59 is not set
1005# CONFIG_RTC_DRV_MSM6242 is not set
1006# CONFIG_RTC_DRV_BQ4802 is not set
1007# CONFIG_RTC_DRV_RP5C01 is not set
1008# CONFIG_RTC_DRV_V3020 is not set
1196 1009
1197# 1010#
1198# DMA Devices 1011# on-CPU RTC drivers
1199# 1012#
1013CONFIG_RTC_DRV_AU1XXX=y
1014# CONFIG_DMADEVICES is not set
1015# CONFIG_AUXDISPLAY is not set
1016# CONFIG_UIO is not set
1200 1017
1201# 1018#
1202# Auxiliary Display support 1019# TI VLYNQ
1203#
1204
1205#
1206# Virtualization
1207# 1020#
1021# CONFIG_STAGING is not set
1208 1022
1209# 1023#
1210# File systems 1024# File systems
1211# 1025#
1212CONFIG_EXT2_FS=y 1026CONFIG_EXT2_FS=y
1213CONFIG_EXT2_FS_XATTR=y 1027# CONFIG_EXT2_FS_XATTR is not set
1214CONFIG_EXT2_FS_POSIX_ACL=y
1215# CONFIG_EXT2_FS_SECURITY is not set
1216# CONFIG_EXT2_FS_XIP is not set 1028# CONFIG_EXT2_FS_XIP is not set
1217CONFIG_EXT3_FS=y 1029# CONFIG_EXT3_FS is not set
1218CONFIG_EXT3_FS_XATTR=y 1030# CONFIG_EXT4_FS is not set
1219CONFIG_EXT3_FS_POSIX_ACL=y 1031# CONFIG_REISERFS_FS is not set
1220CONFIG_EXT3_FS_SECURITY=y
1221# CONFIG_EXT4DEV_FS is not set
1222CONFIG_JBD=y
1223# CONFIG_JBD_DEBUG is not set
1224CONFIG_FS_MBCACHE=y
1225CONFIG_REISERFS_FS=m
1226# CONFIG_REISERFS_CHECK is not set
1227# CONFIG_REISERFS_PROC_INFO is not set
1228CONFIG_REISERFS_FS_XATTR=y
1229CONFIG_REISERFS_FS_POSIX_ACL=y
1230CONFIG_REISERFS_FS_SECURITY=y
1231# CONFIG_JFS_FS is not set 1032# CONFIG_JFS_FS is not set
1232CONFIG_FS_POSIX_ACL=y 1033CONFIG_FS_POSIX_ACL=y
1233# CONFIG_XFS_FS is not set 1034# CONFIG_XFS_FS is not set
1234# CONFIG_GFS2_FS is not set 1035# CONFIG_GFS2_FS is not set
1235# CONFIG_OCFS2_FS is not set 1036# CONFIG_OCFS2_FS is not set
1236# CONFIG_MINIX_FS is not set 1037# CONFIG_BTRFS_FS is not set
1237# CONFIG_ROMFS_FS is not set 1038# CONFIG_NILFS2_FS is not set
1039CONFIG_FILE_LOCKING=y
1040CONFIG_FSNOTIFY=y
1041CONFIG_DNOTIFY=y
1238CONFIG_INOTIFY=y 1042CONFIG_INOTIFY=y
1239CONFIG_INOTIFY_USER=y 1043CONFIG_INOTIFY_USER=y
1240# CONFIG_QUOTA is not set 1044# CONFIG_QUOTA is not set
1241CONFIG_DNOTIFY=y 1045# CONFIG_AUTOFS_FS is not set
1242CONFIG_AUTOFS_FS=m 1046# CONFIG_AUTOFS4_FS is not set
1243CONFIG_AUTOFS4_FS=m 1047# CONFIG_FUSE_FS is not set
1244CONFIG_FUSE_FS=m 1048
1245CONFIG_GENERIC_ACL=y 1049#
1050# Caches
1051#
1052# CONFIG_FSCACHE is not set
1246 1053
1247# 1054#
1248# CD-ROM/DVD Filesystems 1055# CD-ROM/DVD Filesystems
@@ -1261,74 +1068,81 @@ CONFIG_GENERIC_ACL=y
1261# Pseudo filesystems 1068# Pseudo filesystems
1262# 1069#
1263CONFIG_PROC_FS=y 1070CONFIG_PROC_FS=y
1264CONFIG_PROC_KCORE=y 1071# CONFIG_PROC_KCORE is not set
1265CONFIG_PROC_SYSCTL=y 1072CONFIG_PROC_SYSCTL=y
1073# CONFIG_PROC_PAGE_MONITOR is not set
1266CONFIG_SYSFS=y 1074CONFIG_SYSFS=y
1267CONFIG_TMPFS=y 1075CONFIG_TMPFS=y
1268CONFIG_TMPFS_POSIX_ACL=y 1076# CONFIG_TMPFS_POSIX_ACL is not set
1269# CONFIG_HUGETLB_PAGE is not set 1077# CONFIG_HUGETLB_PAGE is not set
1270CONFIG_RAMFS=y 1078# CONFIG_CONFIGFS_FS is not set
1271CONFIG_CONFIGFS_FS=m 1079CONFIG_MISC_FILESYSTEMS=y
1272
1273#
1274# Miscellaneous filesystems
1275#
1276# CONFIG_ADFS_FS is not set 1080# CONFIG_ADFS_FS is not set
1277# CONFIG_AFFS_FS is not set 1081# CONFIG_AFFS_FS is not set
1278# CONFIG_ECRYPT_FS is not set
1279# CONFIG_HFS_FS is not set 1082# CONFIG_HFS_FS is not set
1280# CONFIG_HFSPLUS_FS is not set 1083# CONFIG_HFSPLUS_FS is not set
1281# CONFIG_BEFS_FS is not set 1084# CONFIG_BEFS_FS is not set
1282# CONFIG_BFS_FS is not set 1085# CONFIG_BFS_FS is not set
1283# CONFIG_EFS_FS is not set 1086# CONFIG_EFS_FS is not set
1284# CONFIG_JFFS2_FS is not set 1087CONFIG_JFFS2_FS=y
1285CONFIG_CRAMFS=m 1088CONFIG_JFFS2_FS_DEBUG=0
1089CONFIG_JFFS2_FS_WRITEBUFFER=y
1090# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
1091CONFIG_JFFS2_SUMMARY=y
1092CONFIG_JFFS2_FS_XATTR=y
1093CONFIG_JFFS2_FS_POSIX_ACL=y
1094CONFIG_JFFS2_FS_SECURITY=y
1095CONFIG_JFFS2_COMPRESSION_OPTIONS=y
1096CONFIG_JFFS2_ZLIB=y
1097CONFIG_JFFS2_LZO=y
1098CONFIG_JFFS2_RTIME=y
1099CONFIG_JFFS2_RUBIN=y
1100# CONFIG_JFFS2_CMODE_NONE is not set
1101CONFIG_JFFS2_CMODE_PRIORITY=y
1102# CONFIG_JFFS2_CMODE_SIZE is not set
1103# CONFIG_JFFS2_CMODE_FAVOURLZO is not set
1104# CONFIG_CRAMFS is not set
1105CONFIG_SQUASHFS=y
1106# CONFIG_SQUASHFS_EMBEDDED is not set
1107CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
1286# CONFIG_VXFS_FS is not set 1108# CONFIG_VXFS_FS is not set
1109# CONFIG_MINIX_FS is not set
1110# CONFIG_OMFS_FS is not set
1287# CONFIG_HPFS_FS is not set 1111# CONFIG_HPFS_FS is not set
1288# CONFIG_QNX4FS_FS is not set 1112# CONFIG_QNX4FS_FS is not set
1113# CONFIG_ROMFS_FS is not set
1289# CONFIG_SYSV_FS is not set 1114# CONFIG_SYSV_FS is not set
1290# CONFIG_UFS_FS is not set 1115# CONFIG_UFS_FS is not set
1291 1116CONFIG_NETWORK_FILESYSTEMS=y
1292#
1293# Network File Systems
1294#
1295CONFIG_NFS_FS=y 1117CONFIG_NFS_FS=y
1296# CONFIG_NFS_V3 is not set 1118CONFIG_NFS_V3=y
1119# CONFIG_NFS_V3_ACL is not set
1297# CONFIG_NFS_V4 is not set 1120# CONFIG_NFS_V4 is not set
1298# CONFIG_NFS_DIRECTIO is not set
1299CONFIG_NFSD=m
1300# CONFIG_NFSD_V3 is not set
1301# CONFIG_NFSD_TCP is not set
1302CONFIG_ROOT_NFS=y 1121CONFIG_ROOT_NFS=y
1122# CONFIG_NFSD is not set
1303CONFIG_LOCKD=y 1123CONFIG_LOCKD=y
1304CONFIG_EXPORTFS=m 1124CONFIG_LOCKD_V4=y
1305CONFIG_NFS_COMMON=y 1125CONFIG_NFS_COMMON=y
1306CONFIG_SUNRPC=y 1126CONFIG_SUNRPC=y
1307# CONFIG_RPCSEC_GSS_KRB5 is not set 1127# CONFIG_RPCSEC_GSS_KRB5 is not set
1308# CONFIG_RPCSEC_GSS_SPKM3 is not set 1128# CONFIG_RPCSEC_GSS_SPKM3 is not set
1309CONFIG_SMB_FS=m 1129# CONFIG_SMB_FS is not set
1310# CONFIG_SMB_NLS_DEFAULT is not set
1311# CONFIG_CIFS is not set 1130# CONFIG_CIFS is not set
1312# CONFIG_NCP_FS is not set 1131# CONFIG_NCP_FS is not set
1313# CONFIG_CODA_FS is not set 1132# CONFIG_CODA_FS is not set
1314# CONFIG_AFS_FS is not set 1133# CONFIG_AFS_FS is not set
1315# CONFIG_9P_FS is not set
1316 1134
1317# 1135#
1318# Partition Types 1136# Partition Types
1319# 1137#
1320# CONFIG_PARTITION_ADVANCED is not set 1138# CONFIG_PARTITION_ADVANCED is not set
1321CONFIG_MSDOS_PARTITION=y 1139CONFIG_MSDOS_PARTITION=y
1322 1140CONFIG_NLS=y
1323#
1324# Native Language Support
1325#
1326CONFIG_NLS=m
1327CONFIG_NLS_DEFAULT="iso8859-1" 1141CONFIG_NLS_DEFAULT="iso8859-1"
1328# CONFIG_NLS_CODEPAGE_437 is not set 1142CONFIG_NLS_CODEPAGE_437=y
1329# CONFIG_NLS_CODEPAGE_737 is not set 1143# CONFIG_NLS_CODEPAGE_737 is not set
1330# CONFIG_NLS_CODEPAGE_775 is not set 1144# CONFIG_NLS_CODEPAGE_775 is not set
1331# CONFIG_NLS_CODEPAGE_850 is not set 1145CONFIG_NLS_CODEPAGE_850=y
1332# CONFIG_NLS_CODEPAGE_852 is not set 1146# CONFIG_NLS_CODEPAGE_852 is not set
1333# CONFIG_NLS_CODEPAGE_855 is not set 1147# CONFIG_NLS_CODEPAGE_855 is not set
1334# CONFIG_NLS_CODEPAGE_857 is not set 1148# CONFIG_NLS_CODEPAGE_857 is not set
@@ -1346,10 +1160,10 @@ CONFIG_NLS_DEFAULT="iso8859-1"
1346# CONFIG_NLS_CODEPAGE_949 is not set 1160# CONFIG_NLS_CODEPAGE_949 is not set
1347# CONFIG_NLS_CODEPAGE_874 is not set 1161# CONFIG_NLS_CODEPAGE_874 is not set
1348# CONFIG_NLS_ISO8859_8 is not set 1162# CONFIG_NLS_ISO8859_8 is not set
1349# CONFIG_NLS_CODEPAGE_1250 is not set 1163CONFIG_NLS_CODEPAGE_1250=y
1350# CONFIG_NLS_CODEPAGE_1251 is not set 1164# CONFIG_NLS_CODEPAGE_1251 is not set
1351# CONFIG_NLS_ASCII is not set 1165CONFIG_NLS_ASCII=y
1352# CONFIG_NLS_ISO8859_1 is not set 1166CONFIG_NLS_ISO8859_1=y
1353# CONFIG_NLS_ISO8859_2 is not set 1167# CONFIG_NLS_ISO8859_2 is not set
1354# CONFIG_NLS_ISO8859_3 is not set 1168# CONFIG_NLS_ISO8859_3 is not set
1355# CONFIG_NLS_ISO8859_4 is not set 1169# CONFIG_NLS_ISO8859_4 is not set
@@ -1359,38 +1173,76 @@ CONFIG_NLS_DEFAULT="iso8859-1"
1359# CONFIG_NLS_ISO8859_9 is not set 1173# CONFIG_NLS_ISO8859_9 is not set
1360# CONFIG_NLS_ISO8859_13 is not set 1174# CONFIG_NLS_ISO8859_13 is not set
1361# CONFIG_NLS_ISO8859_14 is not set 1175# CONFIG_NLS_ISO8859_14 is not set
1362# CONFIG_NLS_ISO8859_15 is not set 1176CONFIG_NLS_ISO8859_15=y
1363# CONFIG_NLS_KOI8_R is not set 1177# CONFIG_NLS_KOI8_R is not set
1364# CONFIG_NLS_KOI8_U is not set 1178# CONFIG_NLS_KOI8_U is not set
1365# CONFIG_NLS_UTF8 is not set 1179CONFIG_NLS_UTF8=y
1366 1180# CONFIG_DLM is not set
1367#
1368# Distributed Lock Manager
1369#
1370CONFIG_DLM=m
1371CONFIG_DLM_TCP=y
1372# CONFIG_DLM_SCTP is not set
1373# CONFIG_DLM_DEBUG is not set
1374
1375#
1376# Profiling support
1377#
1378# CONFIG_PROFILING is not set
1379 1181
1380# 1182#
1381# Kernel hacking 1183# Kernel hacking
1382# 1184#
1383CONFIG_TRACE_IRQFLAGS_SUPPORT=y 1185CONFIG_TRACE_IRQFLAGS_SUPPORT=y
1384# CONFIG_PRINTK_TIME is not set 1186# CONFIG_PRINTK_TIME is not set
1187CONFIG_ENABLE_WARN_DEPRECATED=y
1385CONFIG_ENABLE_MUST_CHECK=y 1188CONFIG_ENABLE_MUST_CHECK=y
1189CONFIG_FRAME_WARN=1024
1386# CONFIG_MAGIC_SYSRQ is not set 1190# CONFIG_MAGIC_SYSRQ is not set
1191CONFIG_STRIP_ASM_SYMS=y
1387# CONFIG_UNUSED_SYMBOLS is not set 1192# CONFIG_UNUSED_SYMBOLS is not set
1388# CONFIG_DEBUG_FS is not set 1193# CONFIG_DEBUG_FS is not set
1389# CONFIG_HEADERS_CHECK is not set 1194# CONFIG_HEADERS_CHECK is not set
1390# CONFIG_DEBUG_KERNEL is not set 1195CONFIG_DEBUG_KERNEL=y
1391CONFIG_LOG_BUF_SHIFT=14 1196# CONFIG_DEBUG_SHIRQ is not set
1392CONFIG_CROSSCOMPILE=y 1197# CONFIG_DETECT_SOFTLOCKUP is not set
1393CONFIG_CMDLINE="" 1198# CONFIG_DETECT_HUNG_TASK is not set
1199# CONFIG_SCHED_DEBUG is not set
1200# CONFIG_SCHEDSTATS is not set
1201# CONFIG_TIMER_STATS is not set
1202# CONFIG_DEBUG_OBJECTS is not set
1203# CONFIG_DEBUG_SLAB is not set
1204# CONFIG_DEBUG_RT_MUTEXES is not set
1205# CONFIG_RT_MUTEX_TESTER is not set
1206# CONFIG_DEBUG_SPINLOCK is not set
1207# CONFIG_DEBUG_MUTEXES is not set
1208# CONFIG_DEBUG_LOCK_ALLOC is not set
1209# CONFIG_PROVE_LOCKING is not set
1210# CONFIG_LOCK_STAT is not set
1211# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1212# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1213# CONFIG_DEBUG_KOBJECT is not set
1214# CONFIG_DEBUG_INFO is not set
1215# CONFIG_DEBUG_VM is not set
1216# CONFIG_DEBUG_WRITECOUNT is not set
1217# CONFIG_DEBUG_MEMORY_INIT is not set
1218# CONFIG_DEBUG_LIST is not set
1219# CONFIG_DEBUG_SG is not set
1220# CONFIG_DEBUG_NOTIFIERS is not set
1221# CONFIG_DEBUG_CREDENTIALS is not set
1222# CONFIG_BOOT_PRINTK_DELAY is not set
1223# CONFIG_RCU_TORTURE_TEST is not set
1224# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1225# CONFIG_BACKTRACE_SELF_TEST is not set
1226# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1227# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
1228# CONFIG_FAULT_INJECTION is not set
1229# CONFIG_SYSCTL_SYSCALL_CHECK is not set
1230# CONFIG_PAGE_POISONING is not set
1231CONFIG_HAVE_FUNCTION_TRACER=y
1232CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1233CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y
1234CONFIG_HAVE_DYNAMIC_FTRACE=y
1235CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1236CONFIG_TRACING_SUPPORT=y
1237# CONFIG_FTRACE is not set
1238# CONFIG_SAMPLES is not set
1239CONFIG_HAVE_ARCH_KGDB=y
1240# CONFIG_KGDB is not set
1241CONFIG_EARLY_PRINTK=y
1242# CONFIG_CMDLINE_BOOL is not set
1243# CONFIG_DEBUG_STACK_USAGE is not set
1244# CONFIG_RUNTIME_DEBUG is not set
1245CONFIG_DEBUG_ZBOOT=y
1394 1246
1395# 1247#
1396# Security options 1248# Security options
@@ -1398,67 +1250,32 @@ CONFIG_CMDLINE=""
1398CONFIG_KEYS=y 1250CONFIG_KEYS=y
1399CONFIG_KEYS_DEBUG_PROC_KEYS=y 1251CONFIG_KEYS_DEBUG_PROC_KEYS=y
1400# CONFIG_SECURITY is not set 1252# CONFIG_SECURITY is not set
1401 1253CONFIG_SECURITYFS=y
1402# 1254# CONFIG_DEFAULT_SECURITY_SELINUX is not set
1403# Cryptographic options 1255# CONFIG_DEFAULT_SECURITY_SMACK is not set
1404# 1256# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
1405CONFIG_CRYPTO=y 1257CONFIG_DEFAULT_SECURITY_DAC=y
1406CONFIG_CRYPTO_ALGAPI=y 1258CONFIG_DEFAULT_SECURITY=""
1407CONFIG_CRYPTO_BLKCIPHER=m 1259# CONFIG_CRYPTO is not set
1408CONFIG_CRYPTO_HASH=y 1260# CONFIG_BINARY_PRINTF is not set
1409CONFIG_CRYPTO_MANAGER=y
1410CONFIG_CRYPTO_HMAC=y
1411CONFIG_CRYPTO_XCBC=m
1412CONFIG_CRYPTO_NULL=m
1413CONFIG_CRYPTO_MD4=m
1414CONFIG_CRYPTO_MD5=y
1415CONFIG_CRYPTO_SHA1=m
1416CONFIG_CRYPTO_SHA256=m
1417CONFIG_CRYPTO_SHA512=m
1418CONFIG_CRYPTO_WP512=m
1419CONFIG_CRYPTO_TGR192=m
1420CONFIG_CRYPTO_GF128MUL=m
1421CONFIG_CRYPTO_ECB=m
1422CONFIG_CRYPTO_CBC=m
1423CONFIG_CRYPTO_PCBC=m
1424CONFIG_CRYPTO_LRW=m
1425CONFIG_CRYPTO_DES=m
1426CONFIG_CRYPTO_FCRYPT=m
1427CONFIG_CRYPTO_BLOWFISH=m
1428CONFIG_CRYPTO_TWOFISH=m
1429CONFIG_CRYPTO_TWOFISH_COMMON=m
1430CONFIG_CRYPTO_SERPENT=m
1431CONFIG_CRYPTO_AES=m
1432CONFIG_CRYPTO_CAST5=m
1433CONFIG_CRYPTO_CAST6=m
1434CONFIG_CRYPTO_TEA=m
1435CONFIG_CRYPTO_ARC4=m
1436CONFIG_CRYPTO_KHAZAD=m
1437CONFIG_CRYPTO_ANUBIS=m
1438CONFIG_CRYPTO_DEFLATE=m
1439CONFIG_CRYPTO_MICHAEL_MIC=m
1440CONFIG_CRYPTO_CRC32C=m
1441CONFIG_CRYPTO_CAMELLIA=m
1442# CONFIG_CRYPTO_TEST is not set
1443
1444#
1445# Hardware crypto devices
1446#
1447 1261
1448# 1262#
1449# Library routines 1263# Library routines
1450# 1264#
1451CONFIG_BITREVERSE=y 1265CONFIG_BITREVERSE=y
1452CONFIG_CRC_CCITT=m 1266CONFIG_GENERIC_FIND_LAST_BIT=y
1453CONFIG_CRC16=m 1267# CONFIG_CRC_CCITT is not set
1268# CONFIG_CRC16 is not set
1269# CONFIG_CRC_T10DIF is not set
1270# CONFIG_CRC_ITU_T is not set
1454CONFIG_CRC32=y 1271CONFIG_CRC32=y
1455CONFIG_LIBCRC32C=m 1272# CONFIG_CRC7 is not set
1456CONFIG_ZLIB_INFLATE=m 1273# CONFIG_LIBCRC32C is not set
1457CONFIG_ZLIB_DEFLATE=m 1274CONFIG_ZLIB_INFLATE=y
1458CONFIG_TEXTSEARCH=y 1275CONFIG_ZLIB_DEFLATE=y
1459CONFIG_TEXTSEARCH_KMP=m 1276CONFIG_LZO_COMPRESS=y
1460CONFIG_TEXTSEARCH_BM=m 1277CONFIG_LZO_DECOMPRESS=y
1461CONFIG_TEXTSEARCH_FSM=m
1462CONFIG_PLIST=y
1463CONFIG_HAS_IOMEM=y 1278CONFIG_HAS_IOMEM=y
1464CONFIG_HAS_IOPORT=y 1279CONFIG_HAS_IOPORT=y
1280CONFIG_HAS_DMA=y
1281CONFIG_NLATTR=y
diff --git a/arch/mips/configs/db1550_defconfig b/arch/mips/configs/db1550_defconfig
index 7631dae51be9..949b6dcf634b 100644
--- a/arch/mips/configs/db1550_defconfig
+++ b/arch/mips/configs/db1550_defconfig
@@ -1,80 +1,103 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.20 3# Linux kernel version: 2.6.33
4# Tue Feb 20 21:47:27 2007 4# Fri Feb 26 08:58:22 2010
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
8# 8#
9# Machine selection 9# Machine selection
10# 10#
11CONFIG_ZONE_DMA=y
12CONFIG_MACH_ALCHEMY=y 11CONFIG_MACH_ALCHEMY=y
13# CONFIG_MIPS_MTX1 is not set 12# CONFIG_AR7 is not set
14# CONFIG_MIPS_BOSPORUS is not set 13# CONFIG_BCM47XX is not set
15# CONFIG_MIPS_PB1000 is not set 14# CONFIG_BCM63XX is not set
16# CONFIG_MIPS_PB1100 is not set
17# CONFIG_MIPS_PB1500 is not set
18# CONFIG_MIPS_PB1550 is not set
19# CONFIG_MIPS_PB1200 is not set
20# CONFIG_MIPS_DB1000 is not set
21# CONFIG_MIPS_DB1100 is not set
22# CONFIG_MIPS_DB1500 is not set
23CONFIG_MIPS_DB1550=y
24# CONFIG_MIPS_DB1200 is not set
25# CONFIG_MIPS_MIRAGE is not set
26# CONFIG_BASLER_EXCITE is not set
27# CONFIG_MIPS_COBALT is not set 15# CONFIG_MIPS_COBALT is not set
28# CONFIG_MACH_DECSTATION is not set 16# CONFIG_MACH_DECSTATION is not set
29# CONFIG_MACH_JAZZ is not set 17# CONFIG_MACH_JAZZ is not set
18# CONFIG_LASAT is not set
19# CONFIG_MACH_LOONGSON is not set
30# CONFIG_MIPS_MALTA is not set 20# CONFIG_MIPS_MALTA is not set
31# CONFIG_WR_PPMC is not set
32# CONFIG_MIPS_SIM is not set 21# CONFIG_MIPS_SIM is not set
33# CONFIG_MOMENCO_JAGUAR_ATX is not set 22# CONFIG_NEC_MARKEINS is not set
34# CONFIG_MIPS_XXS1500 is not set 23# CONFIG_MACH_VR41XX is not set
24# CONFIG_NXP_STB220 is not set
25# CONFIG_NXP_STB225 is not set
35# CONFIG_PNX8550_JBS is not set 26# CONFIG_PNX8550_JBS is not set
36# CONFIG_PNX8550_STB810 is not set 27# CONFIG_PNX8550_STB810 is not set
37# CONFIG_MACH_VR41XX is not set 28# CONFIG_PMC_MSP is not set
38# CONFIG_PMC_YOSEMITE is not set 29# CONFIG_PMC_YOSEMITE is not set
39# CONFIG_MARKEINS is not set 30# CONFIG_POWERTV is not set
40# CONFIG_SGI_IP22 is not set 31# CONFIG_SGI_IP22 is not set
41# CONFIG_SGI_IP27 is not set 32# CONFIG_SGI_IP27 is not set
33# CONFIG_SGI_IP28 is not set
42# CONFIG_SGI_IP32 is not set 34# CONFIG_SGI_IP32 is not set
43# CONFIG_SIBYTE_BIGSUR is not set
44# CONFIG_SIBYTE_SWARM is not set
45# CONFIG_SIBYTE_SENTOSA is not set
46# CONFIG_SIBYTE_RHONE is not set
47# CONFIG_SIBYTE_CARMEL is not set
48# CONFIG_SIBYTE_LITTLESUR is not set
49# CONFIG_SIBYTE_CRHINE is not set 35# CONFIG_SIBYTE_CRHINE is not set
36# CONFIG_SIBYTE_CARMEL is not set
50# CONFIG_SIBYTE_CRHONE is not set 37# CONFIG_SIBYTE_CRHONE is not set
38# CONFIG_SIBYTE_RHONE is not set
39# CONFIG_SIBYTE_SWARM is not set
40# CONFIG_SIBYTE_LITTLESUR is not set
41# CONFIG_SIBYTE_SENTOSA is not set
42# CONFIG_SIBYTE_BIGSUR is not set
51# CONFIG_SNI_RM is not set 43# CONFIG_SNI_RM is not set
52# CONFIG_TOSHIBA_JMR3927 is not set 44# CONFIG_MACH_TX39XX is not set
53# CONFIG_TOSHIBA_RBTX4927 is not set 45# CONFIG_MACH_TX49XX is not set
54# CONFIG_TOSHIBA_RBTX4938 is not set 46# CONFIG_MIKROTIK_RB532 is not set
47# CONFIG_WR_PPMC is not set
48# CONFIG_CAVIUM_OCTEON_SIMULATOR is not set
49# CONFIG_CAVIUM_OCTEON_REFERENCE_BOARD is not set
50CONFIG_ALCHEMY_GPIOINT_AU1000=y
51# CONFIG_ALCHEMY_GPIO_INDIRECT is not set
52# CONFIG_MIPS_MTX1 is not set
53# CONFIG_MIPS_BOSPORUS is not set
54# CONFIG_MIPS_DB1000 is not set
55# CONFIG_MIPS_DB1100 is not set
56# CONFIG_MIPS_DB1200 is not set
57# CONFIG_MIPS_DB1500 is not set
58CONFIG_MIPS_DB1550=y
59# CONFIG_MIPS_MIRAGE is not set
60# CONFIG_MIPS_PB1000 is not set
61# CONFIG_MIPS_PB1100 is not set
62# CONFIG_MIPS_PB1200 is not set
63# CONFIG_MIPS_PB1500 is not set
64# CONFIG_MIPS_PB1550 is not set
65# CONFIG_MIPS_XXS1500 is not set
66CONFIG_SOC_AU1550=y
67CONFIG_SOC_AU1X00=y
68CONFIG_LOONGSON_UART_BASE=y
55CONFIG_RWSEM_GENERIC_SPINLOCK=y 69CONFIG_RWSEM_GENERIC_SPINLOCK=y
56# CONFIG_ARCH_HAS_ILOG2_U32 is not set 70# CONFIG_ARCH_HAS_ILOG2_U32 is not set
57# CONFIG_ARCH_HAS_ILOG2_U64 is not set 71# CONFIG_ARCH_HAS_ILOG2_U64 is not set
72CONFIG_ARCH_SUPPORTS_OPROFILE=y
58CONFIG_GENERIC_FIND_NEXT_BIT=y 73CONFIG_GENERIC_FIND_NEXT_BIT=y
59CONFIG_GENERIC_HWEIGHT=y 74CONFIG_GENERIC_HWEIGHT=y
60CONFIG_GENERIC_CALIBRATE_DELAY=y 75CONFIG_GENERIC_CALIBRATE_DELAY=y
76CONFIG_GENERIC_CLOCKEVENTS=y
61CONFIG_GENERIC_TIME=y 77CONFIG_GENERIC_TIME=y
62CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 78CONFIG_GENERIC_CMOS_UPDATE=y
63# CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ is not set 79CONFIG_SCHED_OMIT_FRAME_POINTER=y
80CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
81CONFIG_CEVT_R4K_LIB=y
82CONFIG_CSRC_R4K_LIB=y
64CONFIG_DMA_NONCOHERENT=y 83CONFIG_DMA_NONCOHERENT=y
65CONFIG_DMA_NEED_PCI_MAP_STATE=y 84CONFIG_DMA_NEED_PCI_MAP_STATE=y
85CONFIG_SYS_HAS_EARLY_PRINTK=y
66CONFIG_MIPS_DISABLE_OBSOLETE_IDE=y 86CONFIG_MIPS_DISABLE_OBSOLETE_IDE=y
87# CONFIG_NO_IOPORT is not set
88CONFIG_GENERIC_GPIO=y
67# CONFIG_CPU_BIG_ENDIAN is not set 89# CONFIG_CPU_BIG_ENDIAN is not set
68CONFIG_CPU_LITTLE_ENDIAN=y 90CONFIG_CPU_LITTLE_ENDIAN=y
69CONFIG_SYS_SUPPORTS_APM_EMULATION=y 91CONFIG_SYS_SUPPORTS_APM_EMULATION=y
70CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y 92CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y
71CONFIG_SOC_AU1550=y 93CONFIG_IRQ_CPU=y
72CONFIG_SOC_AU1X00=y
73CONFIG_MIPS_L1_CACHE_SHIFT=5 94CONFIG_MIPS_L1_CACHE_SHIFT=5
74 95
75# 96#
76# CPU selection 97# CPU selection
77# 98#
99# CONFIG_CPU_LOONGSON2E is not set
100# CONFIG_CPU_LOONGSON2F is not set
78CONFIG_CPU_MIPS32_R1=y 101CONFIG_CPU_MIPS32_R1=y
79# CONFIG_CPU_MIPS32_R2 is not set 102# CONFIG_CPU_MIPS32_R2 is not set
80# CONFIG_CPU_MIPS64_R1 is not set 103# CONFIG_CPU_MIPS64_R1 is not set
@@ -87,6 +110,7 @@ CONFIG_CPU_MIPS32_R1=y
87# CONFIG_CPU_TX49XX is not set 110# CONFIG_CPU_TX49XX is not set
88# CONFIG_CPU_R5000 is not set 111# CONFIG_CPU_R5000 is not set
89# CONFIG_CPU_R5432 is not set 112# CONFIG_CPU_R5432 is not set
113# CONFIG_CPU_R5500 is not set
90# CONFIG_CPU_R6000 is not set 114# CONFIG_CPU_R6000 is not set
91# CONFIG_CPU_NEVADA is not set 115# CONFIG_CPU_NEVADA is not set
92# CONFIG_CPU_R8000 is not set 116# CONFIG_CPU_R8000 is not set
@@ -94,11 +118,14 @@ CONFIG_CPU_MIPS32_R1=y
94# CONFIG_CPU_RM7000 is not set 118# CONFIG_CPU_RM7000 is not set
95# CONFIG_CPU_RM9000 is not set 119# CONFIG_CPU_RM9000 is not set
96# CONFIG_CPU_SB1 is not set 120# CONFIG_CPU_SB1 is not set
121# CONFIG_CPU_CAVIUM_OCTEON is not set
122CONFIG_SYS_SUPPORTS_ZBOOT=y
97CONFIG_SYS_HAS_CPU_MIPS32_R1=y 123CONFIG_SYS_HAS_CPU_MIPS32_R1=y
98CONFIG_CPU_MIPS32=y 124CONFIG_CPU_MIPS32=y
99CONFIG_CPU_MIPSR1=y 125CONFIG_CPU_MIPSR1=y
100CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y 126CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y
101CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y 127CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y
128CONFIG_HARDWARE_WATCHPOINTS=y
102 129
103# 130#
104# Kernel type 131# Kernel type
@@ -108,137 +135,205 @@ CONFIG_32BIT=y
108CONFIG_PAGE_SIZE_4KB=y 135CONFIG_PAGE_SIZE_4KB=y
109# CONFIG_PAGE_SIZE_8KB is not set 136# CONFIG_PAGE_SIZE_8KB is not set
110# CONFIG_PAGE_SIZE_16KB is not set 137# CONFIG_PAGE_SIZE_16KB is not set
138# CONFIG_PAGE_SIZE_32KB is not set
111# CONFIG_PAGE_SIZE_64KB is not set 139# CONFIG_PAGE_SIZE_64KB is not set
112CONFIG_CPU_HAS_PREFETCH=y 140CONFIG_CPU_HAS_PREFETCH=y
113CONFIG_MIPS_MT_DISABLED=y 141CONFIG_MIPS_MT_DISABLED=y
114# CONFIG_MIPS_MT_SMP is not set 142# CONFIG_MIPS_MT_SMP is not set
115# CONFIG_MIPS_MT_SMTC is not set 143# CONFIG_MIPS_MT_SMTC is not set
116# CONFIG_MIPS_VPE_LOADER is not set
117CONFIG_64BIT_PHYS_ADDR=y 144CONFIG_64BIT_PHYS_ADDR=y
145CONFIG_ARCH_PHYS_ADDR_T_64BIT=y
118CONFIG_CPU_HAS_SYNC=y 146CONFIG_CPU_HAS_SYNC=y
119CONFIG_GENERIC_HARDIRQS=y 147CONFIG_GENERIC_HARDIRQS=y
120CONFIG_GENERIC_IRQ_PROBE=y 148CONFIG_GENERIC_IRQ_PROBE=y
121CONFIG_CPU_SUPPORTS_HIGHMEM=y 149CONFIG_CPU_SUPPORTS_HIGHMEM=y
122CONFIG_ARCH_FLATMEM_ENABLE=y 150CONFIG_ARCH_FLATMEM_ENABLE=y
151CONFIG_ARCH_POPULATES_NODE_MAP=y
123CONFIG_SELECT_MEMORY_MODEL=y 152CONFIG_SELECT_MEMORY_MODEL=y
124CONFIG_FLATMEM_MANUAL=y 153CONFIG_FLATMEM_MANUAL=y
125# CONFIG_DISCONTIGMEM_MANUAL is not set 154# CONFIG_DISCONTIGMEM_MANUAL is not set
126# CONFIG_SPARSEMEM_MANUAL is not set 155# CONFIG_SPARSEMEM_MANUAL is not set
127CONFIG_FLATMEM=y 156CONFIG_FLATMEM=y
128CONFIG_FLAT_NODE_MEM_MAP=y 157CONFIG_FLAT_NODE_MEM_MAP=y
129# CONFIG_SPARSEMEM_STATIC is not set 158CONFIG_PAGEFLAGS_EXTENDED=y
130CONFIG_SPLIT_PTLOCK_CPUS=4 159CONFIG_SPLIT_PTLOCK_CPUS=4
131CONFIG_RESOURCES_64BIT=y 160CONFIG_PHYS_ADDR_T_64BIT=y
132CONFIG_ZONE_DMA_FLAG=1 161CONFIG_ZONE_DMA_FLAG=0
162CONFIG_VIRT_TO_BUS=y
163# CONFIG_KSM is not set
164CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
165CONFIG_TICK_ONESHOT=y
166CONFIG_NO_HZ=y
167CONFIG_HIGH_RES_TIMERS=y
168CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
133# CONFIG_HZ_48 is not set 169# CONFIG_HZ_48 is not set
134# CONFIG_HZ_100 is not set 170CONFIG_HZ_100=y
135# CONFIG_HZ_128 is not set 171# CONFIG_HZ_128 is not set
136# CONFIG_HZ_250 is not set 172# CONFIG_HZ_250 is not set
137# CONFIG_HZ_256 is not set 173# CONFIG_HZ_256 is not set
138CONFIG_HZ_1000=y 174# CONFIG_HZ_1000 is not set
139# CONFIG_HZ_1024 is not set 175# CONFIG_HZ_1024 is not set
140CONFIG_SYS_SUPPORTS_ARBIT_HZ=y 176CONFIG_SYS_SUPPORTS_ARBIT_HZ=y
141CONFIG_HZ=1000 177CONFIG_HZ=100
142CONFIG_PREEMPT_NONE=y 178CONFIG_PREEMPT_NONE=y
143# CONFIG_PREEMPT_VOLUNTARY is not set 179# CONFIG_PREEMPT_VOLUNTARY is not set
144# CONFIG_PREEMPT is not set 180# CONFIG_PREEMPT is not set
145# CONFIG_KEXEC is not set 181# CONFIG_KEXEC is not set
182# CONFIG_SECCOMP is not set
146CONFIG_LOCKDEP_SUPPORT=y 183CONFIG_LOCKDEP_SUPPORT=y
147CONFIG_STACKTRACE_SUPPORT=y 184CONFIG_STACKTRACE_SUPPORT=y
148CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 185CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
186CONFIG_CONSTRUCTORS=y
149 187
150# 188#
151# Code maturity level options 189# General setup
152# 190#
153CONFIG_EXPERIMENTAL=y 191CONFIG_EXPERIMENTAL=y
154CONFIG_BROKEN_ON_SMP=y 192CONFIG_BROKEN_ON_SMP=y
155CONFIG_INIT_ENV_ARG_LIMIT=32 193CONFIG_INIT_ENV_ARG_LIMIT=32
156 194CONFIG_LOCALVERSION="-db1550"
157#
158# General setup
159#
160CONFIG_LOCALVERSION=""
161CONFIG_LOCALVERSION_AUTO=y 195CONFIG_LOCALVERSION_AUTO=y
196CONFIG_HAVE_KERNEL_GZIP=y
197CONFIG_HAVE_KERNEL_BZIP2=y
198CONFIG_HAVE_KERNEL_LZMA=y
199CONFIG_HAVE_KERNEL_LZO=y
200# CONFIG_KERNEL_GZIP is not set
201# CONFIG_KERNEL_BZIP2 is not set
202CONFIG_KERNEL_LZMA=y
203# CONFIG_KERNEL_LZO is not set
162CONFIG_SWAP=y 204CONFIG_SWAP=y
163CONFIG_SYSVIPC=y 205CONFIG_SYSVIPC=y
164# CONFIG_IPC_NS is not set
165CONFIG_SYSVIPC_SYSCTL=y 206CONFIG_SYSVIPC_SYSCTL=y
166# CONFIG_POSIX_MQUEUE is not set 207CONFIG_POSIX_MQUEUE=y
208CONFIG_POSIX_MQUEUE_SYSCTL=y
167# CONFIG_BSD_PROCESS_ACCT is not set 209# CONFIG_BSD_PROCESS_ACCT is not set
168# CONFIG_TASKSTATS is not set 210# CONFIG_TASKSTATS is not set
169# CONFIG_UTS_NS is not set
170# CONFIG_AUDIT is not set 211# CONFIG_AUDIT is not set
212
213#
214# RCU Subsystem
215#
216# CONFIG_TREE_RCU is not set
217# CONFIG_TREE_PREEMPT_RCU is not set
218CONFIG_TINY_RCU=y
219# CONFIG_TREE_RCU_TRACE is not set
171# CONFIG_IKCONFIG is not set 220# CONFIG_IKCONFIG is not set
172CONFIG_SYSFS_DEPRECATED=y 221CONFIG_LOG_BUF_SHIFT=14
173CONFIG_RELAY=y 222# CONFIG_GROUP_SCHED is not set
174# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 223# CONFIG_CGROUPS is not set
224# CONFIG_SYSFS_DEPRECATED_V2 is not set
225# CONFIG_RELAY is not set
226# CONFIG_NAMESPACES is not set
227# CONFIG_BLK_DEV_INITRD is not set
228CONFIG_CC_OPTIMIZE_FOR_SIZE=y
175CONFIG_SYSCTL=y 229CONFIG_SYSCTL=y
230CONFIG_ANON_INODES=y
176CONFIG_EMBEDDED=y 231CONFIG_EMBEDDED=y
177CONFIG_SYSCTL_SYSCALL=y 232# CONFIG_SYSCTL_SYSCALL is not set
178CONFIG_KALLSYMS=y 233# CONFIG_KALLSYMS is not set
179# CONFIG_KALLSYMS_EXTRA_PASS is not set
180CONFIG_HOTPLUG=y 234CONFIG_HOTPLUG=y
181CONFIG_PRINTK=y 235CONFIG_PRINTK=y
182CONFIG_BUG=y 236CONFIG_BUG=y
183CONFIG_ELF_CORE=y 237CONFIG_ELF_CORE=y
238# CONFIG_PCSPKR_PLATFORM is not set
184CONFIG_BASE_FULL=y 239CONFIG_BASE_FULL=y
185CONFIG_FUTEX=y 240CONFIG_FUTEX=y
186CONFIG_EPOLL=y 241CONFIG_EPOLL=y
242CONFIG_SIGNALFD=y
243CONFIG_TIMERFD=y
244CONFIG_EVENTFD=y
187CONFIG_SHMEM=y 245CONFIG_SHMEM=y
246CONFIG_AIO=y
247
248#
249# Kernel Performance Events And Counters
250#
251# CONFIG_VM_EVENT_COUNTERS is not set
252CONFIG_PCI_QUIRKS=y
253# CONFIG_COMPAT_BRK is not set
188CONFIG_SLAB=y 254CONFIG_SLAB=y
189CONFIG_VM_EVENT_COUNTERS=y 255# CONFIG_SLUB is not set
190CONFIG_RT_MUTEXES=y
191# CONFIG_TINY_SHMEM is not set
192CONFIG_BASE_SMALL=0
193# CONFIG_SLOB is not set 256# CONFIG_SLOB is not set
257# CONFIG_PROFILING is not set
258CONFIG_HAVE_OPROFILE=y
194 259
195# 260#
196# Loadable module support 261# GCOV-based kernel profiling
197# 262#
263# CONFIG_SLOW_WORK is not set
264CONFIG_HAVE_GENERIC_DMA_COHERENT=y
265CONFIG_SLABINFO=y
266CONFIG_RT_MUTEXES=y
267CONFIG_BASE_SMALL=0
198CONFIG_MODULES=y 268CONFIG_MODULES=y
269# CONFIG_MODULE_FORCE_LOAD is not set
199CONFIG_MODULE_UNLOAD=y 270CONFIG_MODULE_UNLOAD=y
200# CONFIG_MODULE_FORCE_UNLOAD is not set 271# CONFIG_MODULE_FORCE_UNLOAD is not set
201CONFIG_MODVERSIONS=y 272# CONFIG_MODVERSIONS is not set
202CONFIG_MODULE_SRCVERSION_ALL=y 273# CONFIG_MODULE_SRCVERSION_ALL is not set
203CONFIG_KMOD=y
204
205#
206# Block layer
207#
208CONFIG_BLOCK=y 274CONFIG_BLOCK=y
209# CONFIG_LBD is not set 275CONFIG_LBDAF=y
210# CONFIG_BLK_DEV_IO_TRACE is not set 276CONFIG_BLK_DEV_BSG=y
211# CONFIG_LSF is not set 277# CONFIG_BLK_DEV_INTEGRITY is not set
212 278
213# 279#
214# IO Schedulers 280# IO Schedulers
215# 281#
216CONFIG_IOSCHED_NOOP=y 282CONFIG_IOSCHED_NOOP=y
217CONFIG_IOSCHED_AS=y 283# CONFIG_IOSCHED_DEADLINE is not set
218CONFIG_IOSCHED_DEADLINE=y 284# CONFIG_IOSCHED_CFQ is not set
219CONFIG_IOSCHED_CFQ=y
220CONFIG_DEFAULT_AS=y
221# CONFIG_DEFAULT_DEADLINE is not set 285# CONFIG_DEFAULT_DEADLINE is not set
222# CONFIG_DEFAULT_CFQ is not set 286# CONFIG_DEFAULT_CFQ is not set
223# CONFIG_DEFAULT_NOOP is not set 287CONFIG_DEFAULT_NOOP=y
224CONFIG_DEFAULT_IOSCHED="anticipatory" 288CONFIG_DEFAULT_IOSCHED="noop"
289# CONFIG_INLINE_SPIN_TRYLOCK is not set
290# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
291# CONFIG_INLINE_SPIN_LOCK is not set
292# CONFIG_INLINE_SPIN_LOCK_BH is not set
293# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
294# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
295CONFIG_INLINE_SPIN_UNLOCK=y
296# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
297CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
298# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
299# CONFIG_INLINE_READ_TRYLOCK is not set
300# CONFIG_INLINE_READ_LOCK is not set
301# CONFIG_INLINE_READ_LOCK_BH is not set
302# CONFIG_INLINE_READ_LOCK_IRQ is not set
303# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
304CONFIG_INLINE_READ_UNLOCK=y
305# CONFIG_INLINE_READ_UNLOCK_BH is not set
306CONFIG_INLINE_READ_UNLOCK_IRQ=y
307# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
308# CONFIG_INLINE_WRITE_TRYLOCK is not set
309# CONFIG_INLINE_WRITE_LOCK is not set
310# CONFIG_INLINE_WRITE_LOCK_BH is not set
311# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
312# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
313CONFIG_INLINE_WRITE_UNLOCK=y
314# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
315CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
316# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
317# CONFIG_MUTEX_SPIN_ON_OWNER is not set
318CONFIG_FREEZER=y
225 319
226# 320#
227# Bus options (PCI, PCMCIA, EISA, ISA, TC) 321# Bus options (PCI, PCMCIA, EISA, ISA, TC)
228# 322#
229CONFIG_HW_HAS_PCI=y 323CONFIG_HW_HAS_PCI=y
230CONFIG_PCI=y 324CONFIG_PCI=y
325CONFIG_PCI_DOMAINS=y
326# CONFIG_ARCH_SUPPORTS_MSI is not set
327CONFIG_PCI_LEGACY=y
328# CONFIG_PCI_DEBUG is not set
329# CONFIG_PCI_STUB is not set
330# CONFIG_PCI_IOV is not set
231CONFIG_MMU=y 331CONFIG_MMU=y
232 332CONFIG_PCCARD=y
233# 333CONFIG_PCMCIA=y
234# PCCARD (PCMCIA/CardBus) support
235#
236CONFIG_PCCARD=m
237# CONFIG_PCMCIA_DEBUG is not set
238CONFIG_PCMCIA=m
239CONFIG_PCMCIA_LOAD_CIS=y 334CONFIG_PCMCIA_LOAD_CIS=y
240CONFIG_PCMCIA_IOCTL=y 335# CONFIG_PCMCIA_IOCTL is not set
241CONFIG_CARDBUS=y 336# CONFIG_CARDBUS is not set
242 337
243# 338#
244# PC-card bridges 339# PC-card bridges
@@ -246,51 +341,49 @@ CONFIG_CARDBUS=y
246# CONFIG_YENTA is not set 341# CONFIG_YENTA is not set
247# CONFIG_PD6729 is not set 342# CONFIG_PD6729 is not set
248# CONFIG_I82092 is not set 343# CONFIG_I82092 is not set
249CONFIG_PCMCIA_AU1X00=m 344# CONFIG_PCMCIA_AU1X00 is not set
250 345CONFIG_PCMCIA_ALCHEMY_DEVBOARD=y
251#
252# PCI Hotplug Support
253#
254# CONFIG_HOTPLUG_PCI is not set 346# CONFIG_HOTPLUG_PCI is not set
255 347
256# 348#
257# Executable file formats 349# Executable file formats
258# 350#
259CONFIG_BINFMT_ELF=y 351CONFIG_BINFMT_ELF=y
352# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
353# CONFIG_HAVE_AOUT is not set
260# CONFIG_BINFMT_MISC is not set 354# CONFIG_BINFMT_MISC is not set
261CONFIG_TRAD_SIGNALS=y 355CONFIG_TRAD_SIGNALS=y
262 356
263# 357#
264# Power management options 358# Power management options
265# 359#
266# CONFIG_PM is not set 360CONFIG_ARCH_HIBERNATION_POSSIBLE=y
267 361CONFIG_ARCH_SUSPEND_POSSIBLE=y
268# 362CONFIG_PM=y
269# Networking 363# CONFIG_PM_DEBUG is not set
270# 364CONFIG_PM_SLEEP=y
365CONFIG_SUSPEND=y
366CONFIG_SUSPEND_FREEZER=y
367# CONFIG_HIBERNATION is not set
368# CONFIG_APM_EMULATION is not set
369CONFIG_PM_RUNTIME=y
271CONFIG_NET=y 370CONFIG_NET=y
272 371
273# 372#
274# Networking options 373# Networking options
275# 374#
276# CONFIG_NETDEBUG is not set
277CONFIG_PACKET=y 375CONFIG_PACKET=y
278# CONFIG_PACKET_MMAP is not set 376CONFIG_PACKET_MMAP=y
279CONFIG_UNIX=y 377CONFIG_UNIX=y
280CONFIG_XFRM=y 378# CONFIG_NET_KEY is not set
281CONFIG_XFRM_USER=m
282# CONFIG_XFRM_SUB_POLICY is not set
283CONFIG_XFRM_MIGRATE=y
284CONFIG_NET_KEY=y
285CONFIG_NET_KEY_MIGRATE=y
286CONFIG_INET=y 379CONFIG_INET=y
287CONFIG_IP_MULTICAST=y 380CONFIG_IP_MULTICAST=y
288# CONFIG_IP_ADVANCED_ROUTER is not set 381# CONFIG_IP_ADVANCED_ROUTER is not set
289CONFIG_IP_FIB_HASH=y 382CONFIG_IP_FIB_HASH=y
290CONFIG_IP_PNP=y 383CONFIG_IP_PNP=y
291# CONFIG_IP_PNP_DHCP is not set 384CONFIG_IP_PNP_DHCP=y
292CONFIG_IP_PNP_BOOTP=y 385CONFIG_IP_PNP_BOOTP=y
293# CONFIG_IP_PNP_RARP is not set 386CONFIG_IP_PNP_RARP=y
294# CONFIG_NET_IPIP is not set 387# CONFIG_NET_IPIP is not set
295# CONFIG_NET_IPGRE is not set 388# CONFIG_NET_IPGRE is not set
296# CONFIG_IP_MROUTE is not set 389# CONFIG_IP_MROUTE is not set
@@ -301,110 +394,25 @@ CONFIG_IP_PNP_BOOTP=y
301# CONFIG_INET_IPCOMP is not set 394# CONFIG_INET_IPCOMP is not set
302# CONFIG_INET_XFRM_TUNNEL is not set 395# CONFIG_INET_XFRM_TUNNEL is not set
303# CONFIG_INET_TUNNEL is not set 396# CONFIG_INET_TUNNEL is not set
304CONFIG_INET_XFRM_MODE_TRANSPORT=m 397# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
305CONFIG_INET_XFRM_MODE_TUNNEL=m 398# CONFIG_INET_XFRM_MODE_TUNNEL is not set
306CONFIG_INET_XFRM_MODE_BEET=m 399# CONFIG_INET_XFRM_MODE_BEET is not set
307CONFIG_INET_DIAG=y 400CONFIG_INET_LRO=y
308CONFIG_INET_TCP_DIAG=y 401# CONFIG_INET_DIAG is not set
309# CONFIG_TCP_CONG_ADVANCED is not set 402# CONFIG_TCP_CONG_ADVANCED is not set
310CONFIG_TCP_CONG_CUBIC=y 403CONFIG_TCP_CONG_CUBIC=y
311CONFIG_DEFAULT_TCP_CONG="cubic" 404CONFIG_DEFAULT_TCP_CONG="cubic"
312CONFIG_TCP_MD5SIG=y 405# CONFIG_TCP_MD5SIG is not set
313
314#
315# IP: Virtual Server Configuration
316#
317# CONFIG_IP_VS is not set
318# CONFIG_IPV6 is not set 406# CONFIG_IPV6 is not set
319# CONFIG_INET6_XFRM_TUNNEL is not set 407# CONFIG_NETWORK_SECMARK is not set
320# CONFIG_INET6_TUNNEL is not set 408# CONFIG_NETFILTER is not set
321CONFIG_NETWORK_SECMARK=y
322CONFIG_NETFILTER=y
323# CONFIG_NETFILTER_DEBUG is not set
324
325#
326# Core Netfilter Configuration
327#
328CONFIG_NETFILTER_NETLINK=m
329CONFIG_NETFILTER_NETLINK_QUEUE=m
330CONFIG_NETFILTER_NETLINK_LOG=m
331CONFIG_NF_CONNTRACK_ENABLED=m
332CONFIG_NF_CONNTRACK_SUPPORT=y
333# CONFIG_IP_NF_CONNTRACK_SUPPORT is not set
334CONFIG_NF_CONNTRACK=m
335CONFIG_NF_CT_ACCT=y
336CONFIG_NF_CONNTRACK_MARK=y
337CONFIG_NF_CONNTRACK_SECMARK=y
338CONFIG_NF_CONNTRACK_EVENTS=y
339CONFIG_NF_CT_PROTO_GRE=m
340CONFIG_NF_CT_PROTO_SCTP=m
341CONFIG_NF_CONNTRACK_AMANDA=m
342CONFIG_NF_CONNTRACK_FTP=m
343CONFIG_NF_CONNTRACK_H323=m
344CONFIG_NF_CONNTRACK_IRC=m
345# CONFIG_NF_CONNTRACK_NETBIOS_NS is not set
346CONFIG_NF_CONNTRACK_PPTP=m
347CONFIG_NF_CONNTRACK_SANE=m
348CONFIG_NF_CONNTRACK_SIP=m
349CONFIG_NF_CONNTRACK_TFTP=m
350CONFIG_NF_CT_NETLINK=m
351CONFIG_NETFILTER_XTABLES=m
352CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
353CONFIG_NETFILTER_XT_TARGET_MARK=m
354CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
355CONFIG_NETFILTER_XT_TARGET_NFLOG=m
356CONFIG_NETFILTER_XT_TARGET_SECMARK=m
357CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m
358CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
359CONFIG_NETFILTER_XT_MATCH_COMMENT=m
360CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
361CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
362CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
363CONFIG_NETFILTER_XT_MATCH_DCCP=m
364CONFIG_NETFILTER_XT_MATCH_DSCP=m
365CONFIG_NETFILTER_XT_MATCH_ESP=m
366CONFIG_NETFILTER_XT_MATCH_HELPER=m
367CONFIG_NETFILTER_XT_MATCH_LENGTH=m
368CONFIG_NETFILTER_XT_MATCH_LIMIT=m
369CONFIG_NETFILTER_XT_MATCH_MAC=m
370CONFIG_NETFILTER_XT_MATCH_MARK=m
371CONFIG_NETFILTER_XT_MATCH_POLICY=m
372CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
373CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
374CONFIG_NETFILTER_XT_MATCH_QUOTA=m
375CONFIG_NETFILTER_XT_MATCH_REALM=m
376CONFIG_NETFILTER_XT_MATCH_SCTP=m
377CONFIG_NETFILTER_XT_MATCH_STATE=m
378CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
379CONFIG_NETFILTER_XT_MATCH_STRING=m
380CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
381CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
382
383#
384# IP: Netfilter Configuration
385#
386CONFIG_NF_CONNTRACK_IPV4=m
387CONFIG_NF_CONNTRACK_PROC_COMPAT=y
388# CONFIG_IP_NF_QUEUE is not set
389# CONFIG_IP_NF_IPTABLES is not set
390# CONFIG_IP_NF_ARPTABLES is not set
391
392#
393# DCCP Configuration (EXPERIMENTAL)
394#
395# CONFIG_IP_DCCP is not set 409# CONFIG_IP_DCCP is not set
396
397#
398# SCTP Configuration (EXPERIMENTAL)
399#
400# CONFIG_IP_SCTP is not set 410# CONFIG_IP_SCTP is not set
401 411# CONFIG_RDS is not set
402#
403# TIPC Configuration (EXPERIMENTAL)
404#
405# CONFIG_TIPC is not set 412# CONFIG_TIPC is not set
406# CONFIG_ATM is not set 413# CONFIG_ATM is not set
407# CONFIG_BRIDGE is not set 414# CONFIG_BRIDGE is not set
415# CONFIG_NET_DSA is not set
408# CONFIG_VLAN_8021Q is not set 416# CONFIG_VLAN_8021Q is not set
409# CONFIG_DECNET is not set 417# CONFIG_DECNET is not set
410# CONFIG_LLC2 is not set 418# CONFIG_LLC2 is not set
@@ -414,27 +422,24 @@ CONFIG_NF_CONNTRACK_PROC_COMPAT=y
414# CONFIG_LAPB is not set 422# CONFIG_LAPB is not set
415# CONFIG_ECONET is not set 423# CONFIG_ECONET is not set
416# CONFIG_WAN_ROUTER is not set 424# CONFIG_WAN_ROUTER is not set
417 425# CONFIG_PHONET is not set
418# 426# CONFIG_IEEE802154 is not set
419# QoS and/or fair queueing
420#
421# CONFIG_NET_SCHED is not set 427# CONFIG_NET_SCHED is not set
422CONFIG_NET_CLS_ROUTE=y 428# CONFIG_DCB is not set
423 429
424# 430#
425# Network testing 431# Network testing
426# 432#
427# CONFIG_NET_PKTGEN is not set 433# CONFIG_NET_PKTGEN is not set
428# CONFIG_HAMRADIO is not set 434# CONFIG_HAMRADIO is not set
435# CONFIG_CAN is not set
429# CONFIG_IRDA is not set 436# CONFIG_IRDA is not set
430# CONFIG_BT is not set 437# CONFIG_BT is not set
431CONFIG_IEEE80211=m 438# CONFIG_AF_RXRPC is not set
432# CONFIG_IEEE80211_DEBUG is not set 439# CONFIG_WIRELESS is not set
433CONFIG_IEEE80211_CRYPT_WEP=m 440# CONFIG_WIMAX is not set
434CONFIG_IEEE80211_CRYPT_CCMP=m 441# CONFIG_RFKILL is not set
435CONFIG_IEEE80211_SOFTMAC=m 442# CONFIG_NET_9P is not set
436# CONFIG_IEEE80211_SOFTMAC_DEBUG is not set
437CONFIG_WIRELESS_EXT=y
438 443
439# 444#
440# Device Drivers 445# Device Drivers
@@ -443,25 +448,25 @@ CONFIG_WIRELESS_EXT=y
443# 448#
444# Generic Driver Options 449# Generic Driver Options
445# 450#
451CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
452# CONFIG_DEVTMPFS is not set
446CONFIG_STANDALONE=y 453CONFIG_STANDALONE=y
447CONFIG_PREVENT_FIRMWARE_BUILD=y 454CONFIG_PREVENT_FIRMWARE_BUILD=y
448CONFIG_FW_LOADER=m 455CONFIG_FW_LOADER=y
456CONFIG_FIRMWARE_IN_KERNEL=y
457CONFIG_EXTRA_FIRMWARE=""
458# CONFIG_DEBUG_DRIVER is not set
459# CONFIG_DEBUG_DEVRES is not set
449# CONFIG_SYS_HYPERVISOR is not set 460# CONFIG_SYS_HYPERVISOR is not set
450 461# CONFIG_CONNECTOR is not set
451#
452# Connector - unified userspace <-> kernelspace linker
453#
454CONFIG_CONNECTOR=m
455
456#
457# Memory Technology Devices (MTD)
458#
459CONFIG_MTD=y 462CONFIG_MTD=y
460# CONFIG_MTD_DEBUG is not set 463# CONFIG_MTD_DEBUG is not set
464# CONFIG_MTD_TESTS is not set
461# CONFIG_MTD_CONCAT is not set 465# CONFIG_MTD_CONCAT is not set
462CONFIG_MTD_PARTITIONS=y 466CONFIG_MTD_PARTITIONS=y
463# CONFIG_MTD_REDBOOT_PARTS is not set 467# CONFIG_MTD_REDBOOT_PARTS is not set
464# CONFIG_MTD_CMDLINE_PARTS is not set 468# CONFIG_MTD_CMDLINE_PARTS is not set
469# CONFIG_MTD_AR7_PARTS is not set
465 470
466# 471#
467# User Modules And Translation Layers 472# User Modules And Translation Layers
@@ -474,6 +479,7 @@ CONFIG_MTD_BLOCK=y
474# CONFIG_INFTL is not set 479# CONFIG_INFTL is not set
475# CONFIG_RFD_FTL is not set 480# CONFIG_RFD_FTL is not set
476# CONFIG_SSFDC is not set 481# CONFIG_SSFDC is not set
482# CONFIG_MTD_OOPS is not set
477 483
478# 484#
479# RAM/ROM/Flash chip drivers 485# RAM/ROM/Flash chip drivers
@@ -499,20 +505,23 @@ CONFIG_MTD_CFI_UTIL=y
499# CONFIG_MTD_RAM is not set 505# CONFIG_MTD_RAM is not set
500# CONFIG_MTD_ROM is not set 506# CONFIG_MTD_ROM is not set
501# CONFIG_MTD_ABSENT is not set 507# CONFIG_MTD_ABSENT is not set
502# CONFIG_MTD_OBSOLETE_CHIPS is not set
503 508
504# 509#
505# Mapping drivers for chip access 510# Mapping drivers for chip access
506# 511#
507# CONFIG_MTD_COMPLEX_MAPPINGS is not set 512# CONFIG_MTD_COMPLEX_MAPPINGS is not set
508# CONFIG_MTD_PHYSMAP is not set 513CONFIG_MTD_PHYSMAP=y
509CONFIG_MTD_ALCHEMY=y 514# CONFIG_MTD_PHYSMAP_COMPAT is not set
515# CONFIG_MTD_INTEL_VR_NOR is not set
510# CONFIG_MTD_PLATRAM is not set 516# CONFIG_MTD_PLATRAM is not set
511 517
512# 518#
513# Self-contained MTD device drivers 519# Self-contained MTD device drivers
514# 520#
515# CONFIG_MTD_PMC551 is not set 521# CONFIG_MTD_PMC551 is not set
522# CONFIG_MTD_DATAFLASH is not set
523# CONFIG_MTD_M25P80 is not set
524# CONFIG_MTD_SST25L is not set
516# CONFIG_MTD_SLRAM is not set 525# CONFIG_MTD_SLRAM is not set
517# CONFIG_MTD_PHRAM is not set 526# CONFIG_MTD_PHRAM is not set
518# CONFIG_MTD_MTDRAM is not set 527# CONFIG_MTD_MTDRAM is not set
@@ -524,105 +533,96 @@ CONFIG_MTD_ALCHEMY=y
524# CONFIG_MTD_DOC2000 is not set 533# CONFIG_MTD_DOC2000 is not set
525# CONFIG_MTD_DOC2001 is not set 534# CONFIG_MTD_DOC2001 is not set
526# CONFIG_MTD_DOC2001PLUS is not set 535# CONFIG_MTD_DOC2001PLUS is not set
527 536CONFIG_MTD_NAND=y
528#
529# NAND Flash Device Drivers
530#
531CONFIG_MTD_NAND=m
532# CONFIG_MTD_NAND_VERIFY_WRITE is not set 537# CONFIG_MTD_NAND_VERIFY_WRITE is not set
533# CONFIG_MTD_NAND_ECC_SMC is not set 538# CONFIG_MTD_NAND_ECC_SMC is not set
534CONFIG_MTD_NAND_IDS=m 539# CONFIG_MTD_NAND_MUSEUM_IDS is not set
535CONFIG_MTD_NAND_AU1550=m 540CONFIG_MTD_NAND_IDS=y
541CONFIG_MTD_NAND_AU1550=y
536# CONFIG_MTD_NAND_DISKONCHIP is not set 542# CONFIG_MTD_NAND_DISKONCHIP is not set
537# CONFIG_MTD_NAND_CAFE is not set 543# CONFIG_MTD_NAND_CAFE is not set
538# CONFIG_MTD_NAND_NANDSIM is not set 544# CONFIG_MTD_NAND_NANDSIM is not set
539 545# CONFIG_MTD_NAND_PLATFORM is not set
540# 546# CONFIG_MTD_ALAUDA is not set
541# OneNAND Flash Device Drivers
542#
543# CONFIG_MTD_ONENAND is not set 547# CONFIG_MTD_ONENAND is not set
544 548
545# 549#
546# Parallel port support 550# LPDDR flash memory drivers
547# 551#
548# CONFIG_PARPORT is not set 552# CONFIG_MTD_LPDDR is not set
549 553
550# 554#
551# Plug and Play support 555# UBI - Unsorted block images
552#
553# CONFIG_PNPACPI is not set
554
555#
556# Block devices
557# 556#
557# CONFIG_MTD_UBI is not set
558# CONFIG_PARPORT is not set
559CONFIG_BLK_DEV=y
558# CONFIG_BLK_CPQ_DA is not set 560# CONFIG_BLK_CPQ_DA is not set
559# CONFIG_BLK_CPQ_CISS_DA is not set 561# CONFIG_BLK_CPQ_CISS_DA is not set
560# CONFIG_BLK_DEV_DAC960 is not set 562# CONFIG_BLK_DEV_DAC960 is not set
561# CONFIG_BLK_DEV_UMEM is not set 563# CONFIG_BLK_DEV_UMEM is not set
562# CONFIG_BLK_DEV_COW_COMMON is not set 564# CONFIG_BLK_DEV_COW_COMMON is not set
563CONFIG_BLK_DEV_LOOP=y 565# CONFIG_BLK_DEV_LOOP is not set
564# CONFIG_BLK_DEV_CRYPTOLOOP is not set
565# CONFIG_BLK_DEV_NBD is not set
566# CONFIG_BLK_DEV_SX8 is not set
567# CONFIG_BLK_DEV_RAM is not set
568# CONFIG_BLK_DEV_INITRD is not set
569CONFIG_CDROM_PKTCDVD=m
570CONFIG_CDROM_PKTCDVD_BUFFERS=8
571# CONFIG_CDROM_PKTCDVD_WCACHE is not set
572CONFIG_ATA_OVER_ETH=m
573
574#
575# Misc devices
576#
577CONFIG_SGI_IOC4=m
578# CONFIG_TIFM_CORE is not set
579 566
580# 567#
581# ATA/ATAPI/MFM/RLL support 568# DRBD disabled because PROC_FS, INET or CONNECTOR not selected
582# 569#
570# CONFIG_BLK_DEV_NBD is not set
571# CONFIG_BLK_DEV_SX8 is not set
572CONFIG_BLK_DEV_UB=y
573# CONFIG_BLK_DEV_RAM is not set
574# CONFIG_CDROM_PKTCDVD is not set
575# CONFIG_ATA_OVER_ETH is not set
576# CONFIG_BLK_DEV_HD is not set
577# CONFIG_MISC_DEVICES is not set
578CONFIG_HAVE_IDE=y
583CONFIG_IDE=y 579CONFIG_IDE=y
584CONFIG_IDE_MAX_HWIFS=4
585CONFIG_BLK_DEV_IDE=y
586 580
587# 581#
588# Please see Documentation/ide.txt for help/info on IDE drives 582# Please see Documentation/ide/ide.txt for help/info on IDE drives
589# 583#
584CONFIG_IDE_XFER_MODE=y
585CONFIG_IDE_ATAPI=y
590# CONFIG_BLK_DEV_IDE_SATA is not set 586# CONFIG_BLK_DEV_IDE_SATA is not set
591CONFIG_BLK_DEV_IDEDISK=y 587CONFIG_IDE_GD=y
592# CONFIG_IDEDISK_MULTI_MODE is not set 588CONFIG_IDE_GD_ATA=y
593CONFIG_BLK_DEV_IDECS=m 589# CONFIG_IDE_GD_ATAPI is not set
594# CONFIG_BLK_DEV_DELKIN is not set 590CONFIG_BLK_DEV_IDECS=y
595# CONFIG_BLK_DEV_IDECD is not set 591CONFIG_BLK_DEV_IDECD=y
592# CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS is not set
596# CONFIG_BLK_DEV_IDETAPE is not set 593# CONFIG_BLK_DEV_IDETAPE is not set
597# CONFIG_BLK_DEV_IDEFLOPPY is not set 594CONFIG_IDE_TASK_IOCTL=y
598# CONFIG_IDE_TASK_IOCTL is not set 595CONFIG_IDE_PROC_FS=y
599 596
600# 597#
601# IDE chipset support/bugfixes 598# IDE chipset support/bugfixes
602# 599#
603CONFIG_IDE_GENERIC=y 600# CONFIG_IDE_GENERIC is not set
601# CONFIG_BLK_DEV_PLATFORM is not set
602CONFIG_BLK_DEV_IDEDMA_SFF=y
603
604#
605# PCI IDE chipsets support
606#
604CONFIG_BLK_DEV_IDEPCI=y 607CONFIG_BLK_DEV_IDEPCI=y
605# CONFIG_IDEPCI_SHARE_IRQ is not set 608# CONFIG_IDEPCI_PCIBUS_ORDER is not set
606# CONFIG_BLK_DEV_OFFBOARD is not set 609# CONFIG_BLK_DEV_OFFBOARD is not set
607CONFIG_BLK_DEV_GENERIC=y 610# CONFIG_BLK_DEV_GENERIC is not set
608# CONFIG_BLK_DEV_OPTI621 is not set 611# CONFIG_BLK_DEV_OPTI621 is not set
609CONFIG_BLK_DEV_IDEDMA_PCI=y 612CONFIG_BLK_DEV_IDEDMA_PCI=y
610# CONFIG_BLK_DEV_IDEDMA_FORCED is not set
611# CONFIG_IDEDMA_PCI_AUTO is not set
612# CONFIG_BLK_DEV_AEC62XX is not set 613# CONFIG_BLK_DEV_AEC62XX is not set
613# CONFIG_BLK_DEV_ALI15X3 is not set 614# CONFIG_BLK_DEV_ALI15X3 is not set
614# CONFIG_BLK_DEV_AMD74XX is not set 615# CONFIG_BLK_DEV_AMD74XX is not set
615# CONFIG_BLK_DEV_CMD64X is not set 616# CONFIG_BLK_DEV_CMD64X is not set
616# CONFIG_BLK_DEV_TRIFLEX is not set 617# CONFIG_BLK_DEV_TRIFLEX is not set
617# CONFIG_BLK_DEV_CY82C693 is not set
618# CONFIG_BLK_DEV_CS5520 is not set 618# CONFIG_BLK_DEV_CS5520 is not set
619# CONFIG_BLK_DEV_CS5530 is not set 619# CONFIG_BLK_DEV_CS5530 is not set
620# CONFIG_BLK_DEV_HPT34X is not set 620CONFIG_BLK_DEV_HPT366=y
621# CONFIG_BLK_DEV_HPT366 is not set
622# CONFIG_BLK_DEV_JMICRON is not set 621# CONFIG_BLK_DEV_JMICRON is not set
623# CONFIG_BLK_DEV_SC1200 is not set 622# CONFIG_BLK_DEV_SC1200 is not set
624# CONFIG_BLK_DEV_PIIX is not set 623# CONFIG_BLK_DEV_PIIX is not set
625CONFIG_BLK_DEV_IT8213=m 624# CONFIG_BLK_DEV_IT8172 is not set
625# CONFIG_BLK_DEV_IT8213 is not set
626# CONFIG_BLK_DEV_IT821X is not set 626# CONFIG_BLK_DEV_IT821X is not set
627# CONFIG_BLK_DEV_NS87415 is not set 627# CONFIG_BLK_DEV_NS87415 is not set
628# CONFIG_BLK_DEV_PDC202XX_OLD is not set 628# CONFIG_BLK_DEV_PDC202XX_OLD is not set
@@ -632,82 +632,65 @@ CONFIG_BLK_DEV_IT8213=m
632# CONFIG_BLK_DEV_SLC90E66 is not set 632# CONFIG_BLK_DEV_SLC90E66 is not set
633# CONFIG_BLK_DEV_TRM290 is not set 633# CONFIG_BLK_DEV_TRM290 is not set
634# CONFIG_BLK_DEV_VIA82CXXX is not set 634# CONFIG_BLK_DEV_VIA82CXXX is not set
635CONFIG_BLK_DEV_TC86C001=m 635# CONFIG_BLK_DEV_TC86C001 is not set
636# CONFIG_IDE_ARM is not set
637CONFIG_BLK_DEV_IDEDMA=y 636CONFIG_BLK_DEV_IDEDMA=y
638# CONFIG_IDEDMA_IVB is not set
639# CONFIG_IDEDMA_AUTO is not set
640# CONFIG_BLK_DEV_HD is not set
641 637
642# 638#
643# SCSI device support 639# SCSI device support
644# 640#
645CONFIG_RAID_ATTRS=m 641# CONFIG_RAID_ATTRS is not set
646# CONFIG_SCSI is not set 642# CONFIG_SCSI is not set
643# CONFIG_SCSI_DMA is not set
647# CONFIG_SCSI_NETLINK is not set 644# CONFIG_SCSI_NETLINK is not set
648
649#
650# Serial ATA (prod) and Parallel ATA (experimental) drivers
651#
652# CONFIG_ATA is not set 645# CONFIG_ATA is not set
653
654#
655# Multi-device support (RAID and LVM)
656#
657# CONFIG_MD is not set 646# CONFIG_MD is not set
658
659#
660# Fusion MPT device support
661#
662# CONFIG_FUSION is not set 647# CONFIG_FUSION is not set
663 648
664# 649#
665# IEEE 1394 (FireWire) support 650# IEEE 1394 (FireWire) support
666# 651#
667# CONFIG_IEEE1394 is not set
668 652
669# 653#
670# I2O device support 654# You can enable one or both FireWire driver stacks.
671# 655#
672# CONFIG_I2O is not set
673 656
674# 657#
675# Network device support 658# The newer stack is recommended.
676# 659#
660# CONFIG_FIREWIRE is not set
661# CONFIG_IEEE1394 is not set
662# CONFIG_I2O is not set
677CONFIG_NETDEVICES=y 663CONFIG_NETDEVICES=y
678# CONFIG_DUMMY is not set 664# CONFIG_DUMMY is not set
679# CONFIG_BONDING is not set 665# CONFIG_BONDING is not set
666# CONFIG_MACVLAN is not set
680# CONFIG_EQUALIZER is not set 667# CONFIG_EQUALIZER is not set
681# CONFIG_TUN is not set 668# CONFIG_TUN is not set
682 669# CONFIG_VETH is not set
683#
684# ARCnet devices
685#
686# CONFIG_ARCNET is not set 670# CONFIG_ARCNET is not set
687
688#
689# PHY device support
690#
691CONFIG_PHYLIB=y 671CONFIG_PHYLIB=y
692 672
693# 673#
694# MII PHY device drivers 674# MII PHY device drivers
695# 675#
696CONFIG_MARVELL_PHY=m 676CONFIG_MARVELL_PHY=y
697CONFIG_DAVICOM_PHY=m 677CONFIG_DAVICOM_PHY=y
698CONFIG_QSEMI_PHY=m 678CONFIG_QSEMI_PHY=y
699CONFIG_LXT_PHY=m 679CONFIG_LXT_PHY=y
700CONFIG_CICADA_PHY=m 680CONFIG_CICADA_PHY=y
701CONFIG_VITESSE_PHY=m 681CONFIG_VITESSE_PHY=y
702CONFIG_SMSC_PHY=m 682CONFIG_SMSC_PHY=y
703# CONFIG_BROADCOM_PHY is not set 683CONFIG_BROADCOM_PHY=y
684CONFIG_ICPLUS_PHY=y
685CONFIG_REALTEK_PHY=y
686CONFIG_NATIONAL_PHY=y
687CONFIG_STE10XP=y
688CONFIG_LSI_ET1011C_PHY=y
704# CONFIG_FIXED_PHY is not set 689# CONFIG_FIXED_PHY is not set
705 690# CONFIG_MDIO_BITBANG is not set
706#
707# Ethernet (10 or 100Mbit)
708#
709CONFIG_NET_ETHERNET=y 691CONFIG_NET_ETHERNET=y
710CONFIG_MII=m 692CONFIG_MII=y
693# CONFIG_AX88796 is not set
711CONFIG_MIPS_AU1X00_ENET=y 694CONFIG_MIPS_AU1X00_ENET=y
712# CONFIG_HAPPYMEAL is not set 695# CONFIG_HAPPYMEAL is not set
713# CONFIG_SUNGEM is not set 696# CONFIG_SUNGEM is not set
@@ -715,96 +698,53 @@ CONFIG_MIPS_AU1X00_ENET=y
715# CONFIG_NET_VENDOR_3COM is not set 698# CONFIG_NET_VENDOR_3COM is not set
716# CONFIG_SMC91X is not set 699# CONFIG_SMC91X is not set
717# CONFIG_DM9000 is not set 700# CONFIG_DM9000 is not set
718 701# CONFIG_ENC28J60 is not set
719# 702# CONFIG_ETHOC is not set
720# Tulip family network device support 703# CONFIG_SMSC911X is not set
721# 704# CONFIG_DNET is not set
722# CONFIG_NET_TULIP is not set 705# CONFIG_NET_TULIP is not set
723# CONFIG_HP100 is not set 706# CONFIG_HP100 is not set
707# CONFIG_IBM_NEW_EMAC_ZMII is not set
708# CONFIG_IBM_NEW_EMAC_RGMII is not set
709# CONFIG_IBM_NEW_EMAC_TAH is not set
710# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
711# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
712# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
713# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
724# CONFIG_NET_PCI is not set 714# CONFIG_NET_PCI is not set
725 715# CONFIG_B44 is not set
726# 716# CONFIG_KS8842 is not set
727# Ethernet (1000 Mbit) 717# CONFIG_KS8851 is not set
728# 718# CONFIG_KS8851_MLL is not set
729# CONFIG_ACENIC is not set 719# CONFIG_ATL2 is not set
730# CONFIG_DL2K is not set 720# CONFIG_NETDEV_1000 is not set
731# CONFIG_E1000 is not set 721# CONFIG_NETDEV_10000 is not set
732# CONFIG_NS83820 is not set
733# CONFIG_HAMACHI is not set
734# CONFIG_YELLOWFIN is not set
735# CONFIG_R8169 is not set
736# CONFIG_SIS190 is not set
737# CONFIG_SKGE is not set
738# CONFIG_SKY2 is not set
739# CONFIG_SK98LIN is not set
740# CONFIG_TIGON3 is not set
741# CONFIG_BNX2 is not set
742CONFIG_QLA3XXX=m
743# CONFIG_ATL1 is not set
744
745#
746# Ethernet (10000 Mbit)
747#
748# CONFIG_CHELSIO_T1 is not set
749CONFIG_CHELSIO_T3=m
750# CONFIG_IXGB is not set
751# CONFIG_S2IO is not set
752# CONFIG_MYRI10GE is not set
753CONFIG_NETXEN_NIC=m
754
755#
756# Token Ring devices
757#
758# CONFIG_TR is not set 722# CONFIG_TR is not set
723# CONFIG_WLAN is not set
759 724
760# 725#
761# Wireless LAN (non-hamradio) 726# Enable WiMAX (Networking options) to see the WiMAX drivers
762#
763# CONFIG_NET_RADIO is not set
764
765#
766# PCMCIA network device support
767# 727#
768CONFIG_NET_PCMCIA=y
769CONFIG_PCMCIA_3C589=m
770CONFIG_PCMCIA_3C574=m
771CONFIG_PCMCIA_FMVJ18X=m
772CONFIG_PCMCIA_PCNET=m
773CONFIG_PCMCIA_NMCLAN=m
774CONFIG_PCMCIA_SMC91C92=m
775CONFIG_PCMCIA_XIRC2PS=m
776CONFIG_PCMCIA_AXNET=m
777 728
778# 729#
779# Wan interfaces 730# USB Network Adapters
780# 731#
732# CONFIG_USB_CATC is not set
733# CONFIG_USB_KAWETH is not set
734# CONFIG_USB_PEGASUS is not set
735# CONFIG_USB_RTL8150 is not set
736# CONFIG_USB_USBNET is not set
737# CONFIG_NET_PCMCIA is not set
781# CONFIG_WAN is not set 738# CONFIG_WAN is not set
782# CONFIG_FDDI is not set 739# CONFIG_FDDI is not set
783# CONFIG_HIPPI is not set 740# CONFIG_HIPPI is not set
784CONFIG_PPP=m 741# CONFIG_PPP is not set
785CONFIG_PPP_MULTILINK=y
786# CONFIG_PPP_FILTER is not set
787CONFIG_PPP_ASYNC=m
788# CONFIG_PPP_SYNC_TTY is not set
789CONFIG_PPP_DEFLATE=m
790# CONFIG_PPP_BSDCOMP is not set
791CONFIG_PPP_MPPE=m
792CONFIG_PPPOE=m
793# CONFIG_SLIP is not set 742# CONFIG_SLIP is not set
794CONFIG_SLHC=m
795# CONFIG_SHAPER is not set
796# CONFIG_NETCONSOLE is not set 743# CONFIG_NETCONSOLE is not set
797# CONFIG_NETPOLL is not set 744# CONFIG_NETPOLL is not set
798# CONFIG_NET_POLL_CONTROLLER is not set 745# CONFIG_NET_POLL_CONTROLLER is not set
799 746# CONFIG_VMXNET3 is not set
800#
801# ISDN subsystem
802#
803# CONFIG_ISDN is not set 747# CONFIG_ISDN is not set
804
805#
806# Telephony Support
807#
808# CONFIG_PHONE is not set 748# CONFIG_PHONE is not set
809 749
810# 750#
@@ -812,16 +752,14 @@ CONFIG_SLHC=m
812# 752#
813CONFIG_INPUT=y 753CONFIG_INPUT=y
814# CONFIG_INPUT_FF_MEMLESS is not set 754# CONFIG_INPUT_FF_MEMLESS is not set
755# CONFIG_INPUT_POLLDEV is not set
756# CONFIG_INPUT_SPARSEKMAP is not set
815 757
816# 758#
817# Userland interfaces 759# Userland interfaces
818# 760#
819CONFIG_INPUT_MOUSEDEV=y 761# CONFIG_INPUT_MOUSEDEV is not set
820CONFIG_INPUT_MOUSEDEV_PSAUX=y
821CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
822CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
823# CONFIG_INPUT_JOYDEV is not set 762# CONFIG_INPUT_JOYDEV is not set
824# CONFIG_INPUT_TSDEV is not set
825CONFIG_INPUT_EVDEV=y 763CONFIG_INPUT_EVDEV=y
826# CONFIG_INPUT_EVBUG is not set 764# CONFIG_INPUT_EVBUG is not set
827 765
@@ -831,26 +769,27 @@ CONFIG_INPUT_EVDEV=y
831# CONFIG_INPUT_KEYBOARD is not set 769# CONFIG_INPUT_KEYBOARD is not set
832# CONFIG_INPUT_MOUSE is not set 770# CONFIG_INPUT_MOUSE is not set
833# CONFIG_INPUT_JOYSTICK is not set 771# CONFIG_INPUT_JOYSTICK is not set
772# CONFIG_INPUT_TABLET is not set
834# CONFIG_INPUT_TOUCHSCREEN is not set 773# CONFIG_INPUT_TOUCHSCREEN is not set
835# CONFIG_INPUT_MISC is not set 774# CONFIG_INPUT_MISC is not set
836 775
837# 776#
838# Hardware I/O ports 777# Hardware I/O ports
839# 778#
840CONFIG_SERIO=y 779# CONFIG_SERIO is not set
841# CONFIG_SERIO_I8042 is not set
842CONFIG_SERIO_SERPORT=y
843# CONFIG_SERIO_PCIPS2 is not set
844# CONFIG_SERIO_LIBPS2 is not set
845CONFIG_SERIO_RAW=m
846# CONFIG_GAMEPORT is not set 780# CONFIG_GAMEPORT is not set
847 781
848# 782#
849# Character devices 783# Character devices
850# 784#
851# CONFIG_VT is not set 785CONFIG_VT=y
786CONFIG_CONSOLE_TRANSLATIONS=y
787CONFIG_VT_CONSOLE=y
788CONFIG_HW_CONSOLE=y
789# CONFIG_VT_HW_CONSOLE_BINDING is not set
790CONFIG_DEVKMEM=y
852# CONFIG_SERIAL_NONSTANDARD is not set 791# CONFIG_SERIAL_NONSTANDARD is not set
853# CONFIG_AU1X00_GPIO is not set 792# CONFIG_NOZOMI is not set
854 793
855# 794#
856# Serial drivers 795# Serial drivers
@@ -867,199 +806,420 @@ CONFIG_SERIAL_8250_AU1X00=y
867# 806#
868# Non-8250 serial port support 807# Non-8250 serial port support
869# 808#
809# CONFIG_SERIAL_MAX3100 is not set
870CONFIG_SERIAL_CORE=y 810CONFIG_SERIAL_CORE=y
871CONFIG_SERIAL_CORE_CONSOLE=y 811CONFIG_SERIAL_CORE_CONSOLE=y
872# CONFIG_SERIAL_JSM is not set 812# CONFIG_SERIAL_JSM is not set
873CONFIG_UNIX98_PTYS=y 813CONFIG_UNIX98_PTYS=y
874CONFIG_LEGACY_PTYS=y 814# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
875CONFIG_LEGACY_PTY_COUNT=256 815# CONFIG_LEGACY_PTYS is not set
876
877#
878# IPMI
879#
880# CONFIG_IPMI_HANDLER is not set 816# CONFIG_IPMI_HANDLER is not set
881
882#
883# Watchdog Cards
884#
885# CONFIG_WATCHDOG is not set
886# CONFIG_HW_RANDOM is not set 817# CONFIG_HW_RANDOM is not set
887# CONFIG_RTC is not set
888# CONFIG_GEN_RTC is not set
889# CONFIG_DTLK is not set
890# CONFIG_R3964 is not set 818# CONFIG_R3964 is not set
891# CONFIG_APPLICOM is not set 819# CONFIG_APPLICOM is not set
892# CONFIG_DRM is not set
893 820
894# 821#
895# PCMCIA character devices 822# PCMCIA character devices
896# 823#
897CONFIG_SYNCLINK_CS=m 824# CONFIG_SYNCLINK_CS is not set
898# CONFIG_CARDMAN_4000 is not set 825# CONFIG_CARDMAN_4000 is not set
899# CONFIG_CARDMAN_4040 is not set 826# CONFIG_CARDMAN_4040 is not set
827# CONFIG_IPWIRELESS is not set
900# CONFIG_RAW_DRIVER is not set 828# CONFIG_RAW_DRIVER is not set
829# CONFIG_TCG_TPM is not set
830CONFIG_DEVPORT=y
831CONFIG_I2C=y
832CONFIG_I2C_BOARDINFO=y
833# CONFIG_I2C_COMPAT is not set
834CONFIG_I2C_CHARDEV=y
835# CONFIG_I2C_HELPER_AUTO is not set
901 836
902# 837#
903# TPM devices 838# I2C Algorithms
904# 839#
905# CONFIG_TCG_TPM is not set 840# CONFIG_I2C_ALGOBIT is not set
841# CONFIG_I2C_ALGOPCF is not set
842# CONFIG_I2C_ALGOPCA is not set
906 843
907# 844#
908# I2C support 845# I2C Hardware Bus support
909# 846#
910# CONFIG_I2C is not set
911 847
912# 848#
913# SPI support 849# PC SMBus host controller drivers
914# 850#
915# CONFIG_SPI is not set 851# CONFIG_I2C_ALI1535 is not set
916# CONFIG_SPI_MASTER is not set 852# CONFIG_I2C_ALI1563 is not set
853# CONFIG_I2C_ALI15X3 is not set
854# CONFIG_I2C_AMD756 is not set
855# CONFIG_I2C_AMD8111 is not set
856# CONFIG_I2C_I801 is not set
857# CONFIG_I2C_ISCH is not set
858# CONFIG_I2C_PIIX4 is not set
859# CONFIG_I2C_NFORCE2 is not set
860# CONFIG_I2C_SIS5595 is not set
861# CONFIG_I2C_SIS630 is not set
862# CONFIG_I2C_SIS96X is not set
863# CONFIG_I2C_VIA is not set
864# CONFIG_I2C_VIAPRO is not set
917 865
918# 866#
919# Dallas's 1-wire bus 867# I2C system bus drivers (mostly embedded / system-on-chip)
920# 868#
921# CONFIG_W1 is not set 869CONFIG_I2C_AU1550=y
870# CONFIG_I2C_GPIO is not set
871# CONFIG_I2C_OCORES is not set
872# CONFIG_I2C_SIMTEC is not set
922 873
923# 874#
924# Hardware Monitoring support 875# External I2C/SMBus adapter drivers
925# 876#
926# CONFIG_HWMON is not set 877# CONFIG_I2C_PARPORT_LIGHT is not set
927# CONFIG_HWMON_VID is not set 878# CONFIG_I2C_TAOS_EVM is not set
879# CONFIG_I2C_TINY_USB is not set
928 880
929# 881#
930# Multimedia devices 882# Other I2C/SMBus bus drivers
931# 883#
932# CONFIG_VIDEO_DEV is not set 884# CONFIG_I2C_PCA_PLATFORM is not set
885# CONFIG_I2C_STUB is not set
933 886
934# 887#
935# Digital Video Broadcasting Devices 888# Miscellaneous I2C Chip support
936# 889#
937# CONFIG_DVB is not set 890# CONFIG_SENSORS_TSL2550 is not set
891# CONFIG_I2C_DEBUG_CORE is not set
892# CONFIG_I2C_DEBUG_ALGO is not set
893# CONFIG_I2C_DEBUG_BUS is not set
894# CONFIG_I2C_DEBUG_CHIP is not set
895CONFIG_SPI=y
896# CONFIG_SPI_DEBUG is not set
897CONFIG_SPI_MASTER=y
938 898
939# 899#
940# Graphics support 900# SPI Master Controller Drivers
941# 901#
942# CONFIG_FIRMWARE_EDID is not set 902CONFIG_SPI_AU1550=y
943# CONFIG_FB is not set 903CONFIG_SPI_BITBANG=y
944# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 904# CONFIG_SPI_GPIO is not set
905# CONFIG_SPI_XILINX is not set
906# CONFIG_SPI_DESIGNWARE is not set
945 907
946# 908#
947# Sound 909# SPI Protocol Masters
948# 910#
949# CONFIG_SOUND is not set 911# CONFIG_SPI_SPIDEV is not set
912# CONFIG_SPI_TLE62X0 is not set
950 913
951# 914#
952# HID Devices 915# PPS support
953# 916#
954# CONFIG_HID is not set 917# CONFIG_PPS is not set
918CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
919# CONFIG_GPIOLIB is not set
920# CONFIG_W1 is not set
921# CONFIG_POWER_SUPPLY is not set
922# CONFIG_HWMON is not set
923# CONFIG_THERMAL is not set
924# CONFIG_WATCHDOG is not set
925CONFIG_SSB_POSSIBLE=y
955 926
956# 927#
957# USB support 928# Sonics Silicon Backplane
929#
930# CONFIG_SSB is not set
931
932#
933# Multifunction device drivers
934#
935# CONFIG_MFD_CORE is not set
936# CONFIG_MFD_SM501 is not set
937# CONFIG_HTC_PASIC3 is not set
938# CONFIG_TWL4030_CORE is not set
939# CONFIG_MFD_TMIO is not set
940# CONFIG_PMIC_DA903X is not set
941# CONFIG_PMIC_ADP5520 is not set
942# CONFIG_MFD_WM8400 is not set
943# CONFIG_MFD_WM831X is not set
944# CONFIG_MFD_WM8350_I2C is not set
945# CONFIG_MFD_PCF50633 is not set
946# CONFIG_MFD_MC13783 is not set
947# CONFIG_AB3100_CORE is not set
948# CONFIG_EZX_PCAP is not set
949# CONFIG_MFD_88PM8607 is not set
950# CONFIG_AB4500_CORE is not set
951# CONFIG_REGULATOR is not set
952# CONFIG_MEDIA_SUPPORT is not set
953
954#
955# Graphics support
956#
957# CONFIG_VGA_ARB is not set
958# CONFIG_DRM is not set
959# CONFIG_VGASTATE is not set
960# CONFIG_VIDEO_OUTPUT_CONTROL is not set
961# CONFIG_FB is not set
962# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
963
958# 964#
965# Display device support
966#
967# CONFIG_DISPLAY_SUPPORT is not set
968
969#
970# Console display driver support
971#
972# CONFIG_VGA_CONSOLE is not set
973CONFIG_DUMMY_CONSOLE=y
974CONFIG_SOUND=y
975# CONFIG_SOUND_OSS_CORE is not set
976CONFIG_SND=y
977CONFIG_SND_TIMER=y
978CONFIG_SND_PCM=y
979CONFIG_SND_JACK=y
980# CONFIG_SND_SEQUENCER is not set
981# CONFIG_SND_MIXER_OSS is not set
982# CONFIG_SND_PCM_OSS is not set
983CONFIG_SND_HRTIMER=y
984CONFIG_SND_DYNAMIC_MINORS=y
985# CONFIG_SND_SUPPORT_OLD_API is not set
986# CONFIG_SND_VERBOSE_PROCFS is not set
987# CONFIG_SND_VERBOSE_PRINTK is not set
988# CONFIG_SND_DEBUG is not set
989# CONFIG_SND_RAWMIDI_SEQ is not set
990# CONFIG_SND_OPL3_LIB_SEQ is not set
991# CONFIG_SND_OPL4_LIB_SEQ is not set
992# CONFIG_SND_SBAWE_SEQ is not set
993# CONFIG_SND_EMU10K1_SEQ is not set
994# CONFIG_SND_DRIVERS is not set
995# CONFIG_SND_PCI is not set
996# CONFIG_SND_SPI is not set
997# CONFIG_SND_MIPS is not set
998CONFIG_SND_USB=y
999# CONFIG_SND_USB_AUDIO is not set
1000# CONFIG_SND_USB_CAIAQ is not set
1001# CONFIG_SND_PCMCIA is not set
1002CONFIG_SND_SOC=y
1003CONFIG_SND_SOC_AU1XPSC=y
1004# CONFIG_SND_SOC_DB1200 is not set
1005CONFIG_SND_SOC_I2C_AND_SPI=y
1006# CONFIG_SND_SOC_ALL_CODECS is not set
1007# CONFIG_SOUND_PRIME is not set
1008# CONFIG_HID_SUPPORT is not set
1009CONFIG_USB_SUPPORT=y
959CONFIG_USB_ARCH_HAS_HCD=y 1010CONFIG_USB_ARCH_HAS_HCD=y
960CONFIG_USB_ARCH_HAS_OHCI=y 1011CONFIG_USB_ARCH_HAS_OHCI=y
961CONFIG_USB_ARCH_HAS_EHCI=y 1012CONFIG_USB_ARCH_HAS_EHCI=y
962# CONFIG_USB is not set 1013CONFIG_USB=y
1014# CONFIG_USB_DEBUG is not set
1015# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
963 1016
964# 1017#
965# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1018# Miscellaneous USB options
966# 1019#
1020# CONFIG_USB_DEVICEFS is not set
1021# CONFIG_USB_DEVICE_CLASS is not set
1022CONFIG_USB_DYNAMIC_MINORS=y
1023CONFIG_USB_SUSPEND=y
1024# CONFIG_USB_OTG is not set
1025# CONFIG_USB_OTG_WHITELIST is not set
1026# CONFIG_USB_OTG_BLACKLIST_HUB is not set
1027# CONFIG_USB_MON is not set
1028# CONFIG_USB_WUSB is not set
1029# CONFIG_USB_WUSB_CBAF is not set
967 1030
968# 1031#
969# USB Gadget Support 1032# USB Host Controller Drivers
970# 1033#
971# CONFIG_USB_GADGET is not set 1034# CONFIG_USB_C67X00_HCD is not set
1035# CONFIG_USB_XHCI_HCD is not set
1036CONFIG_USB_EHCI_HCD=y
1037CONFIG_USB_EHCI_ROOT_HUB_TT=y
1038CONFIG_USB_EHCI_TT_NEWSCHED=y
1039# CONFIG_USB_OXU210HP_HCD is not set
1040# CONFIG_USB_ISP116X_HCD is not set
1041# CONFIG_USB_ISP1760_HCD is not set
1042# CONFIG_USB_ISP1362_HCD is not set
1043CONFIG_USB_OHCI_HCD=y
1044# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
1045# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
1046CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1047# CONFIG_USB_UHCI_HCD is not set
1048# CONFIG_USB_SL811_HCD is not set
1049# CONFIG_USB_R8A66597_HCD is not set
1050# CONFIG_USB_WHCI_HCD is not set
1051# CONFIG_USB_HWA_HCD is not set
972 1052
973# 1053#
974# MMC/SD Card support 1054# USB Device Class drivers
975# 1055#
976# CONFIG_MMC is not set 1056# CONFIG_USB_ACM is not set
1057# CONFIG_USB_PRINTER is not set
1058# CONFIG_USB_WDM is not set
1059# CONFIG_USB_TMC is not set
977 1060
978# 1061#
979# LED devices 1062# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
980# 1063#
981# CONFIG_NEW_LEDS is not set
982 1064
983# 1065#
984# LED drivers 1066# also be needed; see USB_STORAGE Help for more info
985# 1067#
1068# CONFIG_USB_LIBUSUAL is not set
986 1069
987# 1070#
988# LED Triggers 1071# USB Imaging devices
989# 1072#
1073# CONFIG_USB_MDC800 is not set
990 1074
991# 1075#
992# InfiniBand support 1076# USB port drivers
993# 1077#
994# CONFIG_INFINIBAND is not set 1078# CONFIG_USB_SERIAL is not set
995 1079
996# 1080#
997# EDAC - error detection and reporting (RAS) (EXPERIMENTAL) 1081# USB Miscellaneous drivers
998# 1082#
1083# CONFIG_USB_EMI62 is not set
1084# CONFIG_USB_EMI26 is not set
1085# CONFIG_USB_ADUTUX is not set
1086# CONFIG_USB_SEVSEG is not set
1087# CONFIG_USB_RIO500 is not set
1088# CONFIG_USB_LEGOTOWER is not set
1089# CONFIG_USB_LCD is not set
1090# CONFIG_USB_BERRY_CHARGE is not set
1091# CONFIG_USB_LED is not set
1092# CONFIG_USB_CYPRESS_CY7C63 is not set
1093# CONFIG_USB_CYTHERM is not set
1094# CONFIG_USB_IDMOUSE is not set
1095# CONFIG_USB_FTDI_ELAN is not set
1096# CONFIG_USB_APPLEDISPLAY is not set
1097# CONFIG_USB_SISUSBVGA is not set
1098# CONFIG_USB_LD is not set
1099# CONFIG_USB_TRANCEVIBRATOR is not set
1100# CONFIG_USB_IOWARRIOR is not set
1101# CONFIG_USB_TEST is not set
1102# CONFIG_USB_ISIGHTFW is not set
1103# CONFIG_USB_VST is not set
1104# CONFIG_USB_GADGET is not set
1105
1106#
1107# OTG and related infrastructure
1108#
1109# CONFIG_USB_GPIO_VBUS is not set
1110# CONFIG_NOP_USB_XCEIV is not set
1111# CONFIG_UWB is not set
1112# CONFIG_MMC is not set
1113# CONFIG_MEMSTICK is not set
1114# CONFIG_NEW_LEDS is not set
1115# CONFIG_ACCESSIBILITY is not set
1116# CONFIG_INFINIBAND is not set
1117CONFIG_RTC_LIB=y
1118CONFIG_RTC_CLASS=y
1119CONFIG_RTC_HCTOSYS=y
1120CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
1121# CONFIG_RTC_DEBUG is not set
999 1122
1000# 1123#
1001# Real Time Clock 1124# RTC interfaces
1002# 1125#
1003# CONFIG_RTC_CLASS is not set 1126CONFIG_RTC_INTF_SYSFS=y
1127CONFIG_RTC_INTF_PROC=y
1128CONFIG_RTC_INTF_DEV=y
1129# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
1130# CONFIG_RTC_DRV_TEST is not set
1004 1131
1005# 1132#
1006# DMA Engine support 1133# I2C RTC drivers
1007# 1134#
1008# CONFIG_DMA_ENGINE is not set 1135# CONFIG_RTC_DRV_DS1307 is not set
1136# CONFIG_RTC_DRV_DS1374 is not set
1137# CONFIG_RTC_DRV_DS1672 is not set
1138# CONFIG_RTC_DRV_MAX6900 is not set
1139# CONFIG_RTC_DRV_RS5C372 is not set
1140# CONFIG_RTC_DRV_ISL1208 is not set
1141# CONFIG_RTC_DRV_X1205 is not set
1142# CONFIG_RTC_DRV_PCF8563 is not set
1143# CONFIG_RTC_DRV_PCF8583 is not set
1144# CONFIG_RTC_DRV_M41T80 is not set
1145# CONFIG_RTC_DRV_BQ32K is not set
1146# CONFIG_RTC_DRV_S35390A is not set
1147# CONFIG_RTC_DRV_FM3130 is not set
1148# CONFIG_RTC_DRV_RX8581 is not set
1149# CONFIG_RTC_DRV_RX8025 is not set
1009 1150
1010# 1151#
1011# DMA Clients 1152# SPI RTC drivers
1012# 1153#
1154# CONFIG_RTC_DRV_M41T94 is not set
1155# CONFIG_RTC_DRV_DS1305 is not set
1156# CONFIG_RTC_DRV_DS1390 is not set
1157# CONFIG_RTC_DRV_MAX6902 is not set
1158# CONFIG_RTC_DRV_R9701 is not set
1159# CONFIG_RTC_DRV_RS5C348 is not set
1160# CONFIG_RTC_DRV_DS3234 is not set
1161# CONFIG_RTC_DRV_PCF2123 is not set
1013 1162
1014# 1163#
1015# DMA Devices 1164# Platform RTC drivers
1016# 1165#
1166# CONFIG_RTC_DRV_CMOS is not set
1167# CONFIG_RTC_DRV_DS1286 is not set
1168# CONFIG_RTC_DRV_DS1511 is not set
1169# CONFIG_RTC_DRV_DS1553 is not set
1170# CONFIG_RTC_DRV_DS1742 is not set
1171# CONFIG_RTC_DRV_STK17TA8 is not set
1172# CONFIG_RTC_DRV_M48T86 is not set
1173# CONFIG_RTC_DRV_M48T35 is not set
1174# CONFIG_RTC_DRV_M48T59 is not set
1175# CONFIG_RTC_DRV_MSM6242 is not set
1176# CONFIG_RTC_DRV_BQ4802 is not set
1177# CONFIG_RTC_DRV_RP5C01 is not set
1178# CONFIG_RTC_DRV_V3020 is not set
1017 1179
1018# 1180#
1019# Auxiliary Display support 1181# on-CPU RTC drivers
1020# 1182#
1183CONFIG_RTC_DRV_AU1XXX=y
1184# CONFIG_DMADEVICES is not set
1185# CONFIG_AUXDISPLAY is not set
1186# CONFIG_UIO is not set
1021 1187
1022# 1188#
1023# Virtualization 1189# TI VLYNQ
1024# 1190#
1191# CONFIG_STAGING is not set
1025 1192
1026# 1193#
1027# File systems 1194# File systems
1028# 1195#
1029CONFIG_EXT2_FS=y 1196CONFIG_EXT2_FS=y
1030CONFIG_EXT2_FS_XATTR=y 1197# CONFIG_EXT2_FS_XATTR is not set
1031CONFIG_EXT2_FS_POSIX_ACL=y
1032# CONFIG_EXT2_FS_SECURITY is not set
1033# CONFIG_EXT2_FS_XIP is not set 1198# CONFIG_EXT2_FS_XIP is not set
1034CONFIG_EXT3_FS=y 1199# CONFIG_EXT3_FS is not set
1035CONFIG_EXT3_FS_XATTR=y 1200# CONFIG_EXT4_FS is not set
1036CONFIG_EXT3_FS_POSIX_ACL=y 1201# CONFIG_REISERFS_FS is not set
1037CONFIG_EXT3_FS_SECURITY=y
1038# CONFIG_EXT4DEV_FS is not set
1039CONFIG_JBD=y
1040# CONFIG_JBD_DEBUG is not set
1041CONFIG_FS_MBCACHE=y
1042CONFIG_REISERFS_FS=m
1043# CONFIG_REISERFS_CHECK is not set
1044# CONFIG_REISERFS_PROC_INFO is not set
1045CONFIG_REISERFS_FS_XATTR=y
1046CONFIG_REISERFS_FS_POSIX_ACL=y
1047CONFIG_REISERFS_FS_SECURITY=y
1048# CONFIG_JFS_FS is not set 1202# CONFIG_JFS_FS is not set
1049CONFIG_FS_POSIX_ACL=y 1203# CONFIG_FS_POSIX_ACL is not set
1050# CONFIG_XFS_FS is not set 1204# CONFIG_XFS_FS is not set
1051# CONFIG_GFS2_FS is not set 1205# CONFIG_GFS2_FS is not set
1052# CONFIG_OCFS2_FS is not set 1206# CONFIG_OCFS2_FS is not set
1053# CONFIG_MINIX_FS is not set 1207# CONFIG_BTRFS_FS is not set
1054# CONFIG_ROMFS_FS is not set 1208# CONFIG_NILFS2_FS is not set
1209CONFIG_FILE_LOCKING=y
1210CONFIG_FSNOTIFY=y
1211CONFIG_DNOTIFY=y
1055CONFIG_INOTIFY=y 1212CONFIG_INOTIFY=y
1056CONFIG_INOTIFY_USER=y 1213CONFIG_INOTIFY_USER=y
1057# CONFIG_QUOTA is not set 1214# CONFIG_QUOTA is not set
1058CONFIG_DNOTIFY=y 1215# CONFIG_AUTOFS_FS is not set
1059CONFIG_AUTOFS_FS=m 1216# CONFIG_AUTOFS4_FS is not set
1060CONFIG_AUTOFS4_FS=m 1217# CONFIG_FUSE_FS is not set
1061CONFIG_FUSE_FS=m 1218
1062CONFIG_GENERIC_ACL=y 1219#
1220# Caches
1221#
1222# CONFIG_FSCACHE is not set
1063 1223
1064# 1224#
1065# CD-ROM/DVD Filesystems 1225# CD-ROM/DVD Filesystems
@@ -1078,75 +1238,82 @@ CONFIG_GENERIC_ACL=y
1078# Pseudo filesystems 1238# Pseudo filesystems
1079# 1239#
1080CONFIG_PROC_FS=y 1240CONFIG_PROC_FS=y
1081CONFIG_PROC_KCORE=y 1241# CONFIG_PROC_KCORE is not set
1082CONFIG_PROC_SYSCTL=y 1242CONFIG_PROC_SYSCTL=y
1243# CONFIG_PROC_PAGE_MONITOR is not set
1083CONFIG_SYSFS=y 1244CONFIG_SYSFS=y
1084CONFIG_TMPFS=y 1245CONFIG_TMPFS=y
1085CONFIG_TMPFS_POSIX_ACL=y 1246# CONFIG_TMPFS_POSIX_ACL is not set
1086# CONFIG_HUGETLB_PAGE is not set 1247# CONFIG_HUGETLB_PAGE is not set
1087CONFIG_RAMFS=y 1248CONFIG_CONFIGFS_FS=y
1088CONFIG_CONFIGFS_FS=m 1249CONFIG_MISC_FILESYSTEMS=y
1089
1090#
1091# Miscellaneous filesystems
1092#
1093# CONFIG_ADFS_FS is not set 1250# CONFIG_ADFS_FS is not set
1094# CONFIG_AFFS_FS is not set 1251# CONFIG_AFFS_FS is not set
1095# CONFIG_ECRYPT_FS is not set
1096# CONFIG_HFS_FS is not set 1252# CONFIG_HFS_FS is not set
1097# CONFIG_HFSPLUS_FS is not set 1253# CONFIG_HFSPLUS_FS is not set
1098# CONFIG_BEFS_FS is not set 1254# CONFIG_BEFS_FS is not set
1099# CONFIG_BFS_FS is not set 1255# CONFIG_BFS_FS is not set
1100# CONFIG_EFS_FS is not set 1256# CONFIG_EFS_FS is not set
1101# CONFIG_JFFS2_FS is not set 1257CONFIG_JFFS2_FS=y
1102CONFIG_CRAMFS=m 1258CONFIG_JFFS2_FS_DEBUG=0
1259CONFIG_JFFS2_FS_WRITEBUFFER=y
1260# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
1261CONFIG_JFFS2_SUMMARY=y
1262CONFIG_JFFS2_FS_XATTR=y
1263# CONFIG_JFFS2_FS_POSIX_ACL is not set
1264# CONFIG_JFFS2_FS_SECURITY is not set
1265CONFIG_JFFS2_COMPRESSION_OPTIONS=y
1266CONFIG_JFFS2_ZLIB=y
1267CONFIG_JFFS2_LZO=y
1268CONFIG_JFFS2_RTIME=y
1269CONFIG_JFFS2_RUBIN=y
1270# CONFIG_JFFS2_CMODE_NONE is not set
1271CONFIG_JFFS2_CMODE_PRIORITY=y
1272# CONFIG_JFFS2_CMODE_SIZE is not set
1273# CONFIG_JFFS2_CMODE_FAVOURLZO is not set
1274# CONFIG_CRAMFS is not set
1275CONFIG_SQUASHFS=y
1276# CONFIG_SQUASHFS_EMBEDDED is not set
1277CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
1103# CONFIG_VXFS_FS is not set 1278# CONFIG_VXFS_FS is not set
1279# CONFIG_MINIX_FS is not set
1280# CONFIG_OMFS_FS is not set
1104# CONFIG_HPFS_FS is not set 1281# CONFIG_HPFS_FS is not set
1105# CONFIG_QNX4FS_FS is not set 1282# CONFIG_QNX4FS_FS is not set
1283# CONFIG_ROMFS_FS is not set
1106# CONFIG_SYSV_FS is not set 1284# CONFIG_SYSV_FS is not set
1107# CONFIG_UFS_FS is not set 1285# CONFIG_UFS_FS is not set
1108 1286CONFIG_NETWORK_FILESYSTEMS=y
1109#
1110# Network File Systems
1111#
1112CONFIG_NFS_FS=y 1287CONFIG_NFS_FS=y
1113# CONFIG_NFS_V3 is not set 1288CONFIG_NFS_V3=y
1289# CONFIG_NFS_V3_ACL is not set
1114# CONFIG_NFS_V4 is not set 1290# CONFIG_NFS_V4 is not set
1115# CONFIG_NFS_DIRECTIO is not set
1116CONFIG_NFSD=m
1117# CONFIG_NFSD_V3 is not set
1118# CONFIG_NFSD_TCP is not set
1119CONFIG_ROOT_NFS=y 1291CONFIG_ROOT_NFS=y
1292# CONFIG_NFSD is not set
1120CONFIG_LOCKD=y 1293CONFIG_LOCKD=y
1121CONFIG_EXPORTFS=m 1294CONFIG_LOCKD_V4=y
1122CONFIG_NFS_COMMON=y 1295CONFIG_NFS_COMMON=y
1123CONFIG_SUNRPC=y 1296CONFIG_SUNRPC=y
1124# CONFIG_RPCSEC_GSS_KRB5 is not set 1297# CONFIG_RPCSEC_GSS_KRB5 is not set
1125# CONFIG_RPCSEC_GSS_SPKM3 is not set 1298# CONFIG_RPCSEC_GSS_SPKM3 is not set
1126CONFIG_SMB_FS=m 1299# CONFIG_SMB_FS is not set
1127# CONFIG_SMB_NLS_DEFAULT is not set
1128# CONFIG_CIFS is not set 1300# CONFIG_CIFS is not set
1129# CONFIG_NCP_FS is not set 1301# CONFIG_NCP_FS is not set
1130# CONFIG_CODA_FS is not set 1302# CONFIG_CODA_FS is not set
1131# CONFIG_AFS_FS is not set 1303# CONFIG_AFS_FS is not set
1132# CONFIG_9P_FS is not set
1133 1304
1134# 1305#
1135# Partition Types 1306# Partition Types
1136# 1307#
1137# CONFIG_PARTITION_ADVANCED is not set 1308# CONFIG_PARTITION_ADVANCED is not set
1138CONFIG_MSDOS_PARTITION=y 1309CONFIG_MSDOS_PARTITION=y
1139 1310CONFIG_NLS=y
1140#
1141# Native Language Support
1142#
1143CONFIG_NLS=m
1144CONFIG_NLS_DEFAULT="iso8859-1" 1311CONFIG_NLS_DEFAULT="iso8859-1"
1145# CONFIG_NLS_CODEPAGE_437 is not set 1312CONFIG_NLS_CODEPAGE_437=y
1146# CONFIG_NLS_CODEPAGE_737 is not set 1313# CONFIG_NLS_CODEPAGE_737 is not set
1147# CONFIG_NLS_CODEPAGE_775 is not set 1314# CONFIG_NLS_CODEPAGE_775 is not set
1148# CONFIG_NLS_CODEPAGE_850 is not set 1315CONFIG_NLS_CODEPAGE_850=y
1149# CONFIG_NLS_CODEPAGE_852 is not set 1316CONFIG_NLS_CODEPAGE_852=y
1150# CONFIG_NLS_CODEPAGE_855 is not set 1317# CONFIG_NLS_CODEPAGE_855 is not set
1151# CONFIG_NLS_CODEPAGE_857 is not set 1318# CONFIG_NLS_CODEPAGE_857 is not set
1152# CONFIG_NLS_CODEPAGE_860 is not set 1319# CONFIG_NLS_CODEPAGE_860 is not set
@@ -1163,10 +1330,10 @@ CONFIG_NLS_DEFAULT="iso8859-1"
1163# CONFIG_NLS_CODEPAGE_949 is not set 1330# CONFIG_NLS_CODEPAGE_949 is not set
1164# CONFIG_NLS_CODEPAGE_874 is not set 1331# CONFIG_NLS_CODEPAGE_874 is not set
1165# CONFIG_NLS_ISO8859_8 is not set 1332# CONFIG_NLS_ISO8859_8 is not set
1166# CONFIG_NLS_CODEPAGE_1250 is not set 1333CONFIG_NLS_CODEPAGE_1250=y
1167# CONFIG_NLS_CODEPAGE_1251 is not set 1334# CONFIG_NLS_CODEPAGE_1251 is not set
1168# CONFIG_NLS_ASCII is not set 1335CONFIG_NLS_ASCII=y
1169# CONFIG_NLS_ISO8859_1 is not set 1336CONFIG_NLS_ISO8859_1=y
1170# CONFIG_NLS_ISO8859_2 is not set 1337# CONFIG_NLS_ISO8859_2 is not set
1171# CONFIG_NLS_ISO8859_3 is not set 1338# CONFIG_NLS_ISO8859_3 is not set
1172# CONFIG_NLS_ISO8859_4 is not set 1339# CONFIG_NLS_ISO8859_4 is not set
@@ -1176,38 +1343,75 @@ CONFIG_NLS_DEFAULT="iso8859-1"
1176# CONFIG_NLS_ISO8859_9 is not set 1343# CONFIG_NLS_ISO8859_9 is not set
1177# CONFIG_NLS_ISO8859_13 is not set 1344# CONFIG_NLS_ISO8859_13 is not set
1178# CONFIG_NLS_ISO8859_14 is not set 1345# CONFIG_NLS_ISO8859_14 is not set
1179# CONFIG_NLS_ISO8859_15 is not set 1346CONFIG_NLS_ISO8859_15=y
1180# CONFIG_NLS_KOI8_R is not set 1347# CONFIG_NLS_KOI8_R is not set
1181# CONFIG_NLS_KOI8_U is not set 1348# CONFIG_NLS_KOI8_U is not set
1182# CONFIG_NLS_UTF8 is not set 1349CONFIG_NLS_UTF8=y
1183 1350# CONFIG_DLM is not set
1184#
1185# Distributed Lock Manager
1186#
1187CONFIG_DLM=m
1188CONFIG_DLM_TCP=y
1189# CONFIG_DLM_SCTP is not set
1190# CONFIG_DLM_DEBUG is not set
1191
1192#
1193# Profiling support
1194#
1195# CONFIG_PROFILING is not set
1196 1351
1197# 1352#
1198# Kernel hacking 1353# Kernel hacking
1199# 1354#
1200CONFIG_TRACE_IRQFLAGS_SUPPORT=y 1355CONFIG_TRACE_IRQFLAGS_SUPPORT=y
1201# CONFIG_PRINTK_TIME is not set 1356# CONFIG_PRINTK_TIME is not set
1357CONFIG_ENABLE_WARN_DEPRECATED=y
1202CONFIG_ENABLE_MUST_CHECK=y 1358CONFIG_ENABLE_MUST_CHECK=y
1359CONFIG_FRAME_WARN=1024
1203# CONFIG_MAGIC_SYSRQ is not set 1360# CONFIG_MAGIC_SYSRQ is not set
1361# CONFIG_STRIP_ASM_SYMS is not set
1204# CONFIG_UNUSED_SYMBOLS is not set 1362# CONFIG_UNUSED_SYMBOLS is not set
1205# CONFIG_DEBUG_FS is not set 1363# CONFIG_DEBUG_FS is not set
1206# CONFIG_HEADERS_CHECK is not set 1364# CONFIG_HEADERS_CHECK is not set
1207# CONFIG_DEBUG_KERNEL is not set 1365CONFIG_DEBUG_KERNEL=y
1208CONFIG_LOG_BUF_SHIFT=14 1366# CONFIG_DEBUG_SHIRQ is not set
1209CONFIG_CROSSCOMPILE=y 1367# CONFIG_DETECT_SOFTLOCKUP is not set
1210CONFIG_CMDLINE="" 1368# CONFIG_DETECT_HUNG_TASK is not set
1369# CONFIG_SCHED_DEBUG is not set
1370# CONFIG_SCHEDSTATS is not set
1371# CONFIG_TIMER_STATS is not set
1372# CONFIG_DEBUG_OBJECTS is not set
1373# CONFIG_DEBUG_SLAB is not set
1374# CONFIG_DEBUG_RT_MUTEXES is not set
1375# CONFIG_RT_MUTEX_TESTER is not set
1376# CONFIG_DEBUG_SPINLOCK is not set
1377# CONFIG_DEBUG_MUTEXES is not set
1378# CONFIG_DEBUG_LOCK_ALLOC is not set
1379# CONFIG_PROVE_LOCKING is not set
1380# CONFIG_LOCK_STAT is not set
1381# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1382# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1383# CONFIG_DEBUG_KOBJECT is not set
1384# CONFIG_DEBUG_INFO is not set
1385# CONFIG_DEBUG_VM is not set
1386# CONFIG_DEBUG_WRITECOUNT is not set
1387# CONFIG_DEBUG_MEMORY_INIT is not set
1388# CONFIG_DEBUG_LIST is not set
1389# CONFIG_DEBUG_SG is not set
1390# CONFIG_DEBUG_NOTIFIERS is not set
1391# CONFIG_DEBUG_CREDENTIALS is not set
1392# CONFIG_BOOT_PRINTK_DELAY is not set
1393# CONFIG_RCU_TORTURE_TEST is not set
1394# CONFIG_BACKTRACE_SELF_TEST is not set
1395# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1396# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
1397# CONFIG_FAULT_INJECTION is not set
1398# CONFIG_SYSCTL_SYSCALL_CHECK is not set
1399# CONFIG_PAGE_POISONING is not set
1400CONFIG_HAVE_FUNCTION_TRACER=y
1401CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1402CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y
1403CONFIG_HAVE_DYNAMIC_FTRACE=y
1404CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1405CONFIG_TRACING_SUPPORT=y
1406# CONFIG_FTRACE is not set
1407# CONFIG_SAMPLES is not set
1408CONFIG_HAVE_ARCH_KGDB=y
1409# CONFIG_KGDB is not set
1410CONFIG_EARLY_PRINTK=y
1411# CONFIG_CMDLINE_BOOL is not set
1412# CONFIG_DEBUG_STACK_USAGE is not set
1413# CONFIG_RUNTIME_DEBUG is not set
1414CONFIG_DEBUG_ZBOOT=y
1211 1415
1212# 1416#
1213# Security options 1417# Security options
@@ -1215,67 +1419,32 @@ CONFIG_CMDLINE=""
1215CONFIG_KEYS=y 1419CONFIG_KEYS=y
1216CONFIG_KEYS_DEBUG_PROC_KEYS=y 1420CONFIG_KEYS_DEBUG_PROC_KEYS=y
1217# CONFIG_SECURITY is not set 1421# CONFIG_SECURITY is not set
1218 1422CONFIG_SECURITYFS=y
1219# 1423# CONFIG_DEFAULT_SECURITY_SELINUX is not set
1220# Cryptographic options 1424# CONFIG_DEFAULT_SECURITY_SMACK is not set
1221# 1425# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
1222CONFIG_CRYPTO=y 1426CONFIG_DEFAULT_SECURITY_DAC=y
1223CONFIG_CRYPTO_ALGAPI=y 1427CONFIG_DEFAULT_SECURITY=""
1224CONFIG_CRYPTO_BLKCIPHER=m 1428# CONFIG_CRYPTO is not set
1225CONFIG_CRYPTO_HASH=y 1429# CONFIG_BINARY_PRINTF is not set
1226CONFIG_CRYPTO_MANAGER=y
1227CONFIG_CRYPTO_HMAC=y
1228CONFIG_CRYPTO_XCBC=m
1229CONFIG_CRYPTO_NULL=m
1230CONFIG_CRYPTO_MD4=m
1231CONFIG_CRYPTO_MD5=y
1232CONFIG_CRYPTO_SHA1=m
1233CONFIG_CRYPTO_SHA256=m
1234CONFIG_CRYPTO_SHA512=m
1235CONFIG_CRYPTO_WP512=m
1236CONFIG_CRYPTO_TGR192=m
1237CONFIG_CRYPTO_GF128MUL=m
1238CONFIG_CRYPTO_ECB=m
1239CONFIG_CRYPTO_CBC=m
1240CONFIG_CRYPTO_PCBC=m
1241CONFIG_CRYPTO_LRW=m
1242CONFIG_CRYPTO_DES=m
1243CONFIG_CRYPTO_FCRYPT=m
1244CONFIG_CRYPTO_BLOWFISH=m
1245CONFIG_CRYPTO_TWOFISH=m
1246CONFIG_CRYPTO_TWOFISH_COMMON=m
1247CONFIG_CRYPTO_SERPENT=m
1248CONFIG_CRYPTO_AES=m
1249CONFIG_CRYPTO_CAST5=m
1250CONFIG_CRYPTO_CAST6=m
1251CONFIG_CRYPTO_TEA=m
1252CONFIG_CRYPTO_ARC4=m
1253CONFIG_CRYPTO_KHAZAD=m
1254CONFIG_CRYPTO_ANUBIS=m
1255CONFIG_CRYPTO_DEFLATE=m
1256CONFIG_CRYPTO_MICHAEL_MIC=m
1257CONFIG_CRYPTO_CRC32C=m
1258CONFIG_CRYPTO_CAMELLIA=m
1259# CONFIG_CRYPTO_TEST is not set
1260
1261#
1262# Hardware crypto devices
1263#
1264 1430
1265# 1431#
1266# Library routines 1432# Library routines
1267# 1433#
1268CONFIG_BITREVERSE=y 1434CONFIG_BITREVERSE=y
1269CONFIG_CRC_CCITT=m 1435CONFIG_GENERIC_FIND_LAST_BIT=y
1270CONFIG_CRC16=m 1436# CONFIG_CRC_CCITT is not set
1437# CONFIG_CRC16 is not set
1438# CONFIG_CRC_T10DIF is not set
1439# CONFIG_CRC_ITU_T is not set
1271CONFIG_CRC32=y 1440CONFIG_CRC32=y
1272CONFIG_LIBCRC32C=m 1441# CONFIG_CRC7 is not set
1273CONFIG_ZLIB_INFLATE=m 1442# CONFIG_LIBCRC32C is not set
1274CONFIG_ZLIB_DEFLATE=m 1443CONFIG_ZLIB_INFLATE=y
1275CONFIG_TEXTSEARCH=y 1444CONFIG_ZLIB_DEFLATE=y
1276CONFIG_TEXTSEARCH_KMP=m 1445CONFIG_LZO_COMPRESS=y
1277CONFIG_TEXTSEARCH_BM=m 1446CONFIG_LZO_DECOMPRESS=y
1278CONFIG_TEXTSEARCH_FSM=m
1279CONFIG_PLIST=y
1280CONFIG_HAS_IOMEM=y 1447CONFIG_HAS_IOMEM=y
1281CONFIG_HAS_IOPORT=y 1448CONFIG_HAS_IOPORT=y
1449CONFIG_HAS_DMA=y
1450CONFIG_NLATTR=y
diff --git a/arch/mips/configs/decstation_defconfig b/arch/mips/configs/decstation_defconfig
index 9e65e6a2dcb3..cbb4d86f2912 100644
--- a/arch/mips/configs/decstation_defconfig
+++ b/arch/mips/configs/decstation_defconfig
@@ -22,7 +22,6 @@ CONFIG_ZONE_DMA=y
22# CONFIG_MIPS_DB1550 is not set 22# CONFIG_MIPS_DB1550 is not set
23# CONFIG_MIPS_DB1200 is not set 23# CONFIG_MIPS_DB1200 is not set
24# CONFIG_MIPS_MIRAGE is not set 24# CONFIG_MIPS_MIRAGE is not set
25# CONFIG_BASLER_EXCITE is not set
26# CONFIG_MIPS_COBALT is not set 25# CONFIG_MIPS_COBALT is not set
27CONFIG_MACH_DECSTATION=y 26CONFIG_MACH_DECSTATION=y
28# CONFIG_MACH_JAZZ is not set 27# CONFIG_MACH_JAZZ is not set
@@ -882,7 +881,7 @@ CONFIG_MAGIC_SYSRQ=y
882# CONFIG_DEBUG_KERNEL is not set 881# CONFIG_DEBUG_KERNEL is not set
883CONFIG_LOG_BUF_SHIFT=14 882CONFIG_LOG_BUF_SHIFT=14
884CONFIG_CROSSCOMPILE=y 883CONFIG_CROSSCOMPILE=y
885CONFIG_CMDLINE="" 884# CONFIG_CMDLINE_BOOL is not set
886 885
887# 886#
888# Security options 887# Security options
diff --git a/arch/mips/configs/e55_defconfig b/arch/mips/configs/e55_defconfig
index 1bd84d42b14f..52968c46c806 100644
--- a/arch/mips/configs/e55_defconfig
+++ b/arch/mips/configs/e55_defconfig
@@ -9,7 +9,6 @@ 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_BASLER_EXCITE is not set
13# CONFIG_MIPS_COBALT is not set 12# CONFIG_MIPS_COBALT is not set
14# CONFIG_MACH_DECSTATION is not set 13# CONFIG_MACH_DECSTATION is not set
15# CONFIG_MACH_JAZZ is not set 14# CONFIG_MACH_JAZZ is not set
@@ -561,7 +560,9 @@ CONFIG_ENABLE_MUST_CHECK=y
561# CONFIG_HEADERS_CHECK is not set 560# CONFIG_HEADERS_CHECK is not set
562# CONFIG_DEBUG_KERNEL is not set 561# CONFIG_DEBUG_KERNEL is not set
563CONFIG_CROSSCOMPILE=y 562CONFIG_CROSSCOMPILE=y
563CONFIG_CMDLINE_BOOL=y
564CONFIG_CMDLINE="console=ttyVR0,19200 ide0=0x1f0,0x3f6,40 mem=8M" 564CONFIG_CMDLINE="console=ttyVR0,19200 ide0=0x1f0,0x3f6,40 mem=8M"
565# CONFIG_CMDLINE_OVERRIDE is not set
565 566
566# 567#
567# Security options 568# Security options
diff --git a/arch/mips/configs/excite_defconfig b/arch/mips/configs/excite_defconfig
deleted file mode 100644
index 1995d43a2ed1..000000000000
--- a/arch/mips/configs/excite_defconfig
+++ /dev/null
@@ -1,1335 +0,0 @@
1#
2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.20
4# Tue Feb 20 21:47:31 2007
5#
6CONFIG_MIPS=y
7
8#
9# Machine selection
10#
11CONFIG_ZONE_DMA=y
12# CONFIG_MIPS_MTX1 is not set
13# CONFIG_MIPS_BOSPORUS is not set
14# CONFIG_MIPS_PB1000 is not set
15# CONFIG_MIPS_PB1100 is not set
16# CONFIG_MIPS_PB1500 is not set
17# CONFIG_MIPS_PB1550 is not set
18# CONFIG_MIPS_PB1200 is not set
19# CONFIG_MIPS_DB1000 is not set
20# CONFIG_MIPS_DB1100 is not set
21# CONFIG_MIPS_DB1500 is not set
22# CONFIG_MIPS_DB1550 is not set
23# CONFIG_MIPS_DB1200 is not set
24# CONFIG_MIPS_MIRAGE is not set
25CONFIG_BASLER_EXCITE=y
26# CONFIG_BASLER_EXCITE_PROTOTYPE is not set
27# CONFIG_MIPS_COBALT is not set
28# CONFIG_MACH_DECSTATION is not set
29# CONFIG_MACH_JAZZ is not set
30# CONFIG_MIPS_MALTA is not set
31# CONFIG_WR_PPMC is not set
32# CONFIG_MIPS_SIM is not set
33# CONFIG_MOMENCO_JAGUAR_ATX is not set
34# CONFIG_MIPS_XXS1500 is not set
35# CONFIG_PNX8550_JBS is not set
36# CONFIG_PNX8550_STB810 is not set
37# CONFIG_MACH_VR41XX is not set
38# CONFIG_PMC_YOSEMITE is not set
39# CONFIG_MARKEINS is not set
40# CONFIG_SGI_IP22 is not set
41# CONFIG_SGI_IP27 is not set
42# CONFIG_SGI_IP32 is not set
43# CONFIG_SIBYTE_BIGSUR is not set
44# CONFIG_SIBYTE_SWARM is not set
45# CONFIG_SIBYTE_SENTOSA is not set
46# CONFIG_SIBYTE_RHONE is not set
47# CONFIG_SIBYTE_CARMEL is not set
48# CONFIG_SIBYTE_LITTLESUR is not set
49# CONFIG_SIBYTE_CRHINE is not set
50# CONFIG_SIBYTE_CRHONE is not set
51# CONFIG_SNI_RM is not set
52# CONFIG_TOSHIBA_JMR3927 is not set
53# CONFIG_TOSHIBA_RBTX4927 is not set
54# CONFIG_TOSHIBA_RBTX4938 is not set
55CONFIG_RWSEM_GENERIC_SPINLOCK=y
56# CONFIG_ARCH_HAS_ILOG2_U32 is not set
57# CONFIG_ARCH_HAS_ILOG2_U64 is not set
58CONFIG_GENERIC_FIND_NEXT_BIT=y
59CONFIG_GENERIC_HWEIGHT=y
60CONFIG_GENERIC_CALIBRATE_DELAY=y
61CONFIG_GENERIC_TIME=y
62CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
63# CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ is not set
64CONFIG_DMA_COHERENT=y
65CONFIG_CPU_BIG_ENDIAN=y
66# CONFIG_CPU_LITTLE_ENDIAN is not set
67CONFIG_SYS_SUPPORTS_BIG_ENDIAN=y
68CONFIG_IRQ_CPU=y
69CONFIG_IRQ_CPU_RM7K=y
70CONFIG_IRQ_CPU_RM9K=y
71CONFIG_MIPS_RM9122=y
72CONFIG_SERIAL_RM9000=y
73CONFIG_GPI_RM9000=y
74CONFIG_WDT_RM9000=y
75CONFIG_MIPS_L1_CACHE_SHIFT=5
76
77#
78# CPU selection
79#
80# CONFIG_CPU_MIPS32_R1 is not set
81# CONFIG_CPU_MIPS32_R2 is not set
82# CONFIG_CPU_MIPS64_R1 is not set
83# CONFIG_CPU_MIPS64_R2 is not set
84# CONFIG_CPU_R3000 is not set
85# CONFIG_CPU_TX39XX is not set
86# CONFIG_CPU_VR41XX is not set
87# CONFIG_CPU_R4300 is not set
88# CONFIG_CPU_R4X00 is not set
89# CONFIG_CPU_TX49XX is not set
90# CONFIG_CPU_R5000 is not set
91# CONFIG_CPU_R5432 is not set
92# CONFIG_CPU_R6000 is not set
93# CONFIG_CPU_NEVADA is not set
94# CONFIG_CPU_R8000 is not set
95# CONFIG_CPU_R10000 is not set
96# CONFIG_CPU_RM7000 is not set
97CONFIG_CPU_RM9000=y
98# CONFIG_CPU_SB1 is not set
99CONFIG_SYS_HAS_CPU_RM9000=y
100CONFIG_WEAK_ORDERING=y
101CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y
102CONFIG_SYS_SUPPORTS_64BIT_KERNEL=y
103CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y
104CONFIG_CPU_SUPPORTS_64BIT_KERNEL=y
105
106#
107# Kernel type
108#
109CONFIG_32BIT=y
110# CONFIG_64BIT is not set
111CONFIG_PAGE_SIZE_4KB=y
112# CONFIG_PAGE_SIZE_8KB is not set
113# CONFIG_PAGE_SIZE_16KB is not set
114# CONFIG_PAGE_SIZE_64KB is not set
115CONFIG_CPU_HAS_PREFETCH=y
116CONFIG_MIPS_MT_DISABLED=y
117# CONFIG_MIPS_MT_SMP is not set
118# CONFIG_MIPS_MT_SMTC is not set
119# CONFIG_MIPS_VPE_LOADER is not set
120# CONFIG_64BIT_PHYS_ADDR is not set
121CONFIG_CPU_HAS_SYNC=y
122CONFIG_GENERIC_HARDIRQS=y
123CONFIG_GENERIC_IRQ_PROBE=y
124CONFIG_CPU_SUPPORTS_HIGHMEM=y
125CONFIG_ARCH_FLATMEM_ENABLE=y
126CONFIG_SELECT_MEMORY_MODEL=y
127CONFIG_FLATMEM_MANUAL=y
128# CONFIG_DISCONTIGMEM_MANUAL is not set
129# CONFIG_SPARSEMEM_MANUAL is not set
130CONFIG_FLATMEM=y
131CONFIG_FLAT_NODE_MEM_MAP=y
132# CONFIG_SPARSEMEM_STATIC is not set
133CONFIG_SPLIT_PTLOCK_CPUS=4
134# CONFIG_RESOURCES_64BIT is not set
135CONFIG_ZONE_DMA_FLAG=1
136# CONFIG_HZ_48 is not set
137# CONFIG_HZ_100 is not set
138# CONFIG_HZ_128 is not set
139# CONFIG_HZ_250 is not set
140# CONFIG_HZ_256 is not set
141CONFIG_HZ_1000=y
142# CONFIG_HZ_1024 is not set
143CONFIG_SYS_SUPPORTS_ARBIT_HZ=y
144CONFIG_HZ=1000
145# CONFIG_PREEMPT_NONE is not set
146# CONFIG_PREEMPT_VOLUNTARY is not set
147CONFIG_PREEMPT=y
148CONFIG_PREEMPT_BKL=y
149# CONFIG_KEXEC is not set
150CONFIG_LOCKDEP_SUPPORT=y
151CONFIG_STACKTRACE_SUPPORT=y
152CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
153
154#
155# Code maturity level options
156#
157CONFIG_EXPERIMENTAL=y
158CONFIG_BROKEN_ON_SMP=y
159CONFIG_LOCK_KERNEL=y
160CONFIG_INIT_ENV_ARG_LIMIT=32
161
162#
163# General setup
164#
165CONFIG_LOCALVERSION=""
166# CONFIG_LOCALVERSION_AUTO is not set
167CONFIG_SWAP=y
168CONFIG_SYSVIPC=y
169# CONFIG_IPC_NS is not set
170CONFIG_SYSVIPC_SYSCTL=y
171CONFIG_POSIX_MQUEUE=y
172# CONFIG_BSD_PROCESS_ACCT is not set
173# CONFIG_TASKSTATS is not set
174# CONFIG_UTS_NS is not set
175# CONFIG_AUDIT is not set
176# CONFIG_IKCONFIG is not set
177CONFIG_SYSFS_DEPRECATED=y
178# CONFIG_RELAY is not set
179CONFIG_CC_OPTIMIZE_FOR_SIZE=y
180CONFIG_SYSCTL=y
181CONFIG_EMBEDDED=y
182CONFIG_SYSCTL_SYSCALL=y
183CONFIG_KALLSYMS=y
184# CONFIG_KALLSYMS_EXTRA_PASS is not set
185CONFIG_HOTPLUG=y
186CONFIG_PRINTK=y
187CONFIG_BUG=y
188CONFIG_ELF_CORE=y
189CONFIG_BASE_FULL=y
190CONFIG_FUTEX=y
191CONFIG_EPOLL=y
192CONFIG_SHMEM=y
193CONFIG_SLAB=y
194CONFIG_VM_EVENT_COUNTERS=y
195CONFIG_RT_MUTEXES=y
196# CONFIG_TINY_SHMEM is not set
197CONFIG_BASE_SMALL=0
198# CONFIG_SLOB is not set
199
200#
201# Loadable module support
202#
203CONFIG_MODULES=y
204CONFIG_MODULE_UNLOAD=y
205# CONFIG_MODULE_FORCE_UNLOAD is not set
206# CONFIG_MODVERSIONS is not set
207# CONFIG_MODULE_SRCVERSION_ALL is not set
208CONFIG_KMOD=y
209
210#
211# Block layer
212#
213CONFIG_BLOCK=y
214# CONFIG_LBD is not set
215# CONFIG_BLK_DEV_IO_TRACE is not set
216# CONFIG_LSF is not set
217
218#
219# IO Schedulers
220#
221CONFIG_IOSCHED_NOOP=y
222CONFIG_IOSCHED_AS=y
223CONFIG_IOSCHED_DEADLINE=y
224CONFIG_IOSCHED_CFQ=y
225CONFIG_DEFAULT_AS=y
226# CONFIG_DEFAULT_DEADLINE is not set
227# CONFIG_DEFAULT_CFQ is not set
228# CONFIG_DEFAULT_NOOP is not set
229CONFIG_DEFAULT_IOSCHED="anticipatory"
230
231#
232# Bus options (PCI, PCMCIA, EISA, ISA, TC)
233#
234CONFIG_HW_HAS_PCI=y
235CONFIG_PCI=y
236CONFIG_MMU=y
237
238#
239# PCCARD (PCMCIA/CardBus) support
240#
241# CONFIG_PCCARD is not set
242
243#
244# PCI Hotplug Support
245#
246# CONFIG_HOTPLUG_PCI is not set
247
248#
249# Executable file formats
250#
251CONFIG_BINFMT_ELF=y
252# CONFIG_BINFMT_MISC is not set
253CONFIG_TRAD_SIGNALS=y
254
255#
256# Power management options
257#
258CONFIG_PM=y
259# CONFIG_PM_LEGACY is not set
260# CONFIG_PM_DEBUG is not set
261# CONFIG_PM_SYSFS_DEPRECATED is not set
262
263#
264# Networking
265#
266CONFIG_NET=y
267
268#
269# Networking options
270#
271# CONFIG_NETDEBUG is not set
272CONFIG_PACKET=y
273CONFIG_PACKET_MMAP=y
274CONFIG_UNIX=y
275CONFIG_XFRM=y
276# CONFIG_XFRM_USER is not set
277# CONFIG_XFRM_SUB_POLICY is not set
278CONFIG_XFRM_MIGRATE=y
279# CONFIG_NET_KEY is not set
280CONFIG_INET=y
281# CONFIG_IP_MULTICAST is not set
282# CONFIG_IP_ADVANCED_ROUTER is not set
283CONFIG_IP_FIB_HASH=y
284CONFIG_IP_PNP=y
285CONFIG_IP_PNP_DHCP=y
286# CONFIG_IP_PNP_BOOTP is not set
287# CONFIG_IP_PNP_RARP is not set
288# CONFIG_NET_IPIP is not set
289# CONFIG_NET_IPGRE is not set
290# CONFIG_ARPD is not set
291# CONFIG_SYN_COOKIES is not set
292# CONFIG_INET_AH is not set
293# CONFIG_INET_ESP is not set
294# CONFIG_INET_IPCOMP is not set
295# CONFIG_INET_XFRM_TUNNEL is not set
296# CONFIG_INET_TUNNEL is not set
297CONFIG_INET_XFRM_MODE_TRANSPORT=m
298CONFIG_INET_XFRM_MODE_TUNNEL=m
299CONFIG_INET_XFRM_MODE_BEET=m
300CONFIG_INET_DIAG=y
301CONFIG_INET_TCP_DIAG=y
302# CONFIG_TCP_CONG_ADVANCED is not set
303CONFIG_TCP_CONG_CUBIC=y
304CONFIG_DEFAULT_TCP_CONG="cubic"
305CONFIG_TCP_MD5SIG=y
306# CONFIG_IPV6 is not set
307# CONFIG_INET6_XFRM_TUNNEL is not set
308# CONFIG_INET6_TUNNEL is not set
309CONFIG_NETWORK_SECMARK=y
310# CONFIG_NETFILTER is not set
311
312#
313# DCCP Configuration (EXPERIMENTAL)
314#
315# CONFIG_IP_DCCP is not set
316
317#
318# SCTP Configuration (EXPERIMENTAL)
319#
320# CONFIG_IP_SCTP is not set
321
322#
323# TIPC Configuration (EXPERIMENTAL)
324#
325# CONFIG_TIPC is not set
326# CONFIG_ATM is not set
327# CONFIG_BRIDGE is not set
328# CONFIG_VLAN_8021Q is not set
329# CONFIG_DECNET is not set
330# CONFIG_LLC2 is not set
331# CONFIG_IPX is not set
332# CONFIG_ATALK is not set
333# CONFIG_X25 is not set
334# CONFIG_LAPB is not set
335# CONFIG_ECONET is not set
336# CONFIG_WAN_ROUTER is not set
337
338#
339# QoS and/or fair queueing
340#
341# CONFIG_NET_SCHED is not set
342
343#
344# Network testing
345#
346# CONFIG_NET_PKTGEN is not set
347# CONFIG_HAMRADIO is not set
348# CONFIG_IRDA is not set
349# CONFIG_BT is not set
350# CONFIG_IEEE80211 is not set
351
352#
353# Device Drivers
354#
355
356#
357# Generic Driver Options
358#
359CONFIG_STANDALONE=y
360CONFIG_PREVENT_FIRMWARE_BUILD=y
361CONFIG_FW_LOADER=m
362# CONFIG_SYS_HYPERVISOR is not set
363
364#
365# Connector - unified userspace <-> kernelspace linker
366#
367# CONFIG_CONNECTOR is not set
368
369#
370# Memory Technology Devices (MTD)
371#
372CONFIG_MTD=y
373# CONFIG_MTD_DEBUG is not set
374# CONFIG_MTD_CONCAT is not set
375CONFIG_MTD_PARTITIONS=y
376# CONFIG_MTD_REDBOOT_PARTS is not set
377# CONFIG_MTD_CMDLINE_PARTS is not set
378
379#
380# User Modules And Translation Layers
381#
382CONFIG_MTD_CHAR=y
383CONFIG_MTD_BLKDEVS=y
384CONFIG_MTD_BLOCK=y
385# CONFIG_FTL is not set
386# CONFIG_NFTL is not set
387# CONFIG_INFTL is not set
388# CONFIG_RFD_FTL is not set
389# CONFIG_SSFDC is not set
390
391#
392# RAM/ROM/Flash chip drivers
393#
394# CONFIG_MTD_CFI is not set
395# CONFIG_MTD_JEDECPROBE is not set
396CONFIG_MTD_MAP_BANK_WIDTH_1=y
397CONFIG_MTD_MAP_BANK_WIDTH_2=y
398CONFIG_MTD_MAP_BANK_WIDTH_4=y
399# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
400# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
401# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
402CONFIG_MTD_CFI_I1=y
403CONFIG_MTD_CFI_I2=y
404# CONFIG_MTD_CFI_I4 is not set
405# CONFIG_MTD_CFI_I8 is not set
406# CONFIG_MTD_RAM is not set
407# CONFIG_MTD_ROM is not set
408# CONFIG_MTD_ABSENT is not set
409# CONFIG_MTD_OBSOLETE_CHIPS is not set
410
411#
412# Mapping drivers for chip access
413#
414# CONFIG_MTD_COMPLEX_MAPPINGS is not set
415# CONFIG_MTD_PLATRAM is not set
416
417#
418# Self-contained MTD device drivers
419#
420# CONFIG_MTD_PMC551 is not set
421# CONFIG_MTD_SLRAM is not set
422# CONFIG_MTD_PHRAM is not set
423# CONFIG_MTD_MTDRAM is not set
424# CONFIG_MTD_BLOCK2MTD is not set
425
426#
427# Disk-On-Chip Device Drivers
428#
429# CONFIG_MTD_DOC2000 is not set
430# CONFIG_MTD_DOC2001 is not set
431# CONFIG_MTD_DOC2001PLUS is not set
432
433#
434# NAND Flash Device Drivers
435#
436CONFIG_MTD_NAND=y
437CONFIG_MTD_NAND_VERIFY_WRITE=y
438# CONFIG_MTD_NAND_ECC_SMC is not set
439CONFIG_MTD_NAND_IDS=y
440# CONFIG_MTD_NAND_DISKONCHIP is not set
441# CONFIG_MTD_NAND_BASLER_EXCITE is not set
442# CONFIG_MTD_NAND_CAFE is not set
443# CONFIG_MTD_NAND_NANDSIM is not set
444
445#
446# OneNAND Flash Device Drivers
447#
448# CONFIG_MTD_ONENAND is not set
449
450#
451# Parallel port support
452#
453# CONFIG_PARPORT is not set
454
455#
456# Plug and Play support
457#
458# CONFIG_PNPACPI is not set
459
460#
461# Block devices
462#
463# CONFIG_BLK_CPQ_DA is not set
464# CONFIG_BLK_CPQ_CISS_DA is not set
465# CONFIG_BLK_DEV_DAC960 is not set
466# CONFIG_BLK_DEV_UMEM is not set
467# CONFIG_BLK_DEV_COW_COMMON is not set
468CONFIG_BLK_DEV_LOOP=m
469# CONFIG_BLK_DEV_CRYPTOLOOP is not set
470# CONFIG_BLK_DEV_NBD is not set
471# CONFIG_BLK_DEV_SX8 is not set
472# CONFIG_BLK_DEV_UB is not set
473# CONFIG_BLK_DEV_RAM is not set
474# CONFIG_BLK_DEV_INITRD is not set
475# CONFIG_CDROM_PKTCDVD is not set
476# CONFIG_ATA_OVER_ETH is not set
477
478#
479# Misc devices
480#
481CONFIG_SGI_IOC4=m
482# CONFIG_TIFM_CORE is not set
483
484#
485# ATA/ATAPI/MFM/RLL support
486#
487# CONFIG_IDE is not set
488
489#
490# SCSI device support
491#
492# CONFIG_RAID_ATTRS is not set
493CONFIG_SCSI=y
494CONFIG_SCSI_TGT=m
495# CONFIG_SCSI_NETLINK is not set
496# CONFIG_SCSI_PROC_FS is not set
497
498#
499# SCSI support type (disk, tape, CD-ROM)
500#
501CONFIG_BLK_DEV_SD=y
502# CONFIG_CHR_DEV_ST is not set
503# CONFIG_CHR_DEV_OSST is not set
504# CONFIG_BLK_DEV_SR is not set
505# CONFIG_CHR_DEV_SG is not set
506# CONFIG_CHR_DEV_SCH is not set
507
508#
509# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
510#
511# CONFIG_SCSI_MULTI_LUN is not set
512# CONFIG_SCSI_CONSTANTS is not set
513# CONFIG_SCSI_LOGGING is not set
514CONFIG_SCSI_SCAN_ASYNC=y
515
516#
517# SCSI Transports
518#
519# CONFIG_SCSI_SPI_ATTRS is not set
520# CONFIG_SCSI_FC_ATTRS is not set
521# CONFIG_SCSI_ISCSI_ATTRS is not set
522CONFIG_SCSI_SAS_ATTRS=m
523CONFIG_SCSI_SAS_LIBSAS=m
524# CONFIG_SCSI_SAS_LIBSAS_DEBUG is not set
525
526#
527# SCSI low-level drivers
528#
529# CONFIG_ISCSI_TCP is not set
530# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
531# CONFIG_SCSI_3W_9XXX is not set
532# CONFIG_SCSI_ACARD is not set
533# CONFIG_SCSI_AACRAID is not set
534# CONFIG_SCSI_AIC7XXX is not set
535# CONFIG_SCSI_AIC7XXX_OLD is not set
536# CONFIG_SCSI_AIC79XX is not set
537CONFIG_SCSI_AIC94XX=m
538# CONFIG_AIC94XX_DEBUG is not set
539# CONFIG_SCSI_DPT_I2O is not set
540# CONFIG_SCSI_ARCMSR is not set
541# CONFIG_MEGARAID_NEWGEN is not set
542# CONFIG_MEGARAID_LEGACY is not set
543# CONFIG_MEGARAID_SAS is not set
544# CONFIG_SCSI_HPTIOP is not set
545# CONFIG_SCSI_DMX3191D is not set
546# CONFIG_SCSI_FUTURE_DOMAIN is not set
547# CONFIG_SCSI_IPS is not set
548# CONFIG_SCSI_INITIO is not set
549# CONFIG_SCSI_INIA100 is not set
550# CONFIG_SCSI_STEX is not set
551# CONFIG_SCSI_SYM53C8XX_2 is not set
552# CONFIG_SCSI_QLOGIC_1280 is not set
553# CONFIG_SCSI_QLA_FC is not set
554# CONFIG_SCSI_QLA_ISCSI is not set
555# CONFIG_SCSI_LPFC is not set
556# CONFIG_SCSI_DC395x is not set
557# CONFIG_SCSI_DC390T is not set
558# CONFIG_SCSI_NSP32 is not set
559# CONFIG_SCSI_DEBUG is not set
560# CONFIG_SCSI_SRP is not set
561
562#
563# Serial ATA (prod) and Parallel ATA (experimental) drivers
564#
565# CONFIG_ATA is not set
566
567#
568# Multi-device support (RAID and LVM)
569#
570# CONFIG_MD is not set
571
572#
573# Fusion MPT device support
574#
575# CONFIG_FUSION is not set
576# CONFIG_FUSION_SPI is not set
577# CONFIG_FUSION_FC is not set
578# CONFIG_FUSION_SAS is not set
579
580#
581# IEEE 1394 (FireWire) support
582#
583# CONFIG_IEEE1394 is not set
584
585#
586# I2O device support
587#
588# CONFIG_I2O is not set
589
590#
591# Network device support
592#
593CONFIG_NETDEVICES=y
594# CONFIG_DUMMY is not set
595# CONFIG_BONDING is not set
596# CONFIG_EQUALIZER is not set
597# CONFIG_TUN is not set
598
599#
600# ARCnet devices
601#
602# CONFIG_ARCNET is not set
603
604#
605# PHY device support
606#
607
608#
609# Ethernet (10 or 100Mbit)
610#
611# CONFIG_NET_ETHERNET is not set
612
613#
614# Ethernet (1000 Mbit)
615#
616# CONFIG_ACENIC is not set
617# CONFIG_DL2K is not set
618# CONFIG_E1000 is not set
619# CONFIG_NS83820 is not set
620# CONFIG_HAMACHI is not set
621# CONFIG_YELLOWFIN is not set
622# CONFIG_R8169 is not set
623# CONFIG_SIS190 is not set
624# CONFIG_SKGE is not set
625# CONFIG_SKY2 is not set
626# CONFIG_SK98LIN is not set
627# CONFIG_TIGON3 is not set
628# CONFIG_BNX2 is not set
629CONFIG_QLA3XXX=m
630# CONFIG_ATL1 is not set
631
632#
633# Ethernet (10000 Mbit)
634#
635# CONFIG_CHELSIO_T1 is not set
636CONFIG_CHELSIO_T3=m
637# CONFIG_IXGB is not set
638# CONFIG_S2IO is not set
639# CONFIG_MYRI10GE is not set
640CONFIG_NETXEN_NIC=m
641
642#
643# Token Ring devices
644#
645# CONFIG_TR is not set
646
647#
648# Wireless LAN (non-hamradio)
649#
650# CONFIG_NET_RADIO is not set
651
652#
653# Wan interfaces
654#
655# CONFIG_WAN is not set
656# CONFIG_FDDI is not set
657# CONFIG_HIPPI is not set
658# CONFIG_PPP is not set
659# CONFIG_SLIP is not set
660# CONFIG_NET_FC is not set
661# CONFIG_SHAPER is not set
662# CONFIG_NETCONSOLE is not set
663# CONFIG_NETPOLL is not set
664# CONFIG_NET_POLL_CONTROLLER is not set
665
666#
667# ISDN subsystem
668#
669# CONFIG_ISDN is not set
670
671#
672# Telephony Support
673#
674# CONFIG_PHONE is not set
675
676#
677# Input device support
678#
679CONFIG_INPUT=y
680# CONFIG_INPUT_FF_MEMLESS is not set
681
682#
683# Userland interfaces
684#
685CONFIG_INPUT_MOUSEDEV=m
686CONFIG_INPUT_MOUSEDEV_PSAUX=y
687CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
688CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
689# CONFIG_INPUT_JOYDEV is not set
690# CONFIG_INPUT_TSDEV is not set
691CONFIG_INPUT_EVDEV=m
692# CONFIG_INPUT_EVBUG is not set
693
694#
695# Input Device Drivers
696#
697# CONFIG_INPUT_KEYBOARD is not set
698# CONFIG_INPUT_MOUSE is not set
699# CONFIG_INPUT_JOYSTICK is not set
700# CONFIG_INPUT_TOUCHSCREEN is not set
701# CONFIG_INPUT_MISC is not set
702
703#
704# Hardware I/O ports
705#
706# CONFIG_SERIO is not set
707# CONFIG_GAMEPORT is not set
708
709#
710# Character devices
711#
712CONFIG_VT=y
713CONFIG_VT_CONSOLE=y
714CONFIG_HW_CONSOLE=y
715CONFIG_VT_HW_CONSOLE_BINDING=y
716# CONFIG_SERIAL_NONSTANDARD is not set
717
718#
719# Serial drivers
720#
721CONFIG_SERIAL_8250=y
722CONFIG_SERIAL_8250_CONSOLE=y
723CONFIG_SERIAL_8250_PCI=y
724CONFIG_SERIAL_8250_NR_UARTS=2
725CONFIG_SERIAL_8250_RUNTIME_UARTS=2
726CONFIG_SERIAL_8250_EXTENDED=y
727# CONFIG_SERIAL_8250_MANY_PORTS is not set
728CONFIG_SERIAL_8250_SHARE_IRQ=y
729# CONFIG_SERIAL_8250_DETECT_IRQ is not set
730# CONFIG_SERIAL_8250_RSA is not set
731
732#
733# Non-8250 serial port support
734#
735CONFIG_SERIAL_CORE=y
736CONFIG_SERIAL_CORE_CONSOLE=y
737# CONFIG_SERIAL_JSM is not set
738CONFIG_UNIX98_PTYS=y
739# CONFIG_LEGACY_PTYS is not set
740
741#
742# IPMI
743#
744# CONFIG_IPMI_HANDLER is not set
745
746#
747# Watchdog Cards
748#
749CONFIG_WATCHDOG=y
750# CONFIG_WATCHDOG_NOWAYOUT is not set
751
752#
753# Watchdog Device Drivers
754#
755# CONFIG_SOFT_WATCHDOG is not set
756CONFIG_WDT_RM9K_GPI=m
757
758#
759# PCI-based Watchdog Cards
760#
761# CONFIG_PCIPCWATCHDOG is not set
762# CONFIG_WDTPCI is not set
763
764#
765# USB-based Watchdog Cards
766#
767# CONFIG_USBPCWATCHDOG is not set
768# CONFIG_HW_RANDOM is not set
769# CONFIG_RTC is not set
770# CONFIG_GEN_RTC is not set
771# CONFIG_DTLK is not set
772# CONFIG_R3964 is not set
773# CONFIG_APPLICOM is not set
774# CONFIG_DRM is not set
775# CONFIG_RAW_DRIVER is not set
776
777#
778# TPM devices
779#
780# CONFIG_TCG_TPM is not set
781
782#
783# I2C support
784#
785# CONFIG_I2C is not set
786
787#
788# SPI support
789#
790# CONFIG_SPI is not set
791# CONFIG_SPI_MASTER is not set
792
793#
794# Dallas's 1-wire bus
795#
796# CONFIG_W1 is not set
797
798#
799# Hardware Monitoring support
800#
801# CONFIG_HWMON is not set
802# CONFIG_HWMON_VID is not set
803
804#
805# Multimedia devices
806#
807# CONFIG_VIDEO_DEV is not set
808
809#
810# Digital Video Broadcasting Devices
811#
812# CONFIG_DVB is not set
813# CONFIG_USB_DABUSB is not set
814
815#
816# Graphics support
817#
818# CONFIG_FIRMWARE_EDID is not set
819CONFIG_FB=y
820# CONFIG_FB_CFB_FILLRECT is not set
821# CONFIG_FB_CFB_COPYAREA is not set
822# CONFIG_FB_CFB_IMAGEBLIT is not set
823# CONFIG_FB_SVGALIB is not set
824# CONFIG_FB_MACMODES is not set
825# CONFIG_FB_BACKLIGHT is not set
826# CONFIG_FB_MODE_HELPERS is not set
827# CONFIG_FB_TILEBLITTING is not set
828# CONFIG_FB_CIRRUS is not set
829# CONFIG_FB_PM2 is not set
830# CONFIG_FB_CYBER2000 is not set
831# CONFIG_FB_ASILIANT is not set
832# CONFIG_FB_IMSTT is not set
833# CONFIG_FB_S1D13XXX is not set
834# CONFIG_FB_NVIDIA is not set
835# CONFIG_FB_RIVA is not set
836# CONFIG_FB_MATROX is not set
837# CONFIG_FB_RADEON is not set
838# CONFIG_FB_ATY128 is not set
839# CONFIG_FB_ATY is not set
840# CONFIG_FB_S3 is not set
841# CONFIG_FB_SAVAGE is not set
842# CONFIG_FB_SIS is not set
843# CONFIG_FB_NEOMAGIC is not set
844# CONFIG_FB_KYRO is not set
845# CONFIG_FB_3DFX is not set
846# CONFIG_FB_VOODOO1 is not set
847# CONFIG_FB_SMIVGX is not set
848# CONFIG_FB_TRIDENT is not set
849# CONFIG_FB_VIRTUAL is not set
850
851#
852# Console display driver support
853#
854# CONFIG_VGA_CONSOLE is not set
855CONFIG_DUMMY_CONSOLE=y
856CONFIG_FRAMEBUFFER_CONSOLE=m
857# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
858# CONFIG_FONTS is not set
859CONFIG_FONT_8x8=y
860CONFIG_FONT_8x16=y
861
862#
863# Logo configuration
864#
865# CONFIG_LOGO is not set
866# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
867
868#
869# Sound
870#
871# CONFIG_SOUND is not set
872
873#
874# HID Devices
875#
876CONFIG_HID=y
877# CONFIG_HID_DEBUG is not set
878
879#
880# USB support
881#
882CONFIG_USB_ARCH_HAS_HCD=y
883CONFIG_USB_ARCH_HAS_OHCI=y
884CONFIG_USB_ARCH_HAS_EHCI=y
885CONFIG_USB=y
886# CONFIG_USB_DEBUG is not set
887
888#
889# Miscellaneous USB options
890#
891CONFIG_USB_DEVICEFS=y
892# CONFIG_USB_DYNAMIC_MINORS is not set
893# CONFIG_USB_SUSPEND is not set
894# CONFIG_USB_OTG is not set
895
896#
897# USB Host Controller Drivers
898#
899CONFIG_USB_EHCI_HCD=y
900# CONFIG_USB_EHCI_SPLIT_ISO is not set
901# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
902# CONFIG_USB_EHCI_TT_NEWSCHED is not set
903# CONFIG_USB_EHCI_BIG_ENDIAN_MMIO is not set
904# CONFIG_USB_ISP116X_HCD is not set
905CONFIG_USB_OHCI_HCD=y
906# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
907# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
908CONFIG_USB_OHCI_LITTLE_ENDIAN=y
909# CONFIG_USB_UHCI_HCD is not set
910# CONFIG_USB_SL811_HCD is not set
911
912#
913# USB Device Class drivers
914#
915# CONFIG_USB_ACM is not set
916# CONFIG_USB_PRINTER is not set
917
918#
919# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
920#
921
922#
923# may also be needed; see USB_STORAGE Help for more information
924#
925CONFIG_USB_STORAGE=y
926# CONFIG_USB_STORAGE_DEBUG is not set
927# CONFIG_USB_STORAGE_DATAFAB is not set
928# CONFIG_USB_STORAGE_FREECOM is not set
929# CONFIG_USB_STORAGE_DPCM is not set
930# CONFIG_USB_STORAGE_USBAT is not set
931# CONFIG_USB_STORAGE_SDDR09 is not set
932# CONFIG_USB_STORAGE_SDDR55 is not set
933# CONFIG_USB_STORAGE_JUMPSHOT is not set
934# CONFIG_USB_STORAGE_ALAUDA is not set
935# CONFIG_USB_STORAGE_KARMA is not set
936# CONFIG_USB_LIBUSUAL is not set
937
938#
939# USB Input Devices
940#
941CONFIG_USB_HID=m
942# CONFIG_USB_HIDINPUT_POWERBOOK is not set
943# CONFIG_HID_FF is not set
944# CONFIG_USB_HIDDEV is not set
945
946#
947# USB HID Boot Protocol drivers
948#
949# CONFIG_USB_KBD is not set
950# CONFIG_USB_MOUSE is not set
951# CONFIG_USB_AIPTEK is not set
952# CONFIG_USB_WACOM is not set
953# CONFIG_USB_ACECAD is not set
954# CONFIG_USB_KBTAB is not set
955# CONFIG_USB_POWERMATE is not set
956# CONFIG_USB_TOUCHSCREEN is not set
957# CONFIG_USB_YEALINK is not set
958# CONFIG_USB_XPAD is not set
959# CONFIG_USB_ATI_REMOTE is not set
960# CONFIG_USB_ATI_REMOTE2 is not set
961# CONFIG_USB_KEYSPAN_REMOTE is not set
962# CONFIG_USB_APPLETOUCH is not set
963# CONFIG_USB_GTCO is not set
964
965#
966# USB Imaging devices
967#
968# CONFIG_USB_MDC800 is not set
969# CONFIG_USB_MICROTEK is not set
970
971#
972# USB Network Adapters
973#
974# CONFIG_USB_CATC is not set
975# CONFIG_USB_KAWETH is not set
976# CONFIG_USB_PEGASUS is not set
977# CONFIG_USB_RTL8150 is not set
978# CONFIG_USB_USBNET_MII is not set
979# CONFIG_USB_USBNET is not set
980# CONFIG_USB_MON is not set
981
982#
983# USB port drivers
984#
985
986#
987# USB Serial Converter support
988#
989# CONFIG_USB_SERIAL is not set
990
991#
992# USB Miscellaneous drivers
993#
994# CONFIG_USB_EMI62 is not set
995# CONFIG_USB_EMI26 is not set
996# CONFIG_USB_ADUTUX is not set
997# CONFIG_USB_AUERSWALD is not set
998# CONFIG_USB_RIO500 is not set
999# CONFIG_USB_LEGOTOWER is not set
1000# CONFIG_USB_LCD is not set
1001# CONFIG_USB_BERRY_CHARGE is not set
1002# CONFIG_USB_LED is not set
1003# CONFIG_USB_CYPRESS_CY7C63 is not set
1004# CONFIG_USB_CYTHERM is not set
1005# CONFIG_USB_PHIDGET is not set
1006# CONFIG_USB_IDMOUSE is not set
1007# CONFIG_USB_FTDI_ELAN is not set
1008# CONFIG_USB_APPLEDISPLAY is not set
1009# CONFIG_USB_SISUSBVGA is not set
1010# CONFIG_USB_LD is not set
1011# CONFIG_USB_TRANCEVIBRATOR is not set
1012# CONFIG_USB_TEST is not set
1013
1014#
1015# USB DSL modem support
1016#
1017
1018#
1019# USB Gadget Support
1020#
1021# CONFIG_USB_GADGET is not set
1022
1023#
1024# MMC/SD Card support
1025#
1026# CONFIG_MMC is not set
1027
1028#
1029# LED devices
1030#
1031# CONFIG_NEW_LEDS is not set
1032
1033#
1034# LED drivers
1035#
1036
1037#
1038# LED Triggers
1039#
1040
1041#
1042# InfiniBand support
1043#
1044# CONFIG_INFINIBAND is not set
1045
1046#
1047# EDAC - error detection and reporting (RAS) (EXPERIMENTAL)
1048#
1049
1050#
1051# Real Time Clock
1052#
1053# CONFIG_RTC_CLASS is not set
1054
1055#
1056# DMA Engine support
1057#
1058# CONFIG_DMA_ENGINE is not set
1059
1060#
1061# DMA Clients
1062#
1063
1064#
1065# DMA Devices
1066#
1067
1068#
1069# Auxiliary Display support
1070#
1071
1072#
1073# Virtualization
1074#
1075
1076#
1077# File systems
1078#
1079CONFIG_EXT2_FS=y
1080# CONFIG_EXT2_FS_XATTR is not set
1081# CONFIG_EXT2_FS_XIP is not set
1082# CONFIG_EXT3_FS is not set
1083# CONFIG_EXT4DEV_FS is not set
1084# CONFIG_REISERFS_FS is not set
1085# CONFIG_JFS_FS is not set
1086CONFIG_FS_POSIX_ACL=y
1087# CONFIG_XFS_FS is not set
1088# CONFIG_GFS2_FS is not set
1089# CONFIG_OCFS2_FS is not set
1090# CONFIG_MINIX_FS is not set
1091# CONFIG_ROMFS_FS is not set
1092CONFIG_INOTIFY=y
1093CONFIG_INOTIFY_USER=y
1094# CONFIG_QUOTA is not set
1095# CONFIG_DNOTIFY is not set
1096# CONFIG_AUTOFS_FS is not set
1097# CONFIG_AUTOFS4_FS is not set
1098# CONFIG_FUSE_FS is not set
1099CONFIG_GENERIC_ACL=y
1100
1101#
1102# CD-ROM/DVD Filesystems
1103#
1104# CONFIG_ISO9660_FS is not set
1105# CONFIG_UDF_FS is not set
1106
1107#
1108# DOS/FAT/NT Filesystems
1109#
1110CONFIG_FAT_FS=m
1111CONFIG_MSDOS_FS=m
1112CONFIG_VFAT_FS=m
1113CONFIG_FAT_DEFAULT_CODEPAGE=437
1114CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
1115# CONFIG_NTFS_FS is not set
1116
1117#
1118# Pseudo filesystems
1119#
1120CONFIG_PROC_FS=y
1121CONFIG_PROC_KCORE=y
1122CONFIG_PROC_SYSCTL=y
1123CONFIG_SYSFS=y
1124CONFIG_TMPFS=y
1125CONFIG_TMPFS_POSIX_ACL=y
1126# CONFIG_HUGETLB_PAGE is not set
1127CONFIG_RAMFS=y
1128CONFIG_CONFIGFS_FS=m
1129
1130#
1131# Miscellaneous filesystems
1132#
1133# CONFIG_ADFS_FS is not set
1134# CONFIG_AFFS_FS is not set
1135# CONFIG_HFS_FS is not set
1136# CONFIG_HFSPLUS_FS is not set
1137# CONFIG_BEFS_FS is not set
1138# CONFIG_BFS_FS is not set
1139# CONFIG_EFS_FS is not set
1140CONFIG_JFFS2_FS=y
1141CONFIG_JFFS2_FS_DEBUG=0
1142CONFIG_JFFS2_FS_WRITEBUFFER=y
1143# CONFIG_JFFS2_SUMMARY is not set
1144# CONFIG_JFFS2_FS_XATTR is not set
1145# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
1146CONFIG_JFFS2_ZLIB=y
1147CONFIG_JFFS2_RTIME=y
1148# CONFIG_JFFS2_RUBIN is not set
1149# CONFIG_CRAMFS is not set
1150# CONFIG_VXFS_FS is not set
1151# CONFIG_HPFS_FS is not set
1152# CONFIG_QNX4FS_FS is not set
1153# CONFIG_SYSV_FS is not set
1154# CONFIG_UFS_FS is not set
1155
1156#
1157# Network File Systems
1158#
1159CONFIG_NFS_FS=y
1160CONFIG_NFS_V3=y
1161# CONFIG_NFS_V3_ACL is not set
1162# CONFIG_NFS_V4 is not set
1163# CONFIG_NFS_DIRECTIO is not set
1164# CONFIG_NFSD is not set
1165CONFIG_ROOT_NFS=y
1166CONFIG_LOCKD=y
1167CONFIG_LOCKD_V4=y
1168CONFIG_NFS_COMMON=y
1169CONFIG_SUNRPC=y
1170# CONFIG_RPCSEC_GSS_KRB5 is not set
1171# CONFIG_RPCSEC_GSS_SPKM3 is not set
1172# CONFIG_SMB_FS is not set
1173# CONFIG_CIFS is not set
1174# CONFIG_NCP_FS is not set
1175# CONFIG_CODA_FS is not set
1176# CONFIG_AFS_FS is not set
1177# CONFIG_9P_FS is not set
1178
1179#
1180# Partition Types
1181#
1182CONFIG_PARTITION_ADVANCED=y
1183# CONFIG_ACORN_PARTITION is not set
1184# CONFIG_OSF_PARTITION is not set
1185# CONFIG_AMIGA_PARTITION is not set
1186# CONFIG_ATARI_PARTITION is not set
1187# CONFIG_MAC_PARTITION is not set
1188CONFIG_MSDOS_PARTITION=y
1189# CONFIG_BSD_DISKLABEL is not set
1190# CONFIG_MINIX_SUBPARTITION is not set
1191# CONFIG_SOLARIS_X86_PARTITION is not set
1192# CONFIG_UNIXWARE_DISKLABEL is not set
1193# CONFIG_LDM_PARTITION is not set
1194# CONFIG_SGI_PARTITION is not set
1195# CONFIG_ULTRIX_PARTITION is not set
1196# CONFIG_SUN_PARTITION is not set
1197# CONFIG_KARMA_PARTITION is not set
1198# CONFIG_EFI_PARTITION is not set
1199
1200#
1201# Native Language Support
1202#
1203CONFIG_NLS=y
1204CONFIG_NLS_DEFAULT="iso8859-1"
1205CONFIG_NLS_CODEPAGE_437=m
1206# CONFIG_NLS_CODEPAGE_737 is not set
1207# CONFIG_NLS_CODEPAGE_775 is not set
1208CONFIG_NLS_CODEPAGE_850=m
1209# CONFIG_NLS_CODEPAGE_852 is not set
1210# CONFIG_NLS_CODEPAGE_855 is not set
1211# CONFIG_NLS_CODEPAGE_857 is not set
1212# CONFIG_NLS_CODEPAGE_860 is not set
1213# CONFIG_NLS_CODEPAGE_861 is not set
1214# CONFIG_NLS_CODEPAGE_862 is not set
1215# CONFIG_NLS_CODEPAGE_863 is not set
1216# CONFIG_NLS_CODEPAGE_864 is not set
1217# CONFIG_NLS_CODEPAGE_865 is not set
1218# CONFIG_NLS_CODEPAGE_866 is not set
1219# CONFIG_NLS_CODEPAGE_869 is not set
1220# CONFIG_NLS_CODEPAGE_936 is not set
1221# CONFIG_NLS_CODEPAGE_950 is not set
1222# CONFIG_NLS_CODEPAGE_932 is not set
1223# CONFIG_NLS_CODEPAGE_949 is not set
1224# CONFIG_NLS_CODEPAGE_874 is not set
1225# CONFIG_NLS_ISO8859_8 is not set
1226# CONFIG_NLS_CODEPAGE_1250 is not set
1227# CONFIG_NLS_CODEPAGE_1251 is not set
1228# CONFIG_NLS_ASCII is not set
1229CONFIG_NLS_ISO8859_1=m
1230# CONFIG_NLS_ISO8859_2 is not set
1231# CONFIG_NLS_ISO8859_3 is not set
1232# CONFIG_NLS_ISO8859_4 is not set
1233# CONFIG_NLS_ISO8859_5 is not set
1234# CONFIG_NLS_ISO8859_6 is not set
1235# CONFIG_NLS_ISO8859_7 is not set
1236# CONFIG_NLS_ISO8859_9 is not set
1237# CONFIG_NLS_ISO8859_13 is not set
1238# CONFIG_NLS_ISO8859_14 is not set
1239# CONFIG_NLS_ISO8859_15 is not set
1240# CONFIG_NLS_KOI8_R is not set
1241# CONFIG_NLS_KOI8_U is not set
1242# CONFIG_NLS_UTF8 is not set
1243
1244#
1245# Distributed Lock Manager
1246#
1247CONFIG_DLM=m
1248CONFIG_DLM_TCP=y
1249# CONFIG_DLM_SCTP is not set
1250# CONFIG_DLM_DEBUG is not set
1251
1252#
1253# Profiling support
1254#
1255# CONFIG_PROFILING is not set
1256
1257#
1258# Kernel hacking
1259#
1260CONFIG_TRACE_IRQFLAGS_SUPPORT=y
1261# CONFIG_PRINTK_TIME is not set
1262CONFIG_ENABLE_MUST_CHECK=y
1263# CONFIG_MAGIC_SYSRQ is not set
1264# CONFIG_UNUSED_SYMBOLS is not set
1265# CONFIG_DEBUG_FS is not set
1266# CONFIG_HEADERS_CHECK is not set
1267# CONFIG_DEBUG_KERNEL is not set
1268CONFIG_LOG_BUF_SHIFT=14
1269CONFIG_CROSSCOMPILE=y
1270CONFIG_CMDLINE=""
1271
1272#
1273# Security options
1274#
1275# CONFIG_KEYS is not set
1276# CONFIG_SECURITY is not set
1277
1278#
1279# Cryptographic options
1280#
1281CONFIG_CRYPTO=y
1282CONFIG_CRYPTO_ALGAPI=y
1283CONFIG_CRYPTO_BLKCIPHER=m
1284CONFIG_CRYPTO_HASH=m
1285CONFIG_CRYPTO_MANAGER=m
1286# CONFIG_CRYPTO_HMAC is not set
1287CONFIG_CRYPTO_XCBC=m
1288# CONFIG_CRYPTO_NULL is not set
1289# CONFIG_CRYPTO_MD4 is not set
1290CONFIG_CRYPTO_MD5=y
1291# CONFIG_CRYPTO_SHA1 is not set
1292# CONFIG_CRYPTO_SHA256 is not set
1293# CONFIG_CRYPTO_SHA512 is not set
1294# CONFIG_CRYPTO_WP512 is not set
1295# CONFIG_CRYPTO_TGR192 is not set
1296CONFIG_CRYPTO_GF128MUL=m
1297CONFIG_CRYPTO_ECB=m
1298CONFIG_CRYPTO_CBC=m
1299CONFIG_CRYPTO_PCBC=m
1300CONFIG_CRYPTO_LRW=m
1301# CONFIG_CRYPTO_DES is not set
1302CONFIG_CRYPTO_FCRYPT=m
1303# CONFIG_CRYPTO_BLOWFISH is not set
1304# CONFIG_CRYPTO_TWOFISH is not set
1305# CONFIG_CRYPTO_SERPENT is not set
1306# CONFIG_CRYPTO_AES is not set
1307# CONFIG_CRYPTO_CAST5 is not set
1308# CONFIG_CRYPTO_CAST6 is not set
1309# CONFIG_CRYPTO_TEA is not set
1310# CONFIG_CRYPTO_ARC4 is not set
1311# CONFIG_CRYPTO_KHAZAD is not set
1312# CONFIG_CRYPTO_ANUBIS is not set
1313# CONFIG_CRYPTO_DEFLATE is not set
1314# CONFIG_CRYPTO_MICHAEL_MIC is not set
1315# CONFIG_CRYPTO_CRC32C is not set
1316CONFIG_CRYPTO_CAMELLIA=m
1317# CONFIG_CRYPTO_TEST is not set
1318
1319#
1320# Hardware crypto devices
1321#
1322
1323#
1324# Library routines
1325#
1326CONFIG_BITREVERSE=y
1327# CONFIG_CRC_CCITT is not set
1328# CONFIG_CRC16 is not set
1329CONFIG_CRC32=y
1330# CONFIG_LIBCRC32C is not set
1331CONFIG_ZLIB_INFLATE=y
1332CONFIG_ZLIB_DEFLATE=y
1333CONFIG_PLIST=y
1334CONFIG_HAS_IOMEM=y
1335CONFIG_HAS_IOPORT=y
diff --git a/arch/mips/configs/fuloong2e_defconfig b/arch/mips/configs/fuloong2e_defconfig
index 0197f0de6b3f..a09dd03aa8c8 100644
--- a/arch/mips/configs/fuloong2e_defconfig
+++ b/arch/mips/configs/fuloong2e_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.31-rc1 3# Linux kernel version: 2.6.32-rc4
4# Thu Jul 2 22:37:00 2009 4# Fri Oct 16 13:18:01 2009
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -10,8 +10,8 @@ CONFIG_MIPS=y
10# 10#
11# CONFIG_MACH_ALCHEMY is not set 11# CONFIG_MACH_ALCHEMY is not set
12# CONFIG_AR7 is not set 12# CONFIG_AR7 is not set
13# CONFIG_BASLER_EXCITE is not set
14# CONFIG_BCM47XX is not set 13# CONFIG_BCM47XX is not set
14# CONFIG_BCM63XX is not set
15# CONFIG_MIPS_COBALT is not set 15# CONFIG_MIPS_COBALT is not set
16# CONFIG_MACH_DECSTATION is not set 16# CONFIG_MACH_DECSTATION is not set
17# CONFIG_MACH_JAZZ is not set 17# CONFIG_MACH_JAZZ is not set
@@ -105,6 +105,8 @@ CONFIG_CPU_LOONGSON2E=y
105# CONFIG_CPU_RM9000 is not set 105# CONFIG_CPU_RM9000 is not set
106# CONFIG_CPU_SB1 is not set 106# CONFIG_CPU_SB1 is not set
107# CONFIG_CPU_CAVIUM_OCTEON is not set 107# CONFIG_CPU_CAVIUM_OCTEON is not set
108CONFIG_SYS_SUPPORTS_ZBOOT=y
109CONFIG_SYS_SUPPORTS_ZBOOT_UART16550=y
108CONFIG_CPU_LOONGSON2=y 110CONFIG_CPU_LOONGSON2=y
109CONFIG_SYS_HAS_CPU_LOONGSON2E=y 111CONFIG_SYS_HAS_CPU_LOONGSON2E=y
110CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y 112CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y
@@ -135,12 +137,16 @@ CONFIG_SYS_SUPPORTS_HIGHMEM=y
135CONFIG_ARCH_FLATMEM_ENABLE=y 137CONFIG_ARCH_FLATMEM_ENABLE=y
136CONFIG_ARCH_POPULATES_NODE_MAP=y 138CONFIG_ARCH_POPULATES_NODE_MAP=y
137CONFIG_SELECT_MEMORY_MODEL=y 139CONFIG_SELECT_MEMORY_MODEL=y
138CONFIG_FLATMEM_MANUAL=y 140# CONFIG_FLATMEM_MANUAL is not set
139# CONFIG_DISCONTIGMEM_MANUAL is not set 141# CONFIG_DISCONTIGMEM_MANUAL is not set
140# CONFIG_SPARSEMEM_MANUAL is not set 142CONFIG_SPARSEMEM_MANUAL=y
141CONFIG_FLATMEM=y 143CONFIG_SPARSEMEM=y
142CONFIG_FLAT_NODE_MEM_MAP=y 144CONFIG_HAVE_MEMORY_PRESENT=y
143CONFIG_SPARSEMEM_STATIC=y 145CONFIG_SPARSEMEM_STATIC=y
146
147#
148# Memory hotplug is currently incompatible with Software Suspend
149#
144CONFIG_PAGEFLAGS_EXTENDED=y 150CONFIG_PAGEFLAGS_EXTENDED=y
145CONFIG_SPLIT_PTLOCK_CPUS=4 151CONFIG_SPLIT_PTLOCK_CPUS=4
146CONFIG_PHYS_ADDR_T_64BIT=y 152CONFIG_PHYS_ADDR_T_64BIT=y
@@ -148,6 +154,7 @@ CONFIG_ZONE_DMA_FLAG=0
148CONFIG_VIRT_TO_BUS=y 154CONFIG_VIRT_TO_BUS=y
149CONFIG_HAVE_MLOCK=y 155CONFIG_HAVE_MLOCK=y
150CONFIG_HAVE_MLOCKED_PAGE_BIT=y 156CONFIG_HAVE_MLOCKED_PAGE_BIT=y
157# CONFIG_KSM is not set
151CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 158CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
152CONFIG_TICK_ONESHOT=y 159CONFIG_TICK_ONESHOT=y
153CONFIG_NO_HZ=y 160CONFIG_NO_HZ=y
@@ -180,6 +187,12 @@ CONFIG_BROKEN_ON_SMP=y
180CONFIG_INIT_ENV_ARG_LIMIT=32 187CONFIG_INIT_ENV_ARG_LIMIT=32
181CONFIG_LOCALVERSION="-fuloong2e" 188CONFIG_LOCALVERSION="-fuloong2e"
182# CONFIG_LOCALVERSION_AUTO is not set 189# CONFIG_LOCALVERSION_AUTO is not set
190CONFIG_HAVE_KERNEL_GZIP=y
191CONFIG_HAVE_KERNEL_BZIP2=y
192CONFIG_HAVE_KERNEL_LZMA=y
193CONFIG_KERNEL_GZIP=y
194# CONFIG_KERNEL_BZIP2 is not set
195# CONFIG_KERNEL_LZMA is not set
183CONFIG_SWAP=y 196CONFIG_SWAP=y
184CONFIG_SYSVIPC=y 197CONFIG_SYSVIPC=y
185CONFIG_SYSVIPC_SYSCTL=y 198CONFIG_SYSVIPC_SYSCTL=y
@@ -193,11 +206,12 @@ CONFIG_BSD_PROCESS_ACCT=y
193# 206#
194# RCU Subsystem 207# RCU Subsystem
195# 208#
196CONFIG_CLASSIC_RCU=y 209CONFIG_TREE_RCU=y
197# CONFIG_TREE_RCU is not set 210# CONFIG_TREE_PREEMPT_RCU is not set
198# CONFIG_PREEMPT_RCU is not set 211# CONFIG_RCU_TRACE is not set
212CONFIG_RCU_FANOUT=64
213# CONFIG_RCU_FANOUT_EXACT is not set
199# CONFIG_TREE_RCU_TRACE is not set 214# CONFIG_TREE_RCU_TRACE is not set
200# CONFIG_PREEMPT_RCU_TRACE is not set
201CONFIG_IKCONFIG=y 215CONFIG_IKCONFIG=y
202CONFIG_IKCONFIG_PROC=y 216CONFIG_IKCONFIG_PROC=y
203CONFIG_LOG_BUF_SHIFT=14 217CONFIG_LOG_BUF_SHIFT=14
@@ -235,18 +249,16 @@ CONFIG_SHMEM=y
235CONFIG_AIO=y 249CONFIG_AIO=y
236 250
237# 251#
238# Performance Counters 252# Kernel Performance Events And Counters
239# 253#
240CONFIG_VM_EVENT_COUNTERS=y 254CONFIG_VM_EVENT_COUNTERS=y
241CONFIG_PCI_QUIRKS=y 255CONFIG_PCI_QUIRKS=y
242# CONFIG_STRIP_ASM_SYMS is not set
243# CONFIG_COMPAT_BRK is not set 256# CONFIG_COMPAT_BRK is not set
244CONFIG_SLAB=y 257CONFIG_SLAB=y
245# CONFIG_SLUB is not set 258# CONFIG_SLUB is not set
246# CONFIG_SLOB is not set 259# CONFIG_SLOB is not set
247CONFIG_PROFILING=y 260CONFIG_PROFILING=y
248CONFIG_TRACEPOINTS=y 261CONFIG_TRACEPOINTS=y
249CONFIG_MARKERS=y
250CONFIG_OPROFILE=m 262CONFIG_OPROFILE=m
251CONFIG_HAVE_OPROFILE=y 263CONFIG_HAVE_OPROFILE=y
252CONFIG_HAVE_SYSCALL_WRAPPERS=y 264CONFIG_HAVE_SYSCALL_WRAPPERS=y
@@ -255,8 +267,8 @@ CONFIG_HAVE_SYSCALL_WRAPPERS=y
255# GCOV-based kernel profiling 267# GCOV-based kernel profiling
256# 268#
257# CONFIG_GCOV_KERNEL is not set 269# CONFIG_GCOV_KERNEL is not set
258# CONFIG_SLOW_WORK is not set 270CONFIG_SLOW_WORK=y
259# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set 271CONFIG_HAVE_GENERIC_DMA_COHERENT=y
260CONFIG_SLABINFO=y 272CONFIG_SLABINFO=y
261CONFIG_RT_MUTEXES=y 273CONFIG_RT_MUTEXES=y
262CONFIG_BASE_SMALL=0 274CONFIG_BASE_SMALL=0
@@ -283,7 +295,7 @@ CONFIG_IOSCHED_CFQ=y
283CONFIG_DEFAULT_CFQ=y 295CONFIG_DEFAULT_CFQ=y
284# CONFIG_DEFAULT_NOOP is not set 296# CONFIG_DEFAULT_NOOP is not set
285CONFIG_DEFAULT_IOSCHED="cfq" 297CONFIG_DEFAULT_IOSCHED="cfq"
286# CONFIG_FREEZER is not set 298CONFIG_FREEZER=y
287 299
288# 300#
289# Bus options (PCI, PCMCIA, EISA, ISA, TC) 301# Bus options (PCI, PCMCIA, EISA, ISA, TC)
@@ -321,9 +333,14 @@ CONFIG_ARCH_HIBERNATION_POSSIBLE=y
321CONFIG_ARCH_SUSPEND_POSSIBLE=y 333CONFIG_ARCH_SUSPEND_POSSIBLE=y
322CONFIG_PM=y 334CONFIG_PM=y
323# CONFIG_PM_DEBUG is not set 335# CONFIG_PM_DEBUG is not set
336CONFIG_PM_SLEEP=y
324# CONFIG_SUSPEND is not set 337# CONFIG_SUSPEND is not set
325# CONFIG_HIBERNATION is not set 338CONFIG_HIBERNATION_NVS=y
339CONFIG_HIBERNATION=y
340CONFIG_PM_STD_PARTITION="/dev/hda3"
341# CONFIG_PM_RUNTIME is not set
326CONFIG_NET=y 342CONFIG_NET=y
343CONFIG_COMPAT_NETLINK_MESSAGES=y
327 344
328# 345#
329# Networking options 346# Networking options
@@ -442,6 +459,7 @@ CONFIG_IP_NF_ARPFILTER=m
442CONFIG_IP_NF_ARP_MANGLE=m 459CONFIG_IP_NF_ARP_MANGLE=m
443# CONFIG_IP_DCCP is not set 460# CONFIG_IP_DCCP is not set
444# CONFIG_IP_SCTP is not set 461# CONFIG_IP_SCTP is not set
462# CONFIG_RDS is not set
445# CONFIG_TIPC is not set 463# CONFIG_TIPC is not set
446# CONFIG_ATM is not set 464# CONFIG_ATM is not set
447# CONFIG_BRIDGE is not set 465# CONFIG_BRIDGE is not set
@@ -473,6 +491,7 @@ CONFIG_NET_CLS_ROUTE=y
473# CONFIG_AF_RXRPC is not set 491# CONFIG_AF_RXRPC is not set
474CONFIG_WIRELESS=y 492CONFIG_WIRELESS=y
475# CONFIG_CFG80211 is not set 493# CONFIG_CFG80211 is not set
494CONFIG_CFG80211_DEFAULT_PS_VALUE=0
476CONFIG_WIRELESS_OLD_REGULATORY=y 495CONFIG_WIRELESS_OLD_REGULATORY=y
477CONFIG_WIRELESS_EXT=y 496CONFIG_WIRELESS_EXT=y
478CONFIG_WIRELESS_EXT_SYSFS=y 497CONFIG_WIRELESS_EXT_SYSFS=y
@@ -481,7 +500,6 @@ CONFIG_WIRELESS_EXT_SYSFS=y
481# 500#
482# CFG80211 needs to be enabled for MAC80211 501# CFG80211 needs to be enabled for MAC80211
483# 502#
484CONFIG_MAC80211_DEFAULT_PS_VALUE=0
485# CONFIG_WIMAX is not set 503# CONFIG_WIMAX is not set
486# CONFIG_RFKILL is not set 504# CONFIG_RFKILL is not set
487CONFIG_NET_9P=m 505CONFIG_NET_9P=m
@@ -495,6 +513,7 @@ CONFIG_NET_9P=m
495# Generic Driver Options 513# Generic Driver Options
496# 514#
497CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 515CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
516# CONFIG_DEVTMPFS is not set
498CONFIG_STANDALONE=y 517CONFIG_STANDALONE=y
499CONFIG_PREVENT_FIRMWARE_BUILD=y 518CONFIG_PREVENT_FIRMWARE_BUILD=y
500CONFIG_FW_LOADER=m 519CONFIG_FW_LOADER=m
@@ -504,9 +523,9 @@ CONFIG_EXTRA_FIRMWARE=""
504# CONFIG_CONNECTOR is not set 523# CONFIG_CONNECTOR is not set
505CONFIG_MTD=m 524CONFIG_MTD=m
506# CONFIG_MTD_DEBUG is not set 525# CONFIG_MTD_DEBUG is not set
526# CONFIG_MTD_TESTS is not set
507# CONFIG_MTD_CONCAT is not set 527# CONFIG_MTD_CONCAT is not set
508# CONFIG_MTD_PARTITIONS is not set 528# CONFIG_MTD_PARTITIONS is not set
509# CONFIG_MTD_TESTS is not set
510 529
511# 530#
512# User Modules And Translation Layers 531# User Modules And Translation Layers
@@ -820,6 +839,7 @@ CONFIG_8139TOO=y
820# CONFIG_SUNDANCE is not set 839# CONFIG_SUNDANCE is not set
821# CONFIG_TLAN is not set 840# CONFIG_TLAN is not set
822# CONFIG_KS8842 is not set 841# CONFIG_KS8842 is not set
842# CONFIG_KS8851_MLL is not set
823# CONFIG_VIA_RHINE is not set 843# CONFIG_VIA_RHINE is not set
824# CONFIG_SC92031 is not set 844# CONFIG_SC92031 is not set
825# CONFIG_ATL2 is not set 845# CONFIG_ATL2 is not set
@@ -867,10 +887,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
867# CONFIG_SFC is not set 887# CONFIG_SFC is not set
868# CONFIG_BE2NET is not set 888# CONFIG_BE2NET is not set
869# CONFIG_TR is not set 889# CONFIG_TR is not set
870 890CONFIG_WLAN=y
871#
872# Wireless LAN
873#
874# CONFIG_WLAN_PRE80211 is not set 891# CONFIG_WLAN_PRE80211 is not set
875# CONFIG_WLAN_80211 is not set 892# CONFIG_WLAN_80211 is not set
876 893
@@ -886,6 +903,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y
886# CONFIG_USB_PEGASUS is not set 903# CONFIG_USB_PEGASUS is not set
887# CONFIG_USB_RTL8150 is not set 904# CONFIG_USB_RTL8150 is not set
888# CONFIG_USB_USBNET is not set 905# CONFIG_USB_USBNET is not set
906# CONFIG_USB_CDC_PHONET is not set
889# CONFIG_WAN is not set 907# CONFIG_WAN is not set
890# CONFIG_FDDI is not set 908# CONFIG_FDDI is not set
891# CONFIG_HIPPI is not set 909# CONFIG_HIPPI is not set
@@ -933,12 +951,16 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
933# Input Device Drivers 951# Input Device Drivers
934# 952#
935CONFIG_INPUT_KEYBOARD=y 953CONFIG_INPUT_KEYBOARD=y
954# CONFIG_KEYBOARD_ADP5588 is not set
936CONFIG_KEYBOARD_ATKBD=y 955CONFIG_KEYBOARD_ATKBD=y
937# CONFIG_KEYBOARD_SUNKBD is not set 956# CONFIG_QT2160 is not set
938# CONFIG_KEYBOARD_LKKBD is not set 957# CONFIG_KEYBOARD_LKKBD is not set
939# CONFIG_KEYBOARD_XTKBD is not set 958# CONFIG_KEYBOARD_MAX7359 is not set
940# CONFIG_KEYBOARD_NEWTON is not set 959# CONFIG_KEYBOARD_NEWTON is not set
960# CONFIG_KEYBOARD_OPENCORES is not set
941# CONFIG_KEYBOARD_STOWAWAY is not set 961# CONFIG_KEYBOARD_STOWAWAY is not set
962# CONFIG_KEYBOARD_SUNKBD is not set
963# CONFIG_KEYBOARD_XTKBD is not set
942CONFIG_INPUT_MOUSE=y 964CONFIG_INPUT_MOUSE=y
943CONFIG_MOUSE_PS2=y 965CONFIG_MOUSE_PS2=y
944CONFIG_MOUSE_PS2_ALPS=y 966CONFIG_MOUSE_PS2_ALPS=y
@@ -946,6 +968,7 @@ CONFIG_MOUSE_PS2_LOGIPS2PP=y
946CONFIG_MOUSE_PS2_SYNAPTICS=y 968CONFIG_MOUSE_PS2_SYNAPTICS=y
947CONFIG_MOUSE_PS2_TRACKPOINT=y 969CONFIG_MOUSE_PS2_TRACKPOINT=y
948# CONFIG_MOUSE_PS2_ELANTECH is not set 970# CONFIG_MOUSE_PS2_ELANTECH is not set
971# CONFIG_MOUSE_PS2_SENTELIC is not set
949# CONFIG_MOUSE_PS2_TOUCHKIT is not set 972# CONFIG_MOUSE_PS2_TOUCHKIT is not set
950CONFIG_MOUSE_SERIAL=y 973CONFIG_MOUSE_SERIAL=y
951# CONFIG_MOUSE_APPLETOUCH is not set 974# CONFIG_MOUSE_APPLETOUCH is not set
@@ -1015,6 +1038,7 @@ CONFIG_RTC=y
1015CONFIG_DEVPORT=y 1038CONFIG_DEVPORT=y
1016CONFIG_I2C=m 1039CONFIG_I2C=m
1017CONFIG_I2C_BOARDINFO=y 1040CONFIG_I2C_BOARDINFO=y
1041CONFIG_I2C_COMPAT=y
1018CONFIG_I2C_CHARDEV=m 1042CONFIG_I2C_CHARDEV=m
1019CONFIG_I2C_HELPER_AUTO=y 1043CONFIG_I2C_HELPER_AUTO=y
1020 1044
@@ -1070,9 +1094,6 @@ CONFIG_I2C_VIAPRO=m
1070# Miscellaneous I2C Chip support 1094# Miscellaneous I2C Chip support
1071# 1095#
1072# CONFIG_DS1682 is not set 1096# CONFIG_DS1682 is not set
1073# CONFIG_SENSORS_PCF8574 is not set
1074# CONFIG_PCF8575 is not set
1075# CONFIG_SENSORS_PCA9539 is not set
1076# CONFIG_SENSORS_TSL2550 is not set 1097# CONFIG_SENSORS_TSL2550 is not set
1077# CONFIG_I2C_DEBUG_CORE is not set 1098# CONFIG_I2C_DEBUG_CORE is not set
1078# CONFIG_I2C_DEBUG_ALGO is not set 1099# CONFIG_I2C_DEBUG_ALGO is not set
@@ -1088,7 +1109,6 @@ CONFIG_I2C_VIAPRO=m
1088# CONFIG_POWER_SUPPLY is not set 1109# CONFIG_POWER_SUPPLY is not set
1089# CONFIG_HWMON is not set 1110# CONFIG_HWMON is not set
1090# CONFIG_THERMAL is not set 1111# CONFIG_THERMAL is not set
1091# CONFIG_THERMAL_HWMON is not set
1092# CONFIG_WATCHDOG is not set 1112# CONFIG_WATCHDOG is not set
1093CONFIG_SSB_POSSIBLE=y 1113CONFIG_SSB_POSSIBLE=y
1094 1114
@@ -1105,6 +1125,7 @@ CONFIG_SSB_POSSIBLE=y
1105# CONFIG_HTC_PASIC3 is not set 1125# CONFIG_HTC_PASIC3 is not set
1106# CONFIG_MFD_TMIO is not set 1126# CONFIG_MFD_TMIO is not set
1107# CONFIG_MFD_WM8400 is not set 1127# CONFIG_MFD_WM8400 is not set
1128# CONFIG_MFD_WM831X is not set
1108# CONFIG_MFD_WM8350_I2C is not set 1129# CONFIG_MFD_WM8350_I2C is not set
1109# CONFIG_MFD_PCF50633 is not set 1130# CONFIG_MFD_PCF50633 is not set
1110# CONFIG_AB3100_CORE is not set 1131# CONFIG_AB3100_CORE is not set
@@ -1114,6 +1135,7 @@ CONFIG_SSB_POSSIBLE=y
1114# 1135#
1115# Graphics support 1136# Graphics support
1116# 1137#
1138CONFIG_VGA_ARB=y
1117# CONFIG_DRM is not set 1139# CONFIG_DRM is not set
1118# CONFIG_VGASTATE is not set 1140# CONFIG_VGASTATE is not set
1119CONFIG_VIDEO_OUTPUT_CONTROL=m 1141CONFIG_VIDEO_OUTPUT_CONTROL=m
@@ -1198,6 +1220,7 @@ CONFIG_FONT_8x16=y
1198# CONFIG_LOGO is not set 1220# CONFIG_LOGO is not set
1199CONFIG_SOUND=y 1221CONFIG_SOUND=y
1200CONFIG_SOUND_OSS_CORE=y 1222CONFIG_SOUND_OSS_CORE=y
1223CONFIG_SOUND_OSS_CORE_PRECLAIM=y
1201CONFIG_SND=m 1224CONFIG_SND=m
1202CONFIG_SND_TIMER=m 1225CONFIG_SND_TIMER=m
1203CONFIG_SND_PCM=m 1226CONFIG_SND_PCM=m
@@ -1304,7 +1327,6 @@ CONFIG_SND_USB=y
1304CONFIG_AC97_BUS=m 1327CONFIG_AC97_BUS=m
1305CONFIG_HID_SUPPORT=y 1328CONFIG_HID_SUPPORT=y
1306CONFIG_HID=y 1329CONFIG_HID=y
1307# CONFIG_HID_DEBUG is not set
1308CONFIG_HIDRAW=y 1330CONFIG_HIDRAW=y
1309 1331
1310# 1332#
@@ -1356,6 +1378,7 @@ CONFIG_USB_EHCI_TT_NEWSCHED=y
1356# CONFIG_USB_OXU210HP_HCD is not set 1378# CONFIG_USB_OXU210HP_HCD is not set
1357# CONFIG_USB_ISP116X_HCD is not set 1379# CONFIG_USB_ISP116X_HCD is not set
1358CONFIG_USB_ISP1760_HCD=m 1380CONFIG_USB_ISP1760_HCD=m
1381# CONFIG_USB_ISP1362_HCD is not set
1359CONFIG_USB_OHCI_HCD=y 1382CONFIG_USB_OHCI_HCD=y
1360# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set 1383# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
1361# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set 1384# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
@@ -1453,6 +1476,7 @@ CONFIG_UIO_CIF=m
1453# CONFIG_UIO_SMX is not set 1476# CONFIG_UIO_SMX is not set
1454# CONFIG_UIO_AEC is not set 1477# CONFIG_UIO_AEC is not set
1455# CONFIG_UIO_SERCOS3 is not set 1478# CONFIG_UIO_SERCOS3 is not set
1479# CONFIG_UIO_PCI_GENERIC is not set
1456 1480
1457# 1481#
1458# TI VLYNQ 1482# TI VLYNQ
@@ -1469,10 +1493,10 @@ CONFIG_EXT3_FS=y
1469# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set 1493# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
1470# CONFIG_EXT3_FS_XATTR is not set 1494# CONFIG_EXT3_FS_XATTR is not set
1471CONFIG_EXT4_FS=m 1495CONFIG_EXT4_FS=m
1472CONFIG_EXT4DEV_COMPAT=y
1473CONFIG_EXT4_FS_XATTR=y 1496CONFIG_EXT4_FS_XATTR=y
1474CONFIG_EXT4_FS_POSIX_ACL=y 1497CONFIG_EXT4_FS_POSIX_ACL=y
1475CONFIG_EXT4_FS_SECURITY=y 1498CONFIG_EXT4_FS_SECURITY=y
1499# CONFIG_EXT4_DEBUG is not set
1476CONFIG_FS_XIP=y 1500CONFIG_FS_XIP=y
1477CONFIG_JBD=y 1501CONFIG_JBD=y
1478# CONFIG_JBD_DEBUG is not set 1502# CONFIG_JBD_DEBUG is not set
@@ -1489,6 +1513,7 @@ CONFIG_FS_POSIX_ACL=y
1489# CONFIG_GFS2_FS is not set 1513# CONFIG_GFS2_FS is not set
1490# CONFIG_OCFS2_FS is not set 1514# CONFIG_OCFS2_FS is not set
1491# CONFIG_BTRFS_FS is not set 1515# CONFIG_BTRFS_FS is not set
1516# CONFIG_NILFS2_FS is not set
1492CONFIG_FILE_LOCKING=y 1517CONFIG_FILE_LOCKING=y
1493CONFIG_FSNOTIFY=y 1518CONFIG_FSNOTIFY=y
1494CONFIG_DNOTIFY=y 1519CONFIG_DNOTIFY=y
@@ -1557,7 +1582,6 @@ CONFIG_OMFS_FS=m
1557# CONFIG_ROMFS_FS is not set 1582# CONFIG_ROMFS_FS is not set
1558# CONFIG_SYSV_FS is not set 1583# CONFIG_SYSV_FS is not set
1559# CONFIG_UFS_FS is not set 1584# CONFIG_UFS_FS is not set
1560# CONFIG_NILFS2_FS is not set
1561CONFIG_NETWORK_FILESYSTEMS=y 1585CONFIG_NETWORK_FILESYSTEMS=y
1562CONFIG_NFS_FS=m 1586CONFIG_NFS_FS=m
1563CONFIG_NFS_V3=y 1587CONFIG_NFS_V3=y
@@ -1666,6 +1690,7 @@ CONFIG_ENABLE_WARN_DEPRECATED=y
1666# CONFIG_ENABLE_MUST_CHECK is not set 1690# CONFIG_ENABLE_MUST_CHECK is not set
1667CONFIG_FRAME_WARN=2048 1691CONFIG_FRAME_WARN=2048
1668# CONFIG_MAGIC_SYSRQ is not set 1692# CONFIG_MAGIC_SYSRQ is not set
1693# CONFIG_STRIP_ASM_SYMS is not set
1669# CONFIG_UNUSED_SYMBOLS is not set 1694# CONFIG_UNUSED_SYMBOLS is not set
1670CONFIG_DEBUG_FS=y 1695CONFIG_DEBUG_FS=y
1671# CONFIG_HEADERS_CHECK is not set 1696# CONFIG_HEADERS_CHECK is not set
@@ -1678,13 +1703,14 @@ CONFIG_NOP_TRACER=y
1678CONFIG_RING_BUFFER=y 1703CONFIG_RING_BUFFER=y
1679CONFIG_EVENT_TRACING=y 1704CONFIG_EVENT_TRACING=y
1680CONFIG_CONTEXT_SWITCH_TRACER=y 1705CONFIG_CONTEXT_SWITCH_TRACER=y
1706CONFIG_RING_BUFFER_ALLOW_SWAP=y
1681CONFIG_TRACING=y 1707CONFIG_TRACING=y
1682CONFIG_TRACING_SUPPORT=y 1708CONFIG_TRACING_SUPPORT=y
1683# CONFIG_FTRACE is not set 1709# CONFIG_FTRACE is not set
1684# CONFIG_DYNAMIC_DEBUG is not set 1710# CONFIG_DYNAMIC_DEBUG is not set
1685# CONFIG_SAMPLES is not set 1711# CONFIG_SAMPLES is not set
1686CONFIG_HAVE_ARCH_KGDB=y 1712CONFIG_HAVE_ARCH_KGDB=y
1687CONFIG_CMDLINE="" 1713# CONFIG_CMDLINE_BOOL is not set
1688 1714
1689# 1715#
1690# Security options 1716# Security options
@@ -1742,11 +1768,13 @@ CONFIG_CRYPTO_XTS=m
1742# 1768#
1743CONFIG_CRYPTO_HMAC=y 1769CONFIG_CRYPTO_HMAC=y
1744# CONFIG_CRYPTO_XCBC is not set 1770# CONFIG_CRYPTO_XCBC is not set
1771# CONFIG_CRYPTO_VMAC is not set
1745 1772
1746# 1773#
1747# Digest 1774# Digest
1748# 1775#
1749# CONFIG_CRYPTO_CRC32C is not set 1776# CONFIG_CRYPTO_CRC32C is not set
1777CONFIG_CRYPTO_GHASH=m
1750# CONFIG_CRYPTO_MD4 is not set 1778# CONFIG_CRYPTO_MD4 is not set
1751CONFIG_CRYPTO_MD5=m 1779CONFIG_CRYPTO_MD5=m
1752# CONFIG_CRYPTO_MICHAEL_MIC is not set 1780# CONFIG_CRYPTO_MICHAEL_MIC is not set
diff --git a/arch/mips/configs/ip22_defconfig b/arch/mips/configs/ip22_defconfig
index f14d38ba6034..222d7eca2fe4 100644
--- a/arch/mips/configs/ip22_defconfig
+++ b/arch/mips/configs/ip22_defconfig
@@ -9,7 +9,6 @@ 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_BASLER_EXCITE is not set
13# CONFIG_BCM47XX is not set 12# CONFIG_BCM47XX is not set
14# CONFIG_MIPS_COBALT is not set 13# CONFIG_MIPS_COBALT is not set
15# CONFIG_MACH_DECSTATION is not set 14# CONFIG_MACH_DECSTATION is not set
@@ -1188,7 +1187,7 @@ CONFIG_DEBUG_MEMORY_INIT=y
1188CONFIG_DYNAMIC_PRINTK_DEBUG=y 1187CONFIG_DYNAMIC_PRINTK_DEBUG=y
1189# CONFIG_SAMPLES is not set 1188# CONFIG_SAMPLES is not set
1190CONFIG_HAVE_ARCH_KGDB=y 1189CONFIG_HAVE_ARCH_KGDB=y
1191CONFIG_CMDLINE="" 1190# CONFIG_CMDLINE_BOOL is not set
1192 1191
1193# 1192#
1194# Security options 1193# Security options
diff --git a/arch/mips/configs/ip27_defconfig b/arch/mips/configs/ip27_defconfig
index 1fc73aa7b509..84b6503f10b9 100644
--- a/arch/mips/configs/ip27_defconfig
+++ b/arch/mips/configs/ip27_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.23-rc2 3# Linux kernel version: 2.6.33-rc6
4# Tue Aug 7 13:04:24 2007 4# Wed Feb 3 18:12:31 2010
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -9,21 +9,28 @@ 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_BASLER_EXCITE is not set 12# CONFIG_AR7 is not set
13# CONFIG_BCM47XX is not set
14# CONFIG_BCM63XX is not set
13# CONFIG_MIPS_COBALT is not set 15# CONFIG_MIPS_COBALT is not set
14# CONFIG_MACH_DECSTATION is not set 16# CONFIG_MACH_DECSTATION is not set
15# CONFIG_MACH_JAZZ is not set 17# CONFIG_MACH_JAZZ is not set
16# CONFIG_LEMOTE_FULONG is not set 18# CONFIG_LASAT is not set
19# CONFIG_MACH_LOONGSON is not set
17# CONFIG_MIPS_MALTA is not set 20# CONFIG_MIPS_MALTA is not set
18# CONFIG_MIPS_SIM is not set 21# CONFIG_MIPS_SIM is not set
19# CONFIG_MARKEINS is not set 22# CONFIG_NEC_MARKEINS is not set
20# CONFIG_MACH_VR41XX is not set 23# CONFIG_MACH_VR41XX is not set
24# CONFIG_NXP_STB220 is not set
25# CONFIG_NXP_STB225 is not set
21# CONFIG_PNX8550_JBS is not set 26# CONFIG_PNX8550_JBS is not set
22# CONFIG_PNX8550_STB810 is not set 27# CONFIG_PNX8550_STB810 is not set
23# CONFIG_PMC_MSP is not set 28# CONFIG_PMC_MSP is not set
24# CONFIG_PMC_YOSEMITE is not set 29# CONFIG_PMC_YOSEMITE is not set
30# CONFIG_POWERTV is not set
25# CONFIG_SGI_IP22 is not set 31# CONFIG_SGI_IP22 is not set
26CONFIG_SGI_IP27=y 32CONFIG_SGI_IP27=y
33# CONFIG_SGI_IP28 is not set
27# CONFIG_SGI_IP32 is not set 34# CONFIG_SGI_IP32 is not set
28# CONFIG_SIBYTE_CRHINE is not set 35# CONFIG_SIBYTE_CRHINE is not set
29# CONFIG_SIBYTE_CARMEL is not set 36# CONFIG_SIBYTE_CARMEL is not set
@@ -34,32 +41,39 @@ CONFIG_SGI_IP27=y
34# CONFIG_SIBYTE_SENTOSA is not set 41# CONFIG_SIBYTE_SENTOSA is not set
35# CONFIG_SIBYTE_BIGSUR is not set 42# CONFIG_SIBYTE_BIGSUR is not set
36# CONFIG_SNI_RM is not set 43# CONFIG_SNI_RM is not set
37# CONFIG_TOSHIBA_JMR3927 is not set 44# CONFIG_MACH_TX39XX is not set
38# CONFIG_TOSHIBA_RBTX4927 is not set 45# CONFIG_MACH_TX49XX is not set
39# CONFIG_TOSHIBA_RBTX4938 is not set 46# CONFIG_MIKROTIK_RB532 is not set
40# CONFIG_WR_PPMC is not set 47# CONFIG_WR_PPMC is not set
48# CONFIG_CAVIUM_OCTEON_SIMULATOR is not set
49# CONFIG_CAVIUM_OCTEON_REFERENCE_BOARD is not set
50# CONFIG_ALCHEMY_GPIO_INDIRECT is not set
41CONFIG_SGI_SN_M_MODE=y 51CONFIG_SGI_SN_M_MODE=y
42# CONFIG_SGI_SN_N_MODE is not set 52# CONFIG_SGI_SN_N_MODE is not set
43# CONFIG_MAPPED_KERNEL is not set 53# CONFIG_MAPPED_KERNEL is not set
44# CONFIG_REPLICATE_KTEXT is not set 54# CONFIG_REPLICATE_KTEXT is not set
45# CONFIG_REPLICATE_EXHANDLERS is not set 55# CONFIG_REPLICATE_EXHANDLERS is not set
56CONFIG_LOONGSON_UART_BASE=y
46CONFIG_RWSEM_GENERIC_SPINLOCK=y 57CONFIG_RWSEM_GENERIC_SPINLOCK=y
47# CONFIG_ARCH_HAS_ILOG2_U32 is not set 58# CONFIG_ARCH_HAS_ILOG2_U32 is not set
48# CONFIG_ARCH_HAS_ILOG2_U64 is not set 59# CONFIG_ARCH_HAS_ILOG2_U64 is not set
60CONFIG_ARCH_SUPPORTS_OPROFILE=y
49CONFIG_GENERIC_FIND_NEXT_BIT=y 61CONFIG_GENERIC_FIND_NEXT_BIT=y
50CONFIG_GENERIC_HWEIGHT=y 62CONFIG_GENERIC_HWEIGHT=y
51CONFIG_GENERIC_CALIBRATE_DELAY=y 63CONFIG_GENERIC_CALIBRATE_DELAY=y
64CONFIG_GENERIC_CLOCKEVENTS=y
52CONFIG_GENERIC_TIME=y 65CONFIG_GENERIC_TIME=y
53CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 66CONFIG_GENERIC_CMOS_UPDATE=y
67CONFIG_SCHED_OMIT_FRAME_POINTER=y
54CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y 68CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
55CONFIG_ARC=y 69CONFIG_ARC=y
56CONFIG_DMA_COHERENT=y 70CONFIG_DMA_COHERENT=y
57CONFIG_EARLY_PRINTK=y
58CONFIG_SYS_HAS_EARLY_PRINTK=y 71CONFIG_SYS_HAS_EARLY_PRINTK=y
59# CONFIG_NO_IOPORT is not set 72# CONFIG_NO_IOPORT is not set
60CONFIG_CPU_BIG_ENDIAN=y 73CONFIG_CPU_BIG_ENDIAN=y
61# CONFIG_CPU_LITTLE_ENDIAN is not set 74# CONFIG_CPU_LITTLE_ENDIAN is not set
62CONFIG_SYS_SUPPORTS_BIG_ENDIAN=y 75CONFIG_SYS_SUPPORTS_BIG_ENDIAN=y
76CONFIG_DEFAULT_SGI_PARTITION=y
63CONFIG_MIPS_L1_CACHE_SHIFT=7 77CONFIG_MIPS_L1_CACHE_SHIFT=7
64CONFIG_ARC64=y 78CONFIG_ARC64=y
65CONFIG_BOOT_ELF64=y 79CONFIG_BOOT_ELF64=y
@@ -67,7 +81,8 @@ CONFIG_BOOT_ELF64=y
67# 81#
68# CPU selection 82# CPU selection
69# 83#
70# CONFIG_CPU_LOONGSON2 is not set 84# CONFIG_CPU_LOONGSON2E is not set
85# CONFIG_CPU_LOONGSON2F is not set
71# CONFIG_CPU_MIPS32_R1 is not set 86# CONFIG_CPU_MIPS32_R1 is not set
72# CONFIG_CPU_MIPS32_R2 is not set 87# CONFIG_CPU_MIPS32_R2 is not set
73# CONFIG_CPU_MIPS64_R1 is not set 88# CONFIG_CPU_MIPS64_R1 is not set
@@ -80,6 +95,7 @@ CONFIG_BOOT_ELF64=y
80# CONFIG_CPU_TX49XX is not set 95# CONFIG_CPU_TX49XX is not set
81# CONFIG_CPU_R5000 is not set 96# CONFIG_CPU_R5000 is not set
82# CONFIG_CPU_R5432 is not set 97# CONFIG_CPU_R5432 is not set
98# CONFIG_CPU_R5500 is not set
83# CONFIG_CPU_R6000 is not set 99# CONFIG_CPU_R6000 is not set
84# CONFIG_CPU_NEVADA is not set 100# CONFIG_CPU_NEVADA is not set
85# CONFIG_CPU_R8000 is not set 101# CONFIG_CPU_R8000 is not set
@@ -87,6 +103,7 @@ CONFIG_CPU_R10000=y
87# CONFIG_CPU_RM7000 is not set 103# CONFIG_CPU_RM7000 is not set
88# CONFIG_CPU_RM9000 is not set 104# CONFIG_CPU_RM9000 is not set
89# CONFIG_CPU_SB1 is not set 105# CONFIG_CPU_SB1 is not set
106# CONFIG_CPU_CAVIUM_OCTEON is not set
90CONFIG_SYS_HAS_CPU_R10000=y 107CONFIG_SYS_HAS_CPU_R10000=y
91CONFIG_SYS_SUPPORTS_64BIT_KERNEL=y 108CONFIG_SYS_SUPPORTS_64BIT_KERNEL=y
92CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y 109CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y
@@ -100,6 +117,7 @@ CONFIG_64BIT=y
100CONFIG_PAGE_SIZE_4KB=y 117CONFIG_PAGE_SIZE_4KB=y
101# CONFIG_PAGE_SIZE_8KB is not set 118# CONFIG_PAGE_SIZE_8KB is not set
102# CONFIG_PAGE_SIZE_16KB is not set 119# CONFIG_PAGE_SIZE_16KB is not set
120# CONFIG_PAGE_SIZE_32KB is not set
103# CONFIG_PAGE_SIZE_64KB is not set 121# CONFIG_PAGE_SIZE_64KB is not set
104CONFIG_CPU_HAS_PREFETCH=y 122CONFIG_CPU_HAS_PREFETCH=y
105CONFIG_MIPS_MT_DISABLED=y 123CONFIG_MIPS_MT_DISABLED=y
@@ -111,6 +129,7 @@ CONFIG_GENERIC_IRQ_PROBE=y
111CONFIG_IRQ_PER_CPU=y 129CONFIG_IRQ_PER_CPU=y
112CONFIG_CPU_SUPPORTS_HIGHMEM=y 130CONFIG_CPU_SUPPORTS_HIGHMEM=y
113CONFIG_ARCH_DISCONTIGMEM_ENABLE=y 131CONFIG_ARCH_DISCONTIGMEM_ENABLE=y
132CONFIG_ARCH_POPULATES_NODE_MAP=y
114CONFIG_NUMA=y 133CONFIG_NUMA=y
115CONFIG_SYS_SUPPORTS_NUMA=y 134CONFIG_SYS_SUPPORTS_NUMA=y
116CONFIG_NODES_SHIFT=6 135CONFIG_NODES_SHIFT=6
@@ -121,16 +140,22 @@ CONFIG_DISCONTIGMEM_MANUAL=y
121CONFIG_DISCONTIGMEM=y 140CONFIG_DISCONTIGMEM=y
122CONFIG_FLAT_NODE_MEM_MAP=y 141CONFIG_FLAT_NODE_MEM_MAP=y
123CONFIG_NEED_MULTIPLE_NODES=y 142CONFIG_NEED_MULTIPLE_NODES=y
124# CONFIG_SPARSEMEM_STATIC is not set 143CONFIG_PAGEFLAGS_EXTENDED=y
125CONFIG_SPLIT_PTLOCK_CPUS=4 144CONFIG_SPLIT_PTLOCK_CPUS=4
126CONFIG_MIGRATION=y 145CONFIG_MIGRATION=y
127CONFIG_RESOURCES_64BIT=y 146CONFIG_PHYS_ADDR_T_64BIT=y
128CONFIG_ZONE_DMA_FLAG=0 147CONFIG_ZONE_DMA_FLAG=0
129CONFIG_VIRT_TO_BUS=y 148CONFIG_VIRT_TO_BUS=y
149# CONFIG_KSM is not set
150CONFIG_DEFAULT_MMAP_MIN_ADDR=65536
130CONFIG_SMP=y 151CONFIG_SMP=y
131CONFIG_SYS_SUPPORTS_SMP=y 152CONFIG_SYS_SUPPORTS_SMP=y
132CONFIG_NR_CPUS_DEFAULT_64=y 153CONFIG_NR_CPUS_DEFAULT_64=y
133CONFIG_NR_CPUS=64 154CONFIG_NR_CPUS=64
155CONFIG_TICK_ONESHOT=y
156CONFIG_NO_HZ=y
157CONFIG_HIGH_RES_TIMERS=y
158CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
134# CONFIG_HZ_48 is not set 159# CONFIG_HZ_48 is not set
135# CONFIG_HZ_100 is not set 160# CONFIG_HZ_100 is not set
136# CONFIG_HZ_128 is not set 161# CONFIG_HZ_128 is not set
@@ -143,13 +168,13 @@ CONFIG_HZ=1000
143CONFIG_PREEMPT_NONE=y 168CONFIG_PREEMPT_NONE=y
144# CONFIG_PREEMPT_VOLUNTARY is not set 169# CONFIG_PREEMPT_VOLUNTARY is not set
145# CONFIG_PREEMPT is not set 170# CONFIG_PREEMPT is not set
146CONFIG_PREEMPT_BKL=y
147# CONFIG_MIPS_INSANE_LARGE is not set 171# CONFIG_MIPS_INSANE_LARGE is not set
148# CONFIG_KEXEC is not set 172# CONFIG_KEXEC is not set
149CONFIG_SECCOMP=y 173CONFIG_SECCOMP=y
150CONFIG_LOCKDEP_SUPPORT=y 174CONFIG_LOCKDEP_SUPPORT=y
151CONFIG_STACKTRACE_SUPPORT=y 175CONFIG_STACKTRACE_SUPPORT=y
152CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 176CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
177CONFIG_CONSTRUCTORS=y
153 178
154# 179#
155# General setup 180# General setup
@@ -163,20 +188,41 @@ CONFIG_SWAP=y
163CONFIG_SYSVIPC=y 188CONFIG_SYSVIPC=y
164CONFIG_SYSVIPC_SYSCTL=y 189CONFIG_SYSVIPC_SYSCTL=y
165CONFIG_POSIX_MQUEUE=y 190CONFIG_POSIX_MQUEUE=y
191CONFIG_POSIX_MQUEUE_SYSCTL=y
166# CONFIG_BSD_PROCESS_ACCT is not set 192# CONFIG_BSD_PROCESS_ACCT is not set
167# CONFIG_TASKSTATS is not set 193# CONFIG_TASKSTATS is not set
168# CONFIG_USER_NS is not set
169# CONFIG_AUDIT is not set 194# CONFIG_AUDIT is not set
195
196#
197# RCU Subsystem
198#
199CONFIG_TREE_RCU=y
200# CONFIG_TREE_PREEMPT_RCU is not set
201# CONFIG_TINY_RCU is not set
202# CONFIG_RCU_TRACE is not set
203CONFIG_RCU_FANOUT=64
204# CONFIG_RCU_FANOUT_EXACT is not set
205# CONFIG_TREE_RCU_TRACE is not set
170CONFIG_IKCONFIG=y 206CONFIG_IKCONFIG=y
171CONFIG_IKCONFIG_PROC=y 207CONFIG_IKCONFIG_PROC=y
172CONFIG_LOG_BUF_SHIFT=15 208CONFIG_LOG_BUF_SHIFT=15
209# CONFIG_GROUP_SCHED is not set
173CONFIG_CGROUPS=y 210CONFIG_CGROUPS=y
211# CONFIG_CGROUP_DEBUG is not set
212# CONFIG_CGROUP_NS is not set
213# CONFIG_CGROUP_FREEZER is not set
214# CONFIG_CGROUP_DEVICE is not set
174CONFIG_CPUSETS=y 215CONFIG_CPUSETS=y
175CONFIG_SYSFS_DEPRECATED=y 216CONFIG_PROC_PID_CPUSET=y
217# CONFIG_CGROUP_CPUACCT is not set
218# CONFIG_RESOURCE_COUNTERS is not set
219# CONFIG_SYSFS_DEPRECATED_V2 is not set
176CONFIG_RELAY=y 220CONFIG_RELAY=y
221# CONFIG_NAMESPACES is not set
177# CONFIG_BLK_DEV_INITRD is not set 222# CONFIG_BLK_DEV_INITRD is not set
178# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 223# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
179CONFIG_SYSCTL=y 224CONFIG_SYSCTL=y
225CONFIG_ANON_INODES=y
180CONFIG_EMBEDDED=y 226CONFIG_EMBEDDED=y
181CONFIG_SYSCTL_SYSCALL=y 227CONFIG_SYSCTL_SYSCALL=y
182CONFIG_KALLSYMS=y 228CONFIG_KALLSYMS=y
@@ -185,44 +231,92 @@ CONFIG_HOTPLUG=y
185CONFIG_PRINTK=y 231CONFIG_PRINTK=y
186CONFIG_BUG=y 232CONFIG_BUG=y
187CONFIG_ELF_CORE=y 233CONFIG_ELF_CORE=y
234# CONFIG_PCSPKR_PLATFORM is not set
188CONFIG_BASE_FULL=y 235CONFIG_BASE_FULL=y
189CONFIG_FUTEX=y 236CONFIG_FUTEX=y
190CONFIG_ANON_INODES=y
191CONFIG_EPOLL=y 237CONFIG_EPOLL=y
192CONFIG_SIGNALFD=y 238CONFIG_SIGNALFD=y
193CONFIG_TIMERFD=y 239CONFIG_TIMERFD=y
194CONFIG_EVENTFD=y 240CONFIG_EVENTFD=y
195CONFIG_SHMEM=y 241CONFIG_SHMEM=y
242CONFIG_AIO=y
243
244#
245# Kernel Performance Events And Counters
246#
196CONFIG_VM_EVENT_COUNTERS=y 247CONFIG_VM_EVENT_COUNTERS=y
248CONFIG_PCI_QUIRKS=y
249CONFIG_COMPAT_BRK=y
197CONFIG_SLAB=y 250CONFIG_SLAB=y
198# CONFIG_SLUB is not set 251# CONFIG_SLUB is not set
199# CONFIG_SLOB is not set 252# CONFIG_SLOB is not set
253# CONFIG_PROFILING is not set
254CONFIG_HAVE_OPROFILE=y
255CONFIG_HAVE_SYSCALL_WRAPPERS=y
256CONFIG_USE_GENERIC_SMP_HELPERS=y
257
258#
259# GCOV-based kernel profiling
260#
261CONFIG_SLOW_WORK=y
262CONFIG_HAVE_GENERIC_DMA_COHERENT=y
263CONFIG_SLABINFO=y
200CONFIG_RT_MUTEXES=y 264CONFIG_RT_MUTEXES=y
201# CONFIG_TINY_SHMEM is not set
202CONFIG_BASE_SMALL=0 265CONFIG_BASE_SMALL=0
203CONFIG_MODULES=y 266CONFIG_MODULES=y
267# CONFIG_MODULE_FORCE_LOAD is not set
204CONFIG_MODULE_UNLOAD=y 268CONFIG_MODULE_UNLOAD=y
205# CONFIG_MODULE_FORCE_UNLOAD is not set 269# CONFIG_MODULE_FORCE_UNLOAD is not set
206# CONFIG_MODVERSIONS is not set 270# CONFIG_MODVERSIONS is not set
207CONFIG_MODULE_SRCVERSION_ALL=y 271CONFIG_MODULE_SRCVERSION_ALL=y
208CONFIG_KMOD=y
209CONFIG_STOP_MACHINE=y 272CONFIG_STOP_MACHINE=y
210CONFIG_BLOCK=y 273CONFIG_BLOCK=y
211# CONFIG_BLK_DEV_IO_TRACE is not set
212# CONFIG_BLK_DEV_BSG is not set 274# CONFIG_BLK_DEV_BSG is not set
275# CONFIG_BLK_DEV_INTEGRITY is not set
276# CONFIG_BLK_CGROUP is not set
277CONFIG_BLOCK_COMPAT=y
213 278
214# 279#
215# IO Schedulers 280# IO Schedulers
216# 281#
217CONFIG_IOSCHED_NOOP=y 282CONFIG_IOSCHED_NOOP=y
218CONFIG_IOSCHED_AS=y
219CONFIG_IOSCHED_DEADLINE=y 283CONFIG_IOSCHED_DEADLINE=y
220CONFIG_IOSCHED_CFQ=y 284CONFIG_IOSCHED_CFQ=y
221CONFIG_DEFAULT_AS=y 285# CONFIG_CFQ_GROUP_IOSCHED is not set
222# CONFIG_DEFAULT_DEADLINE is not set 286# CONFIG_DEFAULT_DEADLINE is not set
223# CONFIG_DEFAULT_CFQ is not set 287CONFIG_DEFAULT_CFQ=y
224# CONFIG_DEFAULT_NOOP is not set 288# CONFIG_DEFAULT_NOOP is not set
225CONFIG_DEFAULT_IOSCHED="anticipatory" 289CONFIG_DEFAULT_IOSCHED="cfq"
290# CONFIG_INLINE_SPIN_TRYLOCK is not set
291# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
292# CONFIG_INLINE_SPIN_LOCK is not set
293# CONFIG_INLINE_SPIN_LOCK_BH is not set
294# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
295# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
296CONFIG_INLINE_SPIN_UNLOCK=y
297# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
298CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
299# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
300# CONFIG_INLINE_READ_TRYLOCK is not set
301# CONFIG_INLINE_READ_LOCK is not set
302# CONFIG_INLINE_READ_LOCK_BH is not set
303# CONFIG_INLINE_READ_LOCK_IRQ is not set
304# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
305CONFIG_INLINE_READ_UNLOCK=y
306# CONFIG_INLINE_READ_UNLOCK_BH is not set
307CONFIG_INLINE_READ_UNLOCK_IRQ=y
308# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
309# CONFIG_INLINE_WRITE_TRYLOCK is not set
310# CONFIG_INLINE_WRITE_LOCK is not set
311# CONFIG_INLINE_WRITE_LOCK_BH is not set
312# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
313# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
314CONFIG_INLINE_WRITE_UNLOCK=y
315# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
316CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
317# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
318CONFIG_MUTEX_SPIN_ON_OWNER=y
319# CONFIG_FREEZER is not set
226 320
227# 321#
228# Bus options (PCI, PCMCIA, EISA, ISA, TC) 322# Bus options (PCI, PCMCIA, EISA, ISA, TC)
@@ -231,11 +325,10 @@ CONFIG_HW_HAS_PCI=y
231CONFIG_PCI=y 325CONFIG_PCI=y
232CONFIG_PCI_DOMAINS=y 326CONFIG_PCI_DOMAINS=y
233# CONFIG_ARCH_SUPPORTS_MSI is not set 327# CONFIG_ARCH_SUPPORTS_MSI is not set
328# CONFIG_PCI_LEGACY is not set
329# CONFIG_PCI_STUB is not set
330# CONFIG_PCI_IOV is not set
234CONFIG_MMU=y 331CONFIG_MMU=y
235
236#
237# PCCARD (PCMCIA/CardBus) support
238#
239# CONFIG_PCCARD is not set 332# CONFIG_PCCARD is not set
240# CONFIG_HOTPLUG_PCI is not set 333# CONFIG_HOTPLUG_PCI is not set
241 334
@@ -243,8 +336,9 @@ CONFIG_MMU=y
243# Executable file formats 336# Executable file formats
244# 337#
245CONFIG_BINFMT_ELF=y 338CONFIG_BINFMT_ELF=y
339CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y
340# CONFIG_HAVE_AOUT is not set
246# CONFIG_BINFMT_MISC is not set 341# CONFIG_BINFMT_MISC is not set
247# CONFIG_BUILD_ELF64 is not set
248CONFIG_MIPS32_COMPAT=y 342CONFIG_MIPS32_COMPAT=y
249CONFIG_COMPAT=y 343CONFIG_COMPAT=y
250CONFIG_SYSVIPC_COMPAT=y 344CONFIG_SYSVIPC_COMPAT=y
@@ -256,13 +350,10 @@ CONFIG_BINFMT_ELF32=y
256# Power management options 350# Power management options
257# 351#
258CONFIG_PM=y 352CONFIG_PM=y
259# CONFIG_PM_LEGACY is not set
260# CONFIG_PM_DEBUG is not set 353# CONFIG_PM_DEBUG is not set
261 354# CONFIG_PM_RUNTIME is not set
262#
263# Networking
264#
265CONFIG_NET=y 355CONFIG_NET=y
356CONFIG_COMPAT_NETLINK_MESSAGES=y
266 357
267# 358#
268# Networking options 359# Networking options
@@ -274,6 +365,8 @@ CONFIG_XFRM=y
274CONFIG_XFRM_USER=m 365CONFIG_XFRM_USER=m
275# CONFIG_XFRM_SUB_POLICY is not set 366# CONFIG_XFRM_SUB_POLICY is not set
276CONFIG_XFRM_MIGRATE=y 367CONFIG_XFRM_MIGRATE=y
368CONFIG_XFRM_STATISTICS=y
369CONFIG_XFRM_IPCOMP=m
277CONFIG_NET_KEY=y 370CONFIG_NET_KEY=y
278CONFIG_NET_KEY_MIGRATE=y 371CONFIG_NET_KEY_MIGRATE=y
279CONFIG_INET=y 372CONFIG_INET=y
@@ -293,19 +386,40 @@ CONFIG_IP_PNP=y
293# CONFIG_INET_ESP is not set 386# CONFIG_INET_ESP is not set
294# CONFIG_INET_IPCOMP is not set 387# CONFIG_INET_IPCOMP is not set
295# CONFIG_INET_XFRM_TUNNEL is not set 388# CONFIG_INET_XFRM_TUNNEL is not set
296# CONFIG_INET_TUNNEL is not set 389CONFIG_INET_TUNNEL=m
297CONFIG_INET_XFRM_MODE_TRANSPORT=m 390CONFIG_INET_XFRM_MODE_TRANSPORT=m
298CONFIG_INET_XFRM_MODE_TUNNEL=m 391CONFIG_INET_XFRM_MODE_TUNNEL=m
299CONFIG_INET_XFRM_MODE_BEET=m 392CONFIG_INET_XFRM_MODE_BEET=m
393CONFIG_INET_LRO=y
300CONFIG_INET_DIAG=y 394CONFIG_INET_DIAG=y
301CONFIG_INET_TCP_DIAG=y 395CONFIG_INET_TCP_DIAG=y
302# CONFIG_TCP_CONG_ADVANCED is not set 396# CONFIG_TCP_CONG_ADVANCED is not set
303CONFIG_TCP_CONG_CUBIC=y 397CONFIG_TCP_CONG_CUBIC=y
304CONFIG_DEFAULT_TCP_CONG="cubic" 398CONFIG_DEFAULT_TCP_CONG="cubic"
305CONFIG_TCP_MD5SIG=y 399CONFIG_TCP_MD5SIG=y
306# CONFIG_IPV6 is not set 400CONFIG_IPV6=y
307# CONFIG_INET6_XFRM_TUNNEL is not set 401CONFIG_IPV6_PRIVACY=y
308# CONFIG_INET6_TUNNEL is not set 402CONFIG_IPV6_ROUTER_PREF=y
403CONFIG_IPV6_ROUTE_INFO=y
404CONFIG_IPV6_OPTIMISTIC_DAD=y
405CONFIG_INET6_AH=m
406CONFIG_INET6_ESP=m
407CONFIG_INET6_IPCOMP=m
408CONFIG_IPV6_MIP6=m
409CONFIG_INET6_XFRM_TUNNEL=m
410CONFIG_INET6_TUNNEL=m
411CONFIG_INET6_XFRM_MODE_TRANSPORT=m
412CONFIG_INET6_XFRM_MODE_TUNNEL=m
413CONFIG_INET6_XFRM_MODE_BEET=m
414CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m
415CONFIG_IPV6_SIT=m
416CONFIG_IPV6_SIT_6RD=y
417CONFIG_IPV6_NDISC_NODETYPE=y
418CONFIG_IPV6_TUNNEL=m
419CONFIG_IPV6_MULTIPLE_TABLES=y
420CONFIG_IPV6_SUBTREES=y
421CONFIG_IPV6_MROUTE=y
422CONFIG_IPV6_PIMSM_V2=y
309CONFIG_NETWORK_SECMARK=y 423CONFIG_NETWORK_SECMARK=y
310# CONFIG_NETFILTER is not set 424# CONFIG_NETFILTER is not set
311# CONFIG_IP_DCCP is not set 425# CONFIG_IP_DCCP is not set
@@ -315,9 +429,11 @@ CONFIG_IP_SCTP=m
315# CONFIG_SCTP_HMAC_NONE is not set 429# CONFIG_SCTP_HMAC_NONE is not set
316# CONFIG_SCTP_HMAC_SHA1 is not set 430# CONFIG_SCTP_HMAC_SHA1 is not set
317CONFIG_SCTP_HMAC_MD5=y 431CONFIG_SCTP_HMAC_MD5=y
432# CONFIG_RDS is not set
318# CONFIG_TIPC is not set 433# CONFIG_TIPC is not set
319# CONFIG_ATM is not set 434# CONFIG_ATM is not set
320# CONFIG_BRIDGE is not set 435# CONFIG_BRIDGE is not set
436# CONFIG_NET_DSA is not set
321# CONFIG_VLAN_8021Q is not set 437# CONFIG_VLAN_8021Q is not set
322# CONFIG_DECNET is not set 438# CONFIG_DECNET is not set
323# CONFIG_LLC2 is not set 439# CONFIG_LLC2 is not set
@@ -327,12 +443,9 @@ CONFIG_SCTP_HMAC_MD5=y
327# CONFIG_LAPB is not set 443# CONFIG_LAPB is not set
328# CONFIG_ECONET is not set 444# CONFIG_ECONET is not set
329# CONFIG_WAN_ROUTER is not set 445# CONFIG_WAN_ROUTER is not set
330 446# CONFIG_PHONET is not set
331# 447# CONFIG_IEEE802154 is not set
332# QoS and/or fair queueing
333#
334CONFIG_NET_SCHED=y 448CONFIG_NET_SCHED=y
335CONFIG_NET_SCH_FIFO=y
336 449
337# 450#
338# Queueing/Scheduling 451# Queueing/Scheduling
@@ -341,7 +454,7 @@ CONFIG_NET_SCH_CBQ=m
341CONFIG_NET_SCH_HTB=m 454CONFIG_NET_SCH_HTB=m
342CONFIG_NET_SCH_HFSC=m 455CONFIG_NET_SCH_HFSC=m
343CONFIG_NET_SCH_PRIO=m 456CONFIG_NET_SCH_PRIO=m
344CONFIG_NET_SCH_RR=m 457CONFIG_NET_SCH_MULTIQ=y
345CONFIG_NET_SCH_RED=m 458CONFIG_NET_SCH_RED=m
346CONFIG_NET_SCH_SFQ=m 459CONFIG_NET_SCH_SFQ=m
347CONFIG_NET_SCH_TEQL=m 460CONFIG_NET_SCH_TEQL=m
@@ -349,6 +462,7 @@ CONFIG_NET_SCH_TBF=m
349CONFIG_NET_SCH_GRED=m 462CONFIG_NET_SCH_GRED=m
350CONFIG_NET_SCH_DSMARK=m 463CONFIG_NET_SCH_DSMARK=m
351CONFIG_NET_SCH_NETEM=m 464CONFIG_NET_SCH_NETEM=m
465# CONFIG_NET_SCH_DRR is not set
352CONFIG_NET_SCH_INGRESS=m 466CONFIG_NET_SCH_INGRESS=m
353 467
354# 468#
@@ -365,41 +479,63 @@ CONFIG_NET_CLS_U32=m
365CONFIG_CLS_U32_MARK=y 479CONFIG_CLS_U32_MARK=y
366CONFIG_NET_CLS_RSVP=m 480CONFIG_NET_CLS_RSVP=m
367CONFIG_NET_CLS_RSVP6=m 481CONFIG_NET_CLS_RSVP6=m
482CONFIG_NET_CLS_FLOW=m
483CONFIG_NET_CLS_CGROUP=y
368# CONFIG_NET_EMATCH is not set 484# CONFIG_NET_EMATCH is not set
369CONFIG_NET_CLS_ACT=y 485CONFIG_NET_CLS_ACT=y
370CONFIG_NET_ACT_POLICE=y 486CONFIG_NET_ACT_POLICE=y
371CONFIG_NET_ACT_GACT=m 487CONFIG_NET_ACT_GACT=m
372CONFIG_GACT_PROB=y 488CONFIG_GACT_PROB=y
373CONFIG_NET_ACT_MIRRED=m 489CONFIG_NET_ACT_MIRRED=m
490CONFIG_NET_ACT_NAT=m
374CONFIG_NET_ACT_PEDIT=m 491CONFIG_NET_ACT_PEDIT=m
375# CONFIG_NET_ACT_SIMP is not set 492# CONFIG_NET_ACT_SIMP is not set
376CONFIG_NET_CLS_POLICE=y 493CONFIG_NET_ACT_SKBEDIT=m
377# CONFIG_NET_CLS_IND is not set 494# CONFIG_NET_CLS_IND is not set
495CONFIG_NET_SCH_FIFO=y
496# CONFIG_DCB is not set
378 497
379# 498#
380# Network testing 499# Network testing
381# 500#
382# CONFIG_NET_PKTGEN is not set 501# CONFIG_NET_PKTGEN is not set
383# CONFIG_HAMRADIO is not set 502# CONFIG_HAMRADIO is not set
503# CONFIG_CAN is not set
384# CONFIG_IRDA is not set 504# CONFIG_IRDA is not set
385# CONFIG_BT is not set 505# CONFIG_BT is not set
386# CONFIG_AF_RXRPC is not set 506# CONFIG_AF_RXRPC is not set
387 507CONFIG_FIB_RULES=y
388# 508CONFIG_WIRELESS=y
389# Wireless
390#
391CONFIG_CFG80211=m
392CONFIG_WIRELESS_EXT=y 509CONFIG_WIRELESS_EXT=y
510CONFIG_WEXT_CORE=y
511CONFIG_WEXT_PROC=y
512CONFIG_WEXT_SPY=y
513CONFIG_WEXT_PRIV=y
514CONFIG_CFG80211=m
515# CONFIG_NL80211_TESTMODE is not set
516# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
517# CONFIG_CFG80211_REG_DEBUG is not set
518CONFIG_CFG80211_DEFAULT_PS=y
519# CONFIG_WIRELESS_OLD_REGULATORY is not set
520CONFIG_CFG80211_WEXT=y
521CONFIG_WIRELESS_EXT_SYSFS=y
522CONFIG_LIB80211=m
523CONFIG_LIB80211_CRYPT_WEP=m
524CONFIG_LIB80211_CRYPT_CCMP=m
525CONFIG_LIB80211_CRYPT_TKIP=m
526# CONFIG_LIB80211_DEBUG is not set
393CONFIG_MAC80211=m 527CONFIG_MAC80211=m
394# CONFIG_MAC80211_DEBUG is not set 528CONFIG_MAC80211_RC_PID=y
395CONFIG_IEEE80211=m 529CONFIG_MAC80211_RC_MINSTREL=y
396# CONFIG_IEEE80211_DEBUG is not set 530# CONFIG_MAC80211_RC_DEFAULT_PID is not set
397CONFIG_IEEE80211_CRYPT_WEP=m 531CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
398CONFIG_IEEE80211_CRYPT_CCMP=m 532CONFIG_MAC80211_RC_DEFAULT="minstrel"
399CONFIG_IEEE80211_CRYPT_TKIP=m 533# CONFIG_MAC80211_MESH is not set
400CONFIG_IEEE80211_SOFTMAC=m 534CONFIG_MAC80211_LEDS=y
401# CONFIG_IEEE80211_SOFTMAC_DEBUG is not set 535# CONFIG_MAC80211_DEBUG_MENU is not set
536# CONFIG_WIMAX is not set
402CONFIG_RFKILL=m 537CONFIG_RFKILL=m
538CONFIG_RFKILL_LEDS=y
403# CONFIG_NET_9P is not set 539# CONFIG_NET_9P is not set
404 540
405# 541#
@@ -409,9 +545,13 @@ CONFIG_RFKILL=m
409# 545#
410# Generic Driver Options 546# Generic Driver Options
411# 547#
548CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
549# CONFIG_DEVTMPFS is not set
412CONFIG_STANDALONE=y 550CONFIG_STANDALONE=y
413CONFIG_PREVENT_FIRMWARE_BUILD=y 551CONFIG_PREVENT_FIRMWARE_BUILD=y
414CONFIG_FW_LOADER=y 552CONFIG_FW_LOADER=y
553CONFIG_FIRMWARE_IN_KERNEL=y
554CONFIG_EXTRA_FIRMWARE=""
415# CONFIG_SYS_HYPERVISOR is not set 555# CONFIG_SYS_HYPERVISOR is not set
416CONFIG_CONNECTOR=m 556CONFIG_CONNECTOR=m
417# CONFIG_MTD is not set 557# CONFIG_MTD is not set
@@ -424,14 +564,19 @@ CONFIG_BLK_DEV=y
424# CONFIG_BLK_DEV_COW_COMMON is not set 564# CONFIG_BLK_DEV_COW_COMMON is not set
425CONFIG_BLK_DEV_LOOP=y 565CONFIG_BLK_DEV_LOOP=y
426CONFIG_BLK_DEV_CRYPTOLOOP=m 566CONFIG_BLK_DEV_CRYPTOLOOP=m
567# CONFIG_BLK_DEV_DRBD is not set
427# CONFIG_BLK_DEV_NBD is not set 568# CONFIG_BLK_DEV_NBD is not set
569CONFIG_BLK_DEV_OSD=m
428# CONFIG_BLK_DEV_SX8 is not set 570# CONFIG_BLK_DEV_SX8 is not set
429# CONFIG_BLK_DEV_RAM is not set 571# CONFIG_BLK_DEV_RAM is not set
430CONFIG_CDROM_PKTCDVD=m 572CONFIG_CDROM_PKTCDVD=m
431CONFIG_CDROM_PKTCDVD_BUFFERS=8 573CONFIG_CDROM_PKTCDVD_BUFFERS=8
432# CONFIG_CDROM_PKTCDVD_WCACHE is not set 574# CONFIG_CDROM_PKTCDVD_WCACHE is not set
433CONFIG_ATA_OVER_ETH=m 575CONFIG_ATA_OVER_ETH=m
576# CONFIG_BLK_DEV_HD is not set
434# CONFIG_MISC_DEVICES is not set 577# CONFIG_MISC_DEVICES is not set
578CONFIG_EEPROM_93CX6=m
579CONFIG_HAVE_IDE=y
435# CONFIG_IDE is not set 580# CONFIG_IDE is not set
436 581
437# 582#
@@ -454,10 +599,6 @@ CONFIG_BLK_DEV_SR=m
454CONFIG_BLK_DEV_SR_VENDOR=y 599CONFIG_BLK_DEV_SR_VENDOR=y
455CONFIG_CHR_DEV_SG=m 600CONFIG_CHR_DEV_SG=m
456CONFIG_CHR_DEV_SCH=m 601CONFIG_CHR_DEV_SCH=m
457
458#
459# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
460#
461# CONFIG_SCSI_MULTI_LUN is not set 602# CONFIG_SCSI_MULTI_LUN is not set
462CONFIG_SCSI_CONSTANTS=y 603CONFIG_SCSI_CONSTANTS=y
463CONFIG_SCSI_LOGGING=y 604CONFIG_SCSI_LOGGING=y
@@ -472,11 +613,18 @@ CONFIG_SCSI_FC_ATTRS=y
472CONFIG_SCSI_ISCSI_ATTRS=m 613CONFIG_SCSI_ISCSI_ATTRS=m
473CONFIG_SCSI_SAS_ATTRS=m 614CONFIG_SCSI_SAS_ATTRS=m
474CONFIG_SCSI_SAS_LIBSAS=m 615CONFIG_SCSI_SAS_LIBSAS=m
616CONFIG_SCSI_SAS_HOST_SMP=y
475# CONFIG_SCSI_SAS_LIBSAS_DEBUG is not set 617# CONFIG_SCSI_SAS_LIBSAS_DEBUG is not set
618# CONFIG_SCSI_SRP_ATTRS is not set
476CONFIG_SCSI_LOWLEVEL=y 619CONFIG_SCSI_LOWLEVEL=y
477# CONFIG_ISCSI_TCP is not set 620# CONFIG_ISCSI_TCP is not set
621CONFIG_SCSI_CXGB3_ISCSI=m
622CONFIG_SCSI_BNX2_ISCSI=m
623CONFIG_BE2ISCSI=m
478# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 624# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
625CONFIG_SCSI_HPSA=m
479# CONFIG_SCSI_3W_9XXX is not set 626# CONFIG_SCSI_3W_9XXX is not set
627CONFIG_SCSI_3W_SAS=m
480# CONFIG_SCSI_ACARD is not set 628# CONFIG_SCSI_ACARD is not set
481# CONFIG_SCSI_AACRAID is not set 629# CONFIG_SCSI_AACRAID is not set
482# CONFIG_SCSI_AIC7XXX is not set 630# CONFIG_SCSI_AIC7XXX is not set
@@ -484,11 +632,21 @@ CONFIG_SCSI_LOWLEVEL=y
484# CONFIG_SCSI_AIC79XX is not set 632# CONFIG_SCSI_AIC79XX is not set
485CONFIG_SCSI_AIC94XX=m 633CONFIG_SCSI_AIC94XX=m
486# CONFIG_AIC94XX_DEBUG is not set 634# CONFIG_AIC94XX_DEBUG is not set
635CONFIG_SCSI_MVSAS=m
636# CONFIG_SCSI_MVSAS_DEBUG is not set
637CONFIG_SCSI_DPT_I2O=m
638# CONFIG_SCSI_ADVANSYS is not set
487# CONFIG_SCSI_ARCMSR is not set 639# CONFIG_SCSI_ARCMSR is not set
488# CONFIG_MEGARAID_NEWGEN is not set 640# CONFIG_MEGARAID_NEWGEN is not set
489# CONFIG_MEGARAID_LEGACY is not set 641# CONFIG_MEGARAID_LEGACY is not set
490# CONFIG_MEGARAID_SAS is not set 642# CONFIG_MEGARAID_SAS is not set
643CONFIG_SCSI_MPT2SAS=m
644CONFIG_SCSI_MPT2SAS_MAX_SGE=128
645# CONFIG_SCSI_MPT2SAS_LOGGING is not set
491# CONFIG_SCSI_HPTIOP is not set 646# CONFIG_SCSI_HPTIOP is not set
647CONFIG_LIBFC=m
648# CONFIG_LIBFCOE is not set
649# CONFIG_FCOE is not set
492# CONFIG_SCSI_DMX3191D is not set 650# CONFIG_SCSI_DMX3191D is not set
493# CONFIG_SCSI_FUTURE_DOMAIN is not set 651# CONFIG_SCSI_FUTURE_DOMAIN is not set
494# CONFIG_SCSI_IPS is not set 652# CONFIG_SCSI_IPS is not set
@@ -503,16 +661,31 @@ CONFIG_SCSI_QLOGIC_1280=y
503# CONFIG_SCSI_DC395x is not set 661# CONFIG_SCSI_DC395x is not set
504# CONFIG_SCSI_DC390T is not set 662# CONFIG_SCSI_DC390T is not set
505# CONFIG_SCSI_DEBUG is not set 663# CONFIG_SCSI_DEBUG is not set
664CONFIG_SCSI_PMCRAID=m
665# CONFIG_SCSI_PM8001 is not set
506# CONFIG_SCSI_SRP is not set 666# CONFIG_SCSI_SRP is not set
667CONFIG_SCSI_BFA_FC=m
668CONFIG_SCSI_DH=m
669CONFIG_SCSI_DH_RDAC=m
670CONFIG_SCSI_DH_HP_SW=m
671CONFIG_SCSI_DH_EMC=m
672CONFIG_SCSI_DH_ALUA=m
673CONFIG_SCSI_OSD_INITIATOR=m
674CONFIG_SCSI_OSD_ULD=m
675CONFIG_SCSI_OSD_DPRINT_SENSE=1
676# CONFIG_SCSI_OSD_DEBUG is not set
507# CONFIG_ATA is not set 677# CONFIG_ATA is not set
508CONFIG_MD=y 678CONFIG_MD=y
509CONFIG_BLK_DEV_MD=y 679CONFIG_BLK_DEV_MD=y
680CONFIG_MD_AUTODETECT=y
510CONFIG_MD_LINEAR=m 681CONFIG_MD_LINEAR=m
511CONFIG_MD_RAID0=y 682CONFIG_MD_RAID0=y
512CONFIG_MD_RAID1=y 683CONFIG_MD_RAID1=y
513CONFIG_MD_RAID10=m 684CONFIG_MD_RAID10=m
514CONFIG_MD_RAID456=y 685CONFIG_MD_RAID456=y
515CONFIG_MD_RAID5_RESHAPE=y 686# CONFIG_MULTICORE_RAID456 is not set
687CONFIG_MD_RAID6_PQ=y
688# CONFIG_ASYNC_RAID6_TEST is not set
516CONFIG_MD_MULTIPATH=m 689CONFIG_MD_MULTIPATH=m
517CONFIG_MD_FAULTY=m 690CONFIG_MD_FAULTY=m
518CONFIG_BLK_DEV_DM=m 691CONFIG_BLK_DEV_DM=m
@@ -520,36 +693,39 @@ CONFIG_BLK_DEV_DM=m
520CONFIG_DM_CRYPT=m 693CONFIG_DM_CRYPT=m
521CONFIG_DM_SNAPSHOT=m 694CONFIG_DM_SNAPSHOT=m
522CONFIG_DM_MIRROR=m 695CONFIG_DM_MIRROR=m
696CONFIG_DM_LOG_USERSPACE=m
523CONFIG_DM_ZERO=m 697CONFIG_DM_ZERO=m
524CONFIG_DM_MULTIPATH=m 698CONFIG_DM_MULTIPATH=m
525CONFIG_DM_MULTIPATH_EMC=m 699CONFIG_DM_MULTIPATH_QL=m
526CONFIG_DM_MULTIPATH_RDAC=m 700CONFIG_DM_MULTIPATH_ST=m
527# CONFIG_DM_DELAY is not set 701# CONFIG_DM_DELAY is not set
702CONFIG_DM_UEVENT=y
703# CONFIG_FUSION is not set
528 704
529# 705#
530# Fusion MPT device support 706# IEEE 1394 (FireWire) support
531# 707#
532# CONFIG_FUSION is not set
533# CONFIG_FUSION_SPI is not set
534# CONFIG_FUSION_FC is not set
535# CONFIG_FUSION_SAS is not set
536 708
537# 709#
538# IEEE 1394 (FireWire) support 710# You can enable one or both FireWire driver stacks.
711#
712
713#
714# The newer stack is recommended.
539# 715#
540# CONFIG_FIREWIRE is not set 716# CONFIG_FIREWIRE is not set
541# CONFIG_IEEE1394 is not set 717# CONFIG_IEEE1394 is not set
542# CONFIG_I2O is not set 718# CONFIG_I2O is not set
543CONFIG_NETDEVICES=y 719CONFIG_NETDEVICES=y
544CONFIG_NETDEVICES_MULTIQUEUE=y
545CONFIG_IFB=m 720CONFIG_IFB=m
546# CONFIG_DUMMY is not set 721# CONFIG_DUMMY is not set
547# CONFIG_BONDING is not set 722# CONFIG_BONDING is not set
548CONFIG_MACVLAN=m 723CONFIG_MACVLAN=m
549# CONFIG_EQUALIZER is not set 724# CONFIG_EQUALIZER is not set
550# CONFIG_TUN is not set 725# CONFIG_TUN is not set
726CONFIG_VETH=m
551# CONFIG_ARCNET is not set 727# CONFIG_ARCNET is not set
552CONFIG_PHYLIB=m 728CONFIG_PHYLIB=y
553 729
554# 730#
555# MII PHY device drivers 731# MII PHY device drivers
@@ -563,23 +739,51 @@ CONFIG_VITESSE_PHY=m
563CONFIG_SMSC_PHY=m 739CONFIG_SMSC_PHY=m
564# CONFIG_BROADCOM_PHY is not set 740# CONFIG_BROADCOM_PHY is not set
565CONFIG_ICPLUS_PHY=m 741CONFIG_ICPLUS_PHY=m
742CONFIG_REALTEK_PHY=m
743CONFIG_NATIONAL_PHY=m
744CONFIG_STE10XP=m
745CONFIG_LSI_ET1011C_PHY=m
566# CONFIG_FIXED_PHY is not set 746# CONFIG_FIXED_PHY is not set
747CONFIG_MDIO_BITBANG=m
567CONFIG_NET_ETHERNET=y 748CONFIG_NET_ETHERNET=y
568CONFIG_MII=y 749CONFIG_MII=y
569CONFIG_AX88796=m 750CONFIG_AX88796=m
751CONFIG_AX88796_93CX6=y
570CONFIG_SGI_IOC3_ETH=y 752CONFIG_SGI_IOC3_ETH=y
571# CONFIG_HAPPYMEAL is not set 753# CONFIG_HAPPYMEAL is not set
572# CONFIG_SUNGEM is not set 754# CONFIG_SUNGEM is not set
573# CONFIG_CASSINI is not set 755# CONFIG_CASSINI is not set
574# CONFIG_NET_VENDOR_3COM is not set 756# CONFIG_NET_VENDOR_3COM is not set
757CONFIG_SMC91X=m
575# CONFIG_DM9000 is not set 758# CONFIG_DM9000 is not set
759CONFIG_ETHOC=m
760CONFIG_SMSC911X=m
761CONFIG_DNET=m
576# CONFIG_NET_TULIP is not set 762# CONFIG_NET_TULIP is not set
577# CONFIG_HP100 is not set 763# CONFIG_HP100 is not set
764# CONFIG_IBM_NEW_EMAC_ZMII is not set
765# CONFIG_IBM_NEW_EMAC_RGMII is not set
766# CONFIG_IBM_NEW_EMAC_TAH is not set
767# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
768# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
769# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
770# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
578# CONFIG_NET_PCI is not set 771# CONFIG_NET_PCI is not set
772CONFIG_B44=m
773CONFIG_B44_PCI_AUTOSELECT=y
774CONFIG_B44_PCICORE_AUTOSELECT=y
775CONFIG_B44_PCI=y
776CONFIG_KS8842=m
777CONFIG_KS8851_MLL=m
778CONFIG_ATL2=m
579CONFIG_NETDEV_1000=y 779CONFIG_NETDEV_1000=y
580# CONFIG_ACENIC is not set 780# CONFIG_ACENIC is not set
581# CONFIG_DL2K is not set 781# CONFIG_DL2K is not set
582# CONFIG_E1000 is not set 782# CONFIG_E1000 is not set
783CONFIG_E1000E=m
784CONFIG_IP1000=m
785CONFIG_IGB=m
786CONFIG_IGBVF=m
583# CONFIG_NS83820 is not set 787# CONFIG_NS83820 is not set
584# CONFIG_HAMACHI is not set 788# CONFIG_HAMACHI is not set
585# CONFIG_YELLOWFIN is not set 789# CONFIG_YELLOWFIN is not set
@@ -589,24 +793,75 @@ CONFIG_NETDEV_1000=y
589# CONFIG_SKY2 is not set 793# CONFIG_SKY2 is not set
590CONFIG_VIA_VELOCITY=m 794CONFIG_VIA_VELOCITY=m
591# CONFIG_TIGON3 is not set 795# CONFIG_TIGON3 is not set
592# CONFIG_BNX2 is not set 796CONFIG_BNX2=m
797CONFIG_CNIC=m
593CONFIG_QLA3XXX=m 798CONFIG_QLA3XXX=m
594# CONFIG_ATL1 is not set 799# CONFIG_ATL1 is not set
800CONFIG_ATL1E=m
801CONFIG_ATL1C=m
802CONFIG_JME=m
595CONFIG_NETDEV_10000=y 803CONFIG_NETDEV_10000=y
804CONFIG_MDIO=m
596# CONFIG_CHELSIO_T1 is not set 805# CONFIG_CHELSIO_T1 is not set
806CONFIG_CHELSIO_T3_DEPENDS=y
597CONFIG_CHELSIO_T3=m 807CONFIG_CHELSIO_T3=m
808CONFIG_ENIC=m
809CONFIG_IXGBE=m
598# CONFIG_IXGB is not set 810# CONFIG_IXGB is not set
599# CONFIG_S2IO is not set 811# CONFIG_S2IO is not set
812CONFIG_VXGE=m
813# CONFIG_VXGE_DEBUG_TRACE_ALL is not set
600# CONFIG_MYRI10GE is not set 814# CONFIG_MYRI10GE is not set
601CONFIG_NETXEN_NIC=m 815CONFIG_NETXEN_NIC=m
602# CONFIG_MLX4_CORE is not set 816CONFIG_NIU=m
817CONFIG_MLX4_EN=m
818CONFIG_MLX4_CORE=m
819# CONFIG_MLX4_DEBUG is not set
820CONFIG_TEHUTI=m
821CONFIG_BNX2X=m
822CONFIG_QLGE=m
823CONFIG_SFC=m
824CONFIG_BE2NET=m
603# CONFIG_TR is not set 825# CONFIG_TR is not set
604 826CONFIG_WLAN=y
605# 827CONFIG_LIBERTAS_THINFIRM=m
606# Wireless LAN 828CONFIG_ATMEL=m
607# 829CONFIG_PCI_ATMEL=m
608# CONFIG_WLAN_PRE80211 is not set 830CONFIG_PRISM54=m
609CONFIG_WLAN_80211=y 831CONFIG_RTL8180=m
832CONFIG_ADM8211=m
833# CONFIG_MAC80211_HWSIM is not set
834CONFIG_MWL8K=m
835CONFIG_ATH_COMMON=m
836# CONFIG_ATH_DEBUG is not set
837CONFIG_ATH5K=m
838# CONFIG_ATH5K_DEBUG is not set
839CONFIG_ATH9K_HW=m
840CONFIG_ATH9K_COMMON=m
841CONFIG_ATH9K=m
842CONFIG_B43=m
843CONFIG_B43_PCI_AUTOSELECT=y
844CONFIG_B43_PCICORE_AUTOSELECT=y
845CONFIG_B43_PHY_LP=y
846CONFIG_B43_LEDS=y
847CONFIG_B43_HWRNG=y
848# CONFIG_B43_DEBUG is not set
849CONFIG_B43LEGACY=m
850CONFIG_B43LEGACY_PCI_AUTOSELECT=y
851CONFIG_B43LEGACY_PCICORE_AUTOSELECT=y
852CONFIG_B43LEGACY_LEDS=y
853CONFIG_B43LEGACY_HWRNG=y
854# CONFIG_B43LEGACY_DEBUG is not set
855CONFIG_B43LEGACY_DMA=y
856CONFIG_B43LEGACY_PIO=y
857CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y
858# CONFIG_B43LEGACY_DMA_MODE is not set
859# CONFIG_B43LEGACY_PIO_MODE is not set
860CONFIG_HOSTAP=m
861CONFIG_HOSTAP_FIRMWARE=y
862CONFIG_HOSTAP_FIRMWARE_NVRAM=y
863CONFIG_HOSTAP_PLX=m
864CONFIG_HOSTAP_PCI=m
610CONFIG_IPW2100=m 865CONFIG_IPW2100=m
611CONFIG_IPW2100_MONITOR=y 866CONFIG_IPW2100_MONITOR=y
612CONFIG_IPW2100_DEBUG=y 867CONFIG_IPW2100_DEBUG=y
@@ -616,38 +871,57 @@ CONFIG_IPW2200_RADIOTAP=y
616CONFIG_IPW2200_PROMISCUOUS=y 871CONFIG_IPW2200_PROMISCUOUS=y
617CONFIG_IPW2200_QOS=y 872CONFIG_IPW2200_QOS=y
618CONFIG_IPW2200_DEBUG=y 873CONFIG_IPW2200_DEBUG=y
874CONFIG_LIBIPW=m
875# CONFIG_LIBIPW_DEBUG is not set
876CONFIG_IWLWIFI=m
877CONFIG_IWLWIFI_SPECTRUM_MEASUREMENT=y
878# CONFIG_IWLWIFI_DEBUG is not set
879CONFIG_IWLAGN=m
880CONFIG_IWL4965=y
881CONFIG_IWL5000=y
882CONFIG_IWL3945=m
883CONFIG_IWL3945_SPECTRUM_MEASUREMENT=y
619CONFIG_LIBERTAS=m 884CONFIG_LIBERTAS=m
620# CONFIG_LIBERTAS_DEBUG is not set 885# CONFIG_LIBERTAS_DEBUG is not set
621CONFIG_HERMES=m 886CONFIG_HERMES=m
887# CONFIG_HERMES_CACHE_FW_ON_INIT is not set
622CONFIG_PLX_HERMES=m 888CONFIG_PLX_HERMES=m
623CONFIG_TMD_HERMES=m 889CONFIG_TMD_HERMES=m
624CONFIG_NORTEL_HERMES=m 890CONFIG_NORTEL_HERMES=m
625CONFIG_PCI_HERMES=m 891CONFIG_PCI_HERMES=m
626CONFIG_ATMEL=m 892CONFIG_P54_COMMON=m
627CONFIG_PCI_ATMEL=m 893CONFIG_P54_PCI=m
628CONFIG_PRISM54=m 894CONFIG_P54_LEDS=y
629CONFIG_HOSTAP=m 895CONFIG_RT2X00=m
630CONFIG_HOSTAP_FIRMWARE=y 896CONFIG_RT2400PCI=m
631CONFIG_HOSTAP_FIRMWARE_NVRAM=y 897CONFIG_RT2500PCI=m
632CONFIG_HOSTAP_PLX=m 898CONFIG_RT61PCI=m
633CONFIG_HOSTAP_PCI=m 899CONFIG_RT2800PCI_PCI=m
634CONFIG_BCM43XX=m 900CONFIG_RT2800PCI=m
635CONFIG_BCM43XX_DEBUG=y 901CONFIG_RT2800_LIB=m
636CONFIG_BCM43XX_DMA=y 902CONFIG_RT2X00_LIB_PCI=m
637CONFIG_BCM43XX_PIO=y 903CONFIG_RT2X00_LIB=m
638CONFIG_BCM43XX_DMA_AND_PIO_MODE=y 904CONFIG_RT2X00_LIB_HT=y
639# CONFIG_BCM43XX_DMA_MODE is not set 905CONFIG_RT2X00_LIB_FIRMWARE=y
640# CONFIG_BCM43XX_PIO_MODE is not set 906CONFIG_RT2X00_LIB_CRYPTO=y
907CONFIG_RT2X00_LIB_LEDS=y
908# CONFIG_RT2X00_DEBUG is not set
909CONFIG_WL12XX=m
910CONFIG_WL1251=m
911
912#
913# Enable WiMAX (Networking options) to see the WiMAX drivers
914#
641# CONFIG_WAN is not set 915# CONFIG_WAN is not set
642# CONFIG_FDDI is not set 916# CONFIG_FDDI is not set
643# CONFIG_HIPPI is not set 917# CONFIG_HIPPI is not set
644# CONFIG_PPP is not set 918# CONFIG_PPP is not set
645# CONFIG_SLIP is not set 919# CONFIG_SLIP is not set
646# CONFIG_NET_FC is not set 920# CONFIG_NET_FC is not set
647# CONFIG_SHAPER is not set
648# CONFIG_NETCONSOLE is not set 921# CONFIG_NETCONSOLE is not set
649# CONFIG_NETPOLL is not set 922# CONFIG_NETPOLL is not set
650# CONFIG_NET_POLL_CONTROLLER is not set 923# CONFIG_NET_POLL_CONTROLLER is not set
924# CONFIG_VMXNET3 is not set
651# CONFIG_ISDN is not set 925# CONFIG_ISDN is not set
652# CONFIG_PHONE is not set 926# CONFIG_PHONE is not set
653 927
@@ -665,13 +939,16 @@ CONFIG_SERIO_SERPORT=y
665# CONFIG_SERIO_PCIPS2 is not set 939# CONFIG_SERIO_PCIPS2 is not set
666CONFIG_SERIO_LIBPS2=m 940CONFIG_SERIO_LIBPS2=m
667CONFIG_SERIO_RAW=m 941CONFIG_SERIO_RAW=m
942CONFIG_SERIO_ALTERA_PS2=m
668# CONFIG_GAMEPORT is not set 943# CONFIG_GAMEPORT is not set
669 944
670# 945#
671# Character devices 946# Character devices
672# 947#
673# CONFIG_VT is not set 948# CONFIG_VT is not set
949CONFIG_DEVKMEM=y
674# CONFIG_SERIAL_NONSTANDARD is not set 950# CONFIG_SERIAL_NONSTANDARD is not set
951CONFIG_NOZOMI=m
675 952
676# 953#
677# Serial drivers 954# Serial drivers
@@ -694,95 +971,258 @@ CONFIG_SERIAL_CORE=y
694CONFIG_SERIAL_CORE_CONSOLE=y 971CONFIG_SERIAL_CORE_CONSOLE=y
695# CONFIG_SERIAL_JSM is not set 972# CONFIG_SERIAL_JSM is not set
696CONFIG_UNIX98_PTYS=y 973CONFIG_UNIX98_PTYS=y
974CONFIG_DEVPTS_MULTIPLE_INSTANCES=y
697CONFIG_LEGACY_PTYS=y 975CONFIG_LEGACY_PTYS=y
698CONFIG_LEGACY_PTY_COUNT=256 976CONFIG_LEGACY_PTY_COUNT=256
699# CONFIG_IPMI_HANDLER is not set 977# CONFIG_IPMI_HANDLER is not set
700# CONFIG_WATCHDOG is not set
701CONFIG_HW_RANDOM=m 978CONFIG_HW_RANDOM=m
702# CONFIG_RTC is not set 979CONFIG_HW_RANDOM_TIMERIOMEM=m
703# CONFIG_R3964 is not set 980# CONFIG_R3964 is not set
704# CONFIG_APPLICOM is not set 981# CONFIG_APPLICOM is not set
705# CONFIG_DRM is not set
706# CONFIG_RAW_DRIVER is not set 982# CONFIG_RAW_DRIVER is not set
707# CONFIG_TCG_TPM is not set 983# CONFIG_TCG_TPM is not set
708CONFIG_DEVPORT=y 984CONFIG_DEVPORT=y
709# CONFIG_I2C is not set 985CONFIG_I2C=m
986CONFIG_I2C_BOARDINFO=y
987CONFIG_I2C_COMPAT=y
988CONFIG_I2C_CHARDEV=m
989CONFIG_I2C_HELPER_AUTO=y
990CONFIG_I2C_ALGOBIT=m
991CONFIG_I2C_ALGOPCA=m
992
993#
994# I2C Hardware Bus support
995#
996
997#
998# PC SMBus host controller drivers
999#
1000CONFIG_I2C_ALI1535=m
1001CONFIG_I2C_ALI1563=m
1002CONFIG_I2C_ALI15X3=m
1003CONFIG_I2C_AMD756=m
1004CONFIG_I2C_AMD8111=m
1005CONFIG_I2C_I801=m
1006CONFIG_I2C_ISCH=m
1007CONFIG_I2C_PIIX4=m
1008CONFIG_I2C_NFORCE2=m
1009CONFIG_I2C_SIS5595=m
1010CONFIG_I2C_SIS630=m
1011CONFIG_I2C_SIS96X=m
1012CONFIG_I2C_VIA=m
1013CONFIG_I2C_VIAPRO=m
710 1014
711# 1015#
712# SPI support 1016# I2C system bus drivers (mostly embedded / system-on-chip)
713# 1017#
1018CONFIG_I2C_OCORES=m
1019CONFIG_I2C_SIMTEC=m
1020
1021#
1022# External I2C/SMBus adapter drivers
1023#
1024CONFIG_I2C_PARPORT_LIGHT=m
1025CONFIG_I2C_TAOS_EVM=m
1026
1027#
1028# Other I2C/SMBus bus drivers
1029#
1030CONFIG_I2C_PCA_PLATFORM=m
1031CONFIG_I2C_STUB=m
1032
1033#
1034# Miscellaneous I2C Chip support
1035#
1036CONFIG_SENSORS_TSL2550=m
1037# CONFIG_I2C_DEBUG_CORE is not set
1038# CONFIG_I2C_DEBUG_ALGO is not set
1039# CONFIG_I2C_DEBUG_BUS is not set
1040# CONFIG_I2C_DEBUG_CHIP is not set
714# CONFIG_SPI is not set 1041# CONFIG_SPI is not set
715# CONFIG_SPI_MASTER is not set 1042
1043#
1044# PPS support
1045#
1046CONFIG_PPS=m
1047# CONFIG_PPS_DEBUG is not set
716# CONFIG_W1 is not set 1048# CONFIG_W1 is not set
717# CONFIG_POWER_SUPPLY is not set 1049# CONFIG_POWER_SUPPLY is not set
718# CONFIG_HWMON is not set 1050# CONFIG_HWMON is not set
1051CONFIG_THERMAL=m
1052# CONFIG_WATCHDOG is not set
1053CONFIG_SSB_POSSIBLE=y
719 1054
720# 1055#
721# Multifunction device drivers 1056# Sonics Silicon Backplane
722# 1057#
723# CONFIG_MFD_SM501 is not set 1058CONFIG_SSB=m
1059CONFIG_SSB_SPROM=y
1060CONFIG_SSB_PCIHOST_POSSIBLE=y
1061CONFIG_SSB_PCIHOST=y
1062CONFIG_SSB_B43_PCI_BRIDGE=y
1063# CONFIG_SSB_SILENT is not set
1064# CONFIG_SSB_DEBUG is not set
1065CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y
1066CONFIG_SSB_DRIVER_PCICORE=y
1067# CONFIG_SSB_DRIVER_MIPS is not set
724 1068
725# 1069#
726# Multimedia devices 1070# Multifunction device drivers
727# 1071#
728# CONFIG_VIDEO_DEV is not set 1072# CONFIG_MFD_CORE is not set
729# CONFIG_DVB_CORE is not set 1073# CONFIG_MFD_SM501 is not set
730# CONFIG_DAB is not set 1074# CONFIG_HTC_PASIC3 is not set
1075# CONFIG_MFD_TMIO is not set
1076# CONFIG_MFD_WM8400 is not set
1077CONFIG_MFD_WM8350=m
1078CONFIG_MFD_WM8350_I2C=m
1079CONFIG_MFD_PCF50633=m
1080CONFIG_PCF50633_ADC=m
1081CONFIG_PCF50633_GPIO=m
1082CONFIG_AB3100_CORE=m
1083CONFIG_AB3100_OTP=m
1084# CONFIG_REGULATOR is not set
1085# CONFIG_MEDIA_SUPPORT is not set
731 1086
732# 1087#
733# Graphics support 1088# Graphics support
734# 1089#
735# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 1090# CONFIG_VGA_ARB is not set
736 1091# CONFIG_DRM is not set
737#
738# Display device support
739#
740# CONFIG_DISPLAY_SUPPORT is not set
741# CONFIG_VGASTATE is not set 1092# CONFIG_VGASTATE is not set
742# CONFIG_VIDEO_OUTPUT_CONTROL is not set 1093# CONFIG_VIDEO_OUTPUT_CONTROL is not set
743# CONFIG_FB is not set 1094# CONFIG_FB is not set
1095# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
744 1096
745# 1097#
746# Sound 1098# Display device support
747# 1099#
1100# CONFIG_DISPLAY_SUPPORT is not set
748# CONFIG_SOUND is not set 1101# CONFIG_SOUND is not set
749CONFIG_USB_SUPPORT=y 1102CONFIG_USB_SUPPORT=y
750CONFIG_USB_ARCH_HAS_HCD=y 1103CONFIG_USB_ARCH_HAS_HCD=y
751CONFIG_USB_ARCH_HAS_OHCI=y 1104CONFIG_USB_ARCH_HAS_OHCI=y
752CONFIG_USB_ARCH_HAS_EHCI=y 1105CONFIG_USB_ARCH_HAS_EHCI=y
753# CONFIG_USB is not set 1106# CONFIG_USB is not set
1107# CONFIG_USB_OTG_WHITELIST is not set
1108# CONFIG_USB_OTG_BLACKLIST_HUB is not set
754 1109
755# 1110#
756# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1111# Enable Host or Gadget support to see Inventra options
757# 1112#
758 1113
759# 1114#
760# USB Gadget Support 1115# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
761# 1116#
762# CONFIG_USB_GADGET is not set 1117# CONFIG_USB_GADGET is not set
1118
1119#
1120# OTG and related infrastructure
1121#
1122# CONFIG_UWB is not set
763# CONFIG_MMC is not set 1123# CONFIG_MMC is not set
764# CONFIG_NEW_LEDS is not set 1124# CONFIG_MEMSTICK is not set
765# CONFIG_INFINIBAND is not set 1125CONFIG_NEW_LEDS=y
766# CONFIG_RTC_CLASS is not set 1126CONFIG_LEDS_CLASS=m
1127
1128#
1129# LED drivers
1130#
1131CONFIG_LEDS_LP3944=m
1132CONFIG_LEDS_PCA955X=m
1133CONFIG_LEDS_WM8350=m
1134CONFIG_LEDS_BD2802=m
1135
1136#
1137# LED Triggers
1138#
1139CONFIG_LEDS_TRIGGERS=y
1140CONFIG_LEDS_TRIGGER_TIMER=m
1141CONFIG_LEDS_TRIGGER_HEARTBEAT=m
1142CONFIG_LEDS_TRIGGER_BACKLIGHT=m
1143CONFIG_LEDS_TRIGGER_DEFAULT_ON=m
767 1144
768# 1145#
769# DMA Engine support 1146# iptables trigger is under Netfilter config (LED target)
770# 1147#
771# CONFIG_DMA_ENGINE is not set 1148# CONFIG_ACCESSIBILITY is not set
1149# CONFIG_INFINIBAND is not set
1150CONFIG_RTC_LIB=y
1151CONFIG_RTC_CLASS=y
1152CONFIG_RTC_HCTOSYS=y
1153CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
1154# CONFIG_RTC_DEBUG is not set
772 1155
773# 1156#
774# DMA Clients 1157# RTC interfaces
775# 1158#
1159CONFIG_RTC_INTF_SYSFS=y
1160CONFIG_RTC_INTF_PROC=y
1161CONFIG_RTC_INTF_DEV=y
1162# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
1163# CONFIG_RTC_DRV_TEST is not set
776 1164
777# 1165#
778# DMA Devices 1166# I2C RTC drivers
1167#
1168# CONFIG_RTC_DRV_DS1307 is not set
1169# CONFIG_RTC_DRV_DS1374 is not set
1170# CONFIG_RTC_DRV_DS1672 is not set
1171# CONFIG_RTC_DRV_MAX6900 is not set
1172# CONFIG_RTC_DRV_RS5C372 is not set
1173# CONFIG_RTC_DRV_ISL1208 is not set
1174# CONFIG_RTC_DRV_X1205 is not set
1175# CONFIG_RTC_DRV_PCF8563 is not set
1176# CONFIG_RTC_DRV_PCF8583 is not set
1177# CONFIG_RTC_DRV_M41T80 is not set
1178# CONFIG_RTC_DRV_BQ32K is not set
1179# CONFIG_RTC_DRV_S35390A is not set
1180# CONFIG_RTC_DRV_FM3130 is not set
1181# CONFIG_RTC_DRV_RX8581 is not set
1182# CONFIG_RTC_DRV_RX8025 is not set
1183
1184#
1185# SPI RTC drivers
1186#
1187
779# 1188#
1189# Platform RTC drivers
1190#
1191# CONFIG_RTC_DRV_CMOS is not set
1192# CONFIG_RTC_DRV_DS1286 is not set
1193# CONFIG_RTC_DRV_DS1511 is not set
1194# CONFIG_RTC_DRV_DS1553 is not set
1195# CONFIG_RTC_DRV_DS1742 is not set
1196# CONFIG_RTC_DRV_STK17TA8 is not set
1197# CONFIG_RTC_DRV_M48T86 is not set
1198CONFIG_RTC_DRV_M48T35=y
1199# CONFIG_RTC_DRV_M48T59 is not set
1200# CONFIG_RTC_DRV_MSM6242 is not set
1201# CONFIG_RTC_DRV_BQ4802 is not set
1202# CONFIG_RTC_DRV_RP5C01 is not set
1203# CONFIG_RTC_DRV_V3020 is not set
1204# CONFIG_RTC_DRV_WM8350 is not set
1205# CONFIG_RTC_DRV_PCF50633 is not set
1206CONFIG_RTC_DRV_AB3100=m
780 1207
781# 1208#
782# Userspace I/O 1209# on-CPU RTC drivers
783# 1210#
1211# CONFIG_DMADEVICES is not set
1212# CONFIG_AUXDISPLAY is not set
784CONFIG_UIO=y 1213CONFIG_UIO=y
785# CONFIG_UIO_CIF is not set 1214# CONFIG_UIO_CIF is not set
1215# CONFIG_UIO_PDRV is not set
1216# CONFIG_UIO_PDRV_GENIRQ is not set
1217CONFIG_UIO_SMX=m
1218CONFIG_UIO_AEC=m
1219CONFIG_UIO_SERCOS3=m
1220CONFIG_UIO_PCI_GENERIC=m
1221
1222#
1223# TI VLYNQ
1224#
1225# CONFIG_STAGING is not set
786 1226
787# 1227#
788# File systems 1228# File systems
@@ -793,36 +1233,58 @@ CONFIG_EXT2_FS_POSIX_ACL=y
793CONFIG_EXT2_FS_SECURITY=y 1233CONFIG_EXT2_FS_SECURITY=y
794# CONFIG_EXT2_FS_XIP is not set 1234# CONFIG_EXT2_FS_XIP is not set
795CONFIG_EXT3_FS=y 1235CONFIG_EXT3_FS=y
1236# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
796CONFIG_EXT3_FS_XATTR=y 1237CONFIG_EXT3_FS_XATTR=y
797CONFIG_EXT3_FS_POSIX_ACL=y 1238CONFIG_EXT3_FS_POSIX_ACL=y
798CONFIG_EXT3_FS_SECURITY=y 1239CONFIG_EXT3_FS_SECURITY=y
799# CONFIG_EXT4DEV_FS is not set 1240CONFIG_EXT4_FS=y
1241CONFIG_EXT4_FS_XATTR=y
1242CONFIG_EXT4_FS_POSIX_ACL=y
1243CONFIG_EXT4_FS_SECURITY=y
1244# CONFIG_EXT4_DEBUG is not set
800CONFIG_JBD=y 1245CONFIG_JBD=y
801CONFIG_JBD_DEBUG=y 1246CONFIG_JBD2=y
802CONFIG_FS_MBCACHE=y 1247CONFIG_FS_MBCACHE=y
803# CONFIG_REISERFS_FS is not set 1248# CONFIG_REISERFS_FS is not set
804# CONFIG_JFS_FS is not set 1249# CONFIG_JFS_FS is not set
805CONFIG_FS_POSIX_ACL=y 1250CONFIG_FS_POSIX_ACL=y
806CONFIG_XFS_FS=m 1251CONFIG_XFS_FS=m
807CONFIG_XFS_QUOTA=y 1252CONFIG_XFS_QUOTA=y
808CONFIG_XFS_SECURITY=y
809CONFIG_XFS_POSIX_ACL=y 1253CONFIG_XFS_POSIX_ACL=y
810# CONFIG_XFS_RT is not set 1254# CONFIG_XFS_RT is not set
1255# CONFIG_XFS_DEBUG is not set
811# CONFIG_GFS2_FS is not set 1256# CONFIG_GFS2_FS is not set
812# CONFIG_OCFS2_FS is not set 1257# CONFIG_OCFS2_FS is not set
813# CONFIG_MINIX_FS is not set 1258CONFIG_BTRFS_FS=m
814# CONFIG_ROMFS_FS is not set 1259CONFIG_BTRFS_FS_POSIX_ACL=y
1260# CONFIG_NILFS2_FS is not set
1261CONFIG_FILE_LOCKING=y
1262CONFIG_FSNOTIFY=y
1263CONFIG_DNOTIFY=y
815CONFIG_INOTIFY=y 1264CONFIG_INOTIFY=y
816CONFIG_INOTIFY_USER=y 1265CONFIG_INOTIFY_USER=y
817# CONFIG_QUOTA is not set 1266# CONFIG_QUOTA is not set
1267CONFIG_QUOTA_NETLINK_INTERFACE=y
818CONFIG_QUOTACTL=y 1268CONFIG_QUOTACTL=y
819CONFIG_DNOTIFY=y
820CONFIG_AUTOFS_FS=m 1269CONFIG_AUTOFS_FS=m
821# CONFIG_AUTOFS4_FS is not set 1270# CONFIG_AUTOFS4_FS is not set
822CONFIG_FUSE_FS=m 1271CONFIG_FUSE_FS=m
1272CONFIG_CUSE=m
823CONFIG_GENERIC_ACL=y 1273CONFIG_GENERIC_ACL=y
824 1274
825# 1275#
1276# Caches
1277#
1278CONFIG_FSCACHE=m
1279CONFIG_FSCACHE_STATS=y
1280# CONFIG_FSCACHE_HISTOGRAM is not set
1281# CONFIG_FSCACHE_DEBUG is not set
1282# CONFIG_FSCACHE_OBJECT_LIST is not set
1283CONFIG_CACHEFILES=m
1284# CONFIG_CACHEFILES_DEBUG is not set
1285# CONFIG_CACHEFILES_HISTOGRAM is not set
1286
1287#
826# CD-ROM/DVD Filesystems 1288# CD-ROM/DVD Filesystems
827# 1289#
828# CONFIG_ISO9660_FS is not set 1290# CONFIG_ISO9660_FS is not set
@@ -841,16 +1303,13 @@ CONFIG_GENERIC_ACL=y
841CONFIG_PROC_FS=y 1303CONFIG_PROC_FS=y
842CONFIG_PROC_KCORE=y 1304CONFIG_PROC_KCORE=y
843CONFIG_PROC_SYSCTL=y 1305CONFIG_PROC_SYSCTL=y
1306CONFIG_PROC_PAGE_MONITOR=y
844CONFIG_SYSFS=y 1307CONFIG_SYSFS=y
845CONFIG_TMPFS=y 1308CONFIG_TMPFS=y
846CONFIG_TMPFS_POSIX_ACL=y 1309CONFIG_TMPFS_POSIX_ACL=y
847# CONFIG_HUGETLB_PAGE is not set 1310# CONFIG_HUGETLB_PAGE is not set
848CONFIG_RAMFS=y
849CONFIG_CONFIGFS_FS=m 1311CONFIG_CONFIGFS_FS=m
850 1312CONFIG_MISC_FILESYSTEMS=y
851#
852# Miscellaneous filesystems
853#
854# CONFIG_ADFS_FS is not set 1313# CONFIG_ADFS_FS is not set
855# CONFIG_AFFS_FS is not set 1314# CONFIG_AFFS_FS is not set
856# CONFIG_ECRYPT_FS is not set 1315# CONFIG_ECRYPT_FS is not set
@@ -860,28 +1319,32 @@ CONFIG_CONFIGFS_FS=m
860# CONFIG_BFS_FS is not set 1319# CONFIG_BFS_FS is not set
861# CONFIG_EFS_FS is not set 1320# CONFIG_EFS_FS is not set
862# CONFIG_CRAMFS is not set 1321# CONFIG_CRAMFS is not set
1322CONFIG_SQUASHFS=m
1323# CONFIG_SQUASHFS_EMBEDDED is not set
1324CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
863# CONFIG_VXFS_FS is not set 1325# CONFIG_VXFS_FS is not set
1326# CONFIG_MINIX_FS is not set
1327CONFIG_OMFS_FS=m
864# CONFIG_HPFS_FS is not set 1328# CONFIG_HPFS_FS is not set
865# CONFIG_QNX4FS_FS is not set 1329# CONFIG_QNX4FS_FS is not set
1330# CONFIG_ROMFS_FS is not set
866# CONFIG_SYSV_FS is not set 1331# CONFIG_SYSV_FS is not set
867# CONFIG_UFS_FS is not set 1332# CONFIG_UFS_FS is not set
868 1333CONFIG_EXOFS_FS=m
869# 1334# CONFIG_EXOFS_DEBUG is not set
870# Network File Systems 1335CONFIG_NETWORK_FILESYSTEMS=y
871#
872CONFIG_NFS_FS=y 1336CONFIG_NFS_FS=y
873CONFIG_NFS_V3=y 1337CONFIG_NFS_V3=y
874# CONFIG_NFS_V3_ACL is not set 1338# CONFIG_NFS_V3_ACL is not set
875# CONFIG_NFS_V4 is not set 1339# CONFIG_NFS_V4 is not set
876# CONFIG_NFS_DIRECTIO is not set
877# CONFIG_NFSD is not set
878# CONFIG_ROOT_NFS is not set 1340# CONFIG_ROOT_NFS is not set
1341# CONFIG_NFSD is not set
879CONFIG_LOCKD=y 1342CONFIG_LOCKD=y
880CONFIG_LOCKD_V4=y 1343CONFIG_LOCKD_V4=y
1344CONFIG_EXPORTFS=m
881CONFIG_NFS_COMMON=y 1345CONFIG_NFS_COMMON=y
882CONFIG_SUNRPC=y 1346CONFIG_SUNRPC=y
883CONFIG_SUNRPC_GSS=y 1347CONFIG_SUNRPC_GSS=y
884# CONFIG_SUNRPC_BIND34 is not set
885CONFIG_RPCSEC_GSS_KRB5=y 1348CONFIG_RPCSEC_GSS_KRB5=y
886# CONFIG_RPCSEC_GSS_SPKM3 is not set 1349# CONFIG_RPCSEC_GSS_SPKM3 is not set
887# CONFIG_SMB_FS is not set 1350# CONFIG_SMB_FS is not set
@@ -911,36 +1374,38 @@ CONFIG_SGI_PARTITION=y
911# CONFIG_KARMA_PARTITION is not set 1374# CONFIG_KARMA_PARTITION is not set
912# CONFIG_EFI_PARTITION is not set 1375# CONFIG_EFI_PARTITION is not set
913# CONFIG_SYSV68_PARTITION is not set 1376# CONFIG_SYSV68_PARTITION is not set
914
915#
916# Native Language Support
917#
918# CONFIG_NLS is not set 1377# CONFIG_NLS is not set
919
920#
921# Distributed Lock Manager
922#
923CONFIG_DLM=m 1378CONFIG_DLM=m
924# CONFIG_DLM_DEBUG is not set 1379# CONFIG_DLM_DEBUG is not set
925 1380
926# 1381#
927# Profiling support
928#
929# CONFIG_PROFILING is not set
930
931#
932# Kernel hacking 1382# Kernel hacking
933# 1383#
934CONFIG_TRACE_IRQFLAGS_SUPPORT=y 1384CONFIG_TRACE_IRQFLAGS_SUPPORT=y
935# CONFIG_PRINTK_TIME is not set 1385# CONFIG_PRINTK_TIME is not set
1386CONFIG_ENABLE_WARN_DEPRECATED=y
936CONFIG_ENABLE_MUST_CHECK=y 1387CONFIG_ENABLE_MUST_CHECK=y
1388CONFIG_FRAME_WARN=2048
937# CONFIG_MAGIC_SYSRQ is not set 1389# CONFIG_MAGIC_SYSRQ is not set
1390# CONFIG_STRIP_ASM_SYMS is not set
938# CONFIG_UNUSED_SYMBOLS is not set 1391# CONFIG_UNUSED_SYMBOLS is not set
939# CONFIG_DEBUG_FS is not set 1392# CONFIG_DEBUG_FS is not set
940# CONFIG_HEADERS_CHECK is not set 1393# CONFIG_HEADERS_CHECK is not set
941# CONFIG_DEBUG_KERNEL is not set 1394# CONFIG_DEBUG_KERNEL is not set
942CONFIG_CROSSCOMPILE=y 1395# CONFIG_DEBUG_MEMORY_INIT is not set
943CONFIG_CMDLINE="" 1396# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1397# CONFIG_SYSCTL_SYSCALL_CHECK is not set
1398CONFIG_HAVE_FUNCTION_TRACER=y
1399CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1400CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y
1401CONFIG_HAVE_DYNAMIC_FTRACE=y
1402CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1403CONFIG_TRACING_SUPPORT=y
1404# CONFIG_FTRACE is not set
1405# CONFIG_SAMPLES is not set
1406CONFIG_HAVE_ARCH_KGDB=y
1407CONFIG_EARLY_PRINTK=y
1408# CONFIG_CMDLINE_BOOL is not set
944 1409
945# 1410#
946# Security options 1411# Security options
@@ -948,65 +1413,140 @@ CONFIG_CMDLINE=""
948CONFIG_KEYS=y 1413CONFIG_KEYS=y
949CONFIG_KEYS_DEBUG_PROC_KEYS=y 1414CONFIG_KEYS_DEBUG_PROC_KEYS=y
950# CONFIG_SECURITY is not set 1415# CONFIG_SECURITY is not set
951CONFIG_XOR_BLOCKS=m 1416CONFIG_SECURITYFS=y
952CONFIG_ASYNC_CORE=m 1417# CONFIG_DEFAULT_SECURITY_SELINUX is not set
953CONFIG_ASYNC_MEMCPY=m 1418# CONFIG_DEFAULT_SECURITY_SMACK is not set
954CONFIG_ASYNC_XOR=m 1419# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
1420CONFIG_DEFAULT_SECURITY_DAC=y
1421CONFIG_DEFAULT_SECURITY=""
1422CONFIG_XOR_BLOCKS=y
1423CONFIG_ASYNC_CORE=y
1424CONFIG_ASYNC_MEMCPY=y
1425CONFIG_ASYNC_XOR=y
1426CONFIG_ASYNC_PQ=y
1427CONFIG_ASYNC_RAID6_RECOV=y
955CONFIG_CRYPTO=y 1428CONFIG_CRYPTO=y
1429
1430#
1431# Crypto core or helper
1432#
1433CONFIG_CRYPTO_FIPS=y
956CONFIG_CRYPTO_ALGAPI=y 1434CONFIG_CRYPTO_ALGAPI=y
957CONFIG_CRYPTO_ABLKCIPHER=m 1435CONFIG_CRYPTO_ALGAPI2=y
1436CONFIG_CRYPTO_AEAD=m
1437CONFIG_CRYPTO_AEAD2=y
958CONFIG_CRYPTO_BLKCIPHER=y 1438CONFIG_CRYPTO_BLKCIPHER=y
1439CONFIG_CRYPTO_BLKCIPHER2=y
959CONFIG_CRYPTO_HASH=y 1440CONFIG_CRYPTO_HASH=y
1441CONFIG_CRYPTO_HASH2=y
1442CONFIG_CRYPTO_RNG=m
1443CONFIG_CRYPTO_RNG2=y
1444CONFIG_CRYPTO_PCOMP=y
960CONFIG_CRYPTO_MANAGER=y 1445CONFIG_CRYPTO_MANAGER=y
1446CONFIG_CRYPTO_MANAGER2=y
1447CONFIG_CRYPTO_GF128MUL=m
1448CONFIG_CRYPTO_NULL=m
1449CONFIG_CRYPTO_WORKQUEUE=y
1450CONFIG_CRYPTO_CRYPTD=m
1451CONFIG_CRYPTO_AUTHENC=m
1452# CONFIG_CRYPTO_TEST is not set
1453
1454#
1455# Authenticated Encryption with Associated Data
1456#
1457CONFIG_CRYPTO_CCM=m
1458CONFIG_CRYPTO_GCM=m
1459CONFIG_CRYPTO_SEQIV=m
1460
1461#
1462# Block modes
1463#
1464CONFIG_CRYPTO_CBC=y
1465CONFIG_CRYPTO_CTR=m
1466CONFIG_CRYPTO_CTS=m
1467CONFIG_CRYPTO_ECB=m
1468CONFIG_CRYPTO_LRW=m
1469CONFIG_CRYPTO_PCBC=m
1470CONFIG_CRYPTO_XTS=m
1471
1472#
1473# Hash modes
1474#
961CONFIG_CRYPTO_HMAC=y 1475CONFIG_CRYPTO_HMAC=y
962CONFIG_CRYPTO_XCBC=m 1476CONFIG_CRYPTO_XCBC=m
963CONFIG_CRYPTO_NULL=m 1477CONFIG_CRYPTO_VMAC=m
1478
1479#
1480# Digest
1481#
1482CONFIG_CRYPTO_CRC32C=m
1483CONFIG_CRYPTO_GHASH=m
964CONFIG_CRYPTO_MD4=m 1484CONFIG_CRYPTO_MD4=m
965CONFIG_CRYPTO_MD5=y 1485CONFIG_CRYPTO_MD5=y
1486CONFIG_CRYPTO_MICHAEL_MIC=m
1487CONFIG_CRYPTO_RMD128=m
1488CONFIG_CRYPTO_RMD160=m
1489CONFIG_CRYPTO_RMD256=m
1490CONFIG_CRYPTO_RMD320=m
966CONFIG_CRYPTO_SHA1=m 1491CONFIG_CRYPTO_SHA1=m
967CONFIG_CRYPTO_SHA256=m 1492CONFIG_CRYPTO_SHA256=m
968CONFIG_CRYPTO_SHA512=m 1493CONFIG_CRYPTO_SHA512=m
969CONFIG_CRYPTO_WP512=m
970CONFIG_CRYPTO_TGR192=m 1494CONFIG_CRYPTO_TGR192=m
971CONFIG_CRYPTO_GF128MUL=m 1495CONFIG_CRYPTO_WP512=m
972CONFIG_CRYPTO_ECB=m 1496
973CONFIG_CRYPTO_CBC=y 1497#
974CONFIG_CRYPTO_PCBC=m 1498# Ciphers
975CONFIG_CRYPTO_LRW=m 1499#
976CONFIG_CRYPTO_CRYPTD=m
977CONFIG_CRYPTO_DES=y
978CONFIG_CRYPTO_FCRYPT=m
979CONFIG_CRYPTO_BLOWFISH=m
980CONFIG_CRYPTO_TWOFISH=m
981CONFIG_CRYPTO_TWOFISH_COMMON=m
982CONFIG_CRYPTO_SERPENT=m
983CONFIG_CRYPTO_AES=m 1500CONFIG_CRYPTO_AES=m
1501CONFIG_CRYPTO_ANUBIS=m
1502CONFIG_CRYPTO_ARC4=m
1503CONFIG_CRYPTO_BLOWFISH=m
1504CONFIG_CRYPTO_CAMELLIA=m
984CONFIG_CRYPTO_CAST5=m 1505CONFIG_CRYPTO_CAST5=m
985CONFIG_CRYPTO_CAST6=m 1506CONFIG_CRYPTO_CAST6=m
986CONFIG_CRYPTO_TEA=m 1507CONFIG_CRYPTO_DES=y
987CONFIG_CRYPTO_ARC4=m 1508CONFIG_CRYPTO_FCRYPT=m
988CONFIG_CRYPTO_KHAZAD=m 1509CONFIG_CRYPTO_KHAZAD=m
989CONFIG_CRYPTO_ANUBIS=m 1510CONFIG_CRYPTO_SALSA20=m
1511CONFIG_CRYPTO_SEED=m
1512CONFIG_CRYPTO_SERPENT=m
1513CONFIG_CRYPTO_TEA=m
1514CONFIG_CRYPTO_TWOFISH=m
1515CONFIG_CRYPTO_TWOFISH_COMMON=m
1516
1517#
1518# Compression
1519#
990CONFIG_CRYPTO_DEFLATE=m 1520CONFIG_CRYPTO_DEFLATE=m
991CONFIG_CRYPTO_MICHAEL_MIC=m 1521CONFIG_CRYPTO_ZLIB=m
992CONFIG_CRYPTO_CRC32C=m 1522CONFIG_CRYPTO_LZO=m
993CONFIG_CRYPTO_CAMELLIA=m 1523
994# CONFIG_CRYPTO_TEST is not set 1524#
1525# Random Number Generation
1526#
1527CONFIG_CRYPTO_ANSI_CPRNG=m
995CONFIG_CRYPTO_HW=y 1528CONFIG_CRYPTO_HW=y
1529CONFIG_CRYPTO_DEV_HIFN_795X=m
1530# CONFIG_CRYPTO_DEV_HIFN_795X_RNG is not set
1531# CONFIG_BINARY_PRINTF is not set
996 1532
997# 1533#
998# Library routines 1534# Library routines
999# 1535#
1000CONFIG_BITREVERSE=y 1536CONFIG_BITREVERSE=y
1537CONFIG_GENERIC_FIND_LAST_BIT=y
1001CONFIG_CRC_CCITT=m 1538CONFIG_CRC_CCITT=m
1002# CONFIG_CRC16 is not set 1539CONFIG_CRC16=y
1003# CONFIG_CRC_ITU_T is not set 1540CONFIG_CRC_T10DIF=m
1541CONFIG_CRC_ITU_T=m
1004CONFIG_CRC32=y 1542CONFIG_CRC32=y
1005# CONFIG_CRC7 is not set 1543CONFIG_CRC7=m
1006CONFIG_LIBCRC32C=m 1544CONFIG_LIBCRC32C=m
1007CONFIG_ZLIB_INFLATE=m 1545CONFIG_ZLIB_INFLATE=m
1008CONFIG_ZLIB_DEFLATE=m 1546CONFIG_ZLIB_DEFLATE=m
1009CONFIG_PLIST=y 1547CONFIG_LZO_COMPRESS=m
1548CONFIG_LZO_DECOMPRESS=m
1010CONFIG_HAS_IOMEM=y 1549CONFIG_HAS_IOMEM=y
1011CONFIG_HAS_IOPORT=y 1550CONFIG_HAS_IOPORT=y
1012CONFIG_HAS_DMA=y 1551CONFIG_HAS_DMA=y
1552CONFIG_NLATTR=y
diff --git a/arch/mips/configs/ip28_defconfig b/arch/mips/configs/ip28_defconfig
index 539dccb0345d..dab2e5aaadaf 100644
--- a/arch/mips/configs/ip28_defconfig
+++ b/arch/mips/configs/ip28_defconfig
@@ -9,7 +9,6 @@ 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_BASLER_EXCITE is not set
13# CONFIG_BCM47XX is not set 12# CONFIG_BCM47XX is not set
14# CONFIG_MIPS_COBALT is not set 13# CONFIG_MIPS_COBALT is not set
15# CONFIG_MACH_DECSTATION is not set 14# CONFIG_MACH_DECSTATION is not set
@@ -816,7 +815,7 @@ CONFIG_MAGIC_SYSRQ=y
816# CONFIG_HEADERS_CHECK is not set 815# CONFIG_HEADERS_CHECK is not set
817# CONFIG_DEBUG_KERNEL is not set 816# CONFIG_DEBUG_KERNEL is not set
818# CONFIG_SAMPLES is not set 817# CONFIG_SAMPLES is not set
819CONFIG_CMDLINE="" 818# CONFIG_CMDLINE_BOOL is not set
820 819
821# 820#
822# Security options 821# Security options
diff --git a/arch/mips/configs/ip32_defconfig b/arch/mips/configs/ip32_defconfig
index d934bdefb393..1841c88d3d24 100644
--- a/arch/mips/configs/ip32_defconfig
+++ b/arch/mips/configs/ip32_defconfig
@@ -9,7 +9,6 @@ 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_BASLER_EXCITE is not set
13# CONFIG_BCM47XX is not set 12# CONFIG_BCM47XX is not set
14# CONFIG_MIPS_COBALT is not set 13# CONFIG_MIPS_COBALT is not set
15# CONFIG_MACH_DECSTATION is not set 14# CONFIG_MACH_DECSTATION is not set
@@ -1126,7 +1125,7 @@ CONFIG_SYSCTL_SYSCALL_CHECK=y
1126# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1125# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1127# CONFIG_SAMPLES is not set 1126# CONFIG_SAMPLES is not set
1128CONFIG_HAVE_ARCH_KGDB=y 1127CONFIG_HAVE_ARCH_KGDB=y
1129CONFIG_CMDLINE="" 1128# CONFIG_CMDLINE_BOOL is not set
1130 1129
1131# 1130#
1132# Security options 1131# Security options
diff --git a/arch/mips/configs/jazz_defconfig b/arch/mips/configs/jazz_defconfig
index d22df61833a8..14c2ab3b2674 100644
--- a/arch/mips/configs/jazz_defconfig
+++ b/arch/mips/configs/jazz_defconfig
@@ -22,7 +22,6 @@ CONFIG_ZONE_DMA=y
22# CONFIG_MIPS_DB1550 is not set 22# CONFIG_MIPS_DB1550 is not set
23# CONFIG_MIPS_DB1200 is not set 23# CONFIG_MIPS_DB1200 is not set
24# CONFIG_MIPS_MIRAGE is not set 24# CONFIG_MIPS_MIRAGE is not set
25# CONFIG_BASLER_EXCITE is not set
26# CONFIG_MIPS_COBALT is not set 25# CONFIG_MIPS_COBALT is not set
27# CONFIG_MACH_DECSTATION is not set 26# CONFIG_MACH_DECSTATION is not set
28CONFIG_MACH_JAZZ=y 27CONFIG_MACH_JAZZ=y
@@ -1374,7 +1373,7 @@ CONFIG_ENABLE_MUST_CHECK=y
1374# CONFIG_DEBUG_KERNEL is not set 1373# CONFIG_DEBUG_KERNEL is not set
1375CONFIG_LOG_BUF_SHIFT=14 1374CONFIG_LOG_BUF_SHIFT=14
1376CONFIG_CROSSCOMPILE=y 1375CONFIG_CROSSCOMPILE=y
1377CONFIG_CMDLINE="" 1376# CONFIG_CMDLINE_BOOL is not set
1378 1377
1379# 1378#
1380# Security options 1379# Security options
diff --git a/arch/mips/configs/jmr3927_defconfig b/arch/mips/configs/jmr3927_defconfig
index 5380f1f582d9..4d66c44cced8 100644
--- a/arch/mips/configs/jmr3927_defconfig
+++ b/arch/mips/configs/jmr3927_defconfig
@@ -9,7 +9,6 @@ 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_BASLER_EXCITE is not set
13# CONFIG_BCM47XX is not set 12# CONFIG_BCM47XX is not set
14# CONFIG_MIPS_COBALT is not set 13# CONFIG_MIPS_COBALT is not set
15# CONFIG_MACH_DECSTATION is not set 14# CONFIG_MACH_DECSTATION is not set
@@ -835,7 +834,7 @@ CONFIG_SYSCTL_SYSCALL_CHECK=y
835# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 834# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
836# CONFIG_SAMPLES is not set 835# CONFIG_SAMPLES is not set
837CONFIG_HAVE_ARCH_KGDB=y 836CONFIG_HAVE_ARCH_KGDB=y
838CONFIG_CMDLINE="" 837# CONFIG_CMDLINE_BOOL is not set
839 838
840# 839#
841# Security options 840# Security options
diff --git a/arch/mips/configs/lasat_defconfig b/arch/mips/configs/lasat_defconfig
index 044074db7e55..08d481e3d42a 100644
--- a/arch/mips/configs/lasat_defconfig
+++ b/arch/mips/configs/lasat_defconfig
@@ -9,7 +9,6 @@ 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_BASLER_EXCITE is not set
13# CONFIG_MIPS_COBALT is not set 12# CONFIG_MIPS_COBALT is not set
14# CONFIG_MACH_DECSTATION is not set 13# CONFIG_MACH_DECSTATION is not set
15# CONFIG_MACH_JAZZ is not set 14# CONFIG_MACH_JAZZ is not set
@@ -798,7 +797,7 @@ CONFIG_MAGIC_SYSRQ=y
798# CONFIG_HEADERS_CHECK is not set 797# CONFIG_HEADERS_CHECK is not set
799# CONFIG_DEBUG_KERNEL is not set 798# CONFIG_DEBUG_KERNEL is not set
800CONFIG_CROSSCOMPILE=y 799CONFIG_CROSSCOMPILE=y
801CONFIG_CMDLINE="" 800# CONFIG_CMDLINE_BOOL is not set
802 801
803# 802#
804# Security options 803# Security options
diff --git a/arch/mips/configs/lemote2f_defconfig b/arch/mips/configs/lemote2f_defconfig
new file mode 100644
index 000000000000..4caa0e0fee81
--- /dev/null
+++ b/arch/mips/configs/lemote2f_defconfig
@@ -0,0 +1,2211 @@
1#
2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.33-rc2
4# Mon Jan 4 13:41:09 2010
5#
6CONFIG_MIPS=y
7
8#
9# Machine selection
10#
11# CONFIG_MACH_ALCHEMY is not set
12# CONFIG_AR7 is not set
13# CONFIG_BCM47XX is not set
14# CONFIG_BCM63XX is not set
15# CONFIG_MIPS_COBALT is not set
16# CONFIG_MACH_DECSTATION is not set
17# CONFIG_MACH_JAZZ is not set
18# CONFIG_LASAT is not set
19CONFIG_MACH_LOONGSON=y
20# CONFIG_MIPS_MALTA is not set
21# CONFIG_MIPS_SIM is not set
22# CONFIG_NEC_MARKEINS is not set
23# CONFIG_MACH_VR41XX is not set
24# CONFIG_NXP_STB220 is not set
25# CONFIG_NXP_STB225 is not set
26# CONFIG_PNX8550_JBS is not set
27# CONFIG_PNX8550_STB810 is not set
28# CONFIG_PMC_MSP is not set
29# CONFIG_PMC_YOSEMITE is not set
30# CONFIG_POWERTV is not set
31# CONFIG_SGI_IP22 is not set
32# CONFIG_SGI_IP27 is not set
33# CONFIG_SGI_IP28 is not set
34# CONFIG_SGI_IP32 is not set
35# CONFIG_SIBYTE_CRHINE is not set
36# CONFIG_SIBYTE_CARMEL is not set
37# CONFIG_SIBYTE_CRHONE is not set
38# CONFIG_SIBYTE_RHONE is not set
39# CONFIG_SIBYTE_SWARM is not set
40# CONFIG_SIBYTE_LITTLESUR is not set
41# CONFIG_SIBYTE_SENTOSA is not set
42# CONFIG_SIBYTE_BIGSUR is not set
43# CONFIG_SNI_RM is not set
44# CONFIG_MACH_TX39XX is not set
45# CONFIG_MACH_TX49XX is not set
46# CONFIG_MIKROTIK_RB532 is not set
47# CONFIG_WR_PPMC is not set
48# CONFIG_CAVIUM_OCTEON_SIMULATOR is not set
49# CONFIG_CAVIUM_OCTEON_REFERENCE_BOARD is not set
50# CONFIG_ALCHEMY_GPIO_INDIRECT is not set
51CONFIG_ARCH_SPARSEMEM_ENABLE=y
52# CONFIG_LEMOTE_FULOONG2E is not set
53CONFIG_LEMOTE_MACH2F=y
54CONFIG_CS5536=y
55CONFIG_CS5536_MFGPT=y
56CONFIG_LOONGSON_SUSPEND=y
57CONFIG_LOONGSON_UART_BASE=y
58CONFIG_RWSEM_GENERIC_SPINLOCK=y
59# CONFIG_ARCH_HAS_ILOG2_U32 is not set
60# CONFIG_ARCH_HAS_ILOG2_U64 is not set
61CONFIG_ARCH_SUPPORTS_OPROFILE=y
62CONFIG_GENERIC_FIND_NEXT_BIT=y
63CONFIG_GENERIC_HWEIGHT=y
64CONFIG_GENERIC_CALIBRATE_DELAY=y
65CONFIG_GENERIC_CLOCKEVENTS=y
66CONFIG_GENERIC_TIME=y
67CONFIG_GENERIC_CMOS_UPDATE=y
68CONFIG_SCHED_OMIT_FRAME_POINTER=y
69CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
70CONFIG_DMA_NONCOHERENT=y
71CONFIG_DMA_NEED_PCI_MAP_STATE=y
72CONFIG_SYS_HAS_EARLY_PRINTK=y
73CONFIG_I8259=y
74# CONFIG_NO_IOPORT is not set
75CONFIG_GENERIC_ISA_DMA=y
76CONFIG_GENERIC_ISA_DMA_SUPPORT_BROKEN=y
77# CONFIG_CPU_BIG_ENDIAN is not set
78CONFIG_CPU_LITTLE_ENDIAN=y
79CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y
80CONFIG_IRQ_CPU=y
81CONFIG_BOOT_ELF32=y
82CONFIG_MIPS_L1_CACHE_SHIFT=5
83
84#
85# CPU selection
86#
87# CONFIG_CPU_LOONGSON2E is not set
88CONFIG_CPU_LOONGSON2F=y
89# CONFIG_CPU_MIPS32_R1 is not set
90# CONFIG_CPU_MIPS32_R2 is not set
91# CONFIG_CPU_MIPS64_R1 is not set
92# CONFIG_CPU_MIPS64_R2 is not set
93# CONFIG_CPU_R3000 is not set
94# CONFIG_CPU_TX39XX is not set
95# CONFIG_CPU_VR41XX is not set
96# CONFIG_CPU_R4300 is not set
97# CONFIG_CPU_R4X00 is not set
98# CONFIG_CPU_TX49XX is not set
99# CONFIG_CPU_R5000 is not set
100# CONFIG_CPU_R5432 is not set
101# CONFIG_CPU_R5500 is not set
102# CONFIG_CPU_R6000 is not set
103# CONFIG_CPU_NEVADA is not set
104# CONFIG_CPU_R8000 is not set
105# CONFIG_CPU_R10000 is not set
106# CONFIG_CPU_RM7000 is not set
107# CONFIG_CPU_RM9000 is not set
108# CONFIG_CPU_SB1 is not set
109# CONFIG_CPU_CAVIUM_OCTEON is not set
110CONFIG_SYS_SUPPORTS_ZBOOT=y
111CONFIG_CPU_LOONGSON2=y
112CONFIG_SYS_HAS_CPU_LOONGSON2F=y
113CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y
114CONFIG_SYS_SUPPORTS_64BIT_KERNEL=y
115CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y
116CONFIG_CPU_SUPPORTS_64BIT_KERNEL=y
117CONFIG_CPU_SUPPORTS_CPUFREQ=y
118CONFIG_CPU_SUPPORTS_ADDRWINCFG=y
119CONFIG_CPU_SUPPORTS_UNCACHED_ACCELERATED=y
120
121#
122# Kernel type
123#
124# CONFIG_32BIT is not set
125CONFIG_64BIT=y
126# CONFIG_PAGE_SIZE_4KB is not set
127# CONFIG_PAGE_SIZE_8KB is not set
128CONFIG_PAGE_SIZE_16KB=y
129# CONFIG_PAGE_SIZE_32KB is not set
130# CONFIG_PAGE_SIZE_64KB is not set
131CONFIG_BOARD_SCACHE=y
132CONFIG_MIPS_MT_DISABLED=y
133# CONFIG_MIPS_MT_SMP is not set
134# CONFIG_MIPS_MT_SMTC is not set
135CONFIG_CPU_HAS_WB=y
136CONFIG_CPU_HAS_SYNC=y
137CONFIG_GENERIC_HARDIRQS=y
138CONFIG_GENERIC_IRQ_PROBE=y
139CONFIG_CPU_SUPPORTS_HIGHMEM=y
140CONFIG_SYS_SUPPORTS_HIGHMEM=y
141CONFIG_ARCH_POPULATES_NODE_MAP=y
142CONFIG_SELECT_MEMORY_MODEL=y
143# CONFIG_FLATMEM_MANUAL is not set
144# CONFIG_DISCONTIGMEM_MANUAL is not set
145CONFIG_SPARSEMEM_MANUAL=y
146CONFIG_SPARSEMEM=y
147CONFIG_HAVE_MEMORY_PRESENT=y
148CONFIG_SPARSEMEM_STATIC=y
149CONFIG_PAGEFLAGS_EXTENDED=y
150CONFIG_SPLIT_PTLOCK_CPUS=4
151CONFIG_PHYS_ADDR_T_64BIT=y
152CONFIG_ZONE_DMA_FLAG=0
153CONFIG_VIRT_TO_BUS=y
154# CONFIG_KSM is not set
155CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
156CONFIG_TICK_ONESHOT=y
157CONFIG_NO_HZ=y
158CONFIG_HIGH_RES_TIMERS=y
159CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
160# CONFIG_HZ_48 is not set
161# CONFIG_HZ_100 is not set
162# CONFIG_HZ_128 is not set
163CONFIG_HZ_250=y
164# CONFIG_HZ_256 is not set
165# CONFIG_HZ_1000 is not set
166# CONFIG_HZ_1024 is not set
167CONFIG_SYS_SUPPORTS_ARBIT_HZ=y
168CONFIG_HZ=250
169# CONFIG_PREEMPT_NONE is not set
170# CONFIG_PREEMPT_VOLUNTARY is not set
171CONFIG_PREEMPT=y
172CONFIG_KEXEC=y
173# CONFIG_SECCOMP is not set
174CONFIG_LOCKDEP_SUPPORT=y
175CONFIG_STACKTRACE_SUPPORT=y
176CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
177CONFIG_CONSTRUCTORS=y
178
179#
180# General setup
181#
182CONFIG_EXPERIMENTAL=y
183CONFIG_BROKEN_ON_SMP=y
184CONFIG_LOCK_KERNEL=y
185CONFIG_INIT_ENV_ARG_LIMIT=32
186CONFIG_LOCALVERSION=""
187# CONFIG_LOCALVERSION_AUTO is not set
188CONFIG_HAVE_KERNEL_GZIP=y
189CONFIG_HAVE_KERNEL_BZIP2=y
190CONFIG_HAVE_KERNEL_LZMA=y
191CONFIG_KERNEL_GZIP=y
192# CONFIG_KERNEL_BZIP2 is not set
193# CONFIG_KERNEL_LZMA is not set
194CONFIG_SWAP=y
195CONFIG_SYSVIPC=y
196CONFIG_SYSVIPC_SYSCTL=y
197# CONFIG_POSIX_MQUEUE is not set
198CONFIG_BSD_PROCESS_ACCT=y
199CONFIG_BSD_PROCESS_ACCT_V3=y
200# CONFIG_TASKSTATS is not set
201CONFIG_AUDIT=y
202
203#
204# RCU Subsystem
205#
206CONFIG_TREE_RCU=y
207# CONFIG_TREE_PREEMPT_RCU is not set
208# CONFIG_TINY_RCU is not set
209# CONFIG_RCU_TRACE is not set
210CONFIG_RCU_FANOUT=64
211# CONFIG_RCU_FANOUT_EXACT is not set
212# CONFIG_TREE_RCU_TRACE is not set
213CONFIG_IKCONFIG=y
214CONFIG_IKCONFIG_PROC=y
215CONFIG_LOG_BUF_SHIFT=15
216# CONFIG_GROUP_SCHED is not set
217# CONFIG_CGROUPS is not set
218CONFIG_SYSFS_DEPRECATED=y
219CONFIG_SYSFS_DEPRECATED_V2=y
220# CONFIG_RELAY is not set
221# CONFIG_NAMESPACES is not set
222CONFIG_BLK_DEV_INITRD=y
223CONFIG_INITRAMFS_SOURCE=""
224CONFIG_RD_GZIP=y
225CONFIG_RD_BZIP2=y
226CONFIG_RD_LZMA=y
227# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
228CONFIG_SYSCTL=y
229CONFIG_ANON_INODES=y
230CONFIG_EMBEDDED=y
231CONFIG_SYSCTL_SYSCALL=y
232CONFIG_KALLSYMS=y
233# CONFIG_KALLSYMS_EXTRA_PASS is not set
234CONFIG_HOTPLUG=y
235CONFIG_PRINTK=y
236CONFIG_BUG=y
237CONFIG_ELF_CORE=y
238CONFIG_PCSPKR_PLATFORM=y
239CONFIG_BASE_FULL=y
240CONFIG_FUTEX=y
241CONFIG_EPOLL=y
242CONFIG_SIGNALFD=y
243CONFIG_TIMERFD=y
244CONFIG_EVENTFD=y
245CONFIG_SHMEM=y
246CONFIG_AIO=y
247
248#
249# Kernel Performance Events And Counters
250#
251CONFIG_VM_EVENT_COUNTERS=y
252CONFIG_PCI_QUIRKS=y
253CONFIG_SLUB_DEBUG=y
254CONFIG_COMPAT_BRK=y
255# CONFIG_SLAB is not set
256CONFIG_SLUB=y
257# CONFIG_SLOB is not set
258CONFIG_PROFILING=y
259CONFIG_TRACEPOINTS=y
260CONFIG_OPROFILE=m
261CONFIG_HAVE_OPROFILE=y
262CONFIG_HAVE_SYSCALL_WRAPPERS=y
263
264#
265# GCOV-based kernel profiling
266#
267# CONFIG_GCOV_KERNEL is not set
268CONFIG_SLOW_WORK=y
269# CONFIG_SLOW_WORK_DEBUG is not set
270CONFIG_HAVE_GENERIC_DMA_COHERENT=y
271CONFIG_SLABINFO=y
272CONFIG_RT_MUTEXES=y
273CONFIG_BASE_SMALL=0
274CONFIG_MODULES=y
275# CONFIG_MODULE_FORCE_LOAD is not set
276CONFIG_MODULE_UNLOAD=y
277# CONFIG_MODULE_FORCE_UNLOAD is not set
278CONFIG_MODVERSIONS=y
279# CONFIG_MODULE_SRCVERSION_ALL is not set
280CONFIG_BLOCK=y
281CONFIG_BLK_DEV_BSG=y
282CONFIG_BLK_DEV_INTEGRITY=y
283CONFIG_BLOCK_COMPAT=y
284
285#
286# IO Schedulers
287#
288CONFIG_IOSCHED_NOOP=y
289CONFIG_IOSCHED_DEADLINE=m
290CONFIG_IOSCHED_CFQ=y
291# CONFIG_DEFAULT_DEADLINE is not set
292CONFIG_DEFAULT_CFQ=y
293# CONFIG_DEFAULT_NOOP is not set
294CONFIG_DEFAULT_IOSCHED="cfq"
295# CONFIG_INLINE_SPIN_TRYLOCK is not set
296# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
297# CONFIG_INLINE_SPIN_LOCK is not set
298# CONFIG_INLINE_SPIN_LOCK_BH is not set
299# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
300# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
301# CONFIG_INLINE_SPIN_UNLOCK is not set
302# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
303# CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set
304# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
305# CONFIG_INLINE_READ_TRYLOCK is not set
306# CONFIG_INLINE_READ_LOCK is not set
307# CONFIG_INLINE_READ_LOCK_BH is not set
308# CONFIG_INLINE_READ_LOCK_IRQ is not set
309# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
310# CONFIG_INLINE_READ_UNLOCK is not set
311# CONFIG_INLINE_READ_UNLOCK_BH is not set
312# CONFIG_INLINE_READ_UNLOCK_IRQ is not set
313# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
314# CONFIG_INLINE_WRITE_TRYLOCK is not set
315# CONFIG_INLINE_WRITE_LOCK is not set
316# CONFIG_INLINE_WRITE_LOCK_BH is not set
317# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
318# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
319# CONFIG_INLINE_WRITE_UNLOCK is not set
320# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
321# CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set
322# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
323# CONFIG_MUTEX_SPIN_ON_OWNER is not set
324CONFIG_FREEZER=y
325
326#
327# Bus options (PCI, PCMCIA, EISA, ISA, TC)
328#
329CONFIG_HW_HAS_PCI=y
330CONFIG_PCI=y
331CONFIG_PCI_DOMAINS=y
332# CONFIG_ARCH_SUPPORTS_MSI is not set
333CONFIG_PCI_LEGACY=y
334# CONFIG_PCI_STUB is not set
335# CONFIG_PCI_IOV is not set
336CONFIG_ISA=y
337CONFIG_MMU=y
338# CONFIG_PCCARD is not set
339# CONFIG_HOTPLUG_PCI is not set
340
341#
342# Executable file formats
343#
344CONFIG_BINFMT_ELF=y
345# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
346# CONFIG_HAVE_AOUT is not set
347CONFIG_BINFMT_MISC=m
348CONFIG_MIPS32_COMPAT=y
349CONFIG_COMPAT=y
350CONFIG_SYSVIPC_COMPAT=y
351CONFIG_MIPS32_O32=y
352CONFIG_MIPS32_N32=y
353CONFIG_BINFMT_ELF32=y
354
355#
356# Power management options
357#
358CONFIG_ARCH_HIBERNATION_POSSIBLE=y
359CONFIG_ARCH_SUSPEND_POSSIBLE=y
360CONFIG_PM=y
361# CONFIG_PM_DEBUG is not set
362CONFIG_PM_SLEEP=y
363CONFIG_SUSPEND=y
364CONFIG_SUSPEND_FREEZER=y
365CONFIG_HIBERNATION_NVS=y
366CONFIG_HIBERNATION=y
367CONFIG_PM_STD_PARTITION="/dev/hda3"
368CONFIG_PM_RUNTIME=y
369CONFIG_MIPS_EXTERNAL_TIMER=y
370CONFIG_MIPS_CPUFREQ=y
371
372#
373# CPU Frequency scaling
374#
375CONFIG_CPU_FREQ=y
376CONFIG_CPU_FREQ_TABLE=y
377CONFIG_CPU_FREQ_DEBUG=y
378CONFIG_CPU_FREQ_STAT=m
379CONFIG_CPU_FREQ_STAT_DETAILS=y
380# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
381# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
382# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
383CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
384# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
385CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
386CONFIG_CPU_FREQ_GOV_POWERSAVE=m
387CONFIG_CPU_FREQ_GOV_USERSPACE=m
388CONFIG_CPU_FREQ_GOV_ONDEMAND=y
389CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
390
391#
392# CPUFreq processor drivers
393#
394CONFIG_LOONGSON2_CPUFREQ=m
395CONFIG_NET=y
396
397#
398# Networking options
399#
400CONFIG_PACKET=y
401CONFIG_PACKET_MMAP=y
402CONFIG_UNIX=y
403CONFIG_XFRM=y
404CONFIG_XFRM_USER=m
405# CONFIG_XFRM_SUB_POLICY is not set
406# CONFIG_XFRM_MIGRATE is not set
407# CONFIG_XFRM_STATISTICS is not set
408CONFIG_NET_KEY=m
409# CONFIG_NET_KEY_MIGRATE is not set
410CONFIG_INET=y
411CONFIG_IP_MULTICAST=y
412CONFIG_IP_ADVANCED_ROUTER=y
413CONFIG_ASK_IP_FIB_HASH=y
414# CONFIG_IP_FIB_TRIE is not set
415CONFIG_IP_FIB_HASH=y
416CONFIG_IP_MULTIPLE_TABLES=y
417CONFIG_IP_ROUTE_MULTIPATH=y
418CONFIG_IP_ROUTE_VERBOSE=y
419# CONFIG_IP_PNP is not set
420CONFIG_NET_IPIP=m
421CONFIG_NET_IPGRE=m
422# CONFIG_NET_IPGRE_BROADCAST is not set
423CONFIG_IP_MROUTE=y
424CONFIG_IP_PIMSM_V1=y
425CONFIG_IP_PIMSM_V2=y
426CONFIG_ARPD=y
427CONFIG_SYN_COOKIES=y
428# CONFIG_INET_AH is not set
429# CONFIG_INET_ESP is not set
430# CONFIG_INET_IPCOMP is not set
431# CONFIG_INET_XFRM_TUNNEL is not set
432CONFIG_INET_TUNNEL=m
433CONFIG_INET_XFRM_MODE_TRANSPORT=m
434CONFIG_INET_XFRM_MODE_TUNNEL=m
435CONFIG_INET_XFRM_MODE_BEET=m
436CONFIG_INET_LRO=y
437CONFIG_INET_DIAG=y
438CONFIG_INET_TCP_DIAG=y
439CONFIG_TCP_CONG_ADVANCED=y
440CONFIG_TCP_CONG_BIC=y
441CONFIG_TCP_CONG_CUBIC=y
442CONFIG_TCP_CONG_WESTWOOD=m
443CONFIG_TCP_CONG_HTCP=m
444# CONFIG_TCP_CONG_HSTCP is not set
445# CONFIG_TCP_CONG_HYBLA is not set
446# CONFIG_TCP_CONG_VEGAS is not set
447# CONFIG_TCP_CONG_SCALABLE is not set
448# CONFIG_TCP_CONG_LP is not set
449# CONFIG_TCP_CONG_VENO is not set
450# CONFIG_TCP_CONG_YEAH is not set
451# CONFIG_TCP_CONG_ILLINOIS is not set
452CONFIG_DEFAULT_BIC=y
453# CONFIG_DEFAULT_CUBIC is not set
454# CONFIG_DEFAULT_HTCP is not set
455# CONFIG_DEFAULT_VEGAS is not set
456# CONFIG_DEFAULT_WESTWOOD is not set
457# CONFIG_DEFAULT_RENO is not set
458CONFIG_DEFAULT_TCP_CONG="bic"
459CONFIG_TCP_MD5SIG=y
460CONFIG_IPV6=m
461CONFIG_IPV6_PRIVACY=y
462CONFIG_IPV6_ROUTER_PREF=y
463# CONFIG_IPV6_ROUTE_INFO is not set
464# CONFIG_IPV6_OPTIMISTIC_DAD is not set
465# CONFIG_INET6_AH is not set
466# CONFIG_INET6_ESP is not set
467# CONFIG_INET6_IPCOMP is not set
468# CONFIG_IPV6_MIP6 is not set
469# CONFIG_INET6_XFRM_TUNNEL is not set
470CONFIG_INET6_TUNNEL=m
471CONFIG_INET6_XFRM_MODE_TRANSPORT=m
472CONFIG_INET6_XFRM_MODE_TUNNEL=m
473CONFIG_INET6_XFRM_MODE_BEET=m
474# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set
475CONFIG_IPV6_SIT=m
476# CONFIG_IPV6_SIT_6RD is not set
477CONFIG_IPV6_NDISC_NODETYPE=y
478CONFIG_IPV6_TUNNEL=m
479CONFIG_IPV6_MULTIPLE_TABLES=y
480CONFIG_IPV6_SUBTREES=y
481# CONFIG_IPV6_MROUTE is not set
482CONFIG_NETWORK_SECMARK=y
483CONFIG_NETFILTER=y
484# CONFIG_NETFILTER_DEBUG is not set
485CONFIG_NETFILTER_ADVANCED=y
486CONFIG_BRIDGE_NETFILTER=y
487
488#
489# Core Netfilter Configuration
490#
491# CONFIG_NETFILTER_NETLINK_QUEUE is not set
492# CONFIG_NETFILTER_NETLINK_LOG is not set
493# CONFIG_NF_CONNTRACK is not set
494# CONFIG_NETFILTER_XTABLES is not set
495# CONFIG_IP_VS is not set
496
497#
498# IP: Netfilter Configuration
499#
500# CONFIG_NF_DEFRAG_IPV4 is not set
501# CONFIG_IP_NF_QUEUE is not set
502# CONFIG_IP_NF_IPTABLES is not set
503# CONFIG_IP_NF_ARPTABLES is not set
504
505#
506# IPv6: Netfilter Configuration
507#
508# CONFIG_IP6_NF_QUEUE is not set
509# CONFIG_IP6_NF_IPTABLES is not set
510# CONFIG_BRIDGE_NF_EBTABLES is not set
511# CONFIG_IP_DCCP is not set
512# CONFIG_IP_SCTP is not set
513# CONFIG_RDS is not set
514# CONFIG_TIPC is not set
515# CONFIG_ATM is not set
516CONFIG_STP=m
517CONFIG_BRIDGE=m
518# CONFIG_NET_DSA is not set
519CONFIG_VLAN_8021Q=m
520# CONFIG_VLAN_8021Q_GVRP is not set
521# CONFIG_DECNET is not set
522CONFIG_LLC=m
523# CONFIG_LLC2 is not set
524CONFIG_IPX=m
525# CONFIG_IPX_INTERN is not set
526# CONFIG_ATALK is not set
527# CONFIG_X25 is not set
528# CONFIG_LAPB is not set
529# CONFIG_ECONET is not set
530# CONFIG_WAN_ROUTER is not set
531# CONFIG_PHONET is not set
532# CONFIG_IEEE802154 is not set
533CONFIG_NET_SCHED=y
534
535#
536# Queueing/Scheduling
537#
538# CONFIG_NET_SCH_CBQ is not set
539# CONFIG_NET_SCH_HTB is not set
540# CONFIG_NET_SCH_HFSC is not set
541# CONFIG_NET_SCH_PRIO is not set
542# CONFIG_NET_SCH_MULTIQ is not set
543# CONFIG_NET_SCH_RED is not set
544# CONFIG_NET_SCH_SFQ is not set
545# CONFIG_NET_SCH_TEQL is not set
546# CONFIG_NET_SCH_TBF is not set
547# CONFIG_NET_SCH_GRED is not set
548# CONFIG_NET_SCH_DSMARK is not set
549# CONFIG_NET_SCH_NETEM is not set
550# CONFIG_NET_SCH_DRR is not set
551# CONFIG_NET_SCH_INGRESS is not set
552
553#
554# Classification
555#
556CONFIG_NET_CLS=y
557# CONFIG_NET_CLS_BASIC is not set
558# CONFIG_NET_CLS_TCINDEX is not set
559# CONFIG_NET_CLS_ROUTE4 is not set
560# CONFIG_NET_CLS_FW is not set
561# CONFIG_NET_CLS_U32 is not set
562# CONFIG_NET_CLS_RSVP is not set
563# CONFIG_NET_CLS_RSVP6 is not set
564# CONFIG_NET_CLS_FLOW is not set
565CONFIG_NET_EMATCH=y
566CONFIG_NET_EMATCH_STACK=32
567# CONFIG_NET_EMATCH_CMP is not set
568# CONFIG_NET_EMATCH_NBYTE is not set
569# CONFIG_NET_EMATCH_U32 is not set
570# CONFIG_NET_EMATCH_META is not set
571# CONFIG_NET_EMATCH_TEXT is not set
572CONFIG_NET_CLS_ACT=y
573# CONFIG_NET_ACT_POLICE is not set
574# CONFIG_NET_ACT_GACT is not set
575# CONFIG_NET_ACT_MIRRED is not set
576# CONFIG_NET_ACT_NAT is not set
577# CONFIG_NET_ACT_PEDIT is not set
578# CONFIG_NET_ACT_SIMP is not set
579# CONFIG_NET_ACT_SKBEDIT is not set
580CONFIG_NET_SCH_FIFO=y
581# CONFIG_DCB is not set
582
583#
584# Network testing
585#
586# CONFIG_NET_PKTGEN is not set
587# CONFIG_NET_DROP_MONITOR is not set
588# CONFIG_HAMRADIO is not set
589# CONFIG_CAN is not set
590# CONFIG_IRDA is not set
591CONFIG_BT=m
592CONFIG_BT_L2CAP=m
593CONFIG_BT_SCO=m
594CONFIG_BT_RFCOMM=m
595CONFIG_BT_RFCOMM_TTY=y
596CONFIG_BT_BNEP=m
597CONFIG_BT_BNEP_MC_FILTER=y
598CONFIG_BT_BNEP_PROTO_FILTER=y
599CONFIG_BT_HIDP=m
600
601#
602# Bluetooth device drivers
603#
604CONFIG_BT_HCIBTUSB=m
605# CONFIG_BT_HCIBTSDIO is not set
606# CONFIG_BT_HCIUART is not set
607# CONFIG_BT_HCIBCM203X is not set
608# CONFIG_BT_HCIBPA10X is not set
609CONFIG_BT_HCIBFUSB=m
610CONFIG_BT_HCIVHCI=m
611# CONFIG_BT_MRVL is not set
612# CONFIG_AF_RXRPC is not set
613CONFIG_FIB_RULES=y
614CONFIG_WIRELESS=y
615CONFIG_WEXT_CORE=y
616CONFIG_WEXT_PROC=y
617CONFIG_CFG80211=m
618# CONFIG_NL80211_TESTMODE is not set
619# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
620# CONFIG_CFG80211_REG_DEBUG is not set
621CONFIG_CFG80211_DEFAULT_PS=y
622# CONFIG_CFG80211_DEBUGFS is not set
623# CONFIG_WIRELESS_OLD_REGULATORY is not set
624CONFIG_CFG80211_WEXT=y
625CONFIG_WIRELESS_EXT_SYSFS=y
626CONFIG_LIB80211=m
627CONFIG_LIB80211_DEBUG=y
628CONFIG_MAC80211=m
629# CONFIG_MAC80211_RC_PID is not set
630CONFIG_MAC80211_RC_MINSTREL=y
631# CONFIG_MAC80211_RC_DEFAULT_PID is not set
632CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
633CONFIG_MAC80211_RC_DEFAULT="minstrel"
634# CONFIG_MAC80211_MESH is not set
635CONFIG_MAC80211_LEDS=y
636# CONFIG_MAC80211_DEBUGFS is not set
637# CONFIG_MAC80211_DEBUG_MENU is not set
638# CONFIG_WIMAX is not set
639CONFIG_RFKILL=m
640CONFIG_RFKILL_LEDS=y
641CONFIG_RFKILL_INPUT=y
642# CONFIG_NET_9P is not set
643
644#
645# Device Drivers
646#
647
648#
649# Generic Driver Options
650#
651CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
652# CONFIG_DEVTMPFS is not set
653CONFIG_STANDALONE=y
654CONFIG_PREVENT_FIRMWARE_BUILD=y
655CONFIG_FW_LOADER=y
656CONFIG_FIRMWARE_IN_KERNEL=y
657CONFIG_EXTRA_FIRMWARE=""
658# CONFIG_SYS_HYPERVISOR is not set
659CONFIG_CONNECTOR=m
660# CONFIG_MTD is not set
661# CONFIG_PARPORT is not set
662# CONFIG_PNP is not set
663CONFIG_BLK_DEV=y
664# CONFIG_BLK_CPQ_DA is not set
665# CONFIG_BLK_CPQ_CISS_DA is not set
666# CONFIG_BLK_DEV_DAC960 is not set
667# CONFIG_BLK_DEV_UMEM is not set
668# CONFIG_BLK_DEV_COW_COMMON is not set
669CONFIG_BLK_DEV_LOOP=y
670CONFIG_BLK_DEV_CRYPTOLOOP=m
671
672#
673# DRBD disabled because PROC_FS, INET or CONNECTOR not selected
674#
675# CONFIG_BLK_DEV_DRBD is not set
676# CONFIG_BLK_DEV_NBD is not set
677# CONFIG_BLK_DEV_SX8 is not set
678# CONFIG_BLK_DEV_UB is not set
679CONFIG_BLK_DEV_RAM=y
680CONFIG_BLK_DEV_RAM_COUNT=16
681CONFIG_BLK_DEV_RAM_SIZE=8192
682# CONFIG_BLK_DEV_XIP is not set
683# CONFIG_CDROM_PKTCDVD is not set
684# CONFIG_ATA_OVER_ETH is not set
685# CONFIG_BLK_DEV_HD is not set
686# CONFIG_MISC_DEVICES is not set
687CONFIG_HAVE_IDE=y
688CONFIG_IDE=y
689
690#
691# Please see Documentation/ide/ide.txt for help/info on IDE drives
692#
693CONFIG_IDE_XFER_MODE=y
694CONFIG_IDE_TIMINGS=y
695# CONFIG_BLK_DEV_IDE_SATA is not set
696CONFIG_IDE_GD=y
697CONFIG_IDE_GD_ATA=y
698# CONFIG_IDE_GD_ATAPI is not set
699# CONFIG_BLK_DEV_IDECD is not set
700# CONFIG_BLK_DEV_IDETAPE is not set
701CONFIG_IDE_TASK_IOCTL=y
702CONFIG_IDE_PROC_FS=y
703
704#
705# IDE chipset support/bugfixes
706#
707# CONFIG_IDE_GENERIC is not set
708# CONFIG_BLK_DEV_PLATFORM is not set
709CONFIG_BLK_DEV_IDEDMA_SFF=y
710
711#
712# PCI IDE chipsets support
713#
714CONFIG_BLK_DEV_IDEPCI=y
715# CONFIG_IDEPCI_PCIBUS_ORDER is not set
716# CONFIG_BLK_DEV_GENERIC is not set
717# CONFIG_BLK_DEV_OPTI621 is not set
718CONFIG_BLK_DEV_IDEDMA_PCI=y
719# CONFIG_BLK_DEV_AEC62XX is not set
720# CONFIG_BLK_DEV_ALI15X3 is not set
721CONFIG_BLK_DEV_AMD74XX=y
722# CONFIG_BLK_DEV_CMD64X is not set
723# CONFIG_BLK_DEV_TRIFLEX is not set
724# CONFIG_BLK_DEV_CS5520 is not set
725# CONFIG_BLK_DEV_CS5530 is not set
726# CONFIG_BLK_DEV_HPT366 is not set
727# CONFIG_BLK_DEV_JMICRON is not set
728# CONFIG_BLK_DEV_SC1200 is not set
729# CONFIG_BLK_DEV_PIIX is not set
730# CONFIG_BLK_DEV_IT8172 is not set
731# CONFIG_BLK_DEV_IT8213 is not set
732# CONFIG_BLK_DEV_IT821X is not set
733# CONFIG_BLK_DEV_NS87415 is not set
734# CONFIG_BLK_DEV_PDC202XX_OLD is not set
735# CONFIG_BLK_DEV_PDC202XX_NEW is not set
736# CONFIG_BLK_DEV_SVWKS is not set
737# CONFIG_BLK_DEV_SIIMAGE is not set
738# CONFIG_BLK_DEV_SLC90E66 is not set
739# CONFIG_BLK_DEV_TRM290 is not set
740# CONFIG_BLK_DEV_VIA82CXXX is not set
741# CONFIG_BLK_DEV_TC86C001 is not set
742
743#
744# Other IDE chipsets support
745#
746
747#
748# Note: most of these also require special kernel boot parameters
749#
750# CONFIG_BLK_DEV_4DRIVES is not set
751# CONFIG_BLK_DEV_ALI14XX is not set
752# CONFIG_BLK_DEV_DTC2278 is not set
753# CONFIG_BLK_DEV_HT6560B is not set
754# CONFIG_BLK_DEV_QD65XX is not set
755# CONFIG_BLK_DEV_UMC8672 is not set
756CONFIG_BLK_DEV_IDEDMA=y
757
758#
759# SCSI device support
760#
761# CONFIG_RAID_ATTRS is not set
762CONFIG_SCSI=m
763CONFIG_SCSI_DMA=y
764# CONFIG_SCSI_TGT is not set
765# CONFIG_SCSI_NETLINK is not set
766CONFIG_SCSI_PROC_FS=y
767
768#
769# SCSI support type (disk, tape, CD-ROM)
770#
771CONFIG_BLK_DEV_SD=m
772# CONFIG_CHR_DEV_ST is not set
773# CONFIG_CHR_DEV_OSST is not set
774# CONFIG_BLK_DEV_SR is not set
775CONFIG_CHR_DEV_SG=m
776# CONFIG_CHR_DEV_SCH is not set
777CONFIG_SCSI_MULTI_LUN=y
778# CONFIG_SCSI_CONSTANTS is not set
779# CONFIG_SCSI_LOGGING is not set
780# CONFIG_SCSI_SCAN_ASYNC is not set
781CONFIG_SCSI_WAIT_SCAN=m
782
783#
784# SCSI Transports
785#
786# CONFIG_SCSI_SPI_ATTRS is not set
787# CONFIG_SCSI_FC_ATTRS is not set
788# CONFIG_SCSI_ISCSI_ATTRS is not set
789# CONFIG_SCSI_SAS_ATTRS is not set
790# CONFIG_SCSI_SAS_LIBSAS is not set
791# CONFIG_SCSI_SRP_ATTRS is not set
792# CONFIG_SCSI_LOWLEVEL is not set
793# CONFIG_SCSI_DH is not set
794# CONFIG_SCSI_OSD_INITIATOR is not set
795# CONFIG_ATA is not set
796CONFIG_MD=y
797CONFIG_BLK_DEV_MD=m
798CONFIG_MD_LINEAR=m
799CONFIG_MD_RAID0=m
800CONFIG_MD_RAID1=m
801CONFIG_MD_RAID10=m
802CONFIG_MD_RAID456=m
803CONFIG_MD_RAID6_PQ=m
804# CONFIG_ASYNC_RAID6_TEST is not set
805CONFIG_MD_MULTIPATH=m
806CONFIG_MD_FAULTY=m
807CONFIG_BLK_DEV_DM=m
808CONFIG_DM_DEBUG=y
809CONFIG_DM_CRYPT=m
810CONFIG_DM_SNAPSHOT=m
811CONFIG_DM_MIRROR=m
812CONFIG_DM_LOG_USERSPACE=m
813CONFIG_DM_ZERO=m
814CONFIG_DM_MULTIPATH=m
815CONFIG_DM_MULTIPATH_QL=m
816CONFIG_DM_MULTIPATH_ST=m
817CONFIG_DM_DELAY=m
818CONFIG_DM_UEVENT=y
819# CONFIG_FUSION is not set
820
821#
822# IEEE 1394 (FireWire) support
823#
824
825#
826# You can enable one or both FireWire driver stacks.
827#
828
829#
830# The newer stack is recommended.
831#
832# CONFIG_FIREWIRE is not set
833# CONFIG_IEEE1394 is not set
834# CONFIG_I2O is not set
835CONFIG_NETDEVICES=y
836# CONFIG_IFB is not set
837CONFIG_DUMMY=m
838# CONFIG_BONDING is not set
839# CONFIG_MACVLAN is not set
840# CONFIG_EQUALIZER is not set
841CONFIG_TUN=m
842CONFIG_VETH=m
843# CONFIG_ARCNET is not set
844# CONFIG_PHYLIB is not set
845CONFIG_NET_ETHERNET=y
846CONFIG_MII=y
847# CONFIG_AX88796 is not set
848# CONFIG_HAPPYMEAL is not set
849# CONFIG_SUNGEM is not set
850# CONFIG_CASSINI is not set
851# CONFIG_NET_VENDOR_3COM is not set
852# CONFIG_NET_VENDOR_SMC is not set
853# CONFIG_SMC91X is not set
854# CONFIG_DM9000 is not set
855# CONFIG_ETHOC is not set
856# CONFIG_SMSC911X is not set
857# CONFIG_NET_VENDOR_RACAL is not set
858# CONFIG_DNET is not set
859# CONFIG_NET_TULIP is not set
860# CONFIG_AT1700 is not set
861# CONFIG_DEPCA is not set
862# CONFIG_HP100 is not set
863# CONFIG_NET_ISA is not set
864# CONFIG_IBM_NEW_EMAC_ZMII is not set
865# CONFIG_IBM_NEW_EMAC_RGMII is not set
866# CONFIG_IBM_NEW_EMAC_TAH is not set
867# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
868# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
869# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
870# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
871CONFIG_NET_PCI=y
872# CONFIG_PCNET32 is not set
873# CONFIG_AMD8111_ETH is not set
874# CONFIG_ADAPTEC_STARFIRE is not set
875# CONFIG_AC3200 is not set
876# CONFIG_APRICOT is not set
877# CONFIG_B44 is not set
878# CONFIG_FORCEDETH is not set
879# CONFIG_CS89x0 is not set
880# CONFIG_TC35815 is not set
881# CONFIG_E100 is not set
882# CONFIG_FEALNX is not set
883# CONFIG_NATSEMI is not set
884# CONFIG_NE2K_PCI is not set
885# CONFIG_8139CP is not set
886CONFIG_8139TOO=y
887# CONFIG_8139TOO_PIO is not set
888# CONFIG_8139TOO_TUNE_TWISTER is not set
889# CONFIG_8139TOO_8129 is not set
890# CONFIG_8139_OLD_RX_RESET is not set
891# CONFIG_R6040 is not set
892# CONFIG_SIS900 is not set
893# CONFIG_EPIC100 is not set
894# CONFIG_SMSC9420 is not set
895# CONFIG_SUNDANCE is not set
896# CONFIG_TLAN is not set
897# CONFIG_KS8842 is not set
898# CONFIG_KS8851_MLL is not set
899# CONFIG_VIA_RHINE is not set
900# CONFIG_SC92031 is not set
901# CONFIG_ATL2 is not set
902CONFIG_NETDEV_1000=y
903# CONFIG_ACENIC is not set
904# CONFIG_DL2K is not set
905# CONFIG_E1000 is not set
906# CONFIG_E1000E is not set
907# CONFIG_IP1000 is not set
908# CONFIG_IGB is not set
909# CONFIG_IGBVF is not set
910# CONFIG_NS83820 is not set
911# CONFIG_HAMACHI is not set
912# CONFIG_YELLOWFIN is not set
913CONFIG_R8169=y
914CONFIG_R8169_VLAN=y
915# CONFIG_SIS190 is not set
916# CONFIG_SKGE is not set
917# CONFIG_SKY2 is not set
918# CONFIG_VIA_VELOCITY is not set
919# CONFIG_TIGON3 is not set
920# CONFIG_BNX2 is not set
921# CONFIG_CNIC is not set
922# CONFIG_QLA3XXX is not set
923# CONFIG_ATL1 is not set
924# CONFIG_ATL1E is not set
925# CONFIG_ATL1C is not set
926# CONFIG_JME is not set
927# CONFIG_NETDEV_10000 is not set
928# CONFIG_TR is not set
929CONFIG_WLAN=y
930# CONFIG_LIBERTAS_THINFIRM is not set
931# CONFIG_ATMEL is not set
932# CONFIG_AT76C50X_USB is not set
933# CONFIG_PRISM54 is not set
934# CONFIG_USB_ZD1201 is not set
935# CONFIG_USB_NET_RNDIS_WLAN is not set
936# CONFIG_RTL8180 is not set
937# CONFIG_RTL8187 is not set
938# CONFIG_ADM8211 is not set
939# CONFIG_MAC80211_HWSIM is not set
940# CONFIG_MWL8K is not set
941# CONFIG_ATH_COMMON is not set
942# CONFIG_B43 is not set
943# CONFIG_B43LEGACY is not set
944# CONFIG_HOSTAP is not set
945# CONFIG_IPW2100 is not set
946# CONFIG_IPW2200 is not set
947# CONFIG_IWLWIFI is not set
948# CONFIG_IWM is not set
949# CONFIG_LIBERTAS is not set
950# CONFIG_HERMES is not set
951# CONFIG_P54_COMMON is not set
952# CONFIG_RT2X00 is not set
953# CONFIG_WL12XX is not set
954# CONFIG_ZD1211RW is not set
955
956#
957# Enable WiMAX (Networking options) to see the WiMAX drivers
958#
959
960#
961# USB Network Adapters
962#
963# CONFIG_USB_CATC is not set
964# CONFIG_USB_KAWETH is not set
965# CONFIG_USB_PEGASUS is not set
966# CONFIG_USB_RTL8150 is not set
967CONFIG_USB_USBNET=m
968CONFIG_USB_NET_AX8817X=m
969CONFIG_USB_NET_CDCETHER=m
970CONFIG_USB_NET_CDC_EEM=m
971# CONFIG_USB_NET_DM9601 is not set
972# CONFIG_USB_NET_SMSC95XX is not set
973# CONFIG_USB_NET_GL620A is not set
974CONFIG_USB_NET_NET1080=m
975# CONFIG_USB_NET_PLUSB is not set
976# CONFIG_USB_NET_MCS7830 is not set
977# CONFIG_USB_NET_RNDIS_HOST is not set
978CONFIG_USB_NET_CDC_SUBSET=m
979# CONFIG_USB_ALI_M5632 is not set
980# CONFIG_USB_AN2720 is not set
981CONFIG_USB_BELKIN=y
982CONFIG_USB_ARMLINUX=y
983# CONFIG_USB_EPSON2888 is not set
984# CONFIG_USB_KC2190 is not set
985CONFIG_USB_NET_ZAURUS=m
986# CONFIG_USB_HSO is not set
987# CONFIG_USB_NET_INT51X1 is not set
988# CONFIG_WAN is not set
989# CONFIG_FDDI is not set
990# CONFIG_HIPPI is not set
991# CONFIG_PPP is not set
992# CONFIG_SLIP is not set
993# CONFIG_NET_FC is not set
994CONFIG_NETCONSOLE=m
995CONFIG_NETCONSOLE_DYNAMIC=y
996CONFIG_NETPOLL=y
997# CONFIG_NETPOLL_TRAP is not set
998CONFIG_NET_POLL_CONTROLLER=y
999# CONFIG_VMXNET3 is not set
1000# CONFIG_ISDN is not set
1001# CONFIG_PHONE is not set
1002
1003#
1004# Input device support
1005#
1006CONFIG_INPUT=y
1007CONFIG_INPUT_FF_MEMLESS=m
1008CONFIG_INPUT_POLLDEV=m
1009# CONFIG_INPUT_SPARSEKMAP is not set
1010
1011#
1012# Userland interfaces
1013#
1014CONFIG_INPUT_MOUSEDEV=y
1015CONFIG_INPUT_MOUSEDEV_PSAUX=y
1016CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
1017CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
1018# CONFIG_INPUT_JOYDEV is not set
1019CONFIG_INPUT_EVDEV=y
1020# CONFIG_INPUT_EVBUG is not set
1021
1022#
1023# Input Device Drivers
1024#
1025CONFIG_INPUT_KEYBOARD=y
1026CONFIG_KEYBOARD_ATKBD=y
1027# CONFIG_KEYBOARD_LKKBD is not set
1028# CONFIG_KEYBOARD_NEWTON is not set
1029# CONFIG_KEYBOARD_OPENCORES is not set
1030# CONFIG_KEYBOARD_STOWAWAY is not set
1031# CONFIG_KEYBOARD_SUNKBD is not set
1032# CONFIG_KEYBOARD_XTKBD is not set
1033CONFIG_INPUT_MOUSE=y
1034CONFIG_MOUSE_PS2=y
1035# CONFIG_MOUSE_PS2_ALPS is not set
1036# CONFIG_MOUSE_PS2_LOGIPS2PP is not set
1037CONFIG_MOUSE_PS2_SYNAPTICS=y
1038# CONFIG_MOUSE_PS2_TRACKPOINT is not set
1039# CONFIG_MOUSE_PS2_ELANTECH is not set
1040# CONFIG_MOUSE_PS2_SENTELIC is not set
1041# CONFIG_MOUSE_PS2_TOUCHKIT is not set
1042# CONFIG_MOUSE_SERIAL is not set
1043CONFIG_MOUSE_APPLETOUCH=m
1044# CONFIG_MOUSE_BCM5974 is not set
1045# CONFIG_MOUSE_INPORT is not set
1046# CONFIG_MOUSE_LOGIBM is not set
1047# CONFIG_MOUSE_PC110PAD is not set
1048# CONFIG_MOUSE_VSXXXAA is not set
1049# CONFIG_INPUT_JOYSTICK is not set
1050# CONFIG_INPUT_TABLET is not set
1051# CONFIG_INPUT_TOUCHSCREEN is not set
1052# CONFIG_INPUT_MISC is not set
1053
1054#
1055# Hardware I/O ports
1056#
1057CONFIG_SERIO=y
1058CONFIG_SERIO_I8042=y
1059# CONFIG_SERIO_SERPORT is not set
1060# CONFIG_SERIO_PCIPS2 is not set
1061CONFIG_SERIO_LIBPS2=y
1062# CONFIG_SERIO_RAW is not set
1063# CONFIG_SERIO_ALTERA_PS2 is not set
1064# CONFIG_GAMEPORT is not set
1065
1066#
1067# Character devices
1068#
1069CONFIG_VT=y
1070CONFIG_CONSOLE_TRANSLATIONS=y
1071CONFIG_VT_CONSOLE=y
1072CONFIG_HW_CONSOLE=y
1073# CONFIG_VT_HW_CONSOLE_BINDING is not set
1074CONFIG_DEVKMEM=y
1075CONFIG_SERIAL_NONSTANDARD=y
1076# CONFIG_COMPUTONE is not set
1077# CONFIG_ROCKETPORT is not set
1078# CONFIG_CYCLADES is not set
1079# CONFIG_DIGIEPCA is not set
1080# CONFIG_MOXA_INTELLIO is not set
1081# CONFIG_MOXA_SMARTIO is not set
1082# CONFIG_ISI is not set
1083# CONFIG_SYNCLINKMP is not set
1084# CONFIG_SYNCLINK_GT is not set
1085# CONFIG_N_HDLC is not set
1086# CONFIG_RISCOM8 is not set
1087# CONFIG_SPECIALIX is not set
1088# CONFIG_STALDRV is not set
1089# CONFIG_NOZOMI is not set
1090
1091#
1092# Serial drivers
1093#
1094CONFIG_SERIAL_8250=m
1095# CONFIG_SERIAL_8250_PCI is not set
1096CONFIG_SERIAL_8250_NR_UARTS=16
1097CONFIG_SERIAL_8250_RUNTIME_UARTS=4
1098CONFIG_SERIAL_8250_EXTENDED=y
1099CONFIG_SERIAL_8250_MANY_PORTS=y
1100CONFIG_SERIAL_8250_FOURPORT=y
1101# CONFIG_SERIAL_8250_ACCENT is not set
1102# CONFIG_SERIAL_8250_BOCA is not set
1103# CONFIG_SERIAL_8250_EXAR_ST16C554 is not set
1104# CONFIG_SERIAL_8250_HUB6 is not set
1105# CONFIG_SERIAL_8250_SHARE_IRQ is not set
1106# CONFIG_SERIAL_8250_DETECT_IRQ is not set
1107# CONFIG_SERIAL_8250_RSA is not set
1108
1109#
1110# Non-8250 serial port support
1111#
1112CONFIG_SERIAL_CORE=m
1113# CONFIG_SERIAL_JSM is not set
1114CONFIG_UNIX98_PTYS=y
1115# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
1116CONFIG_LEGACY_PTYS=y
1117CONFIG_LEGACY_PTY_COUNT=16
1118# CONFIG_IPMI_HANDLER is not set
1119CONFIG_HW_RANDOM=y
1120# CONFIG_HW_RANDOM_TIMERIOMEM is not set
1121CONFIG_RTC=y
1122# CONFIG_DTLK is not set
1123# CONFIG_R3964 is not set
1124# CONFIG_APPLICOM is not set
1125# CONFIG_RAW_DRIVER is not set
1126# CONFIG_TCG_TPM is not set
1127CONFIG_DEVPORT=y
1128# CONFIG_I2C is not set
1129# CONFIG_SPI is not set
1130
1131#
1132# PPS support
1133#
1134# CONFIG_PPS is not set
1135# CONFIG_W1 is not set
1136# CONFIG_POWER_SUPPLY is not set
1137CONFIG_HWMON=y
1138# CONFIG_HWMON_VID is not set
1139# CONFIG_HWMON_DEBUG_CHIP is not set
1140
1141#
1142# Native drivers
1143#
1144# CONFIG_SENSORS_I5K_AMB is not set
1145# CONFIG_SENSORS_F71805F is not set
1146# CONFIG_SENSORS_F71882FG is not set
1147# CONFIG_SENSORS_IT87 is not set
1148# CONFIG_SENSORS_PC87360 is not set
1149# CONFIG_SENSORS_PC87427 is not set
1150# CONFIG_SENSORS_SIS5595 is not set
1151# CONFIG_SENSORS_SMSC47M1 is not set
1152# CONFIG_SENSORS_SMSC47B397 is not set
1153# CONFIG_SENSORS_VIA686A is not set
1154# CONFIG_SENSORS_VT1211 is not set
1155# CONFIG_SENSORS_VT8231 is not set
1156# CONFIG_SENSORS_W83627HF is not set
1157# CONFIG_SENSORS_W83627EHF is not set
1158CONFIG_THERMAL=y
1159# CONFIG_THERMAL_HWMON is not set
1160# CONFIG_WATCHDOG is not set
1161CONFIG_SSB_POSSIBLE=y
1162
1163#
1164# Sonics Silicon Backplane
1165#
1166# CONFIG_SSB is not set
1167
1168#
1169# Multifunction device drivers
1170#
1171# CONFIG_MFD_CORE is not set
1172# CONFIG_MFD_SM501 is not set
1173# CONFIG_HTC_PASIC3 is not set
1174# CONFIG_MFD_TMIO is not set
1175# CONFIG_REGULATOR is not set
1176CONFIG_MEDIA_SUPPORT=m
1177
1178#
1179# Multimedia core support
1180#
1181CONFIG_VIDEO_DEV=m
1182CONFIG_VIDEO_V4L2_COMMON=m
1183CONFIG_VIDEO_ALLOW_V4L1=y
1184CONFIG_VIDEO_V4L1_COMPAT=y
1185# CONFIG_DVB_CORE is not set
1186CONFIG_VIDEO_MEDIA=m
1187
1188#
1189# Multimedia drivers
1190#
1191CONFIG_IR_CORE=m
1192CONFIG_VIDEO_IR=m
1193# CONFIG_MEDIA_ATTACH is not set
1194CONFIG_VIDEO_V4L2=m
1195CONFIG_VIDEO_V4L1=m
1196CONFIG_VIDEOBUF_GEN=m
1197CONFIG_VIDEOBUF_VMALLOC=m
1198CONFIG_VIDEO_CAPTURE_DRIVERS=y
1199# CONFIG_VIDEO_ADV_DEBUG is not set
1200# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
1201CONFIG_VIDEO_HELPER_CHIPS_AUTO=y
1202CONFIG_VIDEO_VIVI=m
1203# CONFIG_VIDEO_PMS is not set
1204# CONFIG_VIDEO_CPIA is not set
1205# CONFIG_VIDEO_CPIA2 is not set
1206# CONFIG_VIDEO_STRADIS is not set
1207CONFIG_V4L_USB_DRIVERS=y
1208CONFIG_USB_VIDEO_CLASS=m
1209CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
1210CONFIG_USB_GSPCA=m
1211CONFIG_USB_M5602=m
1212CONFIG_USB_STV06XX=m
1213# CONFIG_USB_GL860 is not set
1214CONFIG_USB_GSPCA_CONEX=m
1215CONFIG_USB_GSPCA_ETOMS=m
1216CONFIG_USB_GSPCA_FINEPIX=m
1217# CONFIG_USB_GSPCA_JEILINJ is not set
1218CONFIG_USB_GSPCA_MARS=m
1219CONFIG_USB_GSPCA_MR97310A=m
1220CONFIG_USB_GSPCA_OV519=m
1221CONFIG_USB_GSPCA_OV534=m
1222CONFIG_USB_GSPCA_PAC207=m
1223# CONFIG_USB_GSPCA_PAC7302 is not set
1224CONFIG_USB_GSPCA_PAC7311=m
1225CONFIG_USB_GSPCA_SN9C20X=m
1226CONFIG_USB_GSPCA_SN9C20X_EVDEV=y
1227CONFIG_USB_GSPCA_SONIXB=m
1228CONFIG_USB_GSPCA_SONIXJ=m
1229CONFIG_USB_GSPCA_SPCA500=m
1230CONFIG_USB_GSPCA_SPCA501=m
1231CONFIG_USB_GSPCA_SPCA505=m
1232CONFIG_USB_GSPCA_SPCA506=m
1233CONFIG_USB_GSPCA_SPCA508=m
1234CONFIG_USB_GSPCA_SPCA561=m
1235CONFIG_USB_GSPCA_SQ905=m
1236CONFIG_USB_GSPCA_SQ905C=m
1237CONFIG_USB_GSPCA_STK014=m
1238# CONFIG_USB_GSPCA_STV0680 is not set
1239CONFIG_USB_GSPCA_SUNPLUS=m
1240CONFIG_USB_GSPCA_T613=m
1241CONFIG_USB_GSPCA_TV8532=m
1242CONFIG_USB_GSPCA_VC032X=m
1243CONFIG_USB_GSPCA_ZC3XX=m
1244# CONFIG_VIDEO_HDPVR is not set
1245# CONFIG_USB_VICAM is not set
1246# CONFIG_USB_IBMCAM is not set
1247# CONFIG_USB_KONICAWC is not set
1248# CONFIG_USB_QUICKCAM_MESSENGER is not set
1249CONFIG_USB_ET61X251=m
1250# CONFIG_USB_OV511 is not set
1251# CONFIG_USB_SE401 is not set
1252CONFIG_USB_SN9C102=m
1253# CONFIG_USB_STV680 is not set
1254CONFIG_USB_ZC0301=m
1255# CONFIG_USB_PWC is not set
1256CONFIG_USB_PWC_INPUT_EVDEV=y
1257CONFIG_USB_ZR364XX=m
1258CONFIG_USB_STKWEBCAM=m
1259CONFIG_USB_S2255=m
1260# CONFIG_RADIO_ADAPTERS is not set
1261# CONFIG_DAB is not set
1262
1263#
1264# Graphics support
1265#
1266CONFIG_VGA_ARB=y
1267# CONFIG_DRM is not set
1268# CONFIG_VGASTATE is not set
1269CONFIG_VIDEO_OUTPUT_CONTROL=y
1270CONFIG_FB=y
1271CONFIG_FIRMWARE_EDID=y
1272# CONFIG_FB_DDC is not set
1273CONFIG_FB_BOOT_VESA_SUPPORT=y
1274CONFIG_FB_CFB_FILLRECT=y
1275CONFIG_FB_CFB_COPYAREA=y
1276CONFIG_FB_CFB_IMAGEBLIT=y
1277# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
1278# CONFIG_FB_SYS_FILLRECT is not set
1279# CONFIG_FB_SYS_COPYAREA is not set
1280# CONFIG_FB_SYS_IMAGEBLIT is not set
1281# CONFIG_FB_FOREIGN_ENDIAN is not set
1282# CONFIG_FB_SYS_FOPS is not set
1283# CONFIG_FB_SVGALIB is not set
1284# CONFIG_FB_MACMODES is not set
1285# CONFIG_FB_BACKLIGHT is not set
1286CONFIG_FB_MODE_HELPERS=y
1287CONFIG_FB_TILEBLITTING=y
1288
1289#
1290# Frame buffer hardware drivers
1291#
1292# CONFIG_FB_CIRRUS is not set
1293# CONFIG_FB_PM2 is not set
1294# CONFIG_FB_CYBER2000 is not set
1295# CONFIG_FB_ASILIANT is not set
1296# CONFIG_FB_IMSTT is not set
1297# CONFIG_FB_UVESA is not set
1298# CONFIG_FB_S1D13XXX is not set
1299# CONFIG_FB_NVIDIA is not set
1300# CONFIG_FB_RIVA is not set
1301# CONFIG_FB_MATROX is not set
1302# CONFIG_FB_RADEON is not set
1303# CONFIG_FB_ATY128 is not set
1304# CONFIG_FB_ATY is not set
1305# CONFIG_FB_S3 is not set
1306# CONFIG_FB_SAVAGE is not set
1307CONFIG_FB_SIS=y
1308CONFIG_FB_SIS_300=y
1309CONFIG_FB_SIS_315=y
1310# CONFIG_FB_VIA is not set
1311# CONFIG_FB_NEOMAGIC is not set
1312# CONFIG_FB_KYRO is not set
1313# CONFIG_FB_3DFX is not set
1314# CONFIG_FB_VOODOO1 is not set
1315# CONFIG_FB_VT8623 is not set
1316# CONFIG_FB_TRIDENT is not set
1317# CONFIG_FB_ARK is not set
1318# CONFIG_FB_PM3 is not set
1319# CONFIG_FB_CARMINE is not set
1320# CONFIG_FB_VIRTUAL is not set
1321# CONFIG_FB_METRONOME is not set
1322# CONFIG_FB_MB862XX is not set
1323# CONFIG_FB_BROADSHEET is not set
1324CONFIG_BACKLIGHT_LCD_SUPPORT=y
1325# CONFIG_LCD_CLASS_DEVICE is not set
1326CONFIG_BACKLIGHT_CLASS_DEVICE=y
1327CONFIG_BACKLIGHT_GENERIC=m
1328
1329#
1330# Display device support
1331#
1332# CONFIG_DISPLAY_SUPPORT is not set
1333
1334#
1335# Console display driver support
1336#
1337# CONFIG_VGA_CONSOLE is not set
1338# CONFIG_MDA_CONSOLE is not set
1339CONFIG_DUMMY_CONSOLE=y
1340CONFIG_FRAMEBUFFER_CONSOLE=y
1341# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
1342CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
1343CONFIG_FONTS=y
1344CONFIG_FONT_8x8=y
1345CONFIG_FONT_8x16=y
1346CONFIG_FONT_6x11=y
1347CONFIG_FONT_7x14=y
1348CONFIG_FONT_PEARL_8x8=y
1349CONFIG_FONT_ACORN_8x8=y
1350CONFIG_FONT_MINI_4x6=y
1351CONFIG_FONT_SUN8x16=y
1352CONFIG_FONT_SUN12x22=y
1353CONFIG_FONT_10x18=y
1354CONFIG_LOGO=y
1355# CONFIG_LOGO_LINUX_MONO is not set
1356# CONFIG_LOGO_LINUX_VGA16 is not set
1357CONFIG_LOGO_LINUX_CLUT224=y
1358CONFIG_SOUND=m
1359CONFIG_SOUND_OSS_CORE=y
1360CONFIG_SOUND_OSS_CORE_PRECLAIM=y
1361CONFIG_SND=m
1362CONFIG_SND_TIMER=m
1363CONFIG_SND_PCM=m
1364CONFIG_SND_HWDEP=m
1365CONFIG_SND_RAWMIDI=m
1366CONFIG_SND_SEQUENCER=m
1367CONFIG_SND_SEQ_DUMMY=m
1368CONFIG_SND_OSSEMUL=y
1369CONFIG_SND_MIXER_OSS=m
1370CONFIG_SND_PCM_OSS=m
1371CONFIG_SND_PCM_OSS_PLUGINS=y
1372CONFIG_SND_SEQUENCER_OSS=y
1373CONFIG_SND_HRTIMER=m
1374CONFIG_SND_SEQ_HRTIMER_DEFAULT=y
1375# CONFIG_SND_RTCTIMER is not set
1376# CONFIG_SND_DYNAMIC_MINORS is not set
1377CONFIG_SND_SUPPORT_OLD_API=y
1378CONFIG_SND_VERBOSE_PROCFS=y
1379# CONFIG_SND_VERBOSE_PRINTK is not set
1380# CONFIG_SND_DEBUG is not set
1381CONFIG_SND_VMASTER=y
1382CONFIG_SND_RAWMIDI_SEQ=m
1383# CONFIG_SND_OPL3_LIB_SEQ is not set
1384# CONFIG_SND_OPL4_LIB_SEQ is not set
1385# CONFIG_SND_SBAWE_SEQ is not set
1386# CONFIG_SND_EMU10K1_SEQ is not set
1387CONFIG_SND_MPU401_UART=m
1388CONFIG_SND_AC97_CODEC=m
1389CONFIG_SND_DRIVERS=y
1390CONFIG_SND_DUMMY=m
1391CONFIG_SND_VIRMIDI=m
1392# CONFIG_SND_MTPAV is not set
1393CONFIG_SND_SERIAL_U16550=m
1394CONFIG_SND_MPU401=m
1395CONFIG_SND_AC97_POWER_SAVE=y
1396CONFIG_SND_AC97_POWER_SAVE_DEFAULT=10
1397CONFIG_SND_PCI=y
1398# CONFIG_SND_AD1889 is not set
1399# CONFIG_SND_ALS300 is not set
1400# CONFIG_SND_ALI5451 is not set
1401# CONFIG_SND_ATIIXP is not set
1402# CONFIG_SND_ATIIXP_MODEM is not set
1403# CONFIG_SND_AU8810 is not set
1404# CONFIG_SND_AU8820 is not set
1405# CONFIG_SND_AU8830 is not set
1406# CONFIG_SND_AW2 is not set
1407# CONFIG_SND_AZT3328 is not set
1408# CONFIG_SND_BT87X is not set
1409# CONFIG_SND_CA0106 is not set
1410# CONFIG_SND_CMIPCI is not set
1411# CONFIG_SND_OXYGEN is not set
1412# CONFIG_SND_CS4281 is not set
1413# CONFIG_SND_CS46XX is not set
1414CONFIG_SND_CS5535AUDIO=m
1415# CONFIG_SND_CTXFI is not set
1416# CONFIG_SND_DARLA20 is not set
1417# CONFIG_SND_GINA20 is not set
1418# CONFIG_SND_LAYLA20 is not set
1419# CONFIG_SND_DARLA24 is not set
1420# CONFIG_SND_GINA24 is not set
1421# CONFIG_SND_LAYLA24 is not set
1422# CONFIG_SND_MONA is not set
1423# CONFIG_SND_MIA is not set
1424# CONFIG_SND_ECHO3G is not set
1425# CONFIG_SND_INDIGO is not set
1426# CONFIG_SND_INDIGOIO is not set
1427# CONFIG_SND_INDIGODJ is not set
1428# CONFIG_SND_INDIGOIOX is not set
1429# CONFIG_SND_INDIGODJX is not set
1430# CONFIG_SND_EMU10K1 is not set
1431# CONFIG_SND_EMU10K1X is not set
1432# CONFIG_SND_ENS1370 is not set
1433# CONFIG_SND_ENS1371 is not set
1434# CONFIG_SND_ES1938 is not set
1435# CONFIG_SND_ES1968 is not set
1436# CONFIG_SND_FM801 is not set
1437# CONFIG_SND_HDA_INTEL is not set
1438# CONFIG_SND_HDSP is not set
1439# CONFIG_SND_HDSPM is not set
1440# CONFIG_SND_HIFIER is not set
1441# CONFIG_SND_ICE1712 is not set
1442# CONFIG_SND_ICE1724 is not set
1443# CONFIG_SND_INTEL8X0 is not set
1444# CONFIG_SND_INTEL8X0M is not set
1445# CONFIG_SND_KORG1212 is not set
1446# CONFIG_SND_LX6464ES is not set
1447# CONFIG_SND_MAESTRO3 is not set
1448# CONFIG_SND_MIXART is not set
1449# CONFIG_SND_NM256 is not set
1450# CONFIG_SND_PCXHR is not set
1451# CONFIG_SND_RIPTIDE is not set
1452# CONFIG_SND_RME32 is not set
1453# CONFIG_SND_RME96 is not set
1454# CONFIG_SND_RME9652 is not set
1455# CONFIG_SND_SONICVIBES is not set
1456# CONFIG_SND_TRIDENT is not set
1457# CONFIG_SND_VIA82XX is not set
1458# CONFIG_SND_VIA82XX_MODEM is not set
1459# CONFIG_SND_VIRTUOSO is not set
1460# CONFIG_SND_VX222 is not set
1461# CONFIG_SND_YMFPCI is not set
1462# CONFIG_SND_MIPS is not set
1463CONFIG_SND_USB=y
1464CONFIG_SND_USB_AUDIO=m
1465CONFIG_SND_USB_CAIAQ=m
1466CONFIG_SND_USB_CAIAQ_INPUT=y
1467# CONFIG_SND_SOC is not set
1468# CONFIG_SOUND_PRIME is not set
1469CONFIG_AC97_BUS=m
1470CONFIG_HID_SUPPORT=y
1471CONFIG_HID=y
1472CONFIG_HIDRAW=y
1473
1474#
1475# USB Input Devices
1476#
1477CONFIG_USB_HID=y
1478# CONFIG_HID_PID is not set
1479CONFIG_USB_HIDDEV=y
1480
1481#
1482# Special HID drivers
1483#
1484CONFIG_HID_A4TECH=m
1485CONFIG_HID_APPLE=m
1486CONFIG_HID_BELKIN=m
1487CONFIG_HID_CHERRY=m
1488CONFIG_HID_CHICONY=m
1489CONFIG_HID_CYPRESS=m
1490CONFIG_HID_DRAGONRISE=m
1491CONFIG_DRAGONRISE_FF=y
1492CONFIG_HID_EZKEY=m
1493CONFIG_HID_KYE=m
1494CONFIG_HID_GYRATION=m
1495CONFIG_HID_TWINHAN=m
1496CONFIG_HID_KENSINGTON=m
1497CONFIG_HID_LOGITECH=m
1498CONFIG_LOGITECH_FF=y
1499CONFIG_LOGIRUMBLEPAD2_FF=y
1500CONFIG_HID_MICROSOFT=m
1501CONFIG_HID_MONTEREY=m
1502CONFIG_HID_NTRIG=m
1503CONFIG_HID_PANTHERLORD=m
1504CONFIG_PANTHERLORD_FF=y
1505CONFIG_HID_PETALYNX=m
1506CONFIG_HID_SAMSUNG=m
1507CONFIG_HID_SONY=m
1508CONFIG_HID_SUNPLUS=m
1509CONFIG_HID_GREENASIA=m
1510CONFIG_GREENASIA_FF=y
1511CONFIG_HID_SMARTJOYPLUS=m
1512CONFIG_SMARTJOYPLUS_FF=y
1513CONFIG_HID_TOPSEED=m
1514CONFIG_HID_THRUSTMASTER=m
1515CONFIG_THRUSTMASTER_FF=y
1516CONFIG_HID_WACOM=m
1517CONFIG_HID_ZEROPLUS=m
1518CONFIG_ZEROPLUS_FF=y
1519CONFIG_USB_SUPPORT=y
1520CONFIG_USB_ARCH_HAS_HCD=y
1521CONFIG_USB_ARCH_HAS_OHCI=y
1522CONFIG_USB_ARCH_HAS_EHCI=y
1523CONFIG_USB=y
1524# CONFIG_USB_DEBUG is not set
1525# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
1526
1527#
1528# Miscellaneous USB options
1529#
1530CONFIG_USB_DEVICEFS=y
1531# CONFIG_USB_DEVICE_CLASS is not set
1532CONFIG_USB_DYNAMIC_MINORS=y
1533CONFIG_USB_SUSPEND=y
1534# CONFIG_USB_OTG is not set
1535CONFIG_USB_OTG_WHITELIST=y
1536# CONFIG_USB_OTG_BLACKLIST_HUB is not set
1537CONFIG_USB_MON=y
1538CONFIG_USB_WUSB=m
1539# CONFIG_USB_WUSB_CBAF is not set
1540
1541#
1542# USB Host Controller Drivers
1543#
1544# CONFIG_USB_C67X00_HCD is not set
1545# CONFIG_USB_XHCI_HCD is not set
1546CONFIG_USB_EHCI_HCD=y
1547CONFIG_USB_EHCI_ROOT_HUB_TT=y
1548# CONFIG_USB_EHCI_TT_NEWSCHED is not set
1549# CONFIG_USB_OXU210HP_HCD is not set
1550# CONFIG_USB_ISP116X_HCD is not set
1551# CONFIG_USB_ISP1760_HCD is not set
1552# CONFIG_USB_ISP1362_HCD is not set
1553CONFIG_USB_OHCI_HCD=y
1554# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
1555# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
1556CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1557CONFIG_USB_UHCI_HCD=m
1558# CONFIG_USB_SL811_HCD is not set
1559# CONFIG_USB_R8A66597_HCD is not set
1560CONFIG_USB_WHCI_HCD=m
1561CONFIG_USB_HWA_HCD=m
1562# CONFIG_USB_GADGET_MUSB_HDRC is not set
1563
1564#
1565# USB Device Class drivers
1566#
1567CONFIG_USB_ACM=m
1568CONFIG_USB_PRINTER=m
1569CONFIG_USB_WDM=m
1570# CONFIG_USB_TMC is not set
1571
1572#
1573# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
1574#
1575
1576#
1577# also be needed; see USB_STORAGE Help for more info
1578#
1579CONFIG_USB_STORAGE=m
1580# CONFIG_USB_STORAGE_DEBUG is not set
1581CONFIG_USB_STORAGE_DATAFAB=m
1582CONFIG_USB_STORAGE_FREECOM=m
1583CONFIG_USB_STORAGE_ISD200=m
1584CONFIG_USB_STORAGE_USBAT=m
1585CONFIG_USB_STORAGE_SDDR09=m
1586CONFIG_USB_STORAGE_SDDR55=m
1587CONFIG_USB_STORAGE_JUMPSHOT=m
1588CONFIG_USB_STORAGE_ALAUDA=m
1589# CONFIG_USB_STORAGE_ONETOUCH is not set
1590# CONFIG_USB_STORAGE_KARMA is not set
1591# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
1592CONFIG_USB_LIBUSUAL=y
1593
1594#
1595# USB Imaging devices
1596#
1597# CONFIG_USB_MDC800 is not set
1598# CONFIG_USB_MICROTEK is not set
1599
1600#
1601# USB port drivers
1602#
1603CONFIG_USB_SERIAL=m
1604# CONFIG_USB_EZUSB is not set
1605CONFIG_USB_SERIAL_GENERIC=y
1606# CONFIG_USB_SERIAL_AIRCABLE is not set
1607# CONFIG_USB_SERIAL_ARK3116 is not set
1608# CONFIG_USB_SERIAL_BELKIN is not set
1609# CONFIG_USB_SERIAL_CH341 is not set
1610# CONFIG_USB_SERIAL_WHITEHEAT is not set
1611# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set
1612# CONFIG_USB_SERIAL_CP210X is not set
1613# CONFIG_USB_SERIAL_CYPRESS_M8 is not set
1614# CONFIG_USB_SERIAL_EMPEG is not set
1615# CONFIG_USB_SERIAL_FTDI_SIO is not set
1616# CONFIG_USB_SERIAL_FUNSOFT is not set
1617# CONFIG_USB_SERIAL_VISOR is not set
1618# CONFIG_USB_SERIAL_IPAQ is not set
1619# CONFIG_USB_SERIAL_IR is not set
1620# CONFIG_USB_SERIAL_EDGEPORT is not set
1621# CONFIG_USB_SERIAL_EDGEPORT_TI is not set
1622# CONFIG_USB_SERIAL_GARMIN is not set
1623# CONFIG_USB_SERIAL_IPW is not set
1624# CONFIG_USB_SERIAL_IUU is not set
1625# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set
1626# CONFIG_USB_SERIAL_KEYSPAN is not set
1627# CONFIG_USB_SERIAL_KLSI is not set
1628# CONFIG_USB_SERIAL_KOBIL_SCT is not set
1629# CONFIG_USB_SERIAL_MCT_U232 is not set
1630# CONFIG_USB_SERIAL_MOS7720 is not set
1631# CONFIG_USB_SERIAL_MOS7840 is not set
1632# CONFIG_USB_SERIAL_MOTOROLA is not set
1633# CONFIG_USB_SERIAL_NAVMAN is not set
1634# CONFIG_USB_SERIAL_PL2303 is not set
1635# CONFIG_USB_SERIAL_OTI6858 is not set
1636# CONFIG_USB_SERIAL_QUALCOMM is not set
1637# CONFIG_USB_SERIAL_SPCP8X5 is not set
1638# CONFIG_USB_SERIAL_HP4X is not set
1639# CONFIG_USB_SERIAL_SAFE is not set
1640# CONFIG_USB_SERIAL_SIEMENS_MPI is not set
1641# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set
1642# CONFIG_USB_SERIAL_SYMBOL is not set
1643# CONFIG_USB_SERIAL_TI is not set
1644# CONFIG_USB_SERIAL_CYBERJACK is not set
1645# CONFIG_USB_SERIAL_XIRCOM is not set
1646# CONFIG_USB_SERIAL_OPTION is not set
1647# CONFIG_USB_SERIAL_OMNINET is not set
1648# CONFIG_USB_SERIAL_OPTICON is not set
1649# CONFIG_USB_SERIAL_DEBUG is not set
1650
1651#
1652# USB Miscellaneous drivers
1653#
1654# CONFIG_USB_EMI62 is not set
1655# CONFIG_USB_EMI26 is not set
1656# CONFIG_USB_ADUTUX is not set
1657# CONFIG_USB_SEVSEG is not set
1658# CONFIG_USB_RIO500 is not set
1659# CONFIG_USB_LEGOTOWER is not set
1660# CONFIG_USB_LCD is not set
1661# CONFIG_USB_BERRY_CHARGE is not set
1662CONFIG_USB_LED=m
1663# CONFIG_USB_CYPRESS_CY7C63 is not set
1664# CONFIG_USB_CYTHERM is not set
1665# CONFIG_USB_IDMOUSE is not set
1666# CONFIG_USB_FTDI_ELAN is not set
1667# CONFIG_USB_APPLEDISPLAY is not set
1668# CONFIG_USB_SISUSBVGA is not set
1669# CONFIG_USB_LD is not set
1670# CONFIG_USB_TRANCEVIBRATOR is not set
1671# CONFIG_USB_IOWARRIOR is not set
1672# CONFIG_USB_TEST is not set
1673# CONFIG_USB_ISIGHTFW is not set
1674# CONFIG_USB_VST is not set
1675CONFIG_USB_GADGET=m
1676# CONFIG_USB_GADGET_DEBUG_FILES is not set
1677# CONFIG_USB_GADGET_DEBUG_FS is not set
1678CONFIG_USB_GADGET_VBUS_DRAW=2
1679CONFIG_USB_GADGET_SELECTED=y
1680# CONFIG_USB_GADGET_AT91 is not set
1681# CONFIG_USB_GADGET_ATMEL_USBA is not set
1682# CONFIG_USB_GADGET_FSL_USB2 is not set
1683# CONFIG_USB_GADGET_LH7A40X is not set
1684# CONFIG_USB_GADGET_OMAP is not set
1685# CONFIG_USB_GADGET_PXA25X is not set
1686# CONFIG_USB_GADGET_R8A66597 is not set
1687# CONFIG_USB_GADGET_PXA27X is not set
1688# CONFIG_USB_GADGET_S3C_HSOTG is not set
1689# CONFIG_USB_GADGET_IMX is not set
1690# CONFIG_USB_GADGET_S3C2410 is not set
1691CONFIG_USB_GADGET_M66592=y
1692CONFIG_USB_M66592=m
1693# CONFIG_USB_GADGET_AMD5536UDC is not set
1694# CONFIG_USB_GADGET_FSL_QE is not set
1695# CONFIG_USB_GADGET_CI13XXX is not set
1696# CONFIG_USB_GADGET_NET2280 is not set
1697# CONFIG_USB_GADGET_GOKU is not set
1698# CONFIG_USB_GADGET_LANGWELL is not set
1699# CONFIG_USB_GADGET_DUMMY_HCD is not set
1700CONFIG_USB_GADGET_DUALSPEED=y
1701# CONFIG_USB_ZERO is not set
1702# CONFIG_USB_AUDIO is not set
1703# CONFIG_USB_ETH is not set
1704# CONFIG_USB_GADGETFS is not set
1705# CONFIG_USB_FILE_STORAGE is not set
1706# CONFIG_USB_MASS_STORAGE is not set
1707# CONFIG_USB_G_SERIAL is not set
1708# CONFIG_USB_MIDI_GADGET is not set
1709# CONFIG_USB_G_PRINTER is not set
1710# CONFIG_USB_CDC_COMPOSITE is not set
1711# CONFIG_USB_G_MULTI is not set
1712
1713#
1714# OTG and related infrastructure
1715#
1716# CONFIG_NOP_USB_XCEIV is not set
1717CONFIG_UWB=m
1718CONFIG_UWB_HWA=m
1719CONFIG_UWB_WHCI=m
1720# CONFIG_UWB_WLP is not set
1721# CONFIG_UWB_I1480U is not set
1722CONFIG_MMC=m
1723# CONFIG_MMC_DEBUG is not set
1724# CONFIG_MMC_UNSAFE_RESUME is not set
1725
1726#
1727# MMC/SD/SDIO Card Drivers
1728#
1729CONFIG_MMC_BLOCK=m
1730CONFIG_MMC_BLOCK_BOUNCE=y
1731# CONFIG_SDIO_UART is not set
1732# CONFIG_MMC_TEST is not set
1733
1734#
1735# MMC/SD/SDIO Host Controller Drivers
1736#
1737# CONFIG_MMC_SDHCI is not set
1738# CONFIG_MMC_AT91 is not set
1739# CONFIG_MMC_ATMELMCI is not set
1740# CONFIG_MMC_TIFM_SD is not set
1741# CONFIG_MMC_CB710 is not set
1742# CONFIG_MMC_VIA_SDMMC is not set
1743# CONFIG_MEMSTICK is not set
1744CONFIG_NEW_LEDS=y
1745CONFIG_LEDS_CLASS=m
1746
1747#
1748# LED drivers
1749#
1750
1751#
1752# LED Triggers
1753#
1754CONFIG_LEDS_TRIGGERS=y
1755# CONFIG_LEDS_TRIGGER_TIMER is not set
1756# CONFIG_LEDS_TRIGGER_IDE_DISK is not set
1757# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set
1758# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
1759# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set
1760
1761#
1762# iptables trigger is under Netfilter config (LED target)
1763#
1764# CONFIG_ACCESSIBILITY is not set
1765# CONFIG_INFINIBAND is not set
1766# CONFIG_RTC_CLASS is not set
1767# CONFIG_DMADEVICES is not set
1768# CONFIG_AUXDISPLAY is not set
1769# CONFIG_UIO is not set
1770
1771#
1772# TI VLYNQ
1773#
1774CONFIG_STAGING=y
1775# CONFIG_STAGING_EXCLUDE_BUILD is not set
1776# CONFIG_ET131X is not set
1777# CONFIG_USB_IP_COMMON is not set
1778# CONFIG_W35UND is not set
1779# CONFIG_ECHO is not set
1780# CONFIG_OTUS is not set
1781# CONFIG_COMEDI is not set
1782# CONFIG_ASUS_OLED is not set
1783# CONFIG_ALTERA_PCIE_CHDMA is not set
1784# CONFIG_R8187SE is not set
1785# CONFIG_RTL8192E is not set
1786# CONFIG_INPUT_MIMIO is not set
1787# CONFIG_TRANZPORT is not set
1788
1789#
1790# Qualcomm MSM Camera And Video
1791#
1792
1793#
1794# Camera Sensor Selection
1795#
1796# CONFIG_INPUT_GPIO is not set
1797# CONFIG_POHMELFS is not set
1798# CONFIG_B3DFG is not set
1799# CONFIG_PLAN9AUTH is not set
1800# CONFIG_LINE6_USB is not set
1801# CONFIG_USB_SERIAL_QUATECH2 is not set
1802# CONFIG_USB_SERIAL_QUATECH_USB2 is not set
1803# CONFIG_VT6655 is not set
1804# CONFIG_VT6656 is not set
1805# CONFIG_FB_UDL is not set
1806# CONFIG_VME_BUS is not set
1807
1808#
1809# RAR Register Driver
1810#
1811# CONFIG_RAR_REGISTER is not set
1812# CONFIG_IIO is not set
1813# CONFIG_RAMZSWAP is not set
1814# CONFIG_BATMAN_ADV is not set
1815# CONFIG_STRIP is not set
1816# CONFIG_WAVELAN is not set
1817CONFIG_FB_SM7XX=y
1818# CONFIG_FB_SM7XX_ACCEL is not set
1819
1820#
1821# File systems
1822#
1823CONFIG_EXT2_FS=m
1824# CONFIG_EXT2_FS_XATTR is not set
1825# CONFIG_EXT2_FS_XIP is not set
1826CONFIG_EXT3_FS=y
1827# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
1828CONFIG_EXT3_FS_XATTR=y
1829CONFIG_EXT3_FS_POSIX_ACL=y
1830CONFIG_EXT3_FS_SECURITY=y
1831CONFIG_EXT4_FS=y
1832CONFIG_EXT4_FS_XATTR=y
1833# CONFIG_EXT4_FS_POSIX_ACL is not set
1834# CONFIG_EXT4_FS_SECURITY is not set
1835# CONFIG_EXT4_DEBUG is not set
1836CONFIG_JBD=y
1837# CONFIG_JBD_DEBUG is not set
1838CONFIG_JBD2=y
1839# CONFIG_JBD2_DEBUG is not set
1840CONFIG_FS_MBCACHE=y
1841CONFIG_REISERFS_FS=m
1842# CONFIG_REISERFS_CHECK is not set
1843CONFIG_REISERFS_PROC_INFO=y
1844CONFIG_REISERFS_FS_XATTR=y
1845# CONFIG_REISERFS_FS_POSIX_ACL is not set
1846# CONFIG_REISERFS_FS_SECURITY is not set
1847CONFIG_JFS_FS=m
1848CONFIG_JFS_POSIX_ACL=y
1849# CONFIG_JFS_SECURITY is not set
1850# CONFIG_JFS_DEBUG is not set
1851# CONFIG_JFS_STATISTICS is not set
1852CONFIG_FS_POSIX_ACL=y
1853CONFIG_XFS_FS=m
1854CONFIG_XFS_QUOTA=y
1855CONFIG_XFS_POSIX_ACL=y
1856# CONFIG_XFS_RT is not set
1857# CONFIG_XFS_DEBUG is not set
1858# CONFIG_GFS2_FS is not set
1859# CONFIG_OCFS2_FS is not set
1860CONFIG_BTRFS_FS=m
1861# CONFIG_BTRFS_FS_POSIX_ACL is not set
1862# CONFIG_NILFS2_FS is not set
1863CONFIG_FILE_LOCKING=y
1864CONFIG_FSNOTIFY=y
1865CONFIG_DNOTIFY=y
1866CONFIG_INOTIFY=y
1867CONFIG_INOTIFY_USER=y
1868CONFIG_QUOTA=y
1869# CONFIG_QUOTA_NETLINK_INTERFACE is not set
1870CONFIG_PRINT_QUOTA_WARNING=y
1871CONFIG_QUOTA_TREE=m
1872# CONFIG_QFMT_V1 is not set
1873CONFIG_QFMT_V2=m
1874CONFIG_QUOTACTL=y
1875CONFIG_AUTOFS_FS=m
1876CONFIG_AUTOFS4_FS=m
1877# CONFIG_FUSE_FS is not set
1878
1879#
1880# Caches
1881#
1882CONFIG_FSCACHE=m
1883# CONFIG_FSCACHE_STATS is not set
1884# CONFIG_FSCACHE_HISTOGRAM is not set
1885# CONFIG_FSCACHE_DEBUG is not set
1886# CONFIG_FSCACHE_OBJECT_LIST is not set
1887CONFIG_CACHEFILES=m
1888# CONFIG_CACHEFILES_DEBUG is not set
1889# CONFIG_CACHEFILES_HISTOGRAM is not set
1890
1891#
1892# CD-ROM/DVD Filesystems
1893#
1894CONFIG_ISO9660_FS=m
1895CONFIG_JOLIET=y
1896CONFIG_ZISOFS=y
1897# CONFIG_UDF_FS is not set
1898
1899#
1900# DOS/FAT/NT Filesystems
1901#
1902CONFIG_FAT_FS=m
1903CONFIG_MSDOS_FS=m
1904CONFIG_VFAT_FS=m
1905CONFIG_FAT_DEFAULT_CODEPAGE=437
1906CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
1907CONFIG_NTFS_FS=m
1908# CONFIG_NTFS_DEBUG is not set
1909CONFIG_NTFS_RW=y
1910
1911#
1912# Pseudo filesystems
1913#
1914CONFIG_PROC_FS=y
1915CONFIG_PROC_KCORE=y
1916CONFIG_PROC_SYSCTL=y
1917CONFIG_PROC_PAGE_MONITOR=y
1918CONFIG_SYSFS=y
1919CONFIG_TMPFS=y
1920# CONFIG_TMPFS_POSIX_ACL is not set
1921# CONFIG_HUGETLB_PAGE is not set
1922CONFIG_CONFIGFS_FS=m
1923CONFIG_MISC_FILESYSTEMS=y
1924# CONFIG_ADFS_FS is not set
1925# CONFIG_AFFS_FS is not set
1926# CONFIG_ECRYPT_FS is not set
1927# CONFIG_HFS_FS is not set
1928# CONFIG_HFSPLUS_FS is not set
1929# CONFIG_BEFS_FS is not set
1930# CONFIG_BFS_FS is not set
1931# CONFIG_EFS_FS is not set
1932CONFIG_CRAMFS=m
1933CONFIG_SQUASHFS=m
1934CONFIG_SQUASHFS_EMBEDDED=y
1935CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
1936# CONFIG_VXFS_FS is not set
1937# CONFIG_MINIX_FS is not set
1938# CONFIG_OMFS_FS is not set
1939# CONFIG_HPFS_FS is not set
1940# CONFIG_QNX4FS_FS is not set
1941CONFIG_ROMFS_FS=m
1942CONFIG_ROMFS_BACKED_BY_BLOCK=y
1943# CONFIG_ROMFS_BACKED_BY_MTD is not set
1944# CONFIG_ROMFS_BACKED_BY_BOTH is not set
1945CONFIG_ROMFS_ON_BLOCK=y
1946# CONFIG_SYSV_FS is not set
1947# CONFIG_UFS_FS is not set
1948CONFIG_NETWORK_FILESYSTEMS=y
1949CONFIG_NFS_FS=m
1950CONFIG_NFS_V3=y
1951CONFIG_NFS_V3_ACL=y
1952# CONFIG_NFS_V4 is not set
1953# CONFIG_NFS_FSCACHE is not set
1954CONFIG_NFSD=m
1955CONFIG_NFSD_V3=y
1956# CONFIG_NFSD_V3_ACL is not set
1957CONFIG_NFSD_V4=y
1958CONFIG_LOCKD=m
1959CONFIG_LOCKD_V4=y
1960CONFIG_EXPORTFS=m
1961CONFIG_NFS_ACL_SUPPORT=m
1962CONFIG_NFS_COMMON=y
1963CONFIG_SUNRPC=m
1964CONFIG_SUNRPC_GSS=m
1965CONFIG_RPCSEC_GSS_KRB5=m
1966# CONFIG_RPCSEC_GSS_SPKM3 is not set
1967# CONFIG_SMB_FS is not set
1968CONFIG_CIFS=m
1969# CONFIG_CIFS_STATS is not set
1970# CONFIG_CIFS_WEAK_PW_HASH is not set
1971# CONFIG_CIFS_UPCALL is not set
1972# CONFIG_CIFS_XATTR is not set
1973# CONFIG_CIFS_DEBUG2 is not set
1974# CONFIG_CIFS_DFS_UPCALL is not set
1975# CONFIG_CIFS_EXPERIMENTAL is not set
1976# CONFIG_NCP_FS is not set
1977# CONFIG_CODA_FS is not set
1978# CONFIG_AFS_FS is not set
1979
1980#
1981# Partition Types
1982#
1983# CONFIG_PARTITION_ADVANCED is not set
1984CONFIG_MSDOS_PARTITION=y
1985CONFIG_NLS=y
1986CONFIG_NLS_DEFAULT="utf8"
1987CONFIG_NLS_CODEPAGE_437=m
1988CONFIG_NLS_CODEPAGE_737=m
1989CONFIG_NLS_CODEPAGE_775=m
1990CONFIG_NLS_CODEPAGE_850=m
1991CONFIG_NLS_CODEPAGE_852=m
1992CONFIG_NLS_CODEPAGE_855=m
1993CONFIG_NLS_CODEPAGE_857=m
1994CONFIG_NLS_CODEPAGE_860=m
1995CONFIG_NLS_CODEPAGE_861=m
1996CONFIG_NLS_CODEPAGE_862=m
1997CONFIG_NLS_CODEPAGE_863=m
1998CONFIG_NLS_CODEPAGE_864=m
1999CONFIG_NLS_CODEPAGE_865=m
2000CONFIG_NLS_CODEPAGE_866=m
2001CONFIG_NLS_CODEPAGE_869=m
2002CONFIG_NLS_CODEPAGE_936=m
2003CONFIG_NLS_CODEPAGE_950=m
2004CONFIG_NLS_CODEPAGE_932=m
2005CONFIG_NLS_CODEPAGE_949=m
2006CONFIG_NLS_CODEPAGE_874=m
2007CONFIG_NLS_ISO8859_8=m
2008CONFIG_NLS_CODEPAGE_1250=m
2009CONFIG_NLS_CODEPAGE_1251=m
2010CONFIG_NLS_ASCII=m
2011CONFIG_NLS_ISO8859_1=m
2012CONFIG_NLS_ISO8859_2=m
2013CONFIG_NLS_ISO8859_3=m
2014CONFIG_NLS_ISO8859_4=m
2015CONFIG_NLS_ISO8859_5=m
2016CONFIG_NLS_ISO8859_6=m
2017CONFIG_NLS_ISO8859_7=m
2018CONFIG_NLS_ISO8859_9=m
2019CONFIG_NLS_ISO8859_13=m
2020CONFIG_NLS_ISO8859_14=m
2021CONFIG_NLS_ISO8859_15=m
2022CONFIG_NLS_KOI8_R=m
2023CONFIG_NLS_KOI8_U=m
2024CONFIG_NLS_UTF8=y
2025# CONFIG_DLM is not set
2026
2027#
2028# Kernel hacking
2029#
2030CONFIG_TRACE_IRQFLAGS_SUPPORT=y
2031CONFIG_PRINTK_TIME=y
2032CONFIG_ENABLE_WARN_DEPRECATED=y
2033CONFIG_ENABLE_MUST_CHECK=y
2034CONFIG_FRAME_WARN=1024
2035# CONFIG_MAGIC_SYSRQ is not set
2036CONFIG_STRIP_ASM_SYMS=y
2037# CONFIG_UNUSED_SYMBOLS is not set
2038CONFIG_DEBUG_FS=y
2039# CONFIG_HEADERS_CHECK is not set
2040# CONFIG_DEBUG_KERNEL is not set
2041# CONFIG_SLUB_DEBUG_ON is not set
2042# CONFIG_SLUB_STATS is not set
2043CONFIG_STACKTRACE=y
2044# CONFIG_DEBUG_MEMORY_INIT is not set
2045# CONFIG_RCU_CPU_STALL_DETECTOR is not set
2046CONFIG_SYSCTL_SYSCALL_CHECK=y
2047CONFIG_NOP_TRACER=y
2048CONFIG_HAVE_FUNCTION_TRACER=y
2049CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
2050CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y
2051CONFIG_HAVE_DYNAMIC_FTRACE=y
2052CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
2053CONFIG_RING_BUFFER=y
2054CONFIG_EVENT_TRACING=y
2055CONFIG_CONTEXT_SWITCH_TRACER=y
2056CONFIG_RING_BUFFER_ALLOW_SWAP=y
2057CONFIG_TRACING=y
2058CONFIG_TRACING_SUPPORT=y
2059# CONFIG_FTRACE is not set
2060# CONFIG_DYNAMIC_DEBUG is not set
2061# CONFIG_SAMPLES is not set
2062CONFIG_HAVE_ARCH_KGDB=y
2063CONFIG_EARLY_PRINTK=y
2064# CONFIG_CMDLINE_BOOL is not set
2065
2066#
2067# Security options
2068#
2069CONFIG_KEYS=y
2070CONFIG_KEYS_DEBUG_PROC_KEYS=y
2071# CONFIG_SECURITY is not set
2072# CONFIG_SECURITYFS is not set
2073# CONFIG_DEFAULT_SECURITY_SELINUX is not set
2074# CONFIG_DEFAULT_SECURITY_SMACK is not set
2075# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
2076CONFIG_DEFAULT_SECURITY_DAC=y
2077CONFIG_DEFAULT_SECURITY=""
2078CONFIG_XOR_BLOCKS=m
2079CONFIG_ASYNC_CORE=m
2080CONFIG_ASYNC_MEMCPY=m
2081CONFIG_ASYNC_XOR=m
2082CONFIG_ASYNC_PQ=m
2083CONFIG_ASYNC_RAID6_RECOV=m
2084CONFIG_CRYPTO=y
2085
2086#
2087# Crypto core or helper
2088#
2089CONFIG_CRYPTO_FIPS=y
2090CONFIG_CRYPTO_ALGAPI=y
2091CONFIG_CRYPTO_ALGAPI2=y
2092CONFIG_CRYPTO_AEAD=m
2093CONFIG_CRYPTO_AEAD2=y
2094CONFIG_CRYPTO_BLKCIPHER=m
2095CONFIG_CRYPTO_BLKCIPHER2=y
2096CONFIG_CRYPTO_HASH=y
2097CONFIG_CRYPTO_HASH2=y
2098CONFIG_CRYPTO_RNG=m
2099CONFIG_CRYPTO_RNG2=y
2100CONFIG_CRYPTO_PCOMP=y
2101CONFIG_CRYPTO_MANAGER=m
2102CONFIG_CRYPTO_MANAGER2=y
2103CONFIG_CRYPTO_GF128MUL=m
2104CONFIG_CRYPTO_NULL=m
2105CONFIG_CRYPTO_WORKQUEUE=y
2106CONFIG_CRYPTO_CRYPTD=m
2107CONFIG_CRYPTO_AUTHENC=m
2108CONFIG_CRYPTO_TEST=m
2109
2110#
2111# Authenticated Encryption with Associated Data
2112#
2113CONFIG_CRYPTO_CCM=m
2114CONFIG_CRYPTO_GCM=m
2115CONFIG_CRYPTO_SEQIV=m
2116
2117#
2118# Block modes
2119#
2120CONFIG_CRYPTO_CBC=m
2121CONFIG_CRYPTO_CTR=m
2122# CONFIG_CRYPTO_CTS is not set
2123CONFIG_CRYPTO_ECB=m
2124CONFIG_CRYPTO_LRW=m
2125CONFIG_CRYPTO_PCBC=m
2126CONFIG_CRYPTO_XTS=m
2127
2128#
2129# Hash modes
2130#
2131CONFIG_CRYPTO_HMAC=m
2132CONFIG_CRYPTO_XCBC=m
2133# CONFIG_CRYPTO_VMAC is not set
2134
2135#
2136# Digest
2137#
2138CONFIG_CRYPTO_CRC32C=m
2139CONFIG_CRYPTO_GHASH=m
2140CONFIG_CRYPTO_MD4=m
2141CONFIG_CRYPTO_MD5=y
2142CONFIG_CRYPTO_MICHAEL_MIC=m
2143CONFIG_CRYPTO_RMD128=m
2144CONFIG_CRYPTO_RMD160=m
2145CONFIG_CRYPTO_RMD256=m
2146CONFIG_CRYPTO_RMD320=m
2147CONFIG_CRYPTO_SHA1=m
2148CONFIG_CRYPTO_SHA256=m
2149CONFIG_CRYPTO_SHA512=m
2150CONFIG_CRYPTO_TGR192=m
2151CONFIG_CRYPTO_WP512=m
2152
2153#
2154# Ciphers
2155#
2156CONFIG_CRYPTO_AES=m
2157CONFIG_CRYPTO_ANUBIS=m
2158CONFIG_CRYPTO_ARC4=m
2159CONFIG_CRYPTO_BLOWFISH=m
2160CONFIG_CRYPTO_CAMELLIA=m
2161CONFIG_CRYPTO_CAST5=m
2162CONFIG_CRYPTO_CAST6=m
2163CONFIG_CRYPTO_DES=m
2164CONFIG_CRYPTO_FCRYPT=m
2165CONFIG_CRYPTO_KHAZAD=m
2166CONFIG_CRYPTO_SALSA20=m
2167CONFIG_CRYPTO_SEED=m
2168CONFIG_CRYPTO_SERPENT=m
2169CONFIG_CRYPTO_TEA=m
2170CONFIG_CRYPTO_TWOFISH=m
2171CONFIG_CRYPTO_TWOFISH_COMMON=m
2172
2173#
2174# Compression
2175#
2176CONFIG_CRYPTO_DEFLATE=m
2177CONFIG_CRYPTO_ZLIB=m
2178CONFIG_CRYPTO_LZO=m
2179
2180#
2181# Random Number Generation
2182#
2183CONFIG_CRYPTO_ANSI_CPRNG=m
2184CONFIG_CRYPTO_HW=y
2185# CONFIG_CRYPTO_DEV_HIFN_795X is not set
2186CONFIG_BINARY_PRINTF=y
2187
2188#
2189# Library routines
2190#
2191CONFIG_BITREVERSE=y
2192CONFIG_GENERIC_FIND_LAST_BIT=y
2193# CONFIG_CRC_CCITT is not set
2194CONFIG_CRC16=y
2195CONFIG_CRC_T10DIF=y
2196# CONFIG_CRC_ITU_T is not set
2197CONFIG_CRC32=y
2198# CONFIG_CRC7 is not set
2199CONFIG_LIBCRC32C=m
2200CONFIG_AUDIT_GENERIC=y
2201CONFIG_ZLIB_INFLATE=y
2202CONFIG_ZLIB_DEFLATE=m
2203CONFIG_LZO_COMPRESS=m
2204CONFIG_LZO_DECOMPRESS=m
2205CONFIG_DECOMPRESS_GZIP=y
2206CONFIG_DECOMPRESS_BZIP2=y
2207CONFIG_DECOMPRESS_LZMA=y
2208CONFIG_HAS_IOMEM=y
2209CONFIG_HAS_IOPORT=y
2210CONFIG_HAS_DMA=y
2211CONFIG_NLATTR=y
diff --git a/arch/mips/configs/malta_defconfig b/arch/mips/configs/malta_defconfig
index 3f01870b4d65..d3c601206db2 100644
--- a/arch/mips/configs/malta_defconfig
+++ b/arch/mips/configs/malta_defconfig
@@ -10,7 +10,6 @@ CONFIG_MIPS=y
10# 10#
11CONFIG_ZONE_DMA=y 11CONFIG_ZONE_DMA=y
12# CONFIG_MACH_ALCHEMY is not set 12# CONFIG_MACH_ALCHEMY is not set
13# CONFIG_BASLER_EXCITE is not set
14# CONFIG_BCM47XX is not set 13# CONFIG_BCM47XX is not set
15# CONFIG_MIPS_COBALT is not set 14# CONFIG_MIPS_COBALT is not set
16# CONFIG_MACH_DECSTATION is not set 15# CONFIG_MACH_DECSTATION is not set
@@ -1591,7 +1590,7 @@ CONFIG_FRAME_WARN=1024
1591# CONFIG_DYNAMIC_PRINTK_DEBUG is not set 1590# CONFIG_DYNAMIC_PRINTK_DEBUG is not set
1592# CONFIG_SAMPLES is not set 1591# CONFIG_SAMPLES is not set
1593CONFIG_HAVE_ARCH_KGDB=y 1592CONFIG_HAVE_ARCH_KGDB=y
1594CONFIG_CMDLINE="" 1593# CONFIG_CMDLINE_BOOL is not set
1595 1594
1596# 1595#
1597# Security options 1596# Security options
diff --git a/arch/mips/configs/markeins_defconfig b/arch/mips/configs/markeins_defconfig
index d001f7e87418..6a325c02b63c 100644
--- a/arch/mips/configs/markeins_defconfig
+++ b/arch/mips/configs/markeins_defconfig
@@ -22,7 +22,6 @@ CONFIG_ZONE_DMA=y
22# CONFIG_MIPS_DB1550 is not set 22# CONFIG_MIPS_DB1550 is not set
23# CONFIG_MIPS_DB1200 is not set 23# CONFIG_MIPS_DB1200 is not set
24# CONFIG_MIPS_MIRAGE is not set 24# CONFIG_MIPS_MIRAGE is not set
25# CONFIG_BASLER_EXCITE is not set
26# CONFIG_MIPS_COBALT is not set 25# CONFIG_MIPS_COBALT is not set
27# CONFIG_MACH_DECSTATION is not set 26# CONFIG_MACH_DECSTATION is not set
28# CONFIG_MACH_JAZZ is not set 27# CONFIG_MACH_JAZZ is not set
@@ -1366,7 +1365,9 @@ CONFIG_ENABLE_MUST_CHECK=y
1366# CONFIG_DEBUG_KERNEL is not set 1365# CONFIG_DEBUG_KERNEL is not set
1367CONFIG_LOG_BUF_SHIFT=14 1366CONFIG_LOG_BUF_SHIFT=14
1368CONFIG_CROSSCOMPILE=y 1367CONFIG_CROSSCOMPILE=y
1368CONFIG_CMDLINE_BOOL=y
1369CONFIG_CMDLINE="console=ttyS0,115200 mem=192m ip=bootp root=/dev/nfs rw" 1369CONFIG_CMDLINE="console=ttyS0,115200 mem=192m ip=bootp root=/dev/nfs rw"
1370# CONFIG_CMDLINE_OVERRIDE is not set
1370 1371
1371# 1372#
1372# Security options 1373# Security options
diff --git a/arch/mips/configs/mipssim_defconfig b/arch/mips/configs/mipssim_defconfig
index 7358454deaa6..f77a34e0f938 100644
--- a/arch/mips/configs/mipssim_defconfig
+++ b/arch/mips/configs/mipssim_defconfig
@@ -9,7 +9,6 @@ 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_BASLER_EXCITE is not set
13# CONFIG_BCM47XX is not set 12# CONFIG_BCM47XX is not set
14# CONFIG_MIPS_COBALT is not set 13# CONFIG_MIPS_COBALT is not set
15# CONFIG_MACH_DECSTATION is not set 14# CONFIG_MACH_DECSTATION is not set
@@ -635,7 +634,9 @@ CONFIG_FORCED_INLINING=y
635# CONFIG_RCU_TORTURE_TEST is not set 634# CONFIG_RCU_TORTURE_TEST is not set
636# CONFIG_FAULT_INJECTION is not set 635# CONFIG_FAULT_INJECTION is not set
637CONFIG_CROSSCOMPILE=y 636CONFIG_CROSSCOMPILE=y
637CONFIG_CMDLINE_BOOL=y
638CONFIG_CMDLINE="nfsroot=192.168.192.169:/u1/mipsel,timeo=20 ip=dhcp" 638CONFIG_CMDLINE="nfsroot=192.168.192.169:/u1/mipsel,timeo=20 ip=dhcp"
639# CONFIG_CMDLINE_OVERRIDE is not set
639# CONFIG_DEBUG_STACK_USAGE is not set 640# CONFIG_DEBUG_STACK_USAGE is not set
640# CONFIG_RUNTIME_DEBUG is not set 641# CONFIG_RUNTIME_DEBUG is not set
641 642
diff --git a/arch/mips/configs/mpc30x_defconfig b/arch/mips/configs/mpc30x_defconfig
index 8c720e51795b..17203056b22b 100644
--- a/arch/mips/configs/mpc30x_defconfig
+++ b/arch/mips/configs/mpc30x_defconfig
@@ -9,7 +9,6 @@ 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_BASLER_EXCITE is not set
13# CONFIG_MIPS_COBALT is not set 12# CONFIG_MIPS_COBALT is not set
14# CONFIG_MACH_DECSTATION is not set 13# CONFIG_MACH_DECSTATION is not set
15# CONFIG_MACH_JAZZ is not set 14# CONFIG_MACH_JAZZ is not set
@@ -817,7 +816,9 @@ CONFIG_ENABLE_MUST_CHECK=y
817# CONFIG_HEADERS_CHECK is not set 816# CONFIG_HEADERS_CHECK is not set
818# CONFIG_DEBUG_KERNEL is not set 817# CONFIG_DEBUG_KERNEL is not set
819CONFIG_CROSSCOMPILE=y 818CONFIG_CROSSCOMPILE=y
819CONFIG_CMDLINE_BOOL=y
820CONFIG_CMDLINE="mem=32M console=ttyVR0,19200 ide0=0x170,0x376,73" 820CONFIG_CMDLINE="mem=32M console=ttyVR0,19200 ide0=0x170,0x376,73"
821# CONFIG_CMDLINE_OVERRIDE is not set
821 822
822# 823#
823# Security options 824# Security options
diff --git a/arch/mips/configs/msp71xx_defconfig b/arch/mips/configs/msp71xx_defconfig
index ecbc030b7b6c..000d185ddf42 100644
--- a/arch/mips/configs/msp71xx_defconfig
+++ b/arch/mips/configs/msp71xx_defconfig
@@ -22,7 +22,6 @@ CONFIG_ZONE_DMA=y
22# CONFIG_MIPS_DB1550 is not set 22# CONFIG_MIPS_DB1550 is not set
23# CONFIG_MIPS_DB1200 is not set 23# CONFIG_MIPS_DB1200 is not set
24# CONFIG_MIPS_MIRAGE is not set 24# CONFIG_MIPS_MIRAGE is not set
25# CONFIG_BASLER_EXCITE is not set
26# CONFIG_MIPS_COBALT is not set 25# CONFIG_MIPS_COBALT is not set
27# CONFIG_MACH_DECSTATION is not set 26# CONFIG_MACH_DECSTATION is not set
28# CONFIG_MACH_JAZZ is not set 27# CONFIG_MACH_JAZZ is not set
@@ -1412,7 +1411,7 @@ CONFIG_FORCED_INLINING=y
1412# CONFIG_RCU_TORTURE_TEST is not set 1411# CONFIG_RCU_TORTURE_TEST is not set
1413# CONFIG_FAULT_INJECTION is not set 1412# CONFIG_FAULT_INJECTION is not set
1414CONFIG_CROSSCOMPILE=y 1413CONFIG_CROSSCOMPILE=y
1415CONFIG_CMDLINE="" 1414# CONFIG_CMDLINE_BOOL is not set
1416# CONFIG_DEBUG_STACK_USAGE is not set 1415# CONFIG_DEBUG_STACK_USAGE is not set
1417# CONFIG_RUNTIME_DEBUG is not set 1416# CONFIG_RUNTIME_DEBUG is not set
1418# CONFIG_MIPS_UNCACHED is not set 1417# CONFIG_MIPS_UNCACHED is not set
diff --git a/arch/mips/configs/mtx1_defconfig b/arch/mips/configs/mtx1_defconfig
index 9477f040796d..144b94d9a6ad 100644
--- a/arch/mips/configs/mtx1_defconfig
+++ b/arch/mips/configs/mtx1_defconfig
@@ -9,7 +9,6 @@ CONFIG_MIPS=y
9# Machine selection 9# Machine selection
10# 10#
11CONFIG_MACH_ALCHEMY=y 11CONFIG_MACH_ALCHEMY=y
12# CONFIG_BASLER_EXCITE is not set
13# CONFIG_MIPS_COBALT is not set 12# CONFIG_MIPS_COBALT is not set
14# CONFIG_MACH_DECSTATION is not set 13# CONFIG_MACH_DECSTATION is not set
15# CONFIG_MACH_JAZZ is not set 14# CONFIG_MACH_JAZZ is not set
@@ -3018,7 +3017,7 @@ CONFIG_MAGIC_SYSRQ=y
3018# CONFIG_HEADERS_CHECK is not set 3017# CONFIG_HEADERS_CHECK is not set
3019# CONFIG_DEBUG_KERNEL is not set 3018# CONFIG_DEBUG_KERNEL is not set
3020CONFIG_CROSSCOMPILE=y 3019CONFIG_CROSSCOMPILE=y
3021CONFIG_CMDLINE="" 3020# CONFIG_CMDLINE_BOOL is not set
3022 3021
3023# 3022#
3024# Security options 3023# Security options
diff --git a/arch/mips/configs/pb1100_defconfig b/arch/mips/configs/pb1100_defconfig
index be8091ef0a79..97382b698b9b 100644
--- a/arch/mips/configs/pb1100_defconfig
+++ b/arch/mips/configs/pb1100_defconfig
@@ -1,80 +1,103 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.20 3# Linux kernel version: 2.6.33
4# Tue Feb 20 21:47:37 2007 4# Fri Feb 26 09:53:29 2010
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
8# 8#
9# Machine selection 9# Machine selection
10# 10#
11CONFIG_ZONE_DMA=y
12CONFIG_MACH_ALCHEMY=y 11CONFIG_MACH_ALCHEMY=y
13# CONFIG_MIPS_MTX1 is not set 12# CONFIG_AR7 is not set
14# CONFIG_MIPS_BOSPORUS is not set 13# CONFIG_BCM47XX is not set
15# CONFIG_MIPS_PB1000 is not set 14# CONFIG_BCM63XX is not set
16CONFIG_MIPS_PB1100=y
17# CONFIG_MIPS_PB1500 is not set
18# CONFIG_MIPS_PB1550 is not set
19# CONFIG_MIPS_PB1200 is not set
20# CONFIG_MIPS_DB1000 is not set
21# CONFIG_MIPS_DB1100 is not set
22# CONFIG_MIPS_DB1500 is not set
23# CONFIG_MIPS_DB1550 is not set
24# CONFIG_MIPS_DB1200 is not set
25# CONFIG_MIPS_MIRAGE is not set
26# CONFIG_BASLER_EXCITE is not set
27# CONFIG_MIPS_COBALT is not set 15# CONFIG_MIPS_COBALT is not set
28# CONFIG_MACH_DECSTATION is not set 16# CONFIG_MACH_DECSTATION is not set
29# CONFIG_MACH_JAZZ is not set 17# CONFIG_MACH_JAZZ is not set
18# CONFIG_LASAT is not set
19# CONFIG_MACH_LOONGSON is not set
30# CONFIG_MIPS_MALTA is not set 20# CONFIG_MIPS_MALTA is not set
31# CONFIG_WR_PPMC is not set
32# CONFIG_MIPS_SIM is not set 21# CONFIG_MIPS_SIM is not set
33# CONFIG_MOMENCO_JAGUAR_ATX is not set 22# CONFIG_NEC_MARKEINS is not set
34# CONFIG_MIPS_XXS1500 is not set 23# CONFIG_MACH_VR41XX is not set
24# CONFIG_NXP_STB220 is not set
25# CONFIG_NXP_STB225 is not set
35# CONFIG_PNX8550_JBS is not set 26# CONFIG_PNX8550_JBS is not set
36# CONFIG_PNX8550_STB810 is not set 27# CONFIG_PNX8550_STB810 is not set
37# CONFIG_MACH_VR41XX is not set 28# CONFIG_PMC_MSP is not set
38# CONFIG_PMC_YOSEMITE is not set 29# CONFIG_PMC_YOSEMITE is not set
39# CONFIG_MARKEINS is not set 30# CONFIG_POWERTV is not set
40# CONFIG_SGI_IP22 is not set 31# CONFIG_SGI_IP22 is not set
41# CONFIG_SGI_IP27 is not set 32# CONFIG_SGI_IP27 is not set
33# CONFIG_SGI_IP28 is not set
42# CONFIG_SGI_IP32 is not set 34# CONFIG_SGI_IP32 is not set
43# CONFIG_SIBYTE_BIGSUR is not set
44# CONFIG_SIBYTE_SWARM is not set
45# CONFIG_SIBYTE_SENTOSA is not set
46# CONFIG_SIBYTE_RHONE is not set
47# CONFIG_SIBYTE_CARMEL is not set
48# CONFIG_SIBYTE_LITTLESUR is not set
49# CONFIG_SIBYTE_CRHINE is not set 35# CONFIG_SIBYTE_CRHINE is not set
36# CONFIG_SIBYTE_CARMEL is not set
50# CONFIG_SIBYTE_CRHONE is not set 37# CONFIG_SIBYTE_CRHONE is not set
38# CONFIG_SIBYTE_RHONE is not set
39# CONFIG_SIBYTE_SWARM is not set
40# CONFIG_SIBYTE_LITTLESUR is not set
41# CONFIG_SIBYTE_SENTOSA is not set
42# CONFIG_SIBYTE_BIGSUR is not set
51# CONFIG_SNI_RM is not set 43# CONFIG_SNI_RM is not set
52# CONFIG_TOSHIBA_JMR3927 is not set 44# CONFIG_MACH_TX39XX is not set
53# CONFIG_TOSHIBA_RBTX4927 is not set 45# CONFIG_MACH_TX49XX is not set
54# CONFIG_TOSHIBA_RBTX4938 is not set 46# CONFIG_MIKROTIK_RB532 is not set
47# CONFIG_WR_PPMC is not set
48# CONFIG_CAVIUM_OCTEON_SIMULATOR is not set
49# CONFIG_CAVIUM_OCTEON_REFERENCE_BOARD is not set
50CONFIG_ALCHEMY_GPIOINT_AU1000=y
51# CONFIG_ALCHEMY_GPIO_INDIRECT is not set
52# CONFIG_MIPS_MTX1 is not set
53# CONFIG_MIPS_BOSPORUS is not set
54# CONFIG_MIPS_DB1000 is not set
55# CONFIG_MIPS_DB1100 is not set
56# CONFIG_MIPS_DB1200 is not set
57# CONFIG_MIPS_DB1500 is not set
58# CONFIG_MIPS_DB1550 is not set
59# CONFIG_MIPS_MIRAGE is not set
60# CONFIG_MIPS_PB1000 is not set
61CONFIG_MIPS_PB1100=y
62# CONFIG_MIPS_PB1200 is not set
63# CONFIG_MIPS_PB1500 is not set
64# CONFIG_MIPS_PB1550 is not set
65# CONFIG_MIPS_XXS1500 is not set
66CONFIG_SOC_AU1100=y
67CONFIG_SOC_AU1X00=y
68CONFIG_LOONGSON_UART_BASE=y
55CONFIG_RWSEM_GENERIC_SPINLOCK=y 69CONFIG_RWSEM_GENERIC_SPINLOCK=y
56# CONFIG_ARCH_HAS_ILOG2_U32 is not set 70# CONFIG_ARCH_HAS_ILOG2_U32 is not set
57# CONFIG_ARCH_HAS_ILOG2_U64 is not set 71# CONFIG_ARCH_HAS_ILOG2_U64 is not set
72CONFIG_ARCH_SUPPORTS_OPROFILE=y
58CONFIG_GENERIC_FIND_NEXT_BIT=y 73CONFIG_GENERIC_FIND_NEXT_BIT=y
59CONFIG_GENERIC_HWEIGHT=y 74CONFIG_GENERIC_HWEIGHT=y
60CONFIG_GENERIC_CALIBRATE_DELAY=y 75CONFIG_GENERIC_CALIBRATE_DELAY=y
76CONFIG_GENERIC_CLOCKEVENTS=y
61CONFIG_GENERIC_TIME=y 77CONFIG_GENERIC_TIME=y
62CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 78CONFIG_GENERIC_CMOS_UPDATE=y
63# CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ is not set 79CONFIG_SCHED_OMIT_FRAME_POINTER=y
80CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
81CONFIG_CEVT_R4K_LIB=y
82CONFIG_CSRC_R4K_LIB=y
64CONFIG_DMA_NONCOHERENT=y 83CONFIG_DMA_NONCOHERENT=y
65CONFIG_DMA_NEED_PCI_MAP_STATE=y 84CONFIG_DMA_NEED_PCI_MAP_STATE=y
85CONFIG_SYS_HAS_EARLY_PRINTK=y
86# CONFIG_NO_IOPORT is not set
87CONFIG_GENERIC_GPIO=y
66# CONFIG_CPU_BIG_ENDIAN is not set 88# CONFIG_CPU_BIG_ENDIAN is not set
67CONFIG_CPU_LITTLE_ENDIAN=y 89CONFIG_CPU_LITTLE_ENDIAN=y
68CONFIG_SYS_SUPPORTS_APM_EMULATION=y 90CONFIG_SYS_SUPPORTS_APM_EMULATION=y
69CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y 91CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y
70CONFIG_SOC_AU1100=y 92CONFIG_IRQ_CPU=y
71CONFIG_SOC_AU1X00=y
72CONFIG_SWAP_IO_SPACE=y 93CONFIG_SWAP_IO_SPACE=y
73CONFIG_MIPS_L1_CACHE_SHIFT=5 94CONFIG_MIPS_L1_CACHE_SHIFT=5
74 95
75# 96#
76# CPU selection 97# CPU selection
77# 98#
99# CONFIG_CPU_LOONGSON2E is not set
100# CONFIG_CPU_LOONGSON2F is not set
78CONFIG_CPU_MIPS32_R1=y 101CONFIG_CPU_MIPS32_R1=y
79# CONFIG_CPU_MIPS32_R2 is not set 102# CONFIG_CPU_MIPS32_R2 is not set
80# CONFIG_CPU_MIPS64_R1 is not set 103# CONFIG_CPU_MIPS64_R1 is not set
@@ -87,6 +110,7 @@ CONFIG_CPU_MIPS32_R1=y
87# CONFIG_CPU_TX49XX is not set 110# CONFIG_CPU_TX49XX is not set
88# CONFIG_CPU_R5000 is not set 111# CONFIG_CPU_R5000 is not set
89# CONFIG_CPU_R5432 is not set 112# CONFIG_CPU_R5432 is not set
113# CONFIG_CPU_R5500 is not set
90# CONFIG_CPU_R6000 is not set 114# CONFIG_CPU_R6000 is not set
91# CONFIG_CPU_NEVADA is not set 115# CONFIG_CPU_NEVADA is not set
92# CONFIG_CPU_R8000 is not set 116# CONFIG_CPU_R8000 is not set
@@ -94,11 +118,14 @@ CONFIG_CPU_MIPS32_R1=y
94# CONFIG_CPU_RM7000 is not set 118# CONFIG_CPU_RM7000 is not set
95# CONFIG_CPU_RM9000 is not set 119# CONFIG_CPU_RM9000 is not set
96# CONFIG_CPU_SB1 is not set 120# CONFIG_CPU_SB1 is not set
121# CONFIG_CPU_CAVIUM_OCTEON is not set
122CONFIG_SYS_SUPPORTS_ZBOOT=y
97CONFIG_SYS_HAS_CPU_MIPS32_R1=y 123CONFIG_SYS_HAS_CPU_MIPS32_R1=y
98CONFIG_CPU_MIPS32=y 124CONFIG_CPU_MIPS32=y
99CONFIG_CPU_MIPSR1=y 125CONFIG_CPU_MIPSR1=y
100CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y 126CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y
101CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y 127CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y
128CONFIG_HARDWARE_WATCHPOINTS=y
102 129
103# 130#
104# Kernel type 131# Kernel type
@@ -108,184 +135,244 @@ CONFIG_32BIT=y
108CONFIG_PAGE_SIZE_4KB=y 135CONFIG_PAGE_SIZE_4KB=y
109# CONFIG_PAGE_SIZE_8KB is not set 136# CONFIG_PAGE_SIZE_8KB is not set
110# CONFIG_PAGE_SIZE_16KB is not set 137# CONFIG_PAGE_SIZE_16KB is not set
138# CONFIG_PAGE_SIZE_32KB is not set
111# CONFIG_PAGE_SIZE_64KB is not set 139# CONFIG_PAGE_SIZE_64KB is not set
112CONFIG_CPU_HAS_PREFETCH=y 140CONFIG_CPU_HAS_PREFETCH=y
113CONFIG_MIPS_MT_DISABLED=y 141CONFIG_MIPS_MT_DISABLED=y
114# CONFIG_MIPS_MT_SMP is not set 142# CONFIG_MIPS_MT_SMP is not set
115# CONFIG_MIPS_MT_SMTC is not set 143# CONFIG_MIPS_MT_SMTC is not set
116# CONFIG_MIPS_VPE_LOADER is not set
117CONFIG_64BIT_PHYS_ADDR=y 144CONFIG_64BIT_PHYS_ADDR=y
145CONFIG_ARCH_PHYS_ADDR_T_64BIT=y
118CONFIG_CPU_HAS_SYNC=y 146CONFIG_CPU_HAS_SYNC=y
119CONFIG_GENERIC_HARDIRQS=y 147CONFIG_GENERIC_HARDIRQS=y
120CONFIG_GENERIC_IRQ_PROBE=y 148CONFIG_GENERIC_IRQ_PROBE=y
121CONFIG_CPU_SUPPORTS_HIGHMEM=y 149CONFIG_CPU_SUPPORTS_HIGHMEM=y
122CONFIG_ARCH_FLATMEM_ENABLE=y 150CONFIG_ARCH_FLATMEM_ENABLE=y
151CONFIG_ARCH_POPULATES_NODE_MAP=y
123CONFIG_SELECT_MEMORY_MODEL=y 152CONFIG_SELECT_MEMORY_MODEL=y
124CONFIG_FLATMEM_MANUAL=y 153CONFIG_FLATMEM_MANUAL=y
125# CONFIG_DISCONTIGMEM_MANUAL is not set 154# CONFIG_DISCONTIGMEM_MANUAL is not set
126# CONFIG_SPARSEMEM_MANUAL is not set 155# CONFIG_SPARSEMEM_MANUAL is not set
127CONFIG_FLATMEM=y 156CONFIG_FLATMEM=y
128CONFIG_FLAT_NODE_MEM_MAP=y 157CONFIG_FLAT_NODE_MEM_MAP=y
129# CONFIG_SPARSEMEM_STATIC is not set 158CONFIG_PAGEFLAGS_EXTENDED=y
130CONFIG_SPLIT_PTLOCK_CPUS=4 159CONFIG_SPLIT_PTLOCK_CPUS=4
131# CONFIG_RESOURCES_64BIT is not set 160CONFIG_PHYS_ADDR_T_64BIT=y
132CONFIG_ZONE_DMA_FLAG=1 161CONFIG_ZONE_DMA_FLAG=0
162CONFIG_VIRT_TO_BUS=y
163# CONFIG_KSM is not set
164CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
165CONFIG_TICK_ONESHOT=y
166CONFIG_NO_HZ=y
167CONFIG_HIGH_RES_TIMERS=y
168CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
133# CONFIG_HZ_48 is not set 169# CONFIG_HZ_48 is not set
134# CONFIG_HZ_100 is not set 170CONFIG_HZ_100=y
135# CONFIG_HZ_128 is not set 171# CONFIG_HZ_128 is not set
136# CONFIG_HZ_250 is not set 172# CONFIG_HZ_250 is not set
137# CONFIG_HZ_256 is not set 173# CONFIG_HZ_256 is not set
138CONFIG_HZ_1000=y 174# CONFIG_HZ_1000 is not set
139# CONFIG_HZ_1024 is not set 175# CONFIG_HZ_1024 is not set
140CONFIG_SYS_SUPPORTS_ARBIT_HZ=y 176CONFIG_SYS_SUPPORTS_ARBIT_HZ=y
141CONFIG_HZ=1000 177CONFIG_HZ=100
142CONFIG_PREEMPT_NONE=y 178CONFIG_PREEMPT_NONE=y
143# CONFIG_PREEMPT_VOLUNTARY is not set 179# CONFIG_PREEMPT_VOLUNTARY is not set
144# CONFIG_PREEMPT is not set 180# CONFIG_PREEMPT is not set
145# CONFIG_KEXEC is not set 181# CONFIG_KEXEC is not set
182# CONFIG_SECCOMP is not set
146CONFIG_LOCKDEP_SUPPORT=y 183CONFIG_LOCKDEP_SUPPORT=y
147CONFIG_STACKTRACE_SUPPORT=y 184CONFIG_STACKTRACE_SUPPORT=y
148CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 185CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
186CONFIG_CONSTRUCTORS=y
149 187
150# 188#
151# Code maturity level options 189# General setup
152# 190#
153CONFIG_EXPERIMENTAL=y 191CONFIG_EXPERIMENTAL=y
154CONFIG_BROKEN_ON_SMP=y 192CONFIG_BROKEN_ON_SMP=y
155CONFIG_INIT_ENV_ARG_LIMIT=32 193CONFIG_INIT_ENV_ARG_LIMIT=32
156 194CONFIG_LOCALVERSION="-pb1100"
157#
158# General setup
159#
160CONFIG_LOCALVERSION=""
161CONFIG_LOCALVERSION_AUTO=y 195CONFIG_LOCALVERSION_AUTO=y
196CONFIG_HAVE_KERNEL_GZIP=y
197CONFIG_HAVE_KERNEL_BZIP2=y
198CONFIG_HAVE_KERNEL_LZMA=y
199CONFIG_HAVE_KERNEL_LZO=y
200# CONFIG_KERNEL_GZIP is not set
201# CONFIG_KERNEL_BZIP2 is not set
202CONFIG_KERNEL_LZMA=y
203# CONFIG_KERNEL_LZO is not set
162CONFIG_SWAP=y 204CONFIG_SWAP=y
163CONFIG_SYSVIPC=y 205CONFIG_SYSVIPC=y
164# CONFIG_IPC_NS is not set
165CONFIG_SYSVIPC_SYSCTL=y 206CONFIG_SYSVIPC_SYSCTL=y
166# CONFIG_POSIX_MQUEUE is not set 207CONFIG_POSIX_MQUEUE=y
208CONFIG_POSIX_MQUEUE_SYSCTL=y
167# CONFIG_BSD_PROCESS_ACCT is not set 209# CONFIG_BSD_PROCESS_ACCT is not set
168# CONFIG_TASKSTATS is not set 210# CONFIG_TASKSTATS is not set
169# CONFIG_UTS_NS is not set
170# CONFIG_AUDIT is not set 211# CONFIG_AUDIT is not set
212
213#
214# RCU Subsystem
215#
216# CONFIG_TREE_RCU is not set
217# CONFIG_TREE_PREEMPT_RCU is not set
218CONFIG_TINY_RCU=y
219# CONFIG_TREE_RCU_TRACE is not set
171# CONFIG_IKCONFIG is not set 220# CONFIG_IKCONFIG is not set
172CONFIG_SYSFS_DEPRECATED=y 221CONFIG_LOG_BUF_SHIFT=14
173CONFIG_RELAY=y 222# CONFIG_GROUP_SCHED is not set
174# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 223# CONFIG_CGROUPS is not set
224# CONFIG_SYSFS_DEPRECATED_V2 is not set
225# CONFIG_RELAY is not set
226# CONFIG_NAMESPACES is not set
227# CONFIG_BLK_DEV_INITRD is not set
228CONFIG_CC_OPTIMIZE_FOR_SIZE=y
175CONFIG_SYSCTL=y 229CONFIG_SYSCTL=y
230CONFIG_ANON_INODES=y
176CONFIG_EMBEDDED=y 231CONFIG_EMBEDDED=y
177CONFIG_SYSCTL_SYSCALL=y 232# CONFIG_SYSCTL_SYSCALL is not set
178CONFIG_KALLSYMS=y 233# CONFIG_KALLSYMS is not set
179# CONFIG_KALLSYMS_EXTRA_PASS is not set
180CONFIG_HOTPLUG=y 234CONFIG_HOTPLUG=y
181CONFIG_PRINTK=y 235CONFIG_PRINTK=y
182CONFIG_BUG=y 236CONFIG_BUG=y
183CONFIG_ELF_CORE=y 237CONFIG_ELF_CORE=y
238# CONFIG_PCSPKR_PLATFORM is not set
184CONFIG_BASE_FULL=y 239CONFIG_BASE_FULL=y
185CONFIG_FUTEX=y 240CONFIG_FUTEX=y
186CONFIG_EPOLL=y 241CONFIG_EPOLL=y
242CONFIG_SIGNALFD=y
243CONFIG_TIMERFD=y
244CONFIG_EVENTFD=y
187CONFIG_SHMEM=y 245CONFIG_SHMEM=y
246CONFIG_AIO=y
247
248#
249# Kernel Performance Events And Counters
250#
251# CONFIG_VM_EVENT_COUNTERS is not set
252# CONFIG_COMPAT_BRK is not set
188CONFIG_SLAB=y 253CONFIG_SLAB=y
189CONFIG_VM_EVENT_COUNTERS=y 254# CONFIG_SLUB is not set
190CONFIG_RT_MUTEXES=y
191# CONFIG_TINY_SHMEM is not set
192CONFIG_BASE_SMALL=0
193# CONFIG_SLOB is not set 255# CONFIG_SLOB is not set
256# CONFIG_PROFILING is not set
257CONFIG_HAVE_OPROFILE=y
194 258
195# 259#
196# Loadable module support 260# GCOV-based kernel profiling
197# 261#
262# CONFIG_SLOW_WORK is not set
263CONFIG_HAVE_GENERIC_DMA_COHERENT=y
264CONFIG_SLABINFO=y
265CONFIG_RT_MUTEXES=y
266CONFIG_BASE_SMALL=0
198CONFIG_MODULES=y 267CONFIG_MODULES=y
268# CONFIG_MODULE_FORCE_LOAD is not set
199CONFIG_MODULE_UNLOAD=y 269CONFIG_MODULE_UNLOAD=y
200# CONFIG_MODULE_FORCE_UNLOAD is not set 270# CONFIG_MODULE_FORCE_UNLOAD is not set
201CONFIG_MODVERSIONS=y 271# CONFIG_MODVERSIONS is not set
202CONFIG_MODULE_SRCVERSION_ALL=y 272# CONFIG_MODULE_SRCVERSION_ALL is not set
203CONFIG_KMOD=y
204
205#
206# Block layer
207#
208CONFIG_BLOCK=y 273CONFIG_BLOCK=y
209# CONFIG_LBD is not set 274# CONFIG_LBDAF is not set
210# CONFIG_BLK_DEV_IO_TRACE is not set 275# CONFIG_BLK_DEV_BSG is not set
211# CONFIG_LSF is not set 276# CONFIG_BLK_DEV_INTEGRITY is not set
212 277
213# 278#
214# IO Schedulers 279# IO Schedulers
215# 280#
216CONFIG_IOSCHED_NOOP=y 281CONFIG_IOSCHED_NOOP=y
217CONFIG_IOSCHED_AS=y 282# CONFIG_IOSCHED_DEADLINE is not set
218CONFIG_IOSCHED_DEADLINE=y 283# CONFIG_IOSCHED_CFQ is not set
219CONFIG_IOSCHED_CFQ=y
220CONFIG_DEFAULT_AS=y
221# CONFIG_DEFAULT_DEADLINE is not set 284# CONFIG_DEFAULT_DEADLINE is not set
222# CONFIG_DEFAULT_CFQ is not set 285# CONFIG_DEFAULT_CFQ is not set
223# CONFIG_DEFAULT_NOOP is not set 286CONFIG_DEFAULT_NOOP=y
224CONFIG_DEFAULT_IOSCHED="anticipatory" 287CONFIG_DEFAULT_IOSCHED="noop"
288# CONFIG_INLINE_SPIN_TRYLOCK is not set
289# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
290# CONFIG_INLINE_SPIN_LOCK is not set
291# CONFIG_INLINE_SPIN_LOCK_BH is not set
292# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
293# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
294CONFIG_INLINE_SPIN_UNLOCK=y
295# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
296CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
297# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
298# CONFIG_INLINE_READ_TRYLOCK is not set
299# CONFIG_INLINE_READ_LOCK is not set
300# CONFIG_INLINE_READ_LOCK_BH is not set
301# CONFIG_INLINE_READ_LOCK_IRQ is not set
302# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
303CONFIG_INLINE_READ_UNLOCK=y
304# CONFIG_INLINE_READ_UNLOCK_BH is not set
305CONFIG_INLINE_READ_UNLOCK_IRQ=y
306# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
307# CONFIG_INLINE_WRITE_TRYLOCK is not set
308# CONFIG_INLINE_WRITE_LOCK is not set
309# CONFIG_INLINE_WRITE_LOCK_BH is not set
310# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
311# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
312CONFIG_INLINE_WRITE_UNLOCK=y
313# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
314CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
315# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
316# CONFIG_MUTEX_SPIN_ON_OWNER is not set
317CONFIG_FREEZER=y
225 318
226# 319#
227# Bus options (PCI, PCMCIA, EISA, ISA, TC) 320# Bus options (PCI, PCMCIA, EISA, ISA, TC)
228# 321#
229CONFIG_HW_HAS_PCI=y 322CONFIG_HW_HAS_PCI=y
230# CONFIG_PCI is not set 323# CONFIG_PCI is not set
324# CONFIG_ARCH_SUPPORTS_MSI is not set
231CONFIG_MMU=y 325CONFIG_MMU=y
232 326CONFIG_PCCARD=y
233# 327CONFIG_PCMCIA=y
234# PCCARD (PCMCIA/CardBus) support
235#
236CONFIG_PCCARD=m
237# CONFIG_PCMCIA_DEBUG is not set
238CONFIG_PCMCIA=m
239CONFIG_PCMCIA_LOAD_CIS=y 328CONFIG_PCMCIA_LOAD_CIS=y
240CONFIG_PCMCIA_IOCTL=y 329# CONFIG_PCMCIA_IOCTL is not set
241 330
242# 331#
243# PC-card bridges 332# PC-card bridges
244# 333#
245# CONFIG_PCMCIA_AU1X00 is not set 334# CONFIG_PCMCIA_AU1X00 is not set
246 335CONFIG_PCMCIA_ALCHEMY_DEVBOARD=y
247#
248# PCI Hotplug Support
249#
250 336
251# 337#
252# Executable file formats 338# Executable file formats
253# 339#
254CONFIG_BINFMT_ELF=y 340CONFIG_BINFMT_ELF=y
341# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
342# CONFIG_HAVE_AOUT is not set
255# CONFIG_BINFMT_MISC is not set 343# CONFIG_BINFMT_MISC is not set
256CONFIG_TRAD_SIGNALS=y 344CONFIG_TRAD_SIGNALS=y
257 345
258# 346#
259# Power management options 347# Power management options
260# 348#
261# CONFIG_PM is not set 349CONFIG_ARCH_HIBERNATION_POSSIBLE=y
262 350CONFIG_ARCH_SUSPEND_POSSIBLE=y
263# 351CONFIG_PM=y
264# Networking 352# CONFIG_PM_DEBUG is not set
265# 353CONFIG_PM_SLEEP=y
354CONFIG_SUSPEND=y
355CONFIG_SUSPEND_FREEZER=y
356# CONFIG_HIBERNATION is not set
357# CONFIG_APM_EMULATION is not set
358CONFIG_PM_RUNTIME=y
266CONFIG_NET=y 359CONFIG_NET=y
267 360
268# 361#
269# Networking options 362# Networking options
270# 363#
271# CONFIG_NETDEBUG is not set
272CONFIG_PACKET=y 364CONFIG_PACKET=y
273# CONFIG_PACKET_MMAP is not set 365# CONFIG_PACKET_MMAP is not set
274CONFIG_UNIX=y 366CONFIG_UNIX=y
275CONFIG_XFRM=y 367# CONFIG_NET_KEY is not set
276CONFIG_XFRM_USER=m
277# CONFIG_XFRM_SUB_POLICY is not set
278CONFIG_XFRM_MIGRATE=y
279CONFIG_NET_KEY=y
280CONFIG_NET_KEY_MIGRATE=y
281CONFIG_INET=y 368CONFIG_INET=y
282CONFIG_IP_MULTICAST=y 369CONFIG_IP_MULTICAST=y
283# CONFIG_IP_ADVANCED_ROUTER is not set 370# CONFIG_IP_ADVANCED_ROUTER is not set
284CONFIG_IP_FIB_HASH=y 371CONFIG_IP_FIB_HASH=y
285CONFIG_IP_PNP=y 372CONFIG_IP_PNP=y
286# CONFIG_IP_PNP_DHCP is not set 373CONFIG_IP_PNP_DHCP=y
287CONFIG_IP_PNP_BOOTP=y 374CONFIG_IP_PNP_BOOTP=y
288# CONFIG_IP_PNP_RARP is not set 375CONFIG_IP_PNP_RARP=y
289# CONFIG_NET_IPIP is not set 376# CONFIG_NET_IPIP is not set
290# CONFIG_NET_IPGRE is not set 377# CONFIG_NET_IPGRE is not set
291# CONFIG_IP_MROUTE is not set 378# CONFIG_IP_MROUTE is not set
@@ -296,110 +383,25 @@ CONFIG_IP_PNP_BOOTP=y
296# CONFIG_INET_IPCOMP is not set 383# CONFIG_INET_IPCOMP is not set
297# CONFIG_INET_XFRM_TUNNEL is not set 384# CONFIG_INET_XFRM_TUNNEL is not set
298# CONFIG_INET_TUNNEL is not set 385# CONFIG_INET_TUNNEL is not set
299CONFIG_INET_XFRM_MODE_TRANSPORT=m 386# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
300CONFIG_INET_XFRM_MODE_TUNNEL=m 387# CONFIG_INET_XFRM_MODE_TUNNEL is not set
301CONFIG_INET_XFRM_MODE_BEET=m 388# CONFIG_INET_XFRM_MODE_BEET is not set
302CONFIG_INET_DIAG=y 389CONFIG_INET_LRO=y
303CONFIG_INET_TCP_DIAG=y 390# CONFIG_INET_DIAG is not set
304# CONFIG_TCP_CONG_ADVANCED is not set 391# CONFIG_TCP_CONG_ADVANCED is not set
305CONFIG_TCP_CONG_CUBIC=y 392CONFIG_TCP_CONG_CUBIC=y
306CONFIG_DEFAULT_TCP_CONG="cubic" 393CONFIG_DEFAULT_TCP_CONG="cubic"
307CONFIG_TCP_MD5SIG=y 394# CONFIG_TCP_MD5SIG is not set
308
309#
310# IP: Virtual Server Configuration
311#
312# CONFIG_IP_VS is not set
313# CONFIG_IPV6 is not set 395# CONFIG_IPV6 is not set
314# CONFIG_INET6_XFRM_TUNNEL is not set 396# CONFIG_NETWORK_SECMARK is not set
315# CONFIG_INET6_TUNNEL is not set 397# CONFIG_NETFILTER is not set
316CONFIG_NETWORK_SECMARK=y
317CONFIG_NETFILTER=y
318# CONFIG_NETFILTER_DEBUG is not set
319
320#
321# Core Netfilter Configuration
322#
323CONFIG_NETFILTER_NETLINK=m
324CONFIG_NETFILTER_NETLINK_QUEUE=m
325CONFIG_NETFILTER_NETLINK_LOG=m
326CONFIG_NF_CONNTRACK_ENABLED=m
327CONFIG_NF_CONNTRACK_SUPPORT=y
328# CONFIG_IP_NF_CONNTRACK_SUPPORT is not set
329CONFIG_NF_CONNTRACK=m
330CONFIG_NF_CT_ACCT=y
331CONFIG_NF_CONNTRACK_MARK=y
332CONFIG_NF_CONNTRACK_SECMARK=y
333CONFIG_NF_CONNTRACK_EVENTS=y
334CONFIG_NF_CT_PROTO_GRE=m
335CONFIG_NF_CT_PROTO_SCTP=m
336CONFIG_NF_CONNTRACK_AMANDA=m
337CONFIG_NF_CONNTRACK_FTP=m
338CONFIG_NF_CONNTRACK_H323=m
339CONFIG_NF_CONNTRACK_IRC=m
340# CONFIG_NF_CONNTRACK_NETBIOS_NS is not set
341CONFIG_NF_CONNTRACK_PPTP=m
342CONFIG_NF_CONNTRACK_SANE=m
343CONFIG_NF_CONNTRACK_SIP=m
344CONFIG_NF_CONNTRACK_TFTP=m
345CONFIG_NF_CT_NETLINK=m
346CONFIG_NETFILTER_XTABLES=m
347CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
348CONFIG_NETFILTER_XT_TARGET_MARK=m
349CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
350CONFIG_NETFILTER_XT_TARGET_NFLOG=m
351CONFIG_NETFILTER_XT_TARGET_SECMARK=m
352CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m
353CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
354CONFIG_NETFILTER_XT_MATCH_COMMENT=m
355CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
356CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
357CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
358CONFIG_NETFILTER_XT_MATCH_DCCP=m
359CONFIG_NETFILTER_XT_MATCH_DSCP=m
360CONFIG_NETFILTER_XT_MATCH_ESP=m
361CONFIG_NETFILTER_XT_MATCH_HELPER=m
362CONFIG_NETFILTER_XT_MATCH_LENGTH=m
363CONFIG_NETFILTER_XT_MATCH_LIMIT=m
364CONFIG_NETFILTER_XT_MATCH_MAC=m
365CONFIG_NETFILTER_XT_MATCH_MARK=m
366CONFIG_NETFILTER_XT_MATCH_POLICY=m
367CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
368CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
369CONFIG_NETFILTER_XT_MATCH_QUOTA=m
370CONFIG_NETFILTER_XT_MATCH_REALM=m
371CONFIG_NETFILTER_XT_MATCH_SCTP=m
372CONFIG_NETFILTER_XT_MATCH_STATE=m
373CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
374CONFIG_NETFILTER_XT_MATCH_STRING=m
375CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
376CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
377
378#
379# IP: Netfilter Configuration
380#
381CONFIG_NF_CONNTRACK_IPV4=m
382CONFIG_NF_CONNTRACK_PROC_COMPAT=y
383# CONFIG_IP_NF_QUEUE is not set
384# CONFIG_IP_NF_IPTABLES is not set
385# CONFIG_IP_NF_ARPTABLES is not set
386
387#
388# DCCP Configuration (EXPERIMENTAL)
389#
390# CONFIG_IP_DCCP is not set 398# CONFIG_IP_DCCP is not set
391
392#
393# SCTP Configuration (EXPERIMENTAL)
394#
395# CONFIG_IP_SCTP is not set 399# CONFIG_IP_SCTP is not set
396 400# CONFIG_RDS is not set
397#
398# TIPC Configuration (EXPERIMENTAL)
399#
400# CONFIG_TIPC is not set 401# CONFIG_TIPC is not set
401# CONFIG_ATM is not set 402# CONFIG_ATM is not set
402# CONFIG_BRIDGE is not set 403# CONFIG_BRIDGE is not set
404# CONFIG_NET_DSA is not set
403# CONFIG_VLAN_8021Q is not set 405# CONFIG_VLAN_8021Q is not set
404# CONFIG_DECNET is not set 406# CONFIG_DECNET is not set
405# CONFIG_LLC2 is not set 407# CONFIG_LLC2 is not set
@@ -409,27 +411,24 @@ CONFIG_NF_CONNTRACK_PROC_COMPAT=y
409# CONFIG_LAPB is not set 411# CONFIG_LAPB is not set
410# CONFIG_ECONET is not set 412# CONFIG_ECONET is not set
411# CONFIG_WAN_ROUTER is not set 413# CONFIG_WAN_ROUTER is not set
412 414# CONFIG_PHONET is not set
413# 415# CONFIG_IEEE802154 is not set
414# QoS and/or fair queueing
415#
416# CONFIG_NET_SCHED is not set 416# CONFIG_NET_SCHED is not set
417CONFIG_NET_CLS_ROUTE=y 417# CONFIG_DCB is not set
418 418
419# 419#
420# Network testing 420# Network testing
421# 421#
422# CONFIG_NET_PKTGEN is not set 422# CONFIG_NET_PKTGEN is not set
423# CONFIG_HAMRADIO is not set 423# CONFIG_HAMRADIO is not set
424# CONFIG_CAN is not set
424# CONFIG_IRDA is not set 425# CONFIG_IRDA is not set
425# CONFIG_BT is not set 426# CONFIG_BT is not set
426CONFIG_IEEE80211=m 427# CONFIG_AF_RXRPC is not set
427# CONFIG_IEEE80211_DEBUG is not set 428# CONFIG_WIRELESS is not set
428CONFIG_IEEE80211_CRYPT_WEP=m 429# CONFIG_WIMAX is not set
429CONFIG_IEEE80211_CRYPT_CCMP=m 430# CONFIG_RFKILL is not set
430CONFIG_IEEE80211_SOFTMAC=m 431# CONFIG_NET_9P is not set
431# CONFIG_IEEE80211_SOFTMAC_DEBUG is not set
432CONFIG_WIRELESS_EXT=y
433 432
434# 433#
435# Device Drivers 434# Device Drivers
@@ -438,25 +437,25 @@ CONFIG_WIRELESS_EXT=y
438# 437#
439# Generic Driver Options 438# Generic Driver Options
440# 439#
440CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
441# CONFIG_DEVTMPFS is not set
441CONFIG_STANDALONE=y 442CONFIG_STANDALONE=y
442CONFIG_PREVENT_FIRMWARE_BUILD=y 443CONFIG_PREVENT_FIRMWARE_BUILD=y
443CONFIG_FW_LOADER=m 444CONFIG_FW_LOADER=y
445CONFIG_FIRMWARE_IN_KERNEL=y
446CONFIG_EXTRA_FIRMWARE=""
447# CONFIG_DEBUG_DRIVER is not set
448# CONFIG_DEBUG_DEVRES is not set
444# CONFIG_SYS_HYPERVISOR is not set 449# CONFIG_SYS_HYPERVISOR is not set
445 450# CONFIG_CONNECTOR is not set
446#
447# Connector - unified userspace <-> kernelspace linker
448#
449CONFIG_CONNECTOR=m
450
451#
452# Memory Technology Devices (MTD)
453#
454CONFIG_MTD=y 451CONFIG_MTD=y
455# CONFIG_MTD_DEBUG is not set 452# CONFIG_MTD_DEBUG is not set
453# CONFIG_MTD_TESTS is not set
456# CONFIG_MTD_CONCAT is not set 454# CONFIG_MTD_CONCAT is not set
457CONFIG_MTD_PARTITIONS=y 455CONFIG_MTD_PARTITIONS=y
458# CONFIG_MTD_REDBOOT_PARTS is not set 456# CONFIG_MTD_REDBOOT_PARTS is not set
459# CONFIG_MTD_CMDLINE_PARTS is not set 457# CONFIG_MTD_CMDLINE_PARTS is not set
458# CONFIG_MTD_AR7_PARTS is not set
460 459
461# 460#
462# User Modules And Translation Layers 461# User Modules And Translation Layers
@@ -469,6 +468,7 @@ CONFIG_MTD_BLOCK=y
469# CONFIG_INFTL is not set 468# CONFIG_INFTL is not set
470# CONFIG_RFD_FTL is not set 469# CONFIG_RFD_FTL is not set
471# CONFIG_SSFDC is not set 470# CONFIG_SSFDC is not set
471# CONFIG_MTD_OOPS is not set
472 472
473# 473#
474# RAM/ROM/Flash chip drivers 474# RAM/ROM/Flash chip drivers
@@ -494,14 +494,13 @@ CONFIG_MTD_CFI_UTIL=y
494# CONFIG_MTD_RAM is not set 494# CONFIG_MTD_RAM is not set
495# CONFIG_MTD_ROM is not set 495# CONFIG_MTD_ROM is not set
496# CONFIG_MTD_ABSENT is not set 496# CONFIG_MTD_ABSENT is not set
497# CONFIG_MTD_OBSOLETE_CHIPS is not set
498 497
499# 498#
500# Mapping drivers for chip access 499# Mapping drivers for chip access
501# 500#
502# CONFIG_MTD_COMPLEX_MAPPINGS is not set 501# CONFIG_MTD_COMPLEX_MAPPINGS is not set
503# CONFIG_MTD_PHYSMAP is not set 502CONFIG_MTD_PHYSMAP=y
504CONFIG_MTD_ALCHEMY=y 503# CONFIG_MTD_PHYSMAP_COMPAT is not set
505# CONFIG_MTD_PLATRAM is not set 504# CONFIG_MTD_PLATRAM is not set
506 505
507# 506#
@@ -518,166 +517,136 @@ CONFIG_MTD_ALCHEMY=y
518# CONFIG_MTD_DOC2000 is not set 517# CONFIG_MTD_DOC2000 is not set
519# CONFIG_MTD_DOC2001 is not set 518# CONFIG_MTD_DOC2001 is not set
520# CONFIG_MTD_DOC2001PLUS is not set 519# CONFIG_MTD_DOC2001PLUS is not set
521
522#
523# NAND Flash Device Drivers
524#
525# CONFIG_MTD_NAND is not set 520# CONFIG_MTD_NAND is not set
526
527#
528# OneNAND Flash Device Drivers
529#
530# CONFIG_MTD_ONENAND is not set 521# CONFIG_MTD_ONENAND is not set
531 522
532# 523#
533# Parallel port support 524# LPDDR flash memory drivers
534# 525#
535# CONFIG_PARPORT is not set 526# CONFIG_MTD_LPDDR is not set
536 527
537# 528#
538# Plug and Play support 529# UBI - Unsorted block images
539#
540# CONFIG_PNPACPI is not set
541
542#
543# Block devices
544# 530#
531# CONFIG_MTD_UBI is not set
532# CONFIG_PARPORT is not set
533CONFIG_BLK_DEV=y
545# CONFIG_BLK_DEV_COW_COMMON is not set 534# CONFIG_BLK_DEV_COW_COMMON is not set
546CONFIG_BLK_DEV_LOOP=y 535CONFIG_BLK_DEV_LOOP=y
547# CONFIG_BLK_DEV_CRYPTOLOOP is not set 536# CONFIG_BLK_DEV_CRYPTOLOOP is not set
537
538#
539# DRBD disabled because PROC_FS, INET or CONNECTOR not selected
540#
548# CONFIG_BLK_DEV_NBD is not set 541# CONFIG_BLK_DEV_NBD is not set
542CONFIG_BLK_DEV_UB=y
549# CONFIG_BLK_DEV_RAM is not set 543# CONFIG_BLK_DEV_RAM is not set
550# CONFIG_BLK_DEV_INITRD is not set 544# CONFIG_CDROM_PKTCDVD is not set
551CONFIG_CDROM_PKTCDVD=m 545# CONFIG_ATA_OVER_ETH is not set
552CONFIG_CDROM_PKTCDVD_BUFFERS=8 546# CONFIG_BLK_DEV_HD is not set
553# CONFIG_CDROM_PKTCDVD_WCACHE is not set 547# CONFIG_MISC_DEVICES is not set
554CONFIG_ATA_OVER_ETH=m 548CONFIG_HAVE_IDE=y
549CONFIG_IDE=y
555 550
556# 551#
557# Misc devices 552# Please see Documentation/ide/ide.txt for help/info on IDE drives
558# 553#
554# CONFIG_BLK_DEV_IDE_SATA is not set
555CONFIG_IDE_GD=y
556CONFIG_IDE_GD_ATA=y
557# CONFIG_IDE_GD_ATAPI is not set
558CONFIG_BLK_DEV_IDECS=y
559# CONFIG_BLK_DEV_IDECD is not set
560# CONFIG_BLK_DEV_IDETAPE is not set
561CONFIG_IDE_TASK_IOCTL=y
562# CONFIG_IDE_PROC_FS is not set
559 563
560# 564#
561# ATA/ATAPI/MFM/RLL support 565# IDE chipset support/bugfixes
562# 566#
563# CONFIG_IDE is not set 567# CONFIG_IDE_GENERIC is not set
568# CONFIG_BLK_DEV_PLATFORM is not set
569# CONFIG_BLK_DEV_IDEDMA is not set
564 570
565# 571#
566# SCSI device support 572# SCSI device support
567# 573#
568CONFIG_RAID_ATTRS=m 574# CONFIG_RAID_ATTRS is not set
569# CONFIG_SCSI is not set 575# CONFIG_SCSI is not set
576# CONFIG_SCSI_DMA is not set
570# CONFIG_SCSI_NETLINK is not set 577# CONFIG_SCSI_NETLINK is not set
571
572#
573# Serial ATA (prod) and Parallel ATA (experimental) drivers
574#
575# CONFIG_ATA is not set 578# CONFIG_ATA is not set
576
577#
578# Multi-device support (RAID and LVM)
579#
580# CONFIG_MD is not set 579# CONFIG_MD is not set
581
582#
583# Fusion MPT device support
584#
585# CONFIG_FUSION is not set
586
587#
588# IEEE 1394 (FireWire) support
589#
590
591#
592# I2O device support
593#
594
595#
596# Network device support
597#
598CONFIG_NETDEVICES=y 580CONFIG_NETDEVICES=y
599# CONFIG_DUMMY is not set 581# CONFIG_DUMMY is not set
600# CONFIG_BONDING is not set 582# CONFIG_BONDING is not set
583# CONFIG_MACVLAN is not set
601# CONFIG_EQUALIZER is not set 584# CONFIG_EQUALIZER is not set
602# CONFIG_TUN is not set 585# CONFIG_TUN is not set
603 586# CONFIG_VETH is not set
604# 587CONFIG_PHYLIB=y
605# PHY device support
606#
607CONFIG_PHYLIB=m
608 588
609# 589#
610# MII PHY device drivers 590# MII PHY device drivers
611# 591#
612CONFIG_MARVELL_PHY=m 592CONFIG_MARVELL_PHY=y
613CONFIG_DAVICOM_PHY=m 593CONFIG_DAVICOM_PHY=y
614CONFIG_QSEMI_PHY=m 594CONFIG_QSEMI_PHY=y
615CONFIG_LXT_PHY=m 595CONFIG_LXT_PHY=y
616CONFIG_CICADA_PHY=m 596CONFIG_CICADA_PHY=y
617CONFIG_VITESSE_PHY=m 597CONFIG_VITESSE_PHY=y
618CONFIG_SMSC_PHY=m 598CONFIG_SMSC_PHY=y
619# CONFIG_BROADCOM_PHY is not set 599CONFIG_BROADCOM_PHY=y
600CONFIG_ICPLUS_PHY=y
601CONFIG_REALTEK_PHY=y
602CONFIG_NATIONAL_PHY=y
603CONFIG_STE10XP=y
604CONFIG_LSI_ET1011C_PHY=y
620# CONFIG_FIXED_PHY is not set 605# CONFIG_FIXED_PHY is not set
621 606# CONFIG_MDIO_BITBANG is not set
622#
623# Ethernet (10 or 100Mbit)
624#
625CONFIG_NET_ETHERNET=y 607CONFIG_NET_ETHERNET=y
626# CONFIG_MII is not set 608CONFIG_MII=y
627# CONFIG_MIPS_AU1X00_ENET is not set 609# CONFIG_AX88796 is not set
610CONFIG_MIPS_AU1X00_ENET=y
628# CONFIG_SMC91X is not set 611# CONFIG_SMC91X is not set
629# CONFIG_DM9000 is not set 612# CONFIG_DM9000 is not set
630 613# CONFIG_ETHOC is not set
631# 614# CONFIG_SMSC911X is not set
632# Ethernet (1000 Mbit) 615# CONFIG_DNET is not set
633# 616# CONFIG_IBM_NEW_EMAC_ZMII is not set
634 617# CONFIG_IBM_NEW_EMAC_RGMII is not set
635# 618# CONFIG_IBM_NEW_EMAC_TAH is not set
636# Ethernet (10000 Mbit) 619# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
637# 620# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
638 621# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
639# 622# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
640# Token Ring devices 623# CONFIG_B44 is not set
641# 624# CONFIG_KS8842 is not set
642 625# CONFIG_KS8851_MLL is not set
643# 626# CONFIG_NETDEV_1000 is not set
644# Wireless LAN (non-hamradio) 627# CONFIG_NETDEV_10000 is not set
645# 628# CONFIG_WLAN is not set
646# CONFIG_NET_RADIO is not set 629
647 630#
648# 631# Enable WiMAX (Networking options) to see the WiMAX drivers
649# PCMCIA network device support 632#
650# 633
634#
635# USB Network Adapters
636#
637# CONFIG_USB_CATC is not set
638# CONFIG_USB_KAWETH is not set
639# CONFIG_USB_PEGASUS is not set
640# CONFIG_USB_RTL8150 is not set
641# CONFIG_USB_USBNET is not set
651# CONFIG_NET_PCMCIA is not set 642# CONFIG_NET_PCMCIA is not set
652
653#
654# Wan interfaces
655#
656# CONFIG_WAN is not set 643# CONFIG_WAN is not set
657CONFIG_PPP=m 644# CONFIG_PPP is not set
658CONFIG_PPP_MULTILINK=y
659# CONFIG_PPP_FILTER is not set
660CONFIG_PPP_ASYNC=m
661# CONFIG_PPP_SYNC_TTY is not set
662CONFIG_PPP_DEFLATE=m
663# CONFIG_PPP_BSDCOMP is not set
664CONFIG_PPP_MPPE=m
665CONFIG_PPPOE=m
666# CONFIG_SLIP is not set 645# CONFIG_SLIP is not set
667CONFIG_SLHC=m
668# CONFIG_SHAPER is not set
669# CONFIG_NETCONSOLE is not set 646# CONFIG_NETCONSOLE is not set
670# CONFIG_NETPOLL is not set 647# CONFIG_NETPOLL is not set
671# CONFIG_NET_POLL_CONTROLLER is not set 648# CONFIG_NET_POLL_CONTROLLER is not set
672
673#
674# ISDN subsystem
675#
676# CONFIG_ISDN is not set 649# CONFIG_ISDN is not set
677
678#
679# Telephony Support
680#
681# CONFIG_PHONE is not set 650# CONFIG_PHONE is not set
682 651
683# 652#
@@ -685,16 +654,14 @@ CONFIG_SLHC=m
685# 654#
686CONFIG_INPUT=y 655CONFIG_INPUT=y
687# CONFIG_INPUT_FF_MEMLESS is not set 656# CONFIG_INPUT_FF_MEMLESS is not set
657# CONFIG_INPUT_POLLDEV is not set
658# CONFIG_INPUT_SPARSEKMAP is not set
688 659
689# 660#
690# Userland interfaces 661# Userland interfaces
691# 662#
692CONFIG_INPUT_MOUSEDEV=y 663# CONFIG_INPUT_MOUSEDEV is not set
693CONFIG_INPUT_MOUSEDEV_PSAUX=y
694CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
695CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
696# CONFIG_INPUT_JOYDEV is not set 664# CONFIG_INPUT_JOYDEV is not set
697# CONFIG_INPUT_TSDEV is not set
698CONFIG_INPUT_EVDEV=y 665CONFIG_INPUT_EVDEV=y
699# CONFIG_INPUT_EVBUG is not set 666# CONFIG_INPUT_EVBUG is not set
700 667
@@ -704,28 +671,26 @@ CONFIG_INPUT_EVDEV=y
704# CONFIG_INPUT_KEYBOARD is not set 671# CONFIG_INPUT_KEYBOARD is not set
705# CONFIG_INPUT_MOUSE is not set 672# CONFIG_INPUT_MOUSE is not set
706# CONFIG_INPUT_JOYSTICK is not set 673# CONFIG_INPUT_JOYSTICK is not set
674# CONFIG_INPUT_TABLET is not set
707# CONFIG_INPUT_TOUCHSCREEN is not set 675# CONFIG_INPUT_TOUCHSCREEN is not set
708# CONFIG_INPUT_MISC is not set 676# CONFIG_INPUT_MISC is not set
709 677
710# 678#
711# Hardware I/O ports 679# Hardware I/O ports
712# 680#
713CONFIG_SERIO=y 681# CONFIG_SERIO is not set
714# CONFIG_SERIO_I8042 is not set
715CONFIG_SERIO_SERPORT=y
716# CONFIG_SERIO_LIBPS2 is not set
717CONFIG_SERIO_RAW=m
718# CONFIG_GAMEPORT is not set 682# CONFIG_GAMEPORT is not set
719 683
720# 684#
721# Character devices 685# Character devices
722# 686#
723CONFIG_VT=y 687CONFIG_VT=y
688CONFIG_CONSOLE_TRANSLATIONS=y
724CONFIG_VT_CONSOLE=y 689CONFIG_VT_CONSOLE=y
725CONFIG_HW_CONSOLE=y 690CONFIG_HW_CONSOLE=y
726CONFIG_VT_HW_CONSOLE_BINDING=y 691CONFIG_VT_HW_CONSOLE_BINDING=y
692CONFIG_DEVKMEM=y
727# CONFIG_SERIAL_NONSTANDARD is not set 693# CONFIG_SERIAL_NONSTANDARD is not set
728# CONFIG_AU1X00_GPIO is not set
729 694
730# 695#
731# Serial drivers 696# Serial drivers
@@ -744,198 +709,288 @@ CONFIG_SERIAL_8250_AU1X00=y
744CONFIG_SERIAL_CORE=y 709CONFIG_SERIAL_CORE=y
745CONFIG_SERIAL_CORE_CONSOLE=y 710CONFIG_SERIAL_CORE_CONSOLE=y
746CONFIG_UNIX98_PTYS=y 711CONFIG_UNIX98_PTYS=y
747CONFIG_LEGACY_PTYS=y 712# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
748CONFIG_LEGACY_PTY_COUNT=256 713# CONFIG_LEGACY_PTYS is not set
749
750#
751# IPMI
752#
753# CONFIG_IPMI_HANDLER is not set 714# CONFIG_IPMI_HANDLER is not set
754
755#
756# Watchdog Cards
757#
758# CONFIG_WATCHDOG is not set
759# CONFIG_HW_RANDOM is not set 715# CONFIG_HW_RANDOM is not set
760# CONFIG_RTC is not set
761# CONFIG_GEN_RTC is not set
762# CONFIG_DTLK is not set
763# CONFIG_R3964 is not set 716# CONFIG_R3964 is not set
764 717
765# 718#
766# PCMCIA character devices 719# PCMCIA character devices
767# 720#
768CONFIG_SYNCLINK_CS=m 721# CONFIG_SYNCLINK_CS is not set
769# CONFIG_CARDMAN_4000 is not set 722# CONFIG_CARDMAN_4000 is not set
770# CONFIG_CARDMAN_4040 is not set 723# CONFIG_CARDMAN_4040 is not set
724# CONFIG_IPWIRELESS is not set
771# CONFIG_RAW_DRIVER is not set 725# CONFIG_RAW_DRIVER is not set
772
773#
774# TPM devices
775#
776# CONFIG_TCG_TPM is not set 726# CONFIG_TCG_TPM is not set
777
778#
779# I2C support
780#
781# CONFIG_I2C is not set 727# CONFIG_I2C is not set
782
783#
784# SPI support
785#
786# CONFIG_SPI is not set 728# CONFIG_SPI is not set
787# CONFIG_SPI_MASTER is not set
788 729
789# 730#
790# Dallas's 1-wire bus 731# PPS support
791# 732#
733# CONFIG_PPS is not set
734CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
735# CONFIG_GPIOLIB is not set
792# CONFIG_W1 is not set 736# CONFIG_W1 is not set
793 737# CONFIG_POWER_SUPPLY is not set
794#
795# Hardware Monitoring support
796#
797# CONFIG_HWMON is not set 738# CONFIG_HWMON is not set
798# CONFIG_HWMON_VID is not set 739# CONFIG_THERMAL is not set
740# CONFIG_WATCHDOG is not set
741CONFIG_SSB_POSSIBLE=y
799 742
800# 743#
801# Multimedia devices 744# Sonics Silicon Backplane
802# 745#
803# CONFIG_VIDEO_DEV is not set 746# CONFIG_SSB is not set
804 747
805# 748#
806# Digital Video Broadcasting Devices 749# Multifunction device drivers
807# 750#
808# CONFIG_DVB is not set 751# CONFIG_MFD_CORE is not set
752# CONFIG_MFD_SM501 is not set
753# CONFIG_HTC_PASIC3 is not set
754# CONFIG_MFD_TMIO is not set
755# CONFIG_REGULATOR is not set
756# CONFIG_MEDIA_SUPPORT is not set
809 757
810# 758#
811# Graphics support 759# Graphics support
812# 760#
813# CONFIG_FIRMWARE_EDID is not set 761# CONFIG_VGASTATE is not set
762# CONFIG_VIDEO_OUTPUT_CONTROL is not set
814# CONFIG_FB is not set 763# CONFIG_FB is not set
815
816#
817# Console display driver support
818#
819# CONFIG_VGA_CONSOLE is not set
820CONFIG_DUMMY_CONSOLE=y
821# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 764# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
822 765
823# 766#
824# Sound 767# Display device support
825# 768#
826# CONFIG_SOUND is not set 769# CONFIG_DISPLAY_SUPPORT is not set
827 770
828# 771#
829# HID Devices 772# Console display driver support
830#
831# CONFIG_HID is not set
832
833#
834# USB support
835# 773#
774# CONFIG_VGA_CONSOLE is not set
775CONFIG_DUMMY_CONSOLE=y
776# CONFIG_SOUND is not set
777CONFIG_HID_SUPPORT=y
778CONFIG_HID=y
779CONFIG_HIDRAW=y
780
781#
782# USB Input Devices
783#
784CONFIG_USB_HID=y
785# CONFIG_HID_PID is not set
786CONFIG_USB_HIDDEV=y
787
788#
789# Special HID drivers
790#
791# CONFIG_HID_A4TECH is not set
792# CONFIG_HID_APPLE is not set
793# CONFIG_HID_BELKIN is not set
794# CONFIG_HID_CHERRY is not set
795# CONFIG_HID_CHICONY is not set
796# CONFIG_HID_CYPRESS is not set
797# CONFIG_HID_DRAGONRISE is not set
798# CONFIG_HID_EZKEY is not set
799# CONFIG_HID_KYE is not set
800# CONFIG_HID_GYRATION is not set
801# CONFIG_HID_TWINHAN is not set
802# CONFIG_HID_KENSINGTON is not set
803# CONFIG_HID_LOGITECH is not set
804# CONFIG_HID_MICROSOFT is not set
805# CONFIG_HID_MONTEREY is not set
806# CONFIG_HID_NTRIG is not set
807# CONFIG_HID_PANTHERLORD is not set
808# CONFIG_HID_PETALYNX is not set
809# CONFIG_HID_SAMSUNG is not set
810# CONFIG_HID_SONY is not set
811# CONFIG_HID_SUNPLUS is not set
812# CONFIG_HID_GREENASIA is not set
813# CONFIG_HID_SMARTJOYPLUS is not set
814# CONFIG_HID_TOPSEED is not set
815# CONFIG_HID_THRUSTMASTER is not set
816# CONFIG_HID_ZEROPLUS is not set
817CONFIG_USB_SUPPORT=y
836CONFIG_USB_ARCH_HAS_HCD=y 818CONFIG_USB_ARCH_HAS_HCD=y
837CONFIG_USB_ARCH_HAS_OHCI=y 819CONFIG_USB_ARCH_HAS_OHCI=y
838# CONFIG_USB_ARCH_HAS_EHCI is not set 820# CONFIG_USB_ARCH_HAS_EHCI is not set
839# CONFIG_USB is not set 821CONFIG_USB=y
822# CONFIG_USB_DEBUG is not set
823# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
840 824
841# 825#
842# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 826# Miscellaneous USB options
843# 827#
828# CONFIG_USB_DEVICEFS is not set
829# CONFIG_USB_DEVICE_CLASS is not set
830CONFIG_USB_DYNAMIC_MINORS=y
831CONFIG_USB_SUSPEND=y
832# CONFIG_USB_OTG is not set
833# CONFIG_USB_OTG_WHITELIST is not set
834# CONFIG_USB_OTG_BLACKLIST_HUB is not set
835# CONFIG_USB_MON is not set
836# CONFIG_USB_WUSB is not set
837# CONFIG_USB_WUSB_CBAF is not set
844 838
845# 839#
846# USB Gadget Support 840# USB Host Controller Drivers
847# 841#
848# CONFIG_USB_GADGET is not set 842# CONFIG_USB_C67X00_HCD is not set
843# CONFIG_USB_OXU210HP_HCD is not set
844# CONFIG_USB_ISP116X_HCD is not set
845# CONFIG_USB_ISP1760_HCD is not set
846# CONFIG_USB_ISP1362_HCD is not set
847CONFIG_USB_OHCI_HCD=y
848# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
849# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
850CONFIG_USB_OHCI_LITTLE_ENDIAN=y
851# CONFIG_USB_SL811_HCD is not set
852# CONFIG_USB_R8A66597_HCD is not set
853# CONFIG_USB_HWA_HCD is not set
849 854
850# 855#
851# MMC/SD Card support 856# USB Device Class drivers
852# 857#
853# CONFIG_MMC is not set 858# CONFIG_USB_ACM is not set
859# CONFIG_USB_PRINTER is not set
860# CONFIG_USB_WDM is not set
861# CONFIG_USB_TMC is not set
854 862
855# 863#
856# LED devices 864# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
857# 865#
858# CONFIG_NEW_LEDS is not set
859 866
860# 867#
861# LED drivers 868# also be needed; see USB_STORAGE Help for more info
862# 869#
870# CONFIG_USB_LIBUSUAL is not set
863 871
864# 872#
865# LED Triggers 873# USB Imaging devices
866# 874#
875# CONFIG_USB_MDC800 is not set
867 876
868# 877#
869# InfiniBand support 878# USB port drivers
870# 879#
880# CONFIG_USB_SERIAL is not set
871 881
872# 882#
873# EDAC - error detection and reporting (RAS) (EXPERIMENTAL) 883# USB Miscellaneous drivers
874# 884#
885# CONFIG_USB_EMI62 is not set
886# CONFIG_USB_EMI26 is not set
887# CONFIG_USB_ADUTUX is not set
888# CONFIG_USB_SEVSEG is not set
889# CONFIG_USB_RIO500 is not set
890# CONFIG_USB_LEGOTOWER is not set
891# CONFIG_USB_LCD is not set
892# CONFIG_USB_BERRY_CHARGE is not set
893# CONFIG_USB_LED is not set
894# CONFIG_USB_CYPRESS_CY7C63 is not set
895# CONFIG_USB_CYTHERM is not set
896# CONFIG_USB_IDMOUSE is not set
897# CONFIG_USB_FTDI_ELAN is not set
898# CONFIG_USB_APPLEDISPLAY is not set
899# CONFIG_USB_LD is not set
900# CONFIG_USB_TRANCEVIBRATOR is not set
901# CONFIG_USB_IOWARRIOR is not set
902# CONFIG_USB_TEST is not set
903# CONFIG_USB_ISIGHTFW is not set
904# CONFIG_USB_VST is not set
905# CONFIG_USB_GADGET is not set
875 906
876# 907#
877# Real Time Clock 908# OTG and related infrastructure
878# 909#
879# CONFIG_RTC_CLASS is not set 910# CONFIG_USB_GPIO_VBUS is not set
911# CONFIG_NOP_USB_XCEIV is not set
912# CONFIG_MMC is not set
913# CONFIG_MEMSTICK is not set
914# CONFIG_NEW_LEDS is not set
915# CONFIG_ACCESSIBILITY is not set
916CONFIG_RTC_LIB=y
917CONFIG_RTC_CLASS=y
918CONFIG_RTC_HCTOSYS=y
919CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
920# CONFIG_RTC_DEBUG is not set
880 921
881# 922#
882# DMA Engine support 923# RTC interfaces
883# 924#
884# CONFIG_DMA_ENGINE is not set 925CONFIG_RTC_INTF_SYSFS=y
926CONFIG_RTC_INTF_PROC=y
927CONFIG_RTC_INTF_DEV=y
928# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
929# CONFIG_RTC_DRV_TEST is not set
885 930
886# 931#
887# DMA Clients 932# SPI RTC drivers
888# 933#
889 934
890# 935#
891# DMA Devices 936# Platform RTC drivers
892# 937#
938# CONFIG_RTC_DRV_CMOS is not set
939# CONFIG_RTC_DRV_DS1286 is not set
940# CONFIG_RTC_DRV_DS1511 is not set
941# CONFIG_RTC_DRV_DS1553 is not set
942# CONFIG_RTC_DRV_DS1742 is not set
943# CONFIG_RTC_DRV_STK17TA8 is not set
944# CONFIG_RTC_DRV_M48T86 is not set
945# CONFIG_RTC_DRV_M48T35 is not set
946# CONFIG_RTC_DRV_M48T59 is not set
947# CONFIG_RTC_DRV_MSM6242 is not set
948# CONFIG_RTC_DRV_BQ4802 is not set
949# CONFIG_RTC_DRV_RP5C01 is not set
950# CONFIG_RTC_DRV_V3020 is not set
893 951
894# 952#
895# Auxiliary Display support 953# on-CPU RTC drivers
896# 954#
955CONFIG_RTC_DRV_AU1XXX=y
956# CONFIG_DMADEVICES is not set
957# CONFIG_AUXDISPLAY is not set
958# CONFIG_UIO is not set
897 959
898# 960#
899# Virtualization 961# TI VLYNQ
900# 962#
963# CONFIG_STAGING is not set
901 964
902# 965#
903# File systems 966# File systems
904# 967#
905CONFIG_EXT2_FS=y 968CONFIG_EXT2_FS=y
906CONFIG_EXT2_FS_XATTR=y 969# CONFIG_EXT2_FS_XATTR is not set
907CONFIG_EXT2_FS_POSIX_ACL=y
908# CONFIG_EXT2_FS_SECURITY is not set
909# CONFIG_EXT2_FS_XIP is not set 970# CONFIG_EXT2_FS_XIP is not set
910CONFIG_EXT3_FS=y 971# CONFIG_EXT3_FS is not set
911CONFIG_EXT3_FS_XATTR=y 972# CONFIG_EXT4_FS is not set
912CONFIG_EXT3_FS_POSIX_ACL=y 973# CONFIG_REISERFS_FS is not set
913CONFIG_EXT3_FS_SECURITY=y
914# CONFIG_EXT4DEV_FS is not set
915CONFIG_JBD=y
916# CONFIG_JBD_DEBUG is not set
917CONFIG_FS_MBCACHE=y
918CONFIG_REISERFS_FS=m
919# CONFIG_REISERFS_CHECK is not set
920# CONFIG_REISERFS_PROC_INFO is not set
921CONFIG_REISERFS_FS_XATTR=y
922CONFIG_REISERFS_FS_POSIX_ACL=y
923CONFIG_REISERFS_FS_SECURITY=y
924# CONFIG_JFS_FS is not set 974# CONFIG_JFS_FS is not set
925CONFIG_FS_POSIX_ACL=y 975# CONFIG_FS_POSIX_ACL is not set
926# CONFIG_XFS_FS is not set 976# CONFIG_XFS_FS is not set
927# CONFIG_GFS2_FS is not set
928# CONFIG_OCFS2_FS is not set 977# CONFIG_OCFS2_FS is not set
929# CONFIG_MINIX_FS is not set 978# CONFIG_BTRFS_FS is not set
930# CONFIG_ROMFS_FS is not set 979# CONFIG_NILFS2_FS is not set
980CONFIG_FILE_LOCKING=y
981CONFIG_FSNOTIFY=y
982CONFIG_DNOTIFY=y
931CONFIG_INOTIFY=y 983CONFIG_INOTIFY=y
932CONFIG_INOTIFY_USER=y 984CONFIG_INOTIFY_USER=y
933# CONFIG_QUOTA is not set 985# CONFIG_QUOTA is not set
934CONFIG_DNOTIFY=y 986# CONFIG_AUTOFS_FS is not set
935CONFIG_AUTOFS_FS=m 987# CONFIG_AUTOFS4_FS is not set
936CONFIG_AUTOFS4_FS=m 988# CONFIG_FUSE_FS is not set
937CONFIG_FUSE_FS=m 989
938CONFIG_GENERIC_ACL=y 990#
991# Caches
992#
993# CONFIG_FSCACHE is not set
939 994
940# 995#
941# CD-ROM/DVD Filesystems 996# CD-ROM/DVD Filesystems
@@ -954,69 +1009,76 @@ CONFIG_GENERIC_ACL=y
954# Pseudo filesystems 1009# Pseudo filesystems
955# 1010#
956CONFIG_PROC_FS=y 1011CONFIG_PROC_FS=y
957CONFIG_PROC_KCORE=y 1012# CONFIG_PROC_KCORE is not set
958CONFIG_PROC_SYSCTL=y 1013CONFIG_PROC_SYSCTL=y
1014# CONFIG_PROC_PAGE_MONITOR is not set
959CONFIG_SYSFS=y 1015CONFIG_SYSFS=y
960CONFIG_TMPFS=y 1016CONFIG_TMPFS=y
961CONFIG_TMPFS_POSIX_ACL=y 1017# CONFIG_TMPFS_POSIX_ACL is not set
962# CONFIG_HUGETLB_PAGE is not set 1018# CONFIG_HUGETLB_PAGE is not set
963CONFIG_RAMFS=y 1019# CONFIG_CONFIGFS_FS is not set
964CONFIG_CONFIGFS_FS=m 1020CONFIG_MISC_FILESYSTEMS=y
965
966#
967# Miscellaneous filesystems
968#
969# CONFIG_ADFS_FS is not set 1021# CONFIG_ADFS_FS is not set
970# CONFIG_AFFS_FS is not set 1022# CONFIG_AFFS_FS is not set
971# CONFIG_ECRYPT_FS is not set
972# CONFIG_HFS_FS is not set 1023# CONFIG_HFS_FS is not set
973# CONFIG_HFSPLUS_FS is not set 1024# CONFIG_HFSPLUS_FS is not set
974# CONFIG_BEFS_FS is not set 1025# CONFIG_BEFS_FS is not set
975# CONFIG_BFS_FS is not set 1026# CONFIG_BFS_FS is not set
976# CONFIG_EFS_FS is not set 1027# CONFIG_EFS_FS is not set
977# CONFIG_JFFS2_FS is not set 1028CONFIG_JFFS2_FS=y
978CONFIG_CRAMFS=m 1029CONFIG_JFFS2_FS_DEBUG=0
1030CONFIG_JFFS2_FS_WRITEBUFFER=y
1031# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
1032CONFIG_JFFS2_SUMMARY=y
1033CONFIG_JFFS2_FS_XATTR=y
1034# CONFIG_JFFS2_FS_POSIX_ACL is not set
1035# CONFIG_JFFS2_FS_SECURITY is not set
1036CONFIG_JFFS2_COMPRESSION_OPTIONS=y
1037CONFIG_JFFS2_ZLIB=y
1038CONFIG_JFFS2_LZO=y
1039CONFIG_JFFS2_RTIME=y
1040CONFIG_JFFS2_RUBIN=y
1041# CONFIG_JFFS2_CMODE_NONE is not set
1042CONFIG_JFFS2_CMODE_PRIORITY=y
1043# CONFIG_JFFS2_CMODE_SIZE is not set
1044# CONFIG_JFFS2_CMODE_FAVOURLZO is not set
1045# CONFIG_CRAMFS is not set
1046CONFIG_SQUASHFS=y
1047# CONFIG_SQUASHFS_EMBEDDED is not set
1048CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
979# CONFIG_VXFS_FS is not set 1049# CONFIG_VXFS_FS is not set
1050# CONFIG_MINIX_FS is not set
1051# CONFIG_OMFS_FS is not set
980# CONFIG_HPFS_FS is not set 1052# CONFIG_HPFS_FS is not set
981# CONFIG_QNX4FS_FS is not set 1053# CONFIG_QNX4FS_FS is not set
1054# CONFIG_ROMFS_FS is not set
982# CONFIG_SYSV_FS is not set 1055# CONFIG_SYSV_FS is not set
983# CONFIG_UFS_FS is not set 1056# CONFIG_UFS_FS is not set
984 1057CONFIG_NETWORK_FILESYSTEMS=y
985#
986# Network File Systems
987#
988CONFIG_NFS_FS=y 1058CONFIG_NFS_FS=y
989# CONFIG_NFS_V3 is not set 1059CONFIG_NFS_V3=y
1060# CONFIG_NFS_V3_ACL is not set
990# CONFIG_NFS_V4 is not set 1061# CONFIG_NFS_V4 is not set
991# CONFIG_NFS_DIRECTIO is not set
992CONFIG_NFSD=m
993# CONFIG_NFSD_V3 is not set
994# CONFIG_NFSD_TCP is not set
995CONFIG_ROOT_NFS=y 1062CONFIG_ROOT_NFS=y
1063# CONFIG_NFSD is not set
996CONFIG_LOCKD=y 1064CONFIG_LOCKD=y
997CONFIG_EXPORTFS=m 1065CONFIG_LOCKD_V4=y
998CONFIG_NFS_COMMON=y 1066CONFIG_NFS_COMMON=y
999CONFIG_SUNRPC=y 1067CONFIG_SUNRPC=y
1000# CONFIG_RPCSEC_GSS_KRB5 is not set 1068# CONFIG_RPCSEC_GSS_KRB5 is not set
1001# CONFIG_RPCSEC_GSS_SPKM3 is not set 1069# CONFIG_RPCSEC_GSS_SPKM3 is not set
1002CONFIG_SMB_FS=m 1070# CONFIG_SMB_FS is not set
1003# CONFIG_SMB_NLS_DEFAULT is not set
1004# CONFIG_CIFS is not set 1071# CONFIG_CIFS is not set
1005# CONFIG_NCP_FS is not set 1072# CONFIG_NCP_FS is not set
1006# CONFIG_CODA_FS is not set 1073# CONFIG_CODA_FS is not set
1007# CONFIG_AFS_FS is not set 1074# CONFIG_AFS_FS is not set
1008# CONFIG_9P_FS is not set
1009 1075
1010# 1076#
1011# Partition Types 1077# Partition Types
1012# 1078#
1013# CONFIG_PARTITION_ADVANCED is not set 1079# CONFIG_PARTITION_ADVANCED is not set
1014CONFIG_MSDOS_PARTITION=y 1080CONFIG_MSDOS_PARTITION=y
1015 1081CONFIG_NLS=y
1016#
1017# Native Language Support
1018#
1019CONFIG_NLS=m
1020CONFIG_NLS_DEFAULT="iso8859-1" 1082CONFIG_NLS_DEFAULT="iso8859-1"
1021# CONFIG_NLS_CODEPAGE_437 is not set 1083# CONFIG_NLS_CODEPAGE_437 is not set
1022# CONFIG_NLS_CODEPAGE_737 is not set 1084# CONFIG_NLS_CODEPAGE_737 is not set
@@ -1056,34 +1118,71 @@ CONFIG_NLS_DEFAULT="iso8859-1"
1056# CONFIG_NLS_KOI8_R is not set 1118# CONFIG_NLS_KOI8_R is not set
1057# CONFIG_NLS_KOI8_U is not set 1119# CONFIG_NLS_KOI8_U is not set
1058# CONFIG_NLS_UTF8 is not set 1120# CONFIG_NLS_UTF8 is not set
1059 1121# CONFIG_DLM is not set
1060#
1061# Distributed Lock Manager
1062#
1063CONFIG_DLM=m
1064CONFIG_DLM_TCP=y
1065# CONFIG_DLM_SCTP is not set
1066# CONFIG_DLM_DEBUG is not set
1067
1068#
1069# Profiling support
1070#
1071# CONFIG_PROFILING is not set
1072 1122
1073# 1123#
1074# Kernel hacking 1124# Kernel hacking
1075# 1125#
1076CONFIG_TRACE_IRQFLAGS_SUPPORT=y 1126CONFIG_TRACE_IRQFLAGS_SUPPORT=y
1077# CONFIG_PRINTK_TIME is not set 1127# CONFIG_PRINTK_TIME is not set
1128CONFIG_ENABLE_WARN_DEPRECATED=y
1078CONFIG_ENABLE_MUST_CHECK=y 1129CONFIG_ENABLE_MUST_CHECK=y
1130CONFIG_FRAME_WARN=1024
1079# CONFIG_MAGIC_SYSRQ is not set 1131# CONFIG_MAGIC_SYSRQ is not set
1132CONFIG_STRIP_ASM_SYMS=y
1080# CONFIG_UNUSED_SYMBOLS is not set 1133# CONFIG_UNUSED_SYMBOLS is not set
1081# CONFIG_DEBUG_FS is not set 1134# CONFIG_DEBUG_FS is not set
1082# CONFIG_HEADERS_CHECK is not set 1135# CONFIG_HEADERS_CHECK is not set
1083# CONFIG_DEBUG_KERNEL is not set 1136CONFIG_DEBUG_KERNEL=y
1084CONFIG_LOG_BUF_SHIFT=14 1137# CONFIG_DEBUG_SHIRQ is not set
1085CONFIG_CROSSCOMPILE=y 1138# CONFIG_DETECT_SOFTLOCKUP is not set
1086CONFIG_CMDLINE="" 1139# CONFIG_DETECT_HUNG_TASK is not set
1140# CONFIG_SCHED_DEBUG is not set
1141# CONFIG_SCHEDSTATS is not set
1142# CONFIG_TIMER_STATS is not set
1143# CONFIG_DEBUG_OBJECTS is not set
1144# CONFIG_DEBUG_SLAB is not set
1145# CONFIG_DEBUG_RT_MUTEXES is not set
1146# CONFIG_RT_MUTEX_TESTER is not set
1147# CONFIG_DEBUG_SPINLOCK is not set
1148# CONFIG_DEBUG_MUTEXES is not set
1149# CONFIG_DEBUG_LOCK_ALLOC is not set
1150# CONFIG_PROVE_LOCKING is not set
1151# CONFIG_LOCK_STAT is not set
1152# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1153# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1154# CONFIG_DEBUG_KOBJECT is not set
1155# CONFIG_DEBUG_INFO is not set
1156# CONFIG_DEBUG_VM is not set
1157# CONFIG_DEBUG_WRITECOUNT is not set
1158# CONFIG_DEBUG_MEMORY_INIT is not set
1159# CONFIG_DEBUG_LIST is not set
1160# CONFIG_DEBUG_SG is not set
1161# CONFIG_DEBUG_NOTIFIERS is not set
1162# CONFIG_DEBUG_CREDENTIALS is not set
1163# CONFIG_BOOT_PRINTK_DELAY is not set
1164# CONFIG_RCU_TORTURE_TEST is not set
1165# CONFIG_BACKTRACE_SELF_TEST is not set
1166# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1167# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
1168# CONFIG_FAULT_INJECTION is not set
1169# CONFIG_SYSCTL_SYSCALL_CHECK is not set
1170# CONFIG_PAGE_POISONING is not set
1171CONFIG_HAVE_FUNCTION_TRACER=y
1172CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1173CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y
1174CONFIG_HAVE_DYNAMIC_FTRACE=y
1175CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1176CONFIG_TRACING_SUPPORT=y
1177# CONFIG_FTRACE is not set
1178# CONFIG_SAMPLES is not set
1179CONFIG_HAVE_ARCH_KGDB=y
1180# CONFIG_KGDB is not set
1181CONFIG_EARLY_PRINTK=y
1182# CONFIG_CMDLINE_BOOL is not set
1183# CONFIG_DEBUG_STACK_USAGE is not set
1184# CONFIG_RUNTIME_DEBUG is not set
1185CONFIG_DEBUG_ZBOOT=y
1087 1186
1088# 1187#
1089# Security options 1188# Security options
@@ -1091,67 +1190,32 @@ CONFIG_CMDLINE=""
1091CONFIG_KEYS=y 1190CONFIG_KEYS=y
1092CONFIG_KEYS_DEBUG_PROC_KEYS=y 1191CONFIG_KEYS_DEBUG_PROC_KEYS=y
1093# CONFIG_SECURITY is not set 1192# CONFIG_SECURITY is not set
1094 1193CONFIG_SECURITYFS=y
1095# 1194# CONFIG_DEFAULT_SECURITY_SELINUX is not set
1096# Cryptographic options 1195# CONFIG_DEFAULT_SECURITY_SMACK is not set
1097# 1196# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
1098CONFIG_CRYPTO=y 1197CONFIG_DEFAULT_SECURITY_DAC=y
1099CONFIG_CRYPTO_ALGAPI=y 1198CONFIG_DEFAULT_SECURITY=""
1100CONFIG_CRYPTO_BLKCIPHER=m 1199# CONFIG_CRYPTO is not set
1101CONFIG_CRYPTO_HASH=y 1200# CONFIG_BINARY_PRINTF is not set
1102CONFIG_CRYPTO_MANAGER=y
1103CONFIG_CRYPTO_HMAC=y
1104CONFIG_CRYPTO_XCBC=m
1105CONFIG_CRYPTO_NULL=m
1106CONFIG_CRYPTO_MD4=m
1107CONFIG_CRYPTO_MD5=y
1108CONFIG_CRYPTO_SHA1=m
1109CONFIG_CRYPTO_SHA256=m
1110CONFIG_CRYPTO_SHA512=m
1111CONFIG_CRYPTO_WP512=m
1112CONFIG_CRYPTO_TGR192=m
1113CONFIG_CRYPTO_GF128MUL=m
1114CONFIG_CRYPTO_ECB=m
1115CONFIG_CRYPTO_CBC=m
1116CONFIG_CRYPTO_PCBC=m
1117CONFIG_CRYPTO_LRW=m
1118CONFIG_CRYPTO_DES=m
1119CONFIG_CRYPTO_FCRYPT=m
1120CONFIG_CRYPTO_BLOWFISH=m
1121CONFIG_CRYPTO_TWOFISH=m
1122CONFIG_CRYPTO_TWOFISH_COMMON=m
1123CONFIG_CRYPTO_SERPENT=m
1124CONFIG_CRYPTO_AES=m
1125CONFIG_CRYPTO_CAST5=m
1126CONFIG_CRYPTO_CAST6=m
1127CONFIG_CRYPTO_TEA=m
1128CONFIG_CRYPTO_ARC4=m
1129CONFIG_CRYPTO_KHAZAD=m
1130CONFIG_CRYPTO_ANUBIS=m
1131CONFIG_CRYPTO_DEFLATE=m
1132CONFIG_CRYPTO_MICHAEL_MIC=m
1133CONFIG_CRYPTO_CRC32C=m
1134CONFIG_CRYPTO_CAMELLIA=m
1135# CONFIG_CRYPTO_TEST is not set
1136
1137#
1138# Hardware crypto devices
1139#
1140 1201
1141# 1202#
1142# Library routines 1203# Library routines
1143# 1204#
1144CONFIG_BITREVERSE=y 1205CONFIG_BITREVERSE=y
1145CONFIG_CRC_CCITT=m 1206CONFIG_GENERIC_FIND_LAST_BIT=y
1146CONFIG_CRC16=m 1207# CONFIG_CRC_CCITT is not set
1208# CONFIG_CRC16 is not set
1209# CONFIG_CRC_T10DIF is not set
1210# CONFIG_CRC_ITU_T is not set
1147CONFIG_CRC32=y 1211CONFIG_CRC32=y
1148CONFIG_LIBCRC32C=m 1212# CONFIG_CRC7 is not set
1149CONFIG_ZLIB_INFLATE=m 1213# CONFIG_LIBCRC32C is not set
1150CONFIG_ZLIB_DEFLATE=m 1214CONFIG_ZLIB_INFLATE=y
1151CONFIG_TEXTSEARCH=y 1215CONFIG_ZLIB_DEFLATE=y
1152CONFIG_TEXTSEARCH_KMP=m 1216CONFIG_LZO_COMPRESS=y
1153CONFIG_TEXTSEARCH_BM=m 1217CONFIG_LZO_DECOMPRESS=y
1154CONFIG_TEXTSEARCH_FSM=m
1155CONFIG_PLIST=y
1156CONFIG_HAS_IOMEM=y 1218CONFIG_HAS_IOMEM=y
1157CONFIG_HAS_IOPORT=y 1219CONFIG_HAS_IOPORT=y
1220CONFIG_HAS_DMA=y
1221CONFIG_NLATTR=y
diff --git a/arch/mips/configs/pb1200_defconfig b/arch/mips/configs/pb1200_defconfig
new file mode 100644
index 000000000000..e9ad77320f16
--- /dev/null
+++ b/arch/mips/configs/pb1200_defconfig
@@ -0,0 +1,1568 @@
1#
2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.33
4# Fri Feb 26 10:23:34 2010
5#
6CONFIG_MIPS=y
7
8#
9# Machine selection
10#
11CONFIG_MACH_ALCHEMY=y
12# CONFIG_AR7 is not set
13# CONFIG_BCM47XX is not set
14# CONFIG_BCM63XX is not set
15# CONFIG_MIPS_COBALT is not set
16# CONFIG_MACH_DECSTATION is not set
17# CONFIG_MACH_JAZZ is not set
18# CONFIG_LASAT is not set
19# CONFIG_MACH_LOONGSON is not set
20# CONFIG_MIPS_MALTA is not set
21# CONFIG_MIPS_SIM is not set
22# CONFIG_NEC_MARKEINS is not set
23# CONFIG_MACH_VR41XX is not set
24# CONFIG_NXP_STB220 is not set
25# CONFIG_NXP_STB225 is not set
26# CONFIG_PNX8550_JBS is not set
27# CONFIG_PNX8550_STB810 is not set
28# CONFIG_PMC_MSP is not set
29# CONFIG_PMC_YOSEMITE is not set
30# CONFIG_POWERTV is not set
31# CONFIG_SGI_IP22 is not set
32# CONFIG_SGI_IP27 is not set
33# CONFIG_SGI_IP28 is not set
34# CONFIG_SGI_IP32 is not set
35# CONFIG_SIBYTE_CRHINE is not set
36# CONFIG_SIBYTE_CARMEL is not set
37# CONFIG_SIBYTE_CRHONE is not set
38# CONFIG_SIBYTE_RHONE is not set
39# CONFIG_SIBYTE_SWARM is not set
40# CONFIG_SIBYTE_LITTLESUR is not set
41# CONFIG_SIBYTE_SENTOSA is not set
42# CONFIG_SIBYTE_BIGSUR is not set
43# CONFIG_SNI_RM is not set
44# CONFIG_MACH_TX39XX is not set
45# CONFIG_MACH_TX49XX is not set
46# CONFIG_MIKROTIK_RB532 is not set
47# CONFIG_WR_PPMC is not set
48# CONFIG_CAVIUM_OCTEON_SIMULATOR is not set
49# CONFIG_CAVIUM_OCTEON_REFERENCE_BOARD is not set
50CONFIG_ALCHEMY_GPIOINT_AU1000=y
51# CONFIG_ALCHEMY_GPIO_INDIRECT is not set
52# CONFIG_MIPS_MTX1 is not set
53# CONFIG_MIPS_BOSPORUS is not set
54# CONFIG_MIPS_DB1000 is not set
55# CONFIG_MIPS_DB1100 is not set
56# CONFIG_MIPS_DB1200 is not set
57# CONFIG_MIPS_DB1500 is not set
58# CONFIG_MIPS_DB1550 is not set
59# CONFIG_MIPS_MIRAGE is not set
60# CONFIG_MIPS_PB1000 is not set
61# CONFIG_MIPS_PB1100 is not set
62CONFIG_MIPS_PB1200=y
63# CONFIG_MIPS_PB1500 is not set
64# CONFIG_MIPS_PB1550 is not set
65# CONFIG_MIPS_XXS1500 is not set
66CONFIG_SOC_AU1200=y
67CONFIG_SOC_AU1X00=y
68CONFIG_LOONGSON_UART_BASE=y
69CONFIG_RWSEM_GENERIC_SPINLOCK=y
70# CONFIG_ARCH_HAS_ILOG2_U32 is not set
71# CONFIG_ARCH_HAS_ILOG2_U64 is not set
72CONFIG_ARCH_SUPPORTS_OPROFILE=y
73CONFIG_GENERIC_FIND_NEXT_BIT=y
74CONFIG_GENERIC_HWEIGHT=y
75CONFIG_GENERIC_CALIBRATE_DELAY=y
76CONFIG_GENERIC_CLOCKEVENTS=y
77CONFIG_GENERIC_TIME=y
78CONFIG_GENERIC_CMOS_UPDATE=y
79CONFIG_SCHED_OMIT_FRAME_POINTER=y
80CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
81CONFIG_CEVT_R4K_LIB=y
82CONFIG_CSRC_R4K_LIB=y
83CONFIG_DMA_NONCOHERENT=y
84CONFIG_DMA_NEED_PCI_MAP_STATE=y
85CONFIG_SYS_HAS_EARLY_PRINTK=y
86CONFIG_MIPS_DISABLE_OBSOLETE_IDE=y
87# CONFIG_NO_IOPORT is not set
88CONFIG_GENERIC_GPIO=y
89# CONFIG_CPU_BIG_ENDIAN is not set
90CONFIG_CPU_LITTLE_ENDIAN=y
91CONFIG_SYS_SUPPORTS_APM_EMULATION=y
92CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y
93CONFIG_IRQ_CPU=y
94CONFIG_MIPS_L1_CACHE_SHIFT=5
95
96#
97# CPU selection
98#
99# CONFIG_CPU_LOONGSON2E is not set
100# CONFIG_CPU_LOONGSON2F is not set
101CONFIG_CPU_MIPS32_R1=y
102# CONFIG_CPU_MIPS32_R2 is not set
103# CONFIG_CPU_MIPS64_R1 is not set
104# CONFIG_CPU_MIPS64_R2 is not set
105# CONFIG_CPU_R3000 is not set
106# CONFIG_CPU_TX39XX is not set
107# CONFIG_CPU_VR41XX is not set
108# CONFIG_CPU_R4300 is not set
109# CONFIG_CPU_R4X00 is not set
110# CONFIG_CPU_TX49XX is not set
111# CONFIG_CPU_R5000 is not set
112# CONFIG_CPU_R5432 is not set
113# CONFIG_CPU_R5500 is not set
114# CONFIG_CPU_R6000 is not set
115# CONFIG_CPU_NEVADA is not set
116# CONFIG_CPU_R8000 is not set
117# CONFIG_CPU_R10000 is not set
118# CONFIG_CPU_RM7000 is not set
119# CONFIG_CPU_RM9000 is not set
120# CONFIG_CPU_SB1 is not set
121# CONFIG_CPU_CAVIUM_OCTEON is not set
122CONFIG_SYS_SUPPORTS_ZBOOT=y
123CONFIG_SYS_HAS_CPU_MIPS32_R1=y
124CONFIG_CPU_MIPS32=y
125CONFIG_CPU_MIPSR1=y
126CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y
127CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y
128CONFIG_HARDWARE_WATCHPOINTS=y
129
130#
131# Kernel type
132#
133CONFIG_32BIT=y
134# CONFIG_64BIT is not set
135CONFIG_PAGE_SIZE_4KB=y
136# CONFIG_PAGE_SIZE_8KB is not set
137# CONFIG_PAGE_SIZE_16KB is not set
138# CONFIG_PAGE_SIZE_32KB is not set
139# CONFIG_PAGE_SIZE_64KB is not set
140CONFIG_CPU_HAS_PREFETCH=y
141CONFIG_MIPS_MT_DISABLED=y
142# CONFIG_MIPS_MT_SMP is not set
143# CONFIG_MIPS_MT_SMTC is not set
144CONFIG_64BIT_PHYS_ADDR=y
145CONFIG_ARCH_PHYS_ADDR_T_64BIT=y
146CONFIG_CPU_HAS_SYNC=y
147CONFIG_GENERIC_HARDIRQS=y
148CONFIG_GENERIC_IRQ_PROBE=y
149CONFIG_CPU_SUPPORTS_HIGHMEM=y
150CONFIG_ARCH_FLATMEM_ENABLE=y
151CONFIG_ARCH_POPULATES_NODE_MAP=y
152CONFIG_SELECT_MEMORY_MODEL=y
153CONFIG_FLATMEM_MANUAL=y
154# CONFIG_DISCONTIGMEM_MANUAL is not set
155# CONFIG_SPARSEMEM_MANUAL is not set
156CONFIG_FLATMEM=y
157CONFIG_FLAT_NODE_MEM_MAP=y
158CONFIG_PAGEFLAGS_EXTENDED=y
159CONFIG_SPLIT_PTLOCK_CPUS=4
160CONFIG_PHYS_ADDR_T_64BIT=y
161CONFIG_ZONE_DMA_FLAG=0
162CONFIG_VIRT_TO_BUS=y
163CONFIG_KSM=y
164CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
165CONFIG_TICK_ONESHOT=y
166CONFIG_NO_HZ=y
167CONFIG_HIGH_RES_TIMERS=y
168CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
169# CONFIG_HZ_48 is not set
170CONFIG_HZ_100=y
171# CONFIG_HZ_128 is not set
172# CONFIG_HZ_250 is not set
173# CONFIG_HZ_256 is not set
174# CONFIG_HZ_1000 is not set
175# CONFIG_HZ_1024 is not set
176CONFIG_SYS_SUPPORTS_ARBIT_HZ=y
177CONFIG_HZ=100
178CONFIG_PREEMPT_NONE=y
179# CONFIG_PREEMPT_VOLUNTARY is not set
180# CONFIG_PREEMPT is not set
181# CONFIG_KEXEC is not set
182# CONFIG_SECCOMP is not set
183CONFIG_LOCKDEP_SUPPORT=y
184CONFIG_STACKTRACE_SUPPORT=y
185CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
186CONFIG_CONSTRUCTORS=y
187
188#
189# General setup
190#
191CONFIG_EXPERIMENTAL=y
192CONFIG_BROKEN_ON_SMP=y
193CONFIG_INIT_ENV_ARG_LIMIT=32
194CONFIG_LOCALVERSION="-pb1200"
195CONFIG_LOCALVERSION_AUTO=y
196CONFIG_HAVE_KERNEL_GZIP=y
197CONFIG_HAVE_KERNEL_BZIP2=y
198CONFIG_HAVE_KERNEL_LZMA=y
199CONFIG_HAVE_KERNEL_LZO=y
200# CONFIG_KERNEL_GZIP is not set
201# CONFIG_KERNEL_BZIP2 is not set
202CONFIG_KERNEL_LZMA=y
203# CONFIG_KERNEL_LZO is not set
204CONFIG_SWAP=y
205CONFIG_SYSVIPC=y
206CONFIG_SYSVIPC_SYSCTL=y
207CONFIG_POSIX_MQUEUE=y
208CONFIG_POSIX_MQUEUE_SYSCTL=y
209# CONFIG_BSD_PROCESS_ACCT is not set
210# CONFIG_TASKSTATS is not set
211# CONFIG_AUDIT is not set
212
213#
214# RCU Subsystem
215#
216# CONFIG_TREE_RCU is not set
217# CONFIG_TREE_PREEMPT_RCU is not set
218CONFIG_TINY_RCU=y
219# CONFIG_TREE_RCU_TRACE is not set
220# CONFIG_IKCONFIG is not set
221CONFIG_LOG_BUF_SHIFT=14
222# CONFIG_GROUP_SCHED is not set
223# CONFIG_CGROUPS is not set
224# CONFIG_SYSFS_DEPRECATED_V2 is not set
225# CONFIG_RELAY is not set
226# CONFIG_NAMESPACES is not set
227# CONFIG_BLK_DEV_INITRD is not set
228CONFIG_CC_OPTIMIZE_FOR_SIZE=y
229CONFIG_SYSCTL=y
230CONFIG_ANON_INODES=y
231CONFIG_EMBEDDED=y
232# CONFIG_SYSCTL_SYSCALL is not set
233# CONFIG_KALLSYMS is not set
234CONFIG_HOTPLUG=y
235CONFIG_PRINTK=y
236CONFIG_BUG=y
237CONFIG_ELF_CORE=y
238# CONFIG_PCSPKR_PLATFORM is not set
239CONFIG_BASE_FULL=y
240CONFIG_FUTEX=y
241CONFIG_EPOLL=y
242CONFIG_SIGNALFD=y
243CONFIG_TIMERFD=y
244CONFIG_EVENTFD=y
245CONFIG_SHMEM=y
246CONFIG_AIO=y
247
248#
249# Kernel Performance Events And Counters
250#
251# CONFIG_VM_EVENT_COUNTERS is not set
252# CONFIG_COMPAT_BRK is not set
253CONFIG_SLAB=y
254# CONFIG_SLUB is not set
255# CONFIG_SLOB is not set
256# CONFIG_PROFILING is not set
257CONFIG_HAVE_OPROFILE=y
258
259#
260# GCOV-based kernel profiling
261#
262# CONFIG_SLOW_WORK is not set
263CONFIG_HAVE_GENERIC_DMA_COHERENT=y
264CONFIG_SLABINFO=y
265CONFIG_RT_MUTEXES=y
266CONFIG_BASE_SMALL=0
267CONFIG_MODULES=y
268# CONFIG_MODULE_FORCE_LOAD is not set
269CONFIG_MODULE_UNLOAD=y
270# CONFIG_MODULE_FORCE_UNLOAD is not set
271# CONFIG_MODVERSIONS is not set
272# CONFIG_MODULE_SRCVERSION_ALL is not set
273CONFIG_BLOCK=y
274# CONFIG_LBDAF is not set
275# CONFIG_BLK_DEV_BSG is not set
276# CONFIG_BLK_DEV_INTEGRITY is not set
277
278#
279# IO Schedulers
280#
281CONFIG_IOSCHED_NOOP=y
282# CONFIG_IOSCHED_DEADLINE is not set
283# CONFIG_IOSCHED_CFQ is not set
284# CONFIG_DEFAULT_DEADLINE is not set
285# CONFIG_DEFAULT_CFQ is not set
286CONFIG_DEFAULT_NOOP=y
287CONFIG_DEFAULT_IOSCHED="noop"
288# CONFIG_INLINE_SPIN_TRYLOCK is not set
289# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
290# CONFIG_INLINE_SPIN_LOCK is not set
291# CONFIG_INLINE_SPIN_LOCK_BH is not set
292# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
293# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
294CONFIG_INLINE_SPIN_UNLOCK=y
295# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
296CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
297# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
298# CONFIG_INLINE_READ_TRYLOCK is not set
299# CONFIG_INLINE_READ_LOCK is not set
300# CONFIG_INLINE_READ_LOCK_BH is not set
301# CONFIG_INLINE_READ_LOCK_IRQ is not set
302# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
303CONFIG_INLINE_READ_UNLOCK=y
304# CONFIG_INLINE_READ_UNLOCK_BH is not set
305CONFIG_INLINE_READ_UNLOCK_IRQ=y
306# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
307# CONFIG_INLINE_WRITE_TRYLOCK is not set
308# CONFIG_INLINE_WRITE_LOCK is not set
309# CONFIG_INLINE_WRITE_LOCK_BH is not set
310# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
311# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
312CONFIG_INLINE_WRITE_UNLOCK=y
313# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
314CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
315# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
316# CONFIG_MUTEX_SPIN_ON_OWNER is not set
317# CONFIG_FREEZER is not set
318
319#
320# Bus options (PCI, PCMCIA, EISA, ISA, TC)
321#
322# CONFIG_ARCH_SUPPORTS_MSI is not set
323CONFIG_MMU=y
324CONFIG_PCCARD=y
325CONFIG_PCMCIA=y
326CONFIG_PCMCIA_LOAD_CIS=y
327# CONFIG_PCMCIA_IOCTL is not set
328
329#
330# PC-card bridges
331#
332# CONFIG_PCMCIA_AU1X00 is not set
333CONFIG_PCMCIA_ALCHEMY_DEVBOARD=y
334
335#
336# Executable file formats
337#
338CONFIG_BINFMT_ELF=y
339CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y
340# CONFIG_HAVE_AOUT is not set
341CONFIG_BINFMT_MISC=y
342CONFIG_TRAD_SIGNALS=y
343
344#
345# Power management options
346#
347CONFIG_ARCH_HIBERNATION_POSSIBLE=y
348CONFIG_ARCH_SUSPEND_POSSIBLE=y
349# CONFIG_PM is not set
350CONFIG_NET=y
351
352#
353# Networking options
354#
355CONFIG_PACKET=y
356CONFIG_PACKET_MMAP=y
357CONFIG_UNIX=y
358# CONFIG_NET_KEY is not set
359CONFIG_INET=y
360CONFIG_IP_MULTICAST=y
361# CONFIG_IP_ADVANCED_ROUTER is not set
362CONFIG_IP_FIB_HASH=y
363CONFIG_IP_PNP=y
364# CONFIG_IP_PNP_DHCP is not set
365# CONFIG_IP_PNP_BOOTP is not set
366# CONFIG_IP_PNP_RARP is not set
367# CONFIG_NET_IPIP is not set
368# CONFIG_NET_IPGRE is not set
369# CONFIG_IP_MROUTE is not set
370# CONFIG_ARPD is not set
371# CONFIG_SYN_COOKIES is not set
372# CONFIG_INET_AH is not set
373# CONFIG_INET_ESP is not set
374# CONFIG_INET_IPCOMP is not set
375# CONFIG_INET_XFRM_TUNNEL is not set
376# CONFIG_INET_TUNNEL is not set
377# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
378# CONFIG_INET_XFRM_MODE_TUNNEL is not set
379# CONFIG_INET_XFRM_MODE_BEET is not set
380CONFIG_INET_LRO=y
381# CONFIG_INET_DIAG is not set
382# CONFIG_TCP_CONG_ADVANCED is not set
383CONFIG_TCP_CONG_CUBIC=y
384CONFIG_DEFAULT_TCP_CONG="cubic"
385# CONFIG_TCP_MD5SIG is not set
386# CONFIG_IPV6 is not set
387# CONFIG_NETWORK_SECMARK is not set
388# CONFIG_NETFILTER is not set
389# CONFIG_IP_DCCP is not set
390# CONFIG_IP_SCTP is not set
391# CONFIG_RDS is not set
392# CONFIG_TIPC is not set
393# CONFIG_ATM is not set
394# CONFIG_BRIDGE is not set
395# CONFIG_NET_DSA is not set
396# CONFIG_VLAN_8021Q is not set
397# CONFIG_DECNET is not set
398# CONFIG_LLC2 is not set
399# CONFIG_IPX is not set
400# CONFIG_ATALK is not set
401# CONFIG_X25 is not set
402# CONFIG_LAPB is not set
403# CONFIG_ECONET is not set
404# CONFIG_WAN_ROUTER is not set
405# CONFIG_PHONET is not set
406# CONFIG_IEEE802154 is not set
407# CONFIG_NET_SCHED is not set
408# CONFIG_DCB is not set
409
410#
411# Network testing
412#
413# CONFIG_NET_PKTGEN is not set
414# CONFIG_HAMRADIO is not set
415# CONFIG_CAN is not set
416# CONFIG_IRDA is not set
417# CONFIG_BT is not set
418# CONFIG_AF_RXRPC is not set
419# CONFIG_WIRELESS is not set
420# CONFIG_WIMAX is not set
421# CONFIG_RFKILL is not set
422# CONFIG_NET_9P is not set
423
424#
425# Device Drivers
426#
427
428#
429# Generic Driver Options
430#
431CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
432# CONFIG_DEVTMPFS is not set
433CONFIG_STANDALONE=y
434CONFIG_PREVENT_FIRMWARE_BUILD=y
435CONFIG_FW_LOADER=y
436CONFIG_FIRMWARE_IN_KERNEL=y
437CONFIG_EXTRA_FIRMWARE=""
438# CONFIG_DEBUG_DRIVER is not set
439# CONFIG_DEBUG_DEVRES is not set
440# CONFIG_SYS_HYPERVISOR is not set
441# CONFIG_CONNECTOR is not set
442CONFIG_MTD=y
443# CONFIG_MTD_DEBUG is not set
444# CONFIG_MTD_TESTS is not set
445# CONFIG_MTD_CONCAT is not set
446CONFIG_MTD_PARTITIONS=y
447# CONFIG_MTD_REDBOOT_PARTS is not set
448CONFIG_MTD_CMDLINE_PARTS=y
449# CONFIG_MTD_AR7_PARTS is not set
450
451#
452# User Modules And Translation Layers
453#
454CONFIG_MTD_CHAR=y
455CONFIG_MTD_BLKDEVS=y
456CONFIG_MTD_BLOCK=y
457# CONFIG_FTL is not set
458# CONFIG_NFTL is not set
459# CONFIG_INFTL is not set
460# CONFIG_RFD_FTL is not set
461# CONFIG_SSFDC is not set
462# CONFIG_MTD_OOPS is not set
463
464#
465# RAM/ROM/Flash chip drivers
466#
467CONFIG_MTD_CFI=y
468# CONFIG_MTD_JEDECPROBE is not set
469CONFIG_MTD_GEN_PROBE=y
470# CONFIG_MTD_CFI_ADV_OPTIONS is not set
471CONFIG_MTD_MAP_BANK_WIDTH_1=y
472CONFIG_MTD_MAP_BANK_WIDTH_2=y
473CONFIG_MTD_MAP_BANK_WIDTH_4=y
474# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
475# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
476# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
477CONFIG_MTD_CFI_I1=y
478CONFIG_MTD_CFI_I2=y
479# CONFIG_MTD_CFI_I4 is not set
480# CONFIG_MTD_CFI_I8 is not set
481# CONFIG_MTD_CFI_INTELEXT is not set
482CONFIG_MTD_CFI_AMDSTD=y
483# CONFIG_MTD_CFI_STAA is not set
484CONFIG_MTD_CFI_UTIL=y
485# CONFIG_MTD_RAM is not set
486# CONFIG_MTD_ROM is not set
487# CONFIG_MTD_ABSENT is not set
488
489#
490# Mapping drivers for chip access
491#
492# CONFIG_MTD_COMPLEX_MAPPINGS is not set
493CONFIG_MTD_PHYSMAP=y
494# CONFIG_MTD_PHYSMAP_COMPAT is not set
495# CONFIG_MTD_PLATRAM is not set
496
497#
498# Self-contained MTD device drivers
499#
500# CONFIG_MTD_DATAFLASH is not set
501# CONFIG_MTD_M25P80 is not set
502# CONFIG_MTD_SST25L is not set
503# CONFIG_MTD_SLRAM is not set
504# CONFIG_MTD_PHRAM is not set
505# CONFIG_MTD_MTDRAM is not set
506# CONFIG_MTD_BLOCK2MTD is not set
507
508#
509# Disk-On-Chip Device Drivers
510#
511# CONFIG_MTD_DOC2000 is not set
512# CONFIG_MTD_DOC2001 is not set
513# CONFIG_MTD_DOC2001PLUS is not set
514CONFIG_MTD_NAND=y
515# CONFIG_MTD_NAND_VERIFY_WRITE is not set
516# CONFIG_MTD_NAND_ECC_SMC is not set
517# CONFIG_MTD_NAND_MUSEUM_IDS is not set
518CONFIG_MTD_NAND_IDS=y
519# CONFIG_MTD_NAND_AU1550 is not set
520# CONFIG_MTD_NAND_DISKONCHIP is not set
521# CONFIG_MTD_NAND_NANDSIM is not set
522CONFIG_MTD_NAND_PLATFORM=y
523# CONFIG_MTD_ALAUDA is not set
524# CONFIG_MTD_ONENAND is not set
525
526#
527# LPDDR flash memory drivers
528#
529# CONFIG_MTD_LPDDR is not set
530
531#
532# UBI - Unsorted block images
533#
534# CONFIG_MTD_UBI is not set
535# CONFIG_PARPORT is not set
536CONFIG_BLK_DEV=y
537# CONFIG_BLK_DEV_COW_COMMON is not set
538CONFIG_BLK_DEV_LOOP=y
539# CONFIG_BLK_DEV_CRYPTOLOOP is not set
540
541#
542# DRBD disabled because PROC_FS, INET or CONNECTOR not selected
543#
544# CONFIG_BLK_DEV_NBD is not set
545CONFIG_BLK_DEV_UB=y
546# CONFIG_BLK_DEV_RAM is not set
547# CONFIG_CDROM_PKTCDVD is not set
548# CONFIG_ATA_OVER_ETH is not set
549# CONFIG_BLK_DEV_HD is not set
550# CONFIG_MISC_DEVICES is not set
551CONFIG_HAVE_IDE=y
552CONFIG_IDE=y
553
554#
555# Please see Documentation/ide/ide.txt for help/info on IDE drives
556#
557CONFIG_IDE_XFER_MODE=y
558CONFIG_IDE_ATAPI=y
559# CONFIG_BLK_DEV_IDE_SATA is not set
560CONFIG_IDE_GD=y
561CONFIG_IDE_GD_ATA=y
562# CONFIG_IDE_GD_ATAPI is not set
563CONFIG_BLK_DEV_IDECS=y
564CONFIG_BLK_DEV_IDECD=y
565CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y
566# CONFIG_BLK_DEV_IDETAPE is not set
567CONFIG_IDE_TASK_IOCTL=y
568# CONFIG_IDE_PROC_FS is not set
569
570#
571# IDE chipset support/bugfixes
572#
573# CONFIG_IDE_GENERIC is not set
574# CONFIG_BLK_DEV_PLATFORM is not set
575CONFIG_BLK_DEV_IDE_AU1XXX=y
576CONFIG_BLK_DEV_IDE_AU1XXX_PIO_DBDMA=y
577# CONFIG_BLK_DEV_IDE_AU1XXX_MDMA2_DBDMA is not set
578# CONFIG_BLK_DEV_IDEDMA is not set
579
580#
581# SCSI device support
582#
583# CONFIG_RAID_ATTRS is not set
584# CONFIG_SCSI is not set
585# CONFIG_SCSI_DMA is not set
586# CONFIG_SCSI_NETLINK is not set
587# CONFIG_ATA is not set
588# CONFIG_MD is not set
589CONFIG_NETDEVICES=y
590# CONFIG_DUMMY is not set
591# CONFIG_BONDING is not set
592# CONFIG_MACVLAN is not set
593# CONFIG_EQUALIZER is not set
594# CONFIG_TUN is not set
595# CONFIG_VETH is not set
596# CONFIG_PHYLIB is not set
597CONFIG_NET_ETHERNET=y
598CONFIG_MII=y
599# CONFIG_AX88796 is not set
600# CONFIG_MIPS_AU1X00_ENET is not set
601CONFIG_SMC91X=y
602# CONFIG_DM9000 is not set
603# CONFIG_ENC28J60 is not set
604# CONFIG_ETHOC is not set
605# CONFIG_SMSC911X is not set
606# CONFIG_DNET is not set
607# CONFIG_IBM_NEW_EMAC_ZMII is not set
608# CONFIG_IBM_NEW_EMAC_RGMII is not set
609# CONFIG_IBM_NEW_EMAC_TAH is not set
610# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
611# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
612# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
613# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
614# CONFIG_B44 is not set
615# CONFIG_KS8842 is not set
616# CONFIG_KS8851 is not set
617# CONFIG_KS8851_MLL is not set
618# CONFIG_NETDEV_1000 is not set
619# CONFIG_NETDEV_10000 is not set
620# CONFIG_WLAN is not set
621
622#
623# Enable WiMAX (Networking options) to see the WiMAX drivers
624#
625
626#
627# USB Network Adapters
628#
629# CONFIG_USB_CATC is not set
630# CONFIG_USB_KAWETH is not set
631# CONFIG_USB_PEGASUS is not set
632# CONFIG_USB_RTL8150 is not set
633# CONFIG_USB_USBNET is not set
634# CONFIG_NET_PCMCIA is not set
635# CONFIG_WAN is not set
636# CONFIG_PPP is not set
637# CONFIG_SLIP is not set
638# CONFIG_NETCONSOLE is not set
639# CONFIG_NETPOLL is not set
640# CONFIG_NET_POLL_CONTROLLER is not set
641# CONFIG_ISDN is not set
642# CONFIG_PHONE is not set
643
644#
645# Input device support
646#
647CONFIG_INPUT=y
648# CONFIG_INPUT_FF_MEMLESS is not set
649# CONFIG_INPUT_POLLDEV is not set
650# CONFIG_INPUT_SPARSEKMAP is not set
651
652#
653# Userland interfaces
654#
655# CONFIG_INPUT_MOUSEDEV is not set
656# CONFIG_INPUT_JOYDEV is not set
657CONFIG_INPUT_EVDEV=y
658# CONFIG_INPUT_EVBUG is not set
659
660#
661# Input Device Drivers
662#
663# CONFIG_INPUT_KEYBOARD is not set
664# CONFIG_INPUT_MOUSE is not set
665# CONFIG_INPUT_JOYSTICK is not set
666# CONFIG_INPUT_TABLET is not set
667# CONFIG_INPUT_TOUCHSCREEN is not set
668# CONFIG_INPUT_MISC is not set
669
670#
671# Hardware I/O ports
672#
673# CONFIG_SERIO is not set
674# CONFIG_GAMEPORT is not set
675
676#
677# Character devices
678#
679CONFIG_VT=y
680CONFIG_CONSOLE_TRANSLATIONS=y
681CONFIG_VT_CONSOLE=y
682CONFIG_HW_CONSOLE=y
683CONFIG_VT_HW_CONSOLE_BINDING=y
684CONFIG_DEVKMEM=y
685# CONFIG_SERIAL_NONSTANDARD is not set
686
687#
688# Serial drivers
689#
690CONFIG_SERIAL_8250=y
691CONFIG_SERIAL_8250_CONSOLE=y
692# CONFIG_SERIAL_8250_CS is not set
693CONFIG_SERIAL_8250_NR_UARTS=2
694CONFIG_SERIAL_8250_RUNTIME_UARTS=2
695# CONFIG_SERIAL_8250_EXTENDED is not set
696CONFIG_SERIAL_8250_AU1X00=y
697
698#
699# Non-8250 serial port support
700#
701# CONFIG_SERIAL_MAX3100 is not set
702CONFIG_SERIAL_CORE=y
703CONFIG_SERIAL_CORE_CONSOLE=y
704CONFIG_UNIX98_PTYS=y
705# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
706# CONFIG_LEGACY_PTYS is not set
707# CONFIG_IPMI_HANDLER is not set
708# CONFIG_HW_RANDOM is not set
709# CONFIG_R3964 is not set
710
711#
712# PCMCIA character devices
713#
714# CONFIG_SYNCLINK_CS is not set
715# CONFIG_CARDMAN_4000 is not set
716# CONFIG_CARDMAN_4040 is not set
717# CONFIG_IPWIRELESS is not set
718# CONFIG_RAW_DRIVER is not set
719# CONFIG_TCG_TPM is not set
720CONFIG_I2C=y
721CONFIG_I2C_BOARDINFO=y
722# CONFIG_I2C_COMPAT is not set
723CONFIG_I2C_CHARDEV=y
724# CONFIG_I2C_HELPER_AUTO is not set
725
726#
727# I2C Algorithms
728#
729# CONFIG_I2C_ALGOBIT is not set
730# CONFIG_I2C_ALGOPCF is not set
731# CONFIG_I2C_ALGOPCA is not set
732
733#
734# I2C Hardware Bus support
735#
736
737#
738# I2C system bus drivers (mostly embedded / system-on-chip)
739#
740CONFIG_I2C_AU1550=y
741# CONFIG_I2C_GPIO is not set
742# CONFIG_I2C_OCORES is not set
743# CONFIG_I2C_SIMTEC is not set
744
745#
746# External I2C/SMBus adapter drivers
747#
748# CONFIG_I2C_PARPORT_LIGHT is not set
749# CONFIG_I2C_TAOS_EVM is not set
750# CONFIG_I2C_TINY_USB is not set
751
752#
753# Other I2C/SMBus bus drivers
754#
755# CONFIG_I2C_PCA_PLATFORM is not set
756# CONFIG_I2C_STUB is not set
757
758#
759# Miscellaneous I2C Chip support
760#
761# CONFIG_SENSORS_TSL2550 is not set
762# CONFIG_I2C_DEBUG_CORE is not set
763# CONFIG_I2C_DEBUG_ALGO is not set
764# CONFIG_I2C_DEBUG_BUS is not set
765# CONFIG_I2C_DEBUG_CHIP is not set
766CONFIG_SPI=y
767# CONFIG_SPI_DEBUG is not set
768CONFIG_SPI_MASTER=y
769
770#
771# SPI Master Controller Drivers
772#
773CONFIG_SPI_AU1550=y
774CONFIG_SPI_BITBANG=y
775# CONFIG_SPI_GPIO is not set
776# CONFIG_SPI_XILINX is not set
777# CONFIG_SPI_DESIGNWARE is not set
778
779#
780# SPI Protocol Masters
781#
782# CONFIG_SPI_SPIDEV is not set
783# CONFIG_SPI_TLE62X0 is not set
784
785#
786# PPS support
787#
788# CONFIG_PPS is not set
789CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
790CONFIG_GPIOLIB=y
791# CONFIG_DEBUG_GPIO is not set
792CONFIG_GPIO_SYSFS=y
793
794#
795# Memory mapped GPIO expanders:
796#
797
798#
799# I2C GPIO expanders:
800#
801# CONFIG_GPIO_MAX732X is not set
802# CONFIG_GPIO_PCA953X is not set
803# CONFIG_GPIO_PCF857X is not set
804# CONFIG_GPIO_ADP5588 is not set
805
806#
807# PCI GPIO expanders:
808#
809
810#
811# SPI GPIO expanders:
812#
813# CONFIG_GPIO_MAX7301 is not set
814# CONFIG_GPIO_MCP23S08 is not set
815# CONFIG_GPIO_MC33880 is not set
816
817#
818# AC97 GPIO expanders:
819#
820# CONFIG_W1 is not set
821# CONFIG_POWER_SUPPLY is not set
822CONFIG_HWMON=y
823CONFIG_HWMON_VID=y
824# CONFIG_HWMON_DEBUG_CHIP is not set
825
826#
827# Native drivers
828#
829# CONFIG_SENSORS_AD7414 is not set
830# CONFIG_SENSORS_AD7418 is not set
831# CONFIG_SENSORS_ADCXX is not set
832# CONFIG_SENSORS_ADM1021 is not set
833CONFIG_SENSORS_ADM1025=y
834# CONFIG_SENSORS_ADM1026 is not set
835# CONFIG_SENSORS_ADM1029 is not set
836# CONFIG_SENSORS_ADM1031 is not set
837# CONFIG_SENSORS_ADM9240 is not set
838# CONFIG_SENSORS_ADT7462 is not set
839# CONFIG_SENSORS_ADT7470 is not set
840# CONFIG_SENSORS_ADT7473 is not set
841# CONFIG_SENSORS_ADT7475 is not set
842# CONFIG_SENSORS_ATXP1 is not set
843# CONFIG_SENSORS_DS1621 is not set
844# CONFIG_SENSORS_F71805F is not set
845# CONFIG_SENSORS_F71882FG is not set
846# CONFIG_SENSORS_F75375S is not set
847# CONFIG_SENSORS_G760A is not set
848# CONFIG_SENSORS_GL518SM is not set
849# CONFIG_SENSORS_GL520SM is not set
850# CONFIG_SENSORS_IT87 is not set
851# CONFIG_SENSORS_LM63 is not set
852CONFIG_SENSORS_LM70=y
853# CONFIG_SENSORS_LM73 is not set
854# CONFIG_SENSORS_LM75 is not set
855# CONFIG_SENSORS_LM77 is not set
856# CONFIG_SENSORS_LM78 is not set
857# CONFIG_SENSORS_LM80 is not set
858# CONFIG_SENSORS_LM83 is not set
859# CONFIG_SENSORS_LM85 is not set
860# CONFIG_SENSORS_LM87 is not set
861# CONFIG_SENSORS_LM90 is not set
862# CONFIG_SENSORS_LM92 is not set
863# CONFIG_SENSORS_LM93 is not set
864# CONFIG_SENSORS_LTC4215 is not set
865# CONFIG_SENSORS_LTC4245 is not set
866# CONFIG_SENSORS_LM95241 is not set
867# CONFIG_SENSORS_MAX1111 is not set
868# CONFIG_SENSORS_MAX1619 is not set
869# CONFIG_SENSORS_MAX6650 is not set
870# CONFIG_SENSORS_PC87360 is not set
871# CONFIG_SENSORS_PC87427 is not set
872# CONFIG_SENSORS_PCF8591 is not set
873# CONFIG_SENSORS_SHT15 is not set
874# CONFIG_SENSORS_DME1737 is not set
875# CONFIG_SENSORS_SMSC47M1 is not set
876# CONFIG_SENSORS_SMSC47M192 is not set
877# CONFIG_SENSORS_SMSC47B397 is not set
878# CONFIG_SENSORS_ADS7828 is not set
879# CONFIG_SENSORS_AMC6821 is not set
880# CONFIG_SENSORS_THMC50 is not set
881# CONFIG_SENSORS_TMP401 is not set
882# CONFIG_SENSORS_TMP421 is not set
883# CONFIG_SENSORS_VT1211 is not set
884# CONFIG_SENSORS_W83781D is not set
885# CONFIG_SENSORS_W83791D is not set
886# CONFIG_SENSORS_W83792D is not set
887# CONFIG_SENSORS_W83793 is not set
888# CONFIG_SENSORS_W83L785TS is not set
889# CONFIG_SENSORS_W83L786NG is not set
890# CONFIG_SENSORS_W83627HF is not set
891# CONFIG_SENSORS_W83627EHF is not set
892# CONFIG_SENSORS_LIS3_SPI is not set
893# CONFIG_SENSORS_LIS3_I2C is not set
894# CONFIG_THERMAL is not set
895# CONFIG_WATCHDOG is not set
896CONFIG_SSB_POSSIBLE=y
897
898#
899# Sonics Silicon Backplane
900#
901# CONFIG_SSB is not set
902
903#
904# Multifunction device drivers
905#
906# CONFIG_MFD_CORE is not set
907# CONFIG_MFD_SM501 is not set
908# CONFIG_HTC_PASIC3 is not set
909# CONFIG_UCB1400_CORE is not set
910# CONFIG_TPS65010 is not set
911# CONFIG_TWL4030_CORE is not set
912# CONFIG_MFD_TMIO is not set
913# CONFIG_PMIC_DA903X is not set
914# CONFIG_PMIC_ADP5520 is not set
915# CONFIG_MFD_WM8400 is not set
916# CONFIG_MFD_WM831X is not set
917# CONFIG_MFD_WM8350_I2C is not set
918# CONFIG_MFD_PCF50633 is not set
919# CONFIG_MFD_MC13783 is not set
920# CONFIG_AB3100_CORE is not set
921# CONFIG_EZX_PCAP is not set
922# CONFIG_MFD_88PM8607 is not set
923# CONFIG_AB4500_CORE is not set
924# CONFIG_REGULATOR is not set
925# CONFIG_MEDIA_SUPPORT is not set
926
927#
928# Graphics support
929#
930# CONFIG_VGASTATE is not set
931# CONFIG_VIDEO_OUTPUT_CONTROL is not set
932CONFIG_FB=y
933# CONFIG_FIRMWARE_EDID is not set
934# CONFIG_FB_DDC is not set
935# CONFIG_FB_BOOT_VESA_SUPPORT is not set
936CONFIG_FB_CFB_FILLRECT=y
937CONFIG_FB_CFB_COPYAREA=y
938CONFIG_FB_CFB_IMAGEBLIT=y
939# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
940# CONFIG_FB_SYS_FILLRECT is not set
941# CONFIG_FB_SYS_COPYAREA is not set
942# CONFIG_FB_SYS_IMAGEBLIT is not set
943# CONFIG_FB_FOREIGN_ENDIAN is not set
944# CONFIG_FB_SYS_FOPS is not set
945# CONFIG_FB_SVGALIB is not set
946# CONFIG_FB_MACMODES is not set
947# CONFIG_FB_BACKLIGHT is not set
948# CONFIG_FB_MODE_HELPERS is not set
949# CONFIG_FB_TILEBLITTING is not set
950
951#
952# Frame buffer hardware drivers
953#
954# CONFIG_FB_S1D13XXX is not set
955CONFIG_FB_AU1200=y
956# CONFIG_FB_VIRTUAL is not set
957# CONFIG_FB_METRONOME is not set
958# CONFIG_FB_MB862XX is not set
959# CONFIG_FB_BROADSHEET is not set
960# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
961
962#
963# Display device support
964#
965# CONFIG_DISPLAY_SUPPORT is not set
966
967#
968# Console display driver support
969#
970# CONFIG_VGA_CONSOLE is not set
971CONFIG_DUMMY_CONSOLE=y
972CONFIG_FRAMEBUFFER_CONSOLE=y
973# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
974# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
975CONFIG_FONTS=y
976# CONFIG_FONT_8x8 is not set
977CONFIG_FONT_8x16=y
978# CONFIG_FONT_6x11 is not set
979# CONFIG_FONT_7x14 is not set
980# CONFIG_FONT_PEARL_8x8 is not set
981# CONFIG_FONT_ACORN_8x8 is not set
982# CONFIG_FONT_MINI_4x6 is not set
983# CONFIG_FONT_SUN8x16 is not set
984# CONFIG_FONT_SUN12x22 is not set
985# CONFIG_FONT_10x18 is not set
986# CONFIG_LOGO is not set
987CONFIG_SOUND=y
988# CONFIG_SOUND_OSS_CORE is not set
989CONFIG_SND=y
990CONFIG_SND_TIMER=y
991CONFIG_SND_PCM=y
992CONFIG_SND_JACK=y
993# CONFIG_SND_SEQUENCER is not set
994# CONFIG_SND_MIXER_OSS is not set
995# CONFIG_SND_PCM_OSS is not set
996# CONFIG_SND_HRTIMER is not set
997CONFIG_SND_DYNAMIC_MINORS=y
998# CONFIG_SND_SUPPORT_OLD_API is not set
999# CONFIG_SND_VERBOSE_PROCFS is not set
1000# CONFIG_SND_VERBOSE_PRINTK is not set
1001# CONFIG_SND_DEBUG is not set
1002CONFIG_SND_VMASTER=y
1003# CONFIG_SND_RAWMIDI_SEQ is not set
1004# CONFIG_SND_OPL3_LIB_SEQ is not set
1005# CONFIG_SND_OPL4_LIB_SEQ is not set
1006# CONFIG_SND_SBAWE_SEQ is not set
1007# CONFIG_SND_EMU10K1_SEQ is not set
1008CONFIG_SND_AC97_CODEC=y
1009# CONFIG_SND_DRIVERS is not set
1010# CONFIG_SND_SPI is not set
1011# CONFIG_SND_MIPS is not set
1012# CONFIG_SND_USB is not set
1013# CONFIG_SND_PCMCIA is not set
1014CONFIG_SND_SOC=y
1015CONFIG_SND_SOC_AC97_BUS=y
1016CONFIG_SND_SOC_AU1XPSC=y
1017CONFIG_SND_SOC_AU1XPSC_I2S=y
1018CONFIG_SND_SOC_AU1XPSC_AC97=y
1019CONFIG_SND_SOC_DB1200=y
1020CONFIG_SND_SOC_I2C_AND_SPI=y
1021# CONFIG_SND_SOC_ALL_CODECS is not set
1022CONFIG_SND_SOC_AC97_CODEC=y
1023CONFIG_SND_SOC_WM8731=y
1024# CONFIG_SOUND_PRIME is not set
1025CONFIG_AC97_BUS=y
1026CONFIG_HID_SUPPORT=y
1027CONFIG_HID=y
1028CONFIG_HIDRAW=y
1029
1030#
1031# USB Input Devices
1032#
1033CONFIG_USB_HID=y
1034# CONFIG_HID_PID is not set
1035CONFIG_USB_HIDDEV=y
1036
1037#
1038# Special HID drivers
1039#
1040# CONFIG_HID_A4TECH is not set
1041# CONFIG_HID_APPLE is not set
1042# CONFIG_HID_BELKIN is not set
1043# CONFIG_HID_CHERRY is not set
1044# CONFIG_HID_CHICONY is not set
1045# CONFIG_HID_CYPRESS is not set
1046# CONFIG_HID_DRAGONRISE is not set
1047# CONFIG_HID_EZKEY is not set
1048# CONFIG_HID_KYE is not set
1049# CONFIG_HID_GYRATION is not set
1050# CONFIG_HID_TWINHAN is not set
1051# CONFIG_HID_KENSINGTON is not set
1052# CONFIG_HID_LOGITECH is not set
1053# CONFIG_HID_MICROSOFT is not set
1054# CONFIG_HID_MONTEREY is not set
1055# CONFIG_HID_NTRIG is not set
1056# CONFIG_HID_PANTHERLORD is not set
1057# CONFIG_HID_PETALYNX is not set
1058# CONFIG_HID_SAMSUNG is not set
1059# CONFIG_HID_SONY is not set
1060# CONFIG_HID_SUNPLUS is not set
1061# CONFIG_HID_GREENASIA is not set
1062# CONFIG_HID_SMARTJOYPLUS is not set
1063# CONFIG_HID_TOPSEED is not set
1064# CONFIG_HID_THRUSTMASTER is not set
1065# CONFIG_HID_ZEROPLUS is not set
1066CONFIG_USB_SUPPORT=y
1067CONFIG_USB_ARCH_HAS_HCD=y
1068CONFIG_USB_ARCH_HAS_OHCI=y
1069CONFIG_USB_ARCH_HAS_EHCI=y
1070CONFIG_USB=y
1071CONFIG_USB_DEBUG=y
1072CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
1073
1074#
1075# Miscellaneous USB options
1076#
1077# CONFIG_USB_DEVICEFS is not set
1078# CONFIG_USB_DEVICE_CLASS is not set
1079CONFIG_USB_DYNAMIC_MINORS=y
1080# CONFIG_USB_OTG is not set
1081# CONFIG_USB_OTG_WHITELIST is not set
1082# CONFIG_USB_OTG_BLACKLIST_HUB is not set
1083# CONFIG_USB_MON is not set
1084# CONFIG_USB_WUSB is not set
1085# CONFIG_USB_WUSB_CBAF is not set
1086
1087#
1088# USB Host Controller Drivers
1089#
1090# CONFIG_USB_C67X00_HCD is not set
1091CONFIG_USB_EHCI_HCD=y
1092CONFIG_USB_EHCI_ROOT_HUB_TT=y
1093CONFIG_USB_EHCI_TT_NEWSCHED=y
1094# CONFIG_USB_OXU210HP_HCD is not set
1095# CONFIG_USB_ISP116X_HCD is not set
1096# CONFIG_USB_ISP1760_HCD is not set
1097# CONFIG_USB_ISP1362_HCD is not set
1098CONFIG_USB_OHCI_HCD=y
1099# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
1100# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
1101CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1102# CONFIG_USB_SL811_HCD is not set
1103# CONFIG_USB_R8A66597_HCD is not set
1104# CONFIG_USB_HWA_HCD is not set
1105
1106#
1107# USB Device Class drivers
1108#
1109# CONFIG_USB_ACM is not set
1110# CONFIG_USB_PRINTER is not set
1111# CONFIG_USB_WDM is not set
1112# CONFIG_USB_TMC is not set
1113
1114#
1115# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
1116#
1117
1118#
1119# also be needed; see USB_STORAGE Help for more info
1120#
1121# CONFIG_USB_LIBUSUAL is not set
1122
1123#
1124# USB Imaging devices
1125#
1126# CONFIG_USB_MDC800 is not set
1127
1128#
1129# USB port drivers
1130#
1131# CONFIG_USB_SERIAL is not set
1132
1133#
1134# USB Miscellaneous drivers
1135#
1136# CONFIG_USB_EMI62 is not set
1137# CONFIG_USB_EMI26 is not set
1138# CONFIG_USB_ADUTUX is not set
1139# CONFIG_USB_SEVSEG is not set
1140# CONFIG_USB_RIO500 is not set
1141# CONFIG_USB_LEGOTOWER is not set
1142# CONFIG_USB_LCD is not set
1143# CONFIG_USB_BERRY_CHARGE is not set
1144# CONFIG_USB_LED is not set
1145# CONFIG_USB_CYPRESS_CY7C63 is not set
1146# CONFIG_USB_CYTHERM is not set
1147# CONFIG_USB_IDMOUSE is not set
1148# CONFIG_USB_FTDI_ELAN is not set
1149# CONFIG_USB_APPLEDISPLAY is not set
1150# CONFIG_USB_SISUSBVGA is not set
1151# CONFIG_USB_LD is not set
1152# CONFIG_USB_TRANCEVIBRATOR is not set
1153# CONFIG_USB_IOWARRIOR is not set
1154# CONFIG_USB_TEST is not set
1155# CONFIG_USB_ISIGHTFW is not set
1156# CONFIG_USB_VST is not set
1157# CONFIG_USB_GADGET is not set
1158
1159#
1160# OTG and related infrastructure
1161#
1162# CONFIG_USB_GPIO_VBUS is not set
1163# CONFIG_NOP_USB_XCEIV is not set
1164CONFIG_MMC=y
1165# CONFIG_MMC_DEBUG is not set
1166# CONFIG_MMC_UNSAFE_RESUME is not set
1167
1168#
1169# MMC/SD/SDIO Card Drivers
1170#
1171CONFIG_MMC_BLOCK=y
1172# CONFIG_MMC_BLOCK_BOUNCE is not set
1173# CONFIG_SDIO_UART is not set
1174# CONFIG_MMC_TEST is not set
1175
1176#
1177# MMC/SD/SDIO Host Controller Drivers
1178#
1179# CONFIG_MMC_SDHCI is not set
1180CONFIG_MMC_AU1X=y
1181# CONFIG_MMC_AT91 is not set
1182# CONFIG_MMC_ATMELMCI is not set
1183# CONFIG_MMC_SPI is not set
1184# CONFIG_MEMSTICK is not set
1185CONFIG_NEW_LEDS=y
1186CONFIG_LEDS_CLASS=y
1187
1188#
1189# LED drivers
1190#
1191# CONFIG_LEDS_PCA9532 is not set
1192# CONFIG_LEDS_GPIO is not set
1193# CONFIG_LEDS_LP3944 is not set
1194# CONFIG_LEDS_PCA955X is not set
1195# CONFIG_LEDS_DAC124S085 is not set
1196# CONFIG_LEDS_BD2802 is not set
1197# CONFIG_LEDS_LT3593 is not set
1198
1199#
1200# LED Triggers
1201#
1202CONFIG_LEDS_TRIGGERS=y
1203# CONFIG_LEDS_TRIGGER_TIMER is not set
1204# CONFIG_LEDS_TRIGGER_IDE_DISK is not set
1205# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set
1206# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
1207# CONFIG_LEDS_TRIGGER_GPIO is not set
1208# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set
1209
1210#
1211# iptables trigger is under Netfilter config (LED target)
1212#
1213# CONFIG_ACCESSIBILITY is not set
1214CONFIG_RTC_LIB=y
1215CONFIG_RTC_CLASS=y
1216CONFIG_RTC_HCTOSYS=y
1217CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
1218# CONFIG_RTC_DEBUG is not set
1219
1220#
1221# RTC interfaces
1222#
1223CONFIG_RTC_INTF_SYSFS=y
1224CONFIG_RTC_INTF_PROC=y
1225CONFIG_RTC_INTF_DEV=y
1226# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
1227# CONFIG_RTC_DRV_TEST is not set
1228
1229#
1230# I2C RTC drivers
1231#
1232# CONFIG_RTC_DRV_DS1307 is not set
1233# CONFIG_RTC_DRV_DS1374 is not set
1234# CONFIG_RTC_DRV_DS1672 is not set
1235# CONFIG_RTC_DRV_MAX6900 is not set
1236# CONFIG_RTC_DRV_RS5C372 is not set
1237# CONFIG_RTC_DRV_ISL1208 is not set
1238# CONFIG_RTC_DRV_X1205 is not set
1239# CONFIG_RTC_DRV_PCF8563 is not set
1240# CONFIG_RTC_DRV_PCF8583 is not set
1241# CONFIG_RTC_DRV_M41T80 is not set
1242# CONFIG_RTC_DRV_BQ32K is not set
1243# CONFIG_RTC_DRV_S35390A is not set
1244# CONFIG_RTC_DRV_FM3130 is not set
1245# CONFIG_RTC_DRV_RX8581 is not set
1246# CONFIG_RTC_DRV_RX8025 is not set
1247
1248#
1249# SPI RTC drivers
1250#
1251# CONFIG_RTC_DRV_M41T94 is not set
1252# CONFIG_RTC_DRV_DS1305 is not set
1253# CONFIG_RTC_DRV_DS1390 is not set
1254# CONFIG_RTC_DRV_MAX6902 is not set
1255# CONFIG_RTC_DRV_R9701 is not set
1256# CONFIG_RTC_DRV_RS5C348 is not set
1257# CONFIG_RTC_DRV_DS3234 is not set
1258# CONFIG_RTC_DRV_PCF2123 is not set
1259
1260#
1261# Platform RTC drivers
1262#
1263# CONFIG_RTC_DRV_CMOS is not set
1264# CONFIG_RTC_DRV_DS1286 is not set
1265# CONFIG_RTC_DRV_DS1511 is not set
1266# CONFIG_RTC_DRV_DS1553 is not set
1267# CONFIG_RTC_DRV_DS1742 is not set
1268# CONFIG_RTC_DRV_STK17TA8 is not set
1269# CONFIG_RTC_DRV_M48T86 is not set
1270# CONFIG_RTC_DRV_M48T35 is not set
1271# CONFIG_RTC_DRV_M48T59 is not set
1272# CONFIG_RTC_DRV_MSM6242 is not set
1273# CONFIG_RTC_DRV_BQ4802 is not set
1274# CONFIG_RTC_DRV_RP5C01 is not set
1275# CONFIG_RTC_DRV_V3020 is not set
1276
1277#
1278# on-CPU RTC drivers
1279#
1280CONFIG_RTC_DRV_AU1XXX=y
1281# CONFIG_DMADEVICES is not set
1282# CONFIG_AUXDISPLAY is not set
1283# CONFIG_UIO is not set
1284
1285#
1286# TI VLYNQ
1287#
1288# CONFIG_STAGING is not set
1289
1290#
1291# File systems
1292#
1293CONFIG_EXT2_FS=y
1294# CONFIG_EXT2_FS_XATTR is not set
1295# CONFIG_EXT2_FS_XIP is not set
1296# CONFIG_EXT3_FS is not set
1297# CONFIG_EXT4_FS is not set
1298# CONFIG_REISERFS_FS is not set
1299# CONFIG_JFS_FS is not set
1300# CONFIG_FS_POSIX_ACL is not set
1301# CONFIG_XFS_FS is not set
1302# CONFIG_OCFS2_FS is not set
1303# CONFIG_BTRFS_FS is not set
1304# CONFIG_NILFS2_FS is not set
1305CONFIG_FILE_LOCKING=y
1306CONFIG_FSNOTIFY=y
1307CONFIG_DNOTIFY=y
1308CONFIG_INOTIFY=y
1309CONFIG_INOTIFY_USER=y
1310# CONFIG_QUOTA is not set
1311# CONFIG_AUTOFS_FS is not set
1312# CONFIG_AUTOFS4_FS is not set
1313# CONFIG_FUSE_FS is not set
1314
1315#
1316# Caches
1317#
1318# CONFIG_FSCACHE is not set
1319
1320#
1321# CD-ROM/DVD Filesystems
1322#
1323CONFIG_ISO9660_FS=y
1324CONFIG_JOLIET=y
1325CONFIG_ZISOFS=y
1326CONFIG_UDF_FS=y
1327CONFIG_UDF_NLS=y
1328
1329#
1330# DOS/FAT/NT Filesystems
1331#
1332CONFIG_FAT_FS=y
1333# CONFIG_MSDOS_FS is not set
1334CONFIG_VFAT_FS=y
1335CONFIG_FAT_DEFAULT_CODEPAGE=437
1336CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
1337# CONFIG_NTFS_FS is not set
1338
1339#
1340# Pseudo filesystems
1341#
1342CONFIG_PROC_FS=y
1343# CONFIG_PROC_KCORE is not set
1344CONFIG_PROC_SYSCTL=y
1345# CONFIG_PROC_PAGE_MONITOR is not set
1346CONFIG_SYSFS=y
1347CONFIG_TMPFS=y
1348# CONFIG_TMPFS_POSIX_ACL is not set
1349# CONFIG_HUGETLB_PAGE is not set
1350# CONFIG_CONFIGFS_FS is not set
1351CONFIG_MISC_FILESYSTEMS=y
1352# CONFIG_ADFS_FS is not set
1353# CONFIG_AFFS_FS is not set
1354# CONFIG_HFS_FS is not set
1355# CONFIG_HFSPLUS_FS is not set
1356# CONFIG_BEFS_FS is not set
1357# CONFIG_BFS_FS is not set
1358# CONFIG_EFS_FS is not set
1359CONFIG_JFFS2_FS=y
1360CONFIG_JFFS2_FS_DEBUG=0
1361CONFIG_JFFS2_FS_WRITEBUFFER=y
1362# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
1363CONFIG_JFFS2_SUMMARY=y
1364# CONFIG_JFFS2_FS_XATTR is not set
1365CONFIG_JFFS2_COMPRESSION_OPTIONS=y
1366CONFIG_JFFS2_ZLIB=y
1367CONFIG_JFFS2_LZO=y
1368CONFIG_JFFS2_RTIME=y
1369CONFIG_JFFS2_RUBIN=y
1370# CONFIG_JFFS2_CMODE_NONE is not set
1371CONFIG_JFFS2_CMODE_PRIORITY=y
1372# CONFIG_JFFS2_CMODE_SIZE is not set
1373# CONFIG_JFFS2_CMODE_FAVOURLZO is not set
1374# CONFIG_CRAMFS is not set
1375CONFIG_SQUASHFS=y
1376# CONFIG_SQUASHFS_EMBEDDED is not set
1377CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
1378# CONFIG_VXFS_FS is not set
1379# CONFIG_MINIX_FS is not set
1380# CONFIG_OMFS_FS is not set
1381# CONFIG_HPFS_FS is not set
1382# CONFIG_QNX4FS_FS is not set
1383# CONFIG_ROMFS_FS is not set
1384# CONFIG_SYSV_FS is not set
1385# CONFIG_UFS_FS is not set
1386CONFIG_NETWORK_FILESYSTEMS=y
1387CONFIG_NFS_FS=y
1388CONFIG_NFS_V3=y
1389# CONFIG_NFS_V3_ACL is not set
1390# CONFIG_NFS_V4 is not set
1391CONFIG_ROOT_NFS=y
1392# CONFIG_NFSD is not set
1393CONFIG_LOCKD=y
1394CONFIG_LOCKD_V4=y
1395CONFIG_NFS_COMMON=y
1396CONFIG_SUNRPC=y
1397# CONFIG_RPCSEC_GSS_KRB5 is not set
1398# CONFIG_RPCSEC_GSS_SPKM3 is not set
1399# CONFIG_SMB_FS is not set
1400# CONFIG_CIFS is not set
1401# CONFIG_NCP_FS is not set
1402# CONFIG_CODA_FS is not set
1403# CONFIG_AFS_FS is not set
1404
1405#
1406# Partition Types
1407#
1408CONFIG_PARTITION_ADVANCED=y
1409# CONFIG_ACORN_PARTITION is not set
1410# CONFIG_OSF_PARTITION is not set
1411# CONFIG_AMIGA_PARTITION is not set
1412# CONFIG_ATARI_PARTITION is not set
1413# CONFIG_MAC_PARTITION is not set
1414CONFIG_MSDOS_PARTITION=y
1415# CONFIG_BSD_DISKLABEL is not set
1416# CONFIG_MINIX_SUBPARTITION is not set
1417# CONFIG_SOLARIS_X86_PARTITION is not set
1418# CONFIG_UNIXWARE_DISKLABEL is not set
1419# CONFIG_LDM_PARTITION is not set
1420# CONFIG_SGI_PARTITION is not set
1421# CONFIG_ULTRIX_PARTITION is not set
1422# CONFIG_SUN_PARTITION is not set
1423# CONFIG_KARMA_PARTITION is not set
1424CONFIG_EFI_PARTITION=y
1425# CONFIG_SYSV68_PARTITION is not set
1426CONFIG_NLS=y
1427CONFIG_NLS_DEFAULT="iso8859-1"
1428CONFIG_NLS_CODEPAGE_437=y
1429# CONFIG_NLS_CODEPAGE_737 is not set
1430# CONFIG_NLS_CODEPAGE_775 is not set
1431CONFIG_NLS_CODEPAGE_850=y
1432CONFIG_NLS_CODEPAGE_852=y
1433# CONFIG_NLS_CODEPAGE_855 is not set
1434# CONFIG_NLS_CODEPAGE_857 is not set
1435# CONFIG_NLS_CODEPAGE_860 is not set
1436# CONFIG_NLS_CODEPAGE_861 is not set
1437# CONFIG_NLS_CODEPAGE_862 is not set
1438# CONFIG_NLS_CODEPAGE_863 is not set
1439# CONFIG_NLS_CODEPAGE_864 is not set
1440# CONFIG_NLS_CODEPAGE_865 is not set
1441# CONFIG_NLS_CODEPAGE_866 is not set
1442# CONFIG_NLS_CODEPAGE_869 is not set
1443# CONFIG_NLS_CODEPAGE_936 is not set
1444# CONFIG_NLS_CODEPAGE_950 is not set
1445# CONFIG_NLS_CODEPAGE_932 is not set
1446# CONFIG_NLS_CODEPAGE_949 is not set
1447# CONFIG_NLS_CODEPAGE_874 is not set
1448# CONFIG_NLS_ISO8859_8 is not set
1449CONFIG_NLS_CODEPAGE_1250=y
1450# CONFIG_NLS_CODEPAGE_1251 is not set
1451CONFIG_NLS_ASCII=y
1452CONFIG_NLS_ISO8859_1=y
1453CONFIG_NLS_ISO8859_2=y
1454# CONFIG_NLS_ISO8859_3 is not set
1455# CONFIG_NLS_ISO8859_4 is not set
1456# CONFIG_NLS_ISO8859_5 is not set
1457# CONFIG_NLS_ISO8859_6 is not set
1458# CONFIG_NLS_ISO8859_7 is not set
1459# CONFIG_NLS_ISO8859_9 is not set
1460# CONFIG_NLS_ISO8859_13 is not set
1461# CONFIG_NLS_ISO8859_14 is not set
1462CONFIG_NLS_ISO8859_15=y
1463# CONFIG_NLS_KOI8_R is not set
1464# CONFIG_NLS_KOI8_U is not set
1465CONFIG_NLS_UTF8=y
1466# CONFIG_DLM is not set
1467
1468#
1469# Kernel hacking
1470#
1471CONFIG_TRACE_IRQFLAGS_SUPPORT=y
1472# CONFIG_PRINTK_TIME is not set
1473# CONFIG_ENABLE_WARN_DEPRECATED is not set
1474# CONFIG_ENABLE_MUST_CHECK is not set
1475CONFIG_FRAME_WARN=1024
1476CONFIG_MAGIC_SYSRQ=y
1477CONFIG_STRIP_ASM_SYMS=y
1478# CONFIG_UNUSED_SYMBOLS is not set
1479# CONFIG_DEBUG_FS is not set
1480# CONFIG_HEADERS_CHECK is not set
1481CONFIG_DEBUG_KERNEL=y
1482# CONFIG_DEBUG_SHIRQ is not set
1483# CONFIG_DETECT_SOFTLOCKUP is not set
1484# CONFIG_DETECT_HUNG_TASK is not set
1485# CONFIG_SCHED_DEBUG is not set
1486# CONFIG_SCHEDSTATS is not set
1487# CONFIG_TIMER_STATS is not set
1488# CONFIG_DEBUG_OBJECTS is not set
1489# CONFIG_DEBUG_SLAB is not set
1490# CONFIG_DEBUG_RT_MUTEXES is not set
1491# CONFIG_RT_MUTEX_TESTER is not set
1492# CONFIG_DEBUG_SPINLOCK is not set
1493# CONFIG_DEBUG_MUTEXES is not set
1494# CONFIG_DEBUG_LOCK_ALLOC is not set
1495# CONFIG_PROVE_LOCKING is not set
1496# CONFIG_LOCK_STAT is not set
1497# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1498# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1499# CONFIG_DEBUG_KOBJECT is not set
1500# CONFIG_DEBUG_INFO is not set
1501# CONFIG_DEBUG_VM is not set
1502# CONFIG_DEBUG_WRITECOUNT is not set
1503# CONFIG_DEBUG_MEMORY_INIT is not set
1504# CONFIG_DEBUG_LIST is not set
1505# CONFIG_DEBUG_SG is not set
1506# CONFIG_DEBUG_NOTIFIERS is not set
1507# CONFIG_DEBUG_CREDENTIALS is not set
1508# CONFIG_BOOT_PRINTK_DELAY is not set
1509# CONFIG_RCU_TORTURE_TEST is not set
1510# CONFIG_BACKTRACE_SELF_TEST is not set
1511# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1512# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
1513# CONFIG_FAULT_INJECTION is not set
1514# CONFIG_SYSCTL_SYSCALL_CHECK is not set
1515# CONFIG_PAGE_POISONING is not set
1516CONFIG_HAVE_FUNCTION_TRACER=y
1517CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1518CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y
1519CONFIG_HAVE_DYNAMIC_FTRACE=y
1520CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1521CONFIG_TRACING_SUPPORT=y
1522# CONFIG_FTRACE is not set
1523# CONFIG_SAMPLES is not set
1524CONFIG_HAVE_ARCH_KGDB=y
1525# CONFIG_KGDB is not set
1526CONFIG_EARLY_PRINTK=y
1527CONFIG_CMDLINE_BOOL=y
1528CONFIG_CMDLINE="console=ttyS0,115200"
1529# CONFIG_CMDLINE_OVERRIDE is not set
1530# CONFIG_DEBUG_STACK_USAGE is not set
1531# CONFIG_RUNTIME_DEBUG is not set
1532CONFIG_DEBUG_ZBOOT=y
1533
1534#
1535# Security options
1536#
1537CONFIG_KEYS=y
1538CONFIG_KEYS_DEBUG_PROC_KEYS=y
1539# CONFIG_SECURITY is not set
1540CONFIG_SECURITYFS=y
1541# CONFIG_DEFAULT_SECURITY_SELINUX is not set
1542# CONFIG_DEFAULT_SECURITY_SMACK is not set
1543# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
1544CONFIG_DEFAULT_SECURITY_DAC=y
1545CONFIG_DEFAULT_SECURITY=""
1546# CONFIG_CRYPTO is not set
1547# CONFIG_BINARY_PRINTF is not set
1548
1549#
1550# Library routines
1551#
1552CONFIG_BITREVERSE=y
1553CONFIG_GENERIC_FIND_LAST_BIT=y
1554# CONFIG_CRC_CCITT is not set
1555# CONFIG_CRC16 is not set
1556# CONFIG_CRC_T10DIF is not set
1557CONFIG_CRC_ITU_T=y
1558CONFIG_CRC32=y
1559# CONFIG_CRC7 is not set
1560# CONFIG_LIBCRC32C is not set
1561CONFIG_ZLIB_INFLATE=y
1562CONFIG_ZLIB_DEFLATE=y
1563CONFIG_LZO_COMPRESS=y
1564CONFIG_LZO_DECOMPRESS=y
1565CONFIG_HAS_IOMEM=y
1566CONFIG_HAS_IOPORT=y
1567CONFIG_HAS_DMA=y
1568CONFIG_NLATTR=y
diff --git a/arch/mips/configs/pb1500_defconfig b/arch/mips/configs/pb1500_defconfig
index e74ba794c789..7497d3306b91 100644
--- a/arch/mips/configs/pb1500_defconfig
+++ b/arch/mips/configs/pb1500_defconfig
@@ -1,79 +1,102 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.20 3# Linux kernel version: 2.6.33
4# Tue Feb 20 21:47:37 2007 4# Fri Feb 26 10:05:27 2010
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
8# 8#
9# Machine selection 9# Machine selection
10# 10#
11CONFIG_ZONE_DMA=y
12CONFIG_MACH_ALCHEMY=y 11CONFIG_MACH_ALCHEMY=y
13# CONFIG_MIPS_MTX1 is not set 12# CONFIG_AR7 is not set
14# CONFIG_MIPS_BOSPORUS is not set 13# CONFIG_BCM47XX is not set
15# CONFIG_MIPS_PB1000 is not set 14# CONFIG_BCM63XX is not set
16# CONFIG_MIPS_PB1100 is not set
17CONFIG_MIPS_PB1500=y
18# CONFIG_MIPS_PB1550 is not set
19# CONFIG_MIPS_PB1200 is not set
20# CONFIG_MIPS_DB1000 is not set
21# CONFIG_MIPS_DB1100 is not set
22# CONFIG_MIPS_DB1500 is not set
23# CONFIG_MIPS_DB1550 is not set
24# CONFIG_MIPS_DB1200 is not set
25# CONFIG_MIPS_MIRAGE is not set
26# CONFIG_BASLER_EXCITE is not set
27# CONFIG_MIPS_COBALT is not set 15# CONFIG_MIPS_COBALT is not set
28# CONFIG_MACH_DECSTATION is not set 16# CONFIG_MACH_DECSTATION is not set
29# CONFIG_MACH_JAZZ is not set 17# CONFIG_MACH_JAZZ is not set
18# CONFIG_LASAT is not set
19# CONFIG_MACH_LOONGSON is not set
30# CONFIG_MIPS_MALTA is not set 20# CONFIG_MIPS_MALTA is not set
31# CONFIG_WR_PPMC is not set
32# CONFIG_MIPS_SIM is not set 21# CONFIG_MIPS_SIM is not set
33# CONFIG_MOMENCO_JAGUAR_ATX is not set 22# CONFIG_NEC_MARKEINS is not set
34# CONFIG_MIPS_XXS1500 is not set 23# CONFIG_MACH_VR41XX is not set
24# CONFIG_NXP_STB220 is not set
25# CONFIG_NXP_STB225 is not set
35# CONFIG_PNX8550_JBS is not set 26# CONFIG_PNX8550_JBS is not set
36# CONFIG_PNX8550_STB810 is not set 27# CONFIG_PNX8550_STB810 is not set
37# CONFIG_MACH_VR41XX is not set 28# CONFIG_PMC_MSP is not set
38# CONFIG_PMC_YOSEMITE is not set 29# CONFIG_PMC_YOSEMITE is not set
39# CONFIG_MARKEINS is not set 30# CONFIG_POWERTV is not set
40# CONFIG_SGI_IP22 is not set 31# CONFIG_SGI_IP22 is not set
41# CONFIG_SGI_IP27 is not set 32# CONFIG_SGI_IP27 is not set
33# CONFIG_SGI_IP28 is not set
42# CONFIG_SGI_IP32 is not set 34# CONFIG_SGI_IP32 is not set
43# CONFIG_SIBYTE_BIGSUR is not set
44# CONFIG_SIBYTE_SWARM is not set
45# CONFIG_SIBYTE_SENTOSA is not set
46# CONFIG_SIBYTE_RHONE is not set
47# CONFIG_SIBYTE_CARMEL is not set
48# CONFIG_SIBYTE_LITTLESUR is not set
49# CONFIG_SIBYTE_CRHINE is not set 35# CONFIG_SIBYTE_CRHINE is not set
36# CONFIG_SIBYTE_CARMEL is not set
50# CONFIG_SIBYTE_CRHONE is not set 37# CONFIG_SIBYTE_CRHONE is not set
38# CONFIG_SIBYTE_RHONE is not set
39# CONFIG_SIBYTE_SWARM is not set
40# CONFIG_SIBYTE_LITTLESUR is not set
41# CONFIG_SIBYTE_SENTOSA is not set
42# CONFIG_SIBYTE_BIGSUR is not set
51# CONFIG_SNI_RM is not set 43# CONFIG_SNI_RM is not set
52# CONFIG_TOSHIBA_JMR3927 is not set 44# CONFIG_MACH_TX39XX is not set
53# CONFIG_TOSHIBA_RBTX4927 is not set 45# CONFIG_MACH_TX49XX is not set
54# CONFIG_TOSHIBA_RBTX4938 is not set 46# CONFIG_MIKROTIK_RB532 is not set
47# CONFIG_WR_PPMC is not set
48# CONFIG_CAVIUM_OCTEON_SIMULATOR is not set
49# CONFIG_CAVIUM_OCTEON_REFERENCE_BOARD is not set
50CONFIG_ALCHEMY_GPIOINT_AU1000=y
51# CONFIG_ALCHEMY_GPIO_INDIRECT is not set
52# CONFIG_MIPS_MTX1 is not set
53# CONFIG_MIPS_BOSPORUS is not set
54# CONFIG_MIPS_DB1000 is not set
55# CONFIG_MIPS_DB1100 is not set
56# CONFIG_MIPS_DB1200 is not set
57# CONFIG_MIPS_DB1500 is not set
58# CONFIG_MIPS_DB1550 is not set
59# CONFIG_MIPS_MIRAGE is not set
60# CONFIG_MIPS_PB1000 is not set
61# CONFIG_MIPS_PB1100 is not set
62# CONFIG_MIPS_PB1200 is not set
63CONFIG_MIPS_PB1500=y
64# CONFIG_MIPS_PB1550 is not set
65# CONFIG_MIPS_XXS1500 is not set
66CONFIG_SOC_AU1500=y
67CONFIG_SOC_AU1X00=y
68CONFIG_LOONGSON_UART_BASE=y
55CONFIG_RWSEM_GENERIC_SPINLOCK=y 69CONFIG_RWSEM_GENERIC_SPINLOCK=y
56# CONFIG_ARCH_HAS_ILOG2_U32 is not set 70# CONFIG_ARCH_HAS_ILOG2_U32 is not set
57# CONFIG_ARCH_HAS_ILOG2_U64 is not set 71# CONFIG_ARCH_HAS_ILOG2_U64 is not set
72CONFIG_ARCH_SUPPORTS_OPROFILE=y
58CONFIG_GENERIC_FIND_NEXT_BIT=y 73CONFIG_GENERIC_FIND_NEXT_BIT=y
59CONFIG_GENERIC_HWEIGHT=y 74CONFIG_GENERIC_HWEIGHT=y
60CONFIG_GENERIC_CALIBRATE_DELAY=y 75CONFIG_GENERIC_CALIBRATE_DELAY=y
76CONFIG_GENERIC_CLOCKEVENTS=y
61CONFIG_GENERIC_TIME=y 77CONFIG_GENERIC_TIME=y
62CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 78CONFIG_GENERIC_CMOS_UPDATE=y
63# CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ is not set 79CONFIG_SCHED_OMIT_FRAME_POINTER=y
80CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
81CONFIG_CEVT_R4K_LIB=y
82CONFIG_CSRC_R4K_LIB=y
64CONFIG_DMA_NONCOHERENT=y 83CONFIG_DMA_NONCOHERENT=y
65CONFIG_DMA_NEED_PCI_MAP_STATE=y 84CONFIG_DMA_NEED_PCI_MAP_STATE=y
85CONFIG_SYS_HAS_EARLY_PRINTK=y
86# CONFIG_NO_IOPORT is not set
87CONFIG_GENERIC_GPIO=y
66# CONFIG_CPU_BIG_ENDIAN is not set 88# CONFIG_CPU_BIG_ENDIAN is not set
67CONFIG_CPU_LITTLE_ENDIAN=y 89CONFIG_CPU_LITTLE_ENDIAN=y
68CONFIG_SYS_SUPPORTS_APM_EMULATION=y 90CONFIG_SYS_SUPPORTS_APM_EMULATION=y
69CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y 91CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y
70CONFIG_SOC_AU1500=y 92CONFIG_IRQ_CPU=y
71CONFIG_SOC_AU1X00=y
72CONFIG_MIPS_L1_CACHE_SHIFT=5 93CONFIG_MIPS_L1_CACHE_SHIFT=5
73 94
74# 95#
75# CPU selection 96# CPU selection
76# 97#
98# CONFIG_CPU_LOONGSON2E is not set
99# CONFIG_CPU_LOONGSON2F is not set
77CONFIG_CPU_MIPS32_R1=y 100CONFIG_CPU_MIPS32_R1=y
78# CONFIG_CPU_MIPS32_R2 is not set 101# CONFIG_CPU_MIPS32_R2 is not set
79# CONFIG_CPU_MIPS64_R1 is not set 102# CONFIG_CPU_MIPS64_R1 is not set
@@ -86,6 +109,7 @@ CONFIG_CPU_MIPS32_R1=y
86# CONFIG_CPU_TX49XX is not set 109# CONFIG_CPU_TX49XX is not set
87# CONFIG_CPU_R5000 is not set 110# CONFIG_CPU_R5000 is not set
88# CONFIG_CPU_R5432 is not set 111# CONFIG_CPU_R5432 is not set
112# CONFIG_CPU_R5500 is not set
89# CONFIG_CPU_R6000 is not set 113# CONFIG_CPU_R6000 is not set
90# CONFIG_CPU_NEVADA is not set 114# CONFIG_CPU_NEVADA is not set
91# CONFIG_CPU_R8000 is not set 115# CONFIG_CPU_R8000 is not set
@@ -93,11 +117,14 @@ CONFIG_CPU_MIPS32_R1=y
93# CONFIG_CPU_RM7000 is not set 117# CONFIG_CPU_RM7000 is not set
94# CONFIG_CPU_RM9000 is not set 118# CONFIG_CPU_RM9000 is not set
95# CONFIG_CPU_SB1 is not set 119# CONFIG_CPU_SB1 is not set
120# CONFIG_CPU_CAVIUM_OCTEON is not set
121CONFIG_SYS_SUPPORTS_ZBOOT=y
96CONFIG_SYS_HAS_CPU_MIPS32_R1=y 122CONFIG_SYS_HAS_CPU_MIPS32_R1=y
97CONFIG_CPU_MIPS32=y 123CONFIG_CPU_MIPS32=y
98CONFIG_CPU_MIPSR1=y 124CONFIG_CPU_MIPSR1=y
99CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y 125CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y
100CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y 126CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y
127CONFIG_HARDWARE_WATCHPOINTS=y
101 128
102# 129#
103# Kernel type 130# Kernel type
@@ -107,190 +134,255 @@ CONFIG_32BIT=y
107CONFIG_PAGE_SIZE_4KB=y 134CONFIG_PAGE_SIZE_4KB=y
108# CONFIG_PAGE_SIZE_8KB is not set 135# CONFIG_PAGE_SIZE_8KB is not set
109# CONFIG_PAGE_SIZE_16KB is not set 136# CONFIG_PAGE_SIZE_16KB is not set
137# CONFIG_PAGE_SIZE_32KB is not set
110# CONFIG_PAGE_SIZE_64KB is not set 138# CONFIG_PAGE_SIZE_64KB is not set
111CONFIG_CPU_HAS_PREFETCH=y 139CONFIG_CPU_HAS_PREFETCH=y
112CONFIG_MIPS_MT_DISABLED=y 140CONFIG_MIPS_MT_DISABLED=y
113# CONFIG_MIPS_MT_SMP is not set 141# CONFIG_MIPS_MT_SMP is not set
114# CONFIG_MIPS_MT_SMTC is not set 142# CONFIG_MIPS_MT_SMTC is not set
115# CONFIG_MIPS_VPE_LOADER is not set
116CONFIG_64BIT_PHYS_ADDR=y 143CONFIG_64BIT_PHYS_ADDR=y
144CONFIG_ARCH_PHYS_ADDR_T_64BIT=y
117CONFIG_CPU_HAS_SYNC=y 145CONFIG_CPU_HAS_SYNC=y
118CONFIG_GENERIC_HARDIRQS=y 146CONFIG_GENERIC_HARDIRQS=y
119CONFIG_GENERIC_IRQ_PROBE=y 147CONFIG_GENERIC_IRQ_PROBE=y
120CONFIG_CPU_SUPPORTS_HIGHMEM=y 148CONFIG_CPU_SUPPORTS_HIGHMEM=y
121CONFIG_ARCH_FLATMEM_ENABLE=y 149CONFIG_ARCH_FLATMEM_ENABLE=y
150CONFIG_ARCH_POPULATES_NODE_MAP=y
122CONFIG_SELECT_MEMORY_MODEL=y 151CONFIG_SELECT_MEMORY_MODEL=y
123CONFIG_FLATMEM_MANUAL=y 152CONFIG_FLATMEM_MANUAL=y
124# CONFIG_DISCONTIGMEM_MANUAL is not set 153# CONFIG_DISCONTIGMEM_MANUAL is not set
125# CONFIG_SPARSEMEM_MANUAL is not set 154# CONFIG_SPARSEMEM_MANUAL is not set
126CONFIG_FLATMEM=y 155CONFIG_FLATMEM=y
127CONFIG_FLAT_NODE_MEM_MAP=y 156CONFIG_FLAT_NODE_MEM_MAP=y
128# CONFIG_SPARSEMEM_STATIC is not set 157CONFIG_PAGEFLAGS_EXTENDED=y
129CONFIG_SPLIT_PTLOCK_CPUS=4 158CONFIG_SPLIT_PTLOCK_CPUS=4
130CONFIG_RESOURCES_64BIT=y 159CONFIG_PHYS_ADDR_T_64BIT=y
131CONFIG_ZONE_DMA_FLAG=1 160CONFIG_ZONE_DMA_FLAG=0
161CONFIG_VIRT_TO_BUS=y
162# CONFIG_KSM is not set
163CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
164CONFIG_TICK_ONESHOT=y
165CONFIG_NO_HZ=y
166CONFIG_HIGH_RES_TIMERS=y
167CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
132# CONFIG_HZ_48 is not set 168# CONFIG_HZ_48 is not set
133# CONFIG_HZ_100 is not set 169CONFIG_HZ_100=y
134# CONFIG_HZ_128 is not set 170# CONFIG_HZ_128 is not set
135# CONFIG_HZ_250 is not set 171# CONFIG_HZ_250 is not set
136# CONFIG_HZ_256 is not set 172# CONFIG_HZ_256 is not set
137CONFIG_HZ_1000=y 173# CONFIG_HZ_1000 is not set
138# CONFIG_HZ_1024 is not set 174# CONFIG_HZ_1024 is not set
139CONFIG_SYS_SUPPORTS_ARBIT_HZ=y 175CONFIG_SYS_SUPPORTS_ARBIT_HZ=y
140CONFIG_HZ=1000 176CONFIG_HZ=100
141CONFIG_PREEMPT_NONE=y 177CONFIG_PREEMPT_NONE=y
142# CONFIG_PREEMPT_VOLUNTARY is not set 178# CONFIG_PREEMPT_VOLUNTARY is not set
143# CONFIG_PREEMPT is not set 179# CONFIG_PREEMPT is not set
144# CONFIG_KEXEC is not set 180# CONFIG_KEXEC is not set
181# CONFIG_SECCOMP is not set
145CONFIG_LOCKDEP_SUPPORT=y 182CONFIG_LOCKDEP_SUPPORT=y
146CONFIG_STACKTRACE_SUPPORT=y 183CONFIG_STACKTRACE_SUPPORT=y
147CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 184CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
185CONFIG_CONSTRUCTORS=y
148 186
149# 187#
150# Code maturity level options 188# General setup
151# 189#
152CONFIG_EXPERIMENTAL=y 190CONFIG_EXPERIMENTAL=y
153CONFIG_BROKEN_ON_SMP=y 191CONFIG_BROKEN_ON_SMP=y
154CONFIG_INIT_ENV_ARG_LIMIT=32 192CONFIG_INIT_ENV_ARG_LIMIT=32
155 193CONFIG_LOCALVERSION="-pb1500"
156#
157# General setup
158#
159CONFIG_LOCALVERSION=""
160CONFIG_LOCALVERSION_AUTO=y 194CONFIG_LOCALVERSION_AUTO=y
195CONFIG_HAVE_KERNEL_GZIP=y
196CONFIG_HAVE_KERNEL_BZIP2=y
197CONFIG_HAVE_KERNEL_LZMA=y
198CONFIG_HAVE_KERNEL_LZO=y
199# CONFIG_KERNEL_GZIP is not set
200# CONFIG_KERNEL_BZIP2 is not set
201CONFIG_KERNEL_LZMA=y
202# CONFIG_KERNEL_LZO is not set
161CONFIG_SWAP=y 203CONFIG_SWAP=y
162CONFIG_SYSVIPC=y 204CONFIG_SYSVIPC=y
163# CONFIG_IPC_NS is not set
164CONFIG_SYSVIPC_SYSCTL=y 205CONFIG_SYSVIPC_SYSCTL=y
165# CONFIG_POSIX_MQUEUE is not set 206CONFIG_POSIX_MQUEUE=y
207CONFIG_POSIX_MQUEUE_SYSCTL=y
166# CONFIG_BSD_PROCESS_ACCT is not set 208# CONFIG_BSD_PROCESS_ACCT is not set
167# CONFIG_TASKSTATS is not set 209# CONFIG_TASKSTATS is not set
168# CONFIG_UTS_NS is not set
169# CONFIG_AUDIT is not set 210# CONFIG_AUDIT is not set
211
212#
213# RCU Subsystem
214#
215# CONFIG_TREE_RCU is not set
216# CONFIG_TREE_PREEMPT_RCU is not set
217CONFIG_TINY_RCU=y
218# CONFIG_TREE_RCU_TRACE is not set
170# CONFIG_IKCONFIG is not set 219# CONFIG_IKCONFIG is not set
171CONFIG_SYSFS_DEPRECATED=y 220CONFIG_LOG_BUF_SHIFT=14
172CONFIG_RELAY=y 221# CONFIG_GROUP_SCHED is not set
173# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 222# CONFIG_CGROUPS is not set
223# CONFIG_SYSFS_DEPRECATED_V2 is not set
224# CONFIG_RELAY is not set
225# CONFIG_NAMESPACES is not set
226# CONFIG_BLK_DEV_INITRD is not set
227CONFIG_CC_OPTIMIZE_FOR_SIZE=y
174CONFIG_SYSCTL=y 228CONFIG_SYSCTL=y
229CONFIG_ANON_INODES=y
175CONFIG_EMBEDDED=y 230CONFIG_EMBEDDED=y
176CONFIG_SYSCTL_SYSCALL=y 231# CONFIG_SYSCTL_SYSCALL is not set
177CONFIG_KALLSYMS=y 232# CONFIG_KALLSYMS is not set
178# CONFIG_KALLSYMS_EXTRA_PASS is not set
179CONFIG_HOTPLUG=y 233CONFIG_HOTPLUG=y
180CONFIG_PRINTK=y 234CONFIG_PRINTK=y
181CONFIG_BUG=y 235CONFIG_BUG=y
182CONFIG_ELF_CORE=y 236CONFIG_ELF_CORE=y
237# CONFIG_PCSPKR_PLATFORM is not set
183CONFIG_BASE_FULL=y 238CONFIG_BASE_FULL=y
184CONFIG_FUTEX=y 239CONFIG_FUTEX=y
185CONFIG_EPOLL=y 240CONFIG_EPOLL=y
241CONFIG_SIGNALFD=y
242CONFIG_TIMERFD=y
243CONFIG_EVENTFD=y
186CONFIG_SHMEM=y 244CONFIG_SHMEM=y
245CONFIG_AIO=y
246
247#
248# Kernel Performance Events And Counters
249#
250# CONFIG_VM_EVENT_COUNTERS is not set
251CONFIG_PCI_QUIRKS=y
252# CONFIG_COMPAT_BRK is not set
187CONFIG_SLAB=y 253CONFIG_SLAB=y
188CONFIG_VM_EVENT_COUNTERS=y 254# CONFIG_SLUB is not set
189CONFIG_RT_MUTEXES=y
190# CONFIG_TINY_SHMEM is not set
191CONFIG_BASE_SMALL=0
192# CONFIG_SLOB is not set 255# CONFIG_SLOB is not set
256# CONFIG_PROFILING is not set
257CONFIG_HAVE_OPROFILE=y
193 258
194# 259#
195# Loadable module support 260# GCOV-based kernel profiling
196# 261#
262# CONFIG_SLOW_WORK is not set
263CONFIG_HAVE_GENERIC_DMA_COHERENT=y
264CONFIG_SLABINFO=y
265CONFIG_RT_MUTEXES=y
266CONFIG_BASE_SMALL=0
197CONFIG_MODULES=y 267CONFIG_MODULES=y
268# CONFIG_MODULE_FORCE_LOAD is not set
198CONFIG_MODULE_UNLOAD=y 269CONFIG_MODULE_UNLOAD=y
199# CONFIG_MODULE_FORCE_UNLOAD is not set 270# CONFIG_MODULE_FORCE_UNLOAD is not set
200CONFIG_MODVERSIONS=y 271# CONFIG_MODVERSIONS is not set
201CONFIG_MODULE_SRCVERSION_ALL=y 272# CONFIG_MODULE_SRCVERSION_ALL is not set
202CONFIG_KMOD=y
203
204#
205# Block layer
206#
207CONFIG_BLOCK=y 273CONFIG_BLOCK=y
208# CONFIG_LBD is not set 274CONFIG_LBDAF=y
209# CONFIG_BLK_DEV_IO_TRACE is not set 275CONFIG_BLK_DEV_BSG=y
210# CONFIG_LSF is not set 276# CONFIG_BLK_DEV_INTEGRITY is not set
211 277
212# 278#
213# IO Schedulers 279# IO Schedulers
214# 280#
215CONFIG_IOSCHED_NOOP=y 281CONFIG_IOSCHED_NOOP=y
216CONFIG_IOSCHED_AS=y 282# CONFIG_IOSCHED_DEADLINE is not set
217CONFIG_IOSCHED_DEADLINE=y 283# CONFIG_IOSCHED_CFQ is not set
218CONFIG_IOSCHED_CFQ=y
219CONFIG_DEFAULT_AS=y
220# CONFIG_DEFAULT_DEADLINE is not set 284# CONFIG_DEFAULT_DEADLINE is not set
221# CONFIG_DEFAULT_CFQ is not set 285# CONFIG_DEFAULT_CFQ is not set
222# CONFIG_DEFAULT_NOOP is not set 286CONFIG_DEFAULT_NOOP=y
223CONFIG_DEFAULT_IOSCHED="anticipatory" 287CONFIG_DEFAULT_IOSCHED="noop"
288# CONFIG_INLINE_SPIN_TRYLOCK is not set
289# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
290# CONFIG_INLINE_SPIN_LOCK is not set
291# CONFIG_INLINE_SPIN_LOCK_BH is not set
292# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
293# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
294CONFIG_INLINE_SPIN_UNLOCK=y
295# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
296CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
297# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
298# CONFIG_INLINE_READ_TRYLOCK is not set
299# CONFIG_INLINE_READ_LOCK is not set
300# CONFIG_INLINE_READ_LOCK_BH is not set
301# CONFIG_INLINE_READ_LOCK_IRQ is not set
302# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
303CONFIG_INLINE_READ_UNLOCK=y
304# CONFIG_INLINE_READ_UNLOCK_BH is not set
305CONFIG_INLINE_READ_UNLOCK_IRQ=y
306# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
307# CONFIG_INLINE_WRITE_TRYLOCK is not set
308# CONFIG_INLINE_WRITE_LOCK is not set
309# CONFIG_INLINE_WRITE_LOCK_BH is not set
310# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
311# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
312CONFIG_INLINE_WRITE_UNLOCK=y
313# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
314CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
315# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
316# CONFIG_MUTEX_SPIN_ON_OWNER is not set
317CONFIG_FREEZER=y
224 318
225# 319#
226# Bus options (PCI, PCMCIA, EISA, ISA, TC) 320# Bus options (PCI, PCMCIA, EISA, ISA, TC)
227# 321#
228CONFIG_HW_HAS_PCI=y 322CONFIG_HW_HAS_PCI=y
229CONFIG_PCI=y 323CONFIG_PCI=y
324CONFIG_PCI_DOMAINS=y
325# CONFIG_ARCH_SUPPORTS_MSI is not set
326CONFIG_PCI_LEGACY=y
327# CONFIG_PCI_DEBUG is not set
328# CONFIG_PCI_STUB is not set
329# CONFIG_PCI_IOV is not set
230CONFIG_MMU=y 330CONFIG_MMU=y
231 331CONFIG_PCCARD=y
232# 332CONFIG_PCMCIA=y
233# PCCARD (PCMCIA/CardBus) support
234#
235CONFIG_PCCARD=m
236# CONFIG_PCMCIA_DEBUG is not set
237CONFIG_PCMCIA=m
238CONFIG_PCMCIA_LOAD_CIS=y 333CONFIG_PCMCIA_LOAD_CIS=y
239CONFIG_PCMCIA_IOCTL=y 334CONFIG_PCMCIA_IOCTL=y
240CONFIG_CARDBUS=y 335# CONFIG_CARDBUS is not set
241 336
242# 337#
243# PC-card bridges 338# PC-card bridges
244# 339#
245# CONFIG_YENTA is not set 340# CONFIG_YENTA is not set
246CONFIG_PD6729=m 341# CONFIG_PD6729 is not set
247# CONFIG_I82092 is not set 342# CONFIG_I82092 is not set
248# CONFIG_PCMCIA_AU1X00 is not set 343# CONFIG_PCMCIA_AU1X00 is not set
249CONFIG_PCCARD_NONSTATIC=m 344CONFIG_PCMCIA_ALCHEMY_DEVBOARD=y
250
251#
252# PCI Hotplug Support
253#
254# CONFIG_HOTPLUG_PCI is not set 345# CONFIG_HOTPLUG_PCI is not set
255 346
256# 347#
257# Executable file formats 348# Executable file formats
258# 349#
259CONFIG_BINFMT_ELF=y 350CONFIG_BINFMT_ELF=y
351# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
352# CONFIG_HAVE_AOUT is not set
260# CONFIG_BINFMT_MISC is not set 353# CONFIG_BINFMT_MISC is not set
261CONFIG_TRAD_SIGNALS=y 354CONFIG_TRAD_SIGNALS=y
262 355
263# 356#
264# Power management options 357# Power management options
265# 358#
266# CONFIG_PM is not set 359CONFIG_ARCH_HIBERNATION_POSSIBLE=y
267 360CONFIG_ARCH_SUSPEND_POSSIBLE=y
268# 361CONFIG_PM=y
269# Networking 362# CONFIG_PM_DEBUG is not set
270# 363CONFIG_PM_SLEEP=y
364CONFIG_SUSPEND=y
365CONFIG_SUSPEND_FREEZER=y
366# CONFIG_HIBERNATION is not set
367# CONFIG_APM_EMULATION is not set
368CONFIG_PM_RUNTIME=y
271CONFIG_NET=y 369CONFIG_NET=y
272 370
273# 371#
274# Networking options 372# Networking options
275# 373#
276# CONFIG_NETDEBUG is not set
277CONFIG_PACKET=y 374CONFIG_PACKET=y
278# CONFIG_PACKET_MMAP is not set 375CONFIG_PACKET_MMAP=y
279CONFIG_UNIX=y 376CONFIG_UNIX=y
280CONFIG_XFRM=y 377# CONFIG_NET_KEY is not set
281CONFIG_XFRM_USER=m
282# CONFIG_XFRM_SUB_POLICY is not set
283CONFIG_XFRM_MIGRATE=y
284CONFIG_NET_KEY=y
285CONFIG_NET_KEY_MIGRATE=y
286CONFIG_INET=y 378CONFIG_INET=y
287CONFIG_IP_MULTICAST=y 379CONFIG_IP_MULTICAST=y
288# CONFIG_IP_ADVANCED_ROUTER is not set 380# CONFIG_IP_ADVANCED_ROUTER is not set
289CONFIG_IP_FIB_HASH=y 381CONFIG_IP_FIB_HASH=y
290CONFIG_IP_PNP=y 382CONFIG_IP_PNP=y
291# CONFIG_IP_PNP_DHCP is not set 383CONFIG_IP_PNP_DHCP=y
292CONFIG_IP_PNP_BOOTP=y 384CONFIG_IP_PNP_BOOTP=y
293# CONFIG_IP_PNP_RARP is not set 385CONFIG_IP_PNP_RARP=y
294# CONFIG_NET_IPIP is not set 386# CONFIG_NET_IPIP is not set
295# CONFIG_NET_IPGRE is not set 387# CONFIG_NET_IPGRE is not set
296# CONFIG_IP_MROUTE is not set 388# CONFIG_IP_MROUTE is not set
@@ -301,110 +393,25 @@ CONFIG_IP_PNP_BOOTP=y
301# CONFIG_INET_IPCOMP is not set 393# CONFIG_INET_IPCOMP is not set
302# CONFIG_INET_XFRM_TUNNEL is not set 394# CONFIG_INET_XFRM_TUNNEL is not set
303# CONFIG_INET_TUNNEL is not set 395# CONFIG_INET_TUNNEL is not set
304CONFIG_INET_XFRM_MODE_TRANSPORT=m 396# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
305CONFIG_INET_XFRM_MODE_TUNNEL=m 397# CONFIG_INET_XFRM_MODE_TUNNEL is not set
306CONFIG_INET_XFRM_MODE_BEET=m 398# CONFIG_INET_XFRM_MODE_BEET is not set
307CONFIG_INET_DIAG=y 399CONFIG_INET_LRO=y
308CONFIG_INET_TCP_DIAG=y 400# CONFIG_INET_DIAG is not set
309# CONFIG_TCP_CONG_ADVANCED is not set 401# CONFIG_TCP_CONG_ADVANCED is not set
310CONFIG_TCP_CONG_CUBIC=y 402CONFIG_TCP_CONG_CUBIC=y
311CONFIG_DEFAULT_TCP_CONG="cubic" 403CONFIG_DEFAULT_TCP_CONG="cubic"
312CONFIG_TCP_MD5SIG=y 404# CONFIG_TCP_MD5SIG is not set
313
314#
315# IP: Virtual Server Configuration
316#
317# CONFIG_IP_VS is not set
318# CONFIG_IPV6 is not set 405# CONFIG_IPV6 is not set
319# CONFIG_INET6_XFRM_TUNNEL is not set 406# CONFIG_NETWORK_SECMARK is not set
320# CONFIG_INET6_TUNNEL is not set 407# CONFIG_NETFILTER is not set
321CONFIG_NETWORK_SECMARK=y
322CONFIG_NETFILTER=y
323# CONFIG_NETFILTER_DEBUG is not set
324
325#
326# Core Netfilter Configuration
327#
328CONFIG_NETFILTER_NETLINK=m
329CONFIG_NETFILTER_NETLINK_QUEUE=m
330CONFIG_NETFILTER_NETLINK_LOG=m
331CONFIG_NF_CONNTRACK_ENABLED=m
332CONFIG_NF_CONNTRACK_SUPPORT=y
333# CONFIG_IP_NF_CONNTRACK_SUPPORT is not set
334CONFIG_NF_CONNTRACK=m
335CONFIG_NF_CT_ACCT=y
336CONFIG_NF_CONNTRACK_MARK=y
337CONFIG_NF_CONNTRACK_SECMARK=y
338CONFIG_NF_CONNTRACK_EVENTS=y
339CONFIG_NF_CT_PROTO_GRE=m
340CONFIG_NF_CT_PROTO_SCTP=m
341CONFIG_NF_CONNTRACK_AMANDA=m
342CONFIG_NF_CONNTRACK_FTP=m
343CONFIG_NF_CONNTRACK_H323=m
344CONFIG_NF_CONNTRACK_IRC=m
345# CONFIG_NF_CONNTRACK_NETBIOS_NS is not set
346CONFIG_NF_CONNTRACK_PPTP=m
347CONFIG_NF_CONNTRACK_SANE=m
348CONFIG_NF_CONNTRACK_SIP=m
349CONFIG_NF_CONNTRACK_TFTP=m
350CONFIG_NF_CT_NETLINK=m
351CONFIG_NETFILTER_XTABLES=m
352CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
353CONFIG_NETFILTER_XT_TARGET_MARK=m
354CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
355CONFIG_NETFILTER_XT_TARGET_NFLOG=m
356CONFIG_NETFILTER_XT_TARGET_SECMARK=m
357CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m
358CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
359CONFIG_NETFILTER_XT_MATCH_COMMENT=m
360CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
361CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
362CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
363CONFIG_NETFILTER_XT_MATCH_DCCP=m
364CONFIG_NETFILTER_XT_MATCH_DSCP=m
365CONFIG_NETFILTER_XT_MATCH_ESP=m
366CONFIG_NETFILTER_XT_MATCH_HELPER=m
367CONFIG_NETFILTER_XT_MATCH_LENGTH=m
368CONFIG_NETFILTER_XT_MATCH_LIMIT=m
369CONFIG_NETFILTER_XT_MATCH_MAC=m
370CONFIG_NETFILTER_XT_MATCH_MARK=m
371CONFIG_NETFILTER_XT_MATCH_POLICY=m
372CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
373CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
374CONFIG_NETFILTER_XT_MATCH_QUOTA=m
375CONFIG_NETFILTER_XT_MATCH_REALM=m
376CONFIG_NETFILTER_XT_MATCH_SCTP=m
377CONFIG_NETFILTER_XT_MATCH_STATE=m
378CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
379CONFIG_NETFILTER_XT_MATCH_STRING=m
380CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
381CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
382
383#
384# IP: Netfilter Configuration
385#
386CONFIG_NF_CONNTRACK_IPV4=m
387CONFIG_NF_CONNTRACK_PROC_COMPAT=y
388# CONFIG_IP_NF_QUEUE is not set
389# CONFIG_IP_NF_IPTABLES is not set
390# CONFIG_IP_NF_ARPTABLES is not set
391
392#
393# DCCP Configuration (EXPERIMENTAL)
394#
395# CONFIG_IP_DCCP is not set 408# CONFIG_IP_DCCP is not set
396
397#
398# SCTP Configuration (EXPERIMENTAL)
399#
400# CONFIG_IP_SCTP is not set 409# CONFIG_IP_SCTP is not set
401 410# CONFIG_RDS is not set
402#
403# TIPC Configuration (EXPERIMENTAL)
404#
405# CONFIG_TIPC is not set 411# CONFIG_TIPC is not set
406# CONFIG_ATM is not set 412# CONFIG_ATM is not set
407# CONFIG_BRIDGE is not set 413# CONFIG_BRIDGE is not set
414# CONFIG_NET_DSA is not set
408# CONFIG_VLAN_8021Q is not set 415# CONFIG_VLAN_8021Q is not set
409# CONFIG_DECNET is not set 416# CONFIG_DECNET is not set
410# CONFIG_LLC2 is not set 417# CONFIG_LLC2 is not set
@@ -414,27 +421,24 @@ CONFIG_NF_CONNTRACK_PROC_COMPAT=y
414# CONFIG_LAPB is not set 421# CONFIG_LAPB is not set
415# CONFIG_ECONET is not set 422# CONFIG_ECONET is not set
416# CONFIG_WAN_ROUTER is not set 423# CONFIG_WAN_ROUTER is not set
417 424# CONFIG_PHONET is not set
418# 425# CONFIG_IEEE802154 is not set
419# QoS and/or fair queueing
420#
421# CONFIG_NET_SCHED is not set 426# CONFIG_NET_SCHED is not set
422CONFIG_NET_CLS_ROUTE=y 427# CONFIG_DCB is not set
423 428
424# 429#
425# Network testing 430# Network testing
426# 431#
427# CONFIG_NET_PKTGEN is not set 432# CONFIG_NET_PKTGEN is not set
428# CONFIG_HAMRADIO is not set 433# CONFIG_HAMRADIO is not set
434# CONFIG_CAN is not set
429# CONFIG_IRDA is not set 435# CONFIG_IRDA is not set
430# CONFIG_BT is not set 436# CONFIG_BT is not set
431CONFIG_IEEE80211=m 437# CONFIG_AF_RXRPC is not set
432# CONFIG_IEEE80211_DEBUG is not set 438# CONFIG_WIRELESS is not set
433CONFIG_IEEE80211_CRYPT_WEP=m 439# CONFIG_WIMAX is not set
434CONFIG_IEEE80211_CRYPT_CCMP=m 440# CONFIG_RFKILL is not set
435CONFIG_IEEE80211_SOFTMAC=m 441# CONFIG_NET_9P is not set
436# CONFIG_IEEE80211_SOFTMAC_DEBUG is not set
437CONFIG_WIRELESS_EXT=y
438 442
439# 443#
440# Device Drivers 444# Device Drivers
@@ -443,25 +447,25 @@ CONFIG_WIRELESS_EXT=y
443# 447#
444# Generic Driver Options 448# Generic Driver Options
445# 449#
450CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
451# CONFIG_DEVTMPFS is not set
446CONFIG_STANDALONE=y 452CONFIG_STANDALONE=y
447CONFIG_PREVENT_FIRMWARE_BUILD=y 453CONFIG_PREVENT_FIRMWARE_BUILD=y
448CONFIG_FW_LOADER=m 454CONFIG_FW_LOADER=y
455CONFIG_FIRMWARE_IN_KERNEL=y
456CONFIG_EXTRA_FIRMWARE=""
457# CONFIG_DEBUG_DRIVER is not set
458# CONFIG_DEBUG_DEVRES is not set
449# CONFIG_SYS_HYPERVISOR is not set 459# CONFIG_SYS_HYPERVISOR is not set
450 460# CONFIG_CONNECTOR is not set
451#
452# Connector - unified userspace <-> kernelspace linker
453#
454CONFIG_CONNECTOR=m
455
456#
457# Memory Technology Devices (MTD)
458#
459CONFIG_MTD=y 461CONFIG_MTD=y
460# CONFIG_MTD_DEBUG is not set 462# CONFIG_MTD_DEBUG is not set
463# CONFIG_MTD_TESTS is not set
461# CONFIG_MTD_CONCAT is not set 464# CONFIG_MTD_CONCAT is not set
462CONFIG_MTD_PARTITIONS=y 465CONFIG_MTD_PARTITIONS=y
463# CONFIG_MTD_REDBOOT_PARTS is not set 466# CONFIG_MTD_REDBOOT_PARTS is not set
464# CONFIG_MTD_CMDLINE_PARTS is not set 467# CONFIG_MTD_CMDLINE_PARTS is not set
468# CONFIG_MTD_AR7_PARTS is not set
465 469
466# 470#
467# User Modules And Translation Layers 471# User Modules And Translation Layers
@@ -474,6 +478,7 @@ CONFIG_MTD_BLOCK=y
474# CONFIG_INFTL is not set 478# CONFIG_INFTL is not set
475# CONFIG_RFD_FTL is not set 479# CONFIG_RFD_FTL is not set
476# CONFIG_SSFDC is not set 480# CONFIG_SSFDC is not set
481# CONFIG_MTD_OOPS is not set
477 482
478# 483#
479# RAM/ROM/Flash chip drivers 484# RAM/ROM/Flash chip drivers
@@ -499,14 +504,14 @@ CONFIG_MTD_CFI_UTIL=y
499# CONFIG_MTD_RAM is not set 504# CONFIG_MTD_RAM is not set
500# CONFIG_MTD_ROM is not set 505# CONFIG_MTD_ROM is not set
501# CONFIG_MTD_ABSENT is not set 506# CONFIG_MTD_ABSENT is not set
502# CONFIG_MTD_OBSOLETE_CHIPS is not set
503 507
504# 508#
505# Mapping drivers for chip access 509# Mapping drivers for chip access
506# 510#
507# CONFIG_MTD_COMPLEX_MAPPINGS is not set 511# CONFIG_MTD_COMPLEX_MAPPINGS is not set
508# CONFIG_MTD_PHYSMAP is not set 512CONFIG_MTD_PHYSMAP=y
509CONFIG_MTD_ALCHEMY=y 513# CONFIG_MTD_PHYSMAP_COMPAT is not set
514# CONFIG_MTD_INTEL_VR_NOR is not set
510# CONFIG_MTD_PLATRAM is not set 515# CONFIG_MTD_PLATRAM is not set
511 516
512# 517#
@@ -524,30 +529,20 @@ CONFIG_MTD_ALCHEMY=y
524# CONFIG_MTD_DOC2000 is not set 529# CONFIG_MTD_DOC2000 is not set
525# CONFIG_MTD_DOC2001 is not set 530# CONFIG_MTD_DOC2001 is not set
526# CONFIG_MTD_DOC2001PLUS is not set 531# CONFIG_MTD_DOC2001PLUS is not set
527
528#
529# NAND Flash Device Drivers
530#
531# CONFIG_MTD_NAND is not set 532# CONFIG_MTD_NAND is not set
532
533#
534# OneNAND Flash Device Drivers
535#
536# CONFIG_MTD_ONENAND is not set 533# CONFIG_MTD_ONENAND is not set
537 534
538# 535#
539# Parallel port support 536# LPDDR flash memory drivers
540# 537#
541# CONFIG_PARPORT is not set 538# CONFIG_MTD_LPDDR is not set
542 539
543# 540#
544# Plug and Play support 541# UBI - Unsorted block images
545#
546# CONFIG_PNPACPI is not set
547
548#
549# Block devices
550# 542#
543# CONFIG_MTD_UBI is not set
544# CONFIG_PARPORT is not set
545CONFIG_BLK_DEV=y
551# CONFIG_BLK_CPQ_DA is not set 546# CONFIG_BLK_CPQ_DA is not set
552# CONFIG_BLK_CPQ_CISS_DA is not set 547# CONFIG_BLK_CPQ_CISS_DA is not set
553# CONFIG_BLK_DEV_DAC960 is not set 548# CONFIG_BLK_DEV_DAC960 is not set
@@ -555,67 +550,66 @@ CONFIG_MTD_ALCHEMY=y
555# CONFIG_BLK_DEV_COW_COMMON is not set 550# CONFIG_BLK_DEV_COW_COMMON is not set
556CONFIG_BLK_DEV_LOOP=y 551CONFIG_BLK_DEV_LOOP=y
557# CONFIG_BLK_DEV_CRYPTOLOOP is not set 552# CONFIG_BLK_DEV_CRYPTOLOOP is not set
558# CONFIG_BLK_DEV_NBD is not set
559# CONFIG_BLK_DEV_SX8 is not set
560# CONFIG_BLK_DEV_RAM is not set
561# CONFIG_BLK_DEV_INITRD is not set
562CONFIG_CDROM_PKTCDVD=m
563CONFIG_CDROM_PKTCDVD_BUFFERS=8
564# CONFIG_CDROM_PKTCDVD_WCACHE is not set
565CONFIG_ATA_OVER_ETH=m
566
567#
568# Misc devices
569#
570CONFIG_SGI_IOC4=m
571# CONFIG_TIFM_CORE is not set
572 553
573# 554#
574# ATA/ATAPI/MFM/RLL support 555# DRBD disabled because PROC_FS, INET or CONNECTOR not selected
575# 556#
557# CONFIG_BLK_DEV_NBD is not set
558# CONFIG_BLK_DEV_SX8 is not set
559CONFIG_BLK_DEV_UB=y
560# CONFIG_BLK_DEV_RAM is not set
561# CONFIG_CDROM_PKTCDVD is not set
562# CONFIG_ATA_OVER_ETH is not set
563# CONFIG_BLK_DEV_HD is not set
564# CONFIG_MISC_DEVICES is not set
565CONFIG_HAVE_IDE=y
576CONFIG_IDE=y 566CONFIG_IDE=y
577CONFIG_IDE_MAX_HWIFS=4
578CONFIG_BLK_DEV_IDE=y
579 567
580# 568#
581# Please see Documentation/ide.txt for help/info on IDE drives 569# Please see Documentation/ide/ide.txt for help/info on IDE drives
582# 570#
571CONFIG_IDE_XFER_MODE=y
572CONFIG_IDE_ATAPI=y
583# CONFIG_BLK_DEV_IDE_SATA is not set 573# CONFIG_BLK_DEV_IDE_SATA is not set
584CONFIG_BLK_DEV_IDEDISK=y 574CONFIG_IDE_GD=y
585# CONFIG_IDEDISK_MULTI_MODE is not set 575CONFIG_IDE_GD_ATA=y
586CONFIG_BLK_DEV_IDECS=m 576# CONFIG_IDE_GD_ATAPI is not set
587# CONFIG_BLK_DEV_DELKIN is not set 577CONFIG_BLK_DEV_IDECS=y
588# CONFIG_BLK_DEV_IDECD is not set 578CONFIG_BLK_DEV_IDECD=y
579CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y
589# CONFIG_BLK_DEV_IDETAPE is not set 580# CONFIG_BLK_DEV_IDETAPE is not set
590# CONFIG_BLK_DEV_IDEFLOPPY is not set 581CONFIG_IDE_TASK_IOCTL=y
591# CONFIG_IDE_TASK_IOCTL is not set 582CONFIG_IDE_PROC_FS=y
592 583
593# 584#
594# IDE chipset support/bugfixes 585# IDE chipset support/bugfixes
595# 586#
596CONFIG_IDE_GENERIC=y 587# CONFIG_IDE_GENERIC is not set
588# CONFIG_BLK_DEV_PLATFORM is not set
589CONFIG_BLK_DEV_IDEDMA_SFF=y
590
591#
592# PCI IDE chipsets support
593#
597CONFIG_BLK_DEV_IDEPCI=y 594CONFIG_BLK_DEV_IDEPCI=y
598# CONFIG_IDEPCI_SHARE_IRQ is not set 595# CONFIG_IDEPCI_PCIBUS_ORDER is not set
599# CONFIG_BLK_DEV_OFFBOARD is not set 596# CONFIG_BLK_DEV_OFFBOARD is not set
600CONFIG_BLK_DEV_GENERIC=y 597# CONFIG_BLK_DEV_GENERIC is not set
601# CONFIG_BLK_DEV_OPTI621 is not set 598# CONFIG_BLK_DEV_OPTI621 is not set
602CONFIG_BLK_DEV_IDEDMA_PCI=y 599CONFIG_BLK_DEV_IDEDMA_PCI=y
603# CONFIG_BLK_DEV_IDEDMA_FORCED is not set
604# CONFIG_IDEDMA_PCI_AUTO is not set
605# CONFIG_BLK_DEV_AEC62XX is not set 600# CONFIG_BLK_DEV_AEC62XX is not set
606# CONFIG_BLK_DEV_ALI15X3 is not set 601# CONFIG_BLK_DEV_ALI15X3 is not set
607# CONFIG_BLK_DEV_AMD74XX is not set 602# CONFIG_BLK_DEV_AMD74XX is not set
608# CONFIG_BLK_DEV_CMD64X is not set 603# CONFIG_BLK_DEV_CMD64X is not set
609# CONFIG_BLK_DEV_TRIFLEX is not set 604# CONFIG_BLK_DEV_TRIFLEX is not set
610# CONFIG_BLK_DEV_CY82C693 is not set
611# CONFIG_BLK_DEV_CS5520 is not set 605# CONFIG_BLK_DEV_CS5520 is not set
612# CONFIG_BLK_DEV_CS5530 is not set 606# CONFIG_BLK_DEV_CS5530 is not set
613# CONFIG_BLK_DEV_HPT34X is not set
614CONFIG_BLK_DEV_HPT366=y 607CONFIG_BLK_DEV_HPT366=y
615# CONFIG_BLK_DEV_JMICRON is not set 608# CONFIG_BLK_DEV_JMICRON is not set
616# CONFIG_BLK_DEV_SC1200 is not set 609# CONFIG_BLK_DEV_SC1200 is not set
617# CONFIG_BLK_DEV_PIIX is not set 610# CONFIG_BLK_DEV_PIIX is not set
618CONFIG_BLK_DEV_IT8213=m 611# CONFIG_BLK_DEV_IT8172 is not set
612# CONFIG_BLK_DEV_IT8213 is not set
619# CONFIG_BLK_DEV_IT821X is not set 613# CONFIG_BLK_DEV_IT821X is not set
620# CONFIG_BLK_DEV_NS87415 is not set 614# CONFIG_BLK_DEV_NS87415 is not set
621# CONFIG_BLK_DEV_PDC202XX_OLD is not set 615# CONFIG_BLK_DEV_PDC202XX_OLD is not set
@@ -625,82 +619,65 @@ CONFIG_BLK_DEV_IT8213=m
625# CONFIG_BLK_DEV_SLC90E66 is not set 619# CONFIG_BLK_DEV_SLC90E66 is not set
626# CONFIG_BLK_DEV_TRM290 is not set 620# CONFIG_BLK_DEV_TRM290 is not set
627# CONFIG_BLK_DEV_VIA82CXXX is not set 621# CONFIG_BLK_DEV_VIA82CXXX is not set
628CONFIG_BLK_DEV_TC86C001=m 622# CONFIG_BLK_DEV_TC86C001 is not set
629# CONFIG_IDE_ARM is not set
630CONFIG_BLK_DEV_IDEDMA=y 623CONFIG_BLK_DEV_IDEDMA=y
631# CONFIG_IDEDMA_IVB is not set
632# CONFIG_IDEDMA_AUTO is not set
633# CONFIG_BLK_DEV_HD is not set
634 624
635# 625#
636# SCSI device support 626# SCSI device support
637# 627#
638CONFIG_RAID_ATTRS=m 628# CONFIG_RAID_ATTRS is not set
639# CONFIG_SCSI is not set 629# CONFIG_SCSI is not set
630# CONFIG_SCSI_DMA is not set
640# CONFIG_SCSI_NETLINK is not set 631# CONFIG_SCSI_NETLINK is not set
641
642#
643# Serial ATA (prod) and Parallel ATA (experimental) drivers
644#
645# CONFIG_ATA is not set 632# CONFIG_ATA is not set
646
647#
648# Multi-device support (RAID and LVM)
649#
650# CONFIG_MD is not set 633# CONFIG_MD is not set
651
652#
653# Fusion MPT device support
654#
655# CONFIG_FUSION is not set 634# CONFIG_FUSION is not set
656 635
657# 636#
658# IEEE 1394 (FireWire) support 637# IEEE 1394 (FireWire) support
659# 638#
660# CONFIG_IEEE1394 is not set
661 639
662# 640#
663# I2O device support 641# You can enable one or both FireWire driver stacks.
664# 642#
665# CONFIG_I2O is not set
666 643
667# 644#
668# Network device support 645# The newer stack is recommended.
669# 646#
647# CONFIG_FIREWIRE is not set
648# CONFIG_IEEE1394 is not set
649# CONFIG_I2O is not set
670CONFIG_NETDEVICES=y 650CONFIG_NETDEVICES=y
671# CONFIG_DUMMY is not set 651# CONFIG_DUMMY is not set
672# CONFIG_BONDING is not set 652# CONFIG_BONDING is not set
653# CONFIG_MACVLAN is not set
673# CONFIG_EQUALIZER is not set 654# CONFIG_EQUALIZER is not set
674# CONFIG_TUN is not set 655# CONFIG_TUN is not set
675 656# CONFIG_VETH is not set
676#
677# ARCnet devices
678#
679# CONFIG_ARCNET is not set 657# CONFIG_ARCNET is not set
680
681#
682# PHY device support
683#
684CONFIG_PHYLIB=y 658CONFIG_PHYLIB=y
685 659
686# 660#
687# MII PHY device drivers 661# MII PHY device drivers
688# 662#
689CONFIG_MARVELL_PHY=m 663CONFIG_MARVELL_PHY=y
690CONFIG_DAVICOM_PHY=m 664CONFIG_DAVICOM_PHY=y
691CONFIG_QSEMI_PHY=m 665CONFIG_QSEMI_PHY=y
692CONFIG_LXT_PHY=m 666CONFIG_LXT_PHY=y
693CONFIG_CICADA_PHY=m 667CONFIG_CICADA_PHY=y
694CONFIG_VITESSE_PHY=m 668CONFIG_VITESSE_PHY=y
695CONFIG_SMSC_PHY=m 669CONFIG_SMSC_PHY=y
696# CONFIG_BROADCOM_PHY is not set 670CONFIG_BROADCOM_PHY=y
671CONFIG_ICPLUS_PHY=y
672CONFIG_REALTEK_PHY=y
673CONFIG_NATIONAL_PHY=y
674CONFIG_STE10XP=y
675CONFIG_LSI_ET1011C_PHY=y
697# CONFIG_FIXED_PHY is not set 676# CONFIG_FIXED_PHY is not set
698 677# CONFIG_MDIO_BITBANG is not set
699#
700# Ethernet (10 or 100Mbit)
701#
702CONFIG_NET_ETHERNET=y 678CONFIG_NET_ETHERNET=y
703CONFIG_MII=m 679CONFIG_MII=y
680# CONFIG_AX88796 is not set
704CONFIG_MIPS_AU1X00_ENET=y 681CONFIG_MIPS_AU1X00_ENET=y
705# CONFIG_HAPPYMEAL is not set 682# CONFIG_HAPPYMEAL is not set
706# CONFIG_SUNGEM is not set 683# CONFIG_SUNGEM is not set
@@ -708,96 +685,51 @@ CONFIG_MIPS_AU1X00_ENET=y
708# CONFIG_NET_VENDOR_3COM is not set 685# CONFIG_NET_VENDOR_3COM is not set
709# CONFIG_SMC91X is not set 686# CONFIG_SMC91X is not set
710# CONFIG_DM9000 is not set 687# CONFIG_DM9000 is not set
711 688# CONFIG_ETHOC is not set
712# 689# CONFIG_SMSC911X is not set
713# Tulip family network device support 690# CONFIG_DNET is not set
714#
715# CONFIG_NET_TULIP is not set 691# CONFIG_NET_TULIP is not set
716# CONFIG_HP100 is not set 692# CONFIG_HP100 is not set
693# CONFIG_IBM_NEW_EMAC_ZMII is not set
694# CONFIG_IBM_NEW_EMAC_RGMII is not set
695# CONFIG_IBM_NEW_EMAC_TAH is not set
696# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
697# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
698# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
699# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
717# CONFIG_NET_PCI is not set 700# CONFIG_NET_PCI is not set
718 701# CONFIG_B44 is not set
719# 702# CONFIG_KS8842 is not set
720# Ethernet (1000 Mbit) 703# CONFIG_KS8851_MLL is not set
721# 704# CONFIG_ATL2 is not set
722# CONFIG_ACENIC is not set 705# CONFIG_NETDEV_1000 is not set
723# CONFIG_DL2K is not set 706# CONFIG_NETDEV_10000 is not set
724# CONFIG_E1000 is not set
725# CONFIG_NS83820 is not set
726# CONFIG_HAMACHI is not set
727# CONFIG_YELLOWFIN is not set
728# CONFIG_R8169 is not set
729# CONFIG_SIS190 is not set
730# CONFIG_SKGE is not set
731# CONFIG_SKY2 is not set
732# CONFIG_SK98LIN is not set
733# CONFIG_TIGON3 is not set
734# CONFIG_BNX2 is not set
735CONFIG_QLA3XXX=m
736# CONFIG_ATL1 is not set
737
738#
739# Ethernet (10000 Mbit)
740#
741# CONFIG_CHELSIO_T1 is not set
742CONFIG_CHELSIO_T3=m
743# CONFIG_IXGB is not set
744# CONFIG_S2IO is not set
745# CONFIG_MYRI10GE is not set
746CONFIG_NETXEN_NIC=m
747
748#
749# Token Ring devices
750#
751# CONFIG_TR is not set 707# CONFIG_TR is not set
708# CONFIG_WLAN is not set
752 709
753# 710#
754# Wireless LAN (non-hamradio) 711# Enable WiMAX (Networking options) to see the WiMAX drivers
755# 712#
756# CONFIG_NET_RADIO is not set
757 713
758# 714#
759# PCMCIA network device support 715# USB Network Adapters
760#
761CONFIG_NET_PCMCIA=y
762CONFIG_PCMCIA_3C589=m
763CONFIG_PCMCIA_3C574=m
764CONFIG_PCMCIA_FMVJ18X=m
765CONFIG_PCMCIA_PCNET=m
766CONFIG_PCMCIA_NMCLAN=m
767CONFIG_PCMCIA_SMC91C92=m
768CONFIG_PCMCIA_XIRC2PS=m
769CONFIG_PCMCIA_AXNET=m
770
771#
772# Wan interfaces
773# 716#
717# CONFIG_USB_CATC is not set
718# CONFIG_USB_KAWETH is not set
719# CONFIG_USB_PEGASUS is not set
720# CONFIG_USB_RTL8150 is not set
721# CONFIG_USB_USBNET is not set
722# CONFIG_NET_PCMCIA is not set
774# CONFIG_WAN is not set 723# CONFIG_WAN is not set
775# CONFIG_FDDI is not set 724# CONFIG_FDDI is not set
776# CONFIG_HIPPI is not set 725# CONFIG_HIPPI is not set
777CONFIG_PPP=m 726# CONFIG_PPP is not set
778CONFIG_PPP_MULTILINK=y
779# CONFIG_PPP_FILTER is not set
780CONFIG_PPP_ASYNC=m
781# CONFIG_PPP_SYNC_TTY is not set
782CONFIG_PPP_DEFLATE=m
783# CONFIG_PPP_BSDCOMP is not set
784CONFIG_PPP_MPPE=m
785CONFIG_PPPOE=m
786# CONFIG_SLIP is not set 727# CONFIG_SLIP is not set
787CONFIG_SLHC=m
788# CONFIG_SHAPER is not set
789# CONFIG_NETCONSOLE is not set 728# CONFIG_NETCONSOLE is not set
790# CONFIG_NETPOLL is not set 729# CONFIG_NETPOLL is not set
791# CONFIG_NET_POLL_CONTROLLER is not set 730# CONFIG_NET_POLL_CONTROLLER is not set
792 731# CONFIG_VMXNET3 is not set
793#
794# ISDN subsystem
795#
796# CONFIG_ISDN is not set 732# CONFIG_ISDN is not set
797
798#
799# Telephony Support
800#
801# CONFIG_PHONE is not set 733# CONFIG_PHONE is not set
802 734
803# 735#
@@ -805,16 +737,14 @@ CONFIG_SLHC=m
805# 737#
806CONFIG_INPUT=y 738CONFIG_INPUT=y
807# CONFIG_INPUT_FF_MEMLESS is not set 739# CONFIG_INPUT_FF_MEMLESS is not set
740# CONFIG_INPUT_POLLDEV is not set
741# CONFIG_INPUT_SPARSEKMAP is not set
808 742
809# 743#
810# Userland interfaces 744# Userland interfaces
811# 745#
812CONFIG_INPUT_MOUSEDEV=y 746# CONFIG_INPUT_MOUSEDEV is not set
813CONFIG_INPUT_MOUSEDEV_PSAUX=y
814CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
815CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
816# CONFIG_INPUT_JOYDEV is not set 747# CONFIG_INPUT_JOYDEV is not set
817# CONFIG_INPUT_TSDEV is not set
818CONFIG_INPUT_EVDEV=y 748CONFIG_INPUT_EVDEV=y
819# CONFIG_INPUT_EVBUG is not set 749# CONFIG_INPUT_EVBUG is not set
820 750
@@ -824,33 +754,34 @@ CONFIG_INPUT_EVDEV=y
824# CONFIG_INPUT_KEYBOARD is not set 754# CONFIG_INPUT_KEYBOARD is not set
825# CONFIG_INPUT_MOUSE is not set 755# CONFIG_INPUT_MOUSE is not set
826# CONFIG_INPUT_JOYSTICK is not set 756# CONFIG_INPUT_JOYSTICK is not set
757# CONFIG_INPUT_TABLET is not set
827# CONFIG_INPUT_TOUCHSCREEN is not set 758# CONFIG_INPUT_TOUCHSCREEN is not set
828# CONFIG_INPUT_MISC is not set 759# CONFIG_INPUT_MISC is not set
829 760
830# 761#
831# Hardware I/O ports 762# Hardware I/O ports
832# 763#
833CONFIG_SERIO=y 764# CONFIG_SERIO is not set
834# CONFIG_SERIO_I8042 is not set
835CONFIG_SERIO_SERPORT=y
836# CONFIG_SERIO_PCIPS2 is not set
837# CONFIG_SERIO_LIBPS2 is not set
838CONFIG_SERIO_RAW=m
839# CONFIG_GAMEPORT is not set 765# CONFIG_GAMEPORT is not set
840 766
841# 767#
842# Character devices 768# Character devices
843# 769#
844# CONFIG_VT is not set 770CONFIG_VT=y
771CONFIG_CONSOLE_TRANSLATIONS=y
772CONFIG_VT_CONSOLE=y
773CONFIG_HW_CONSOLE=y
774CONFIG_VT_HW_CONSOLE_BINDING=y
775CONFIG_DEVKMEM=y
845# CONFIG_SERIAL_NONSTANDARD is not set 776# CONFIG_SERIAL_NONSTANDARD is not set
846# CONFIG_AU1X00_GPIO is not set 777# CONFIG_NOZOMI is not set
847 778
848# 779#
849# Serial drivers 780# Serial drivers
850# 781#
851CONFIG_SERIAL_8250=y 782CONFIG_SERIAL_8250=y
852CONFIG_SERIAL_8250_CONSOLE=y 783CONFIG_SERIAL_8250_CONSOLE=y
853CONFIG_SERIAL_8250_PCI=y 784# CONFIG_SERIAL_8250_PCI is not set
854# CONFIG_SERIAL_8250_CS is not set 785# CONFIG_SERIAL_8250_CS is not set
855CONFIG_SERIAL_8250_NR_UARTS=4 786CONFIG_SERIAL_8250_NR_UARTS=4
856CONFIG_SERIAL_8250_RUNTIME_UARTS=4 787CONFIG_SERIAL_8250_RUNTIME_UARTS=4
@@ -864,282 +795,450 @@ CONFIG_SERIAL_CORE=y
864CONFIG_SERIAL_CORE_CONSOLE=y 795CONFIG_SERIAL_CORE_CONSOLE=y
865# CONFIG_SERIAL_JSM is not set 796# CONFIG_SERIAL_JSM is not set
866CONFIG_UNIX98_PTYS=y 797CONFIG_UNIX98_PTYS=y
867CONFIG_LEGACY_PTYS=y 798# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
868CONFIG_LEGACY_PTY_COUNT=256 799# CONFIG_LEGACY_PTYS is not set
869
870#
871# IPMI
872#
873# CONFIG_IPMI_HANDLER is not set 800# CONFIG_IPMI_HANDLER is not set
874
875#
876# Watchdog Cards
877#
878# CONFIG_WATCHDOG is not set
879# CONFIG_HW_RANDOM is not set 801# CONFIG_HW_RANDOM is not set
880# CONFIG_RTC is not set
881# CONFIG_GEN_RTC is not set
882# CONFIG_DTLK is not set
883# CONFIG_R3964 is not set 802# CONFIG_R3964 is not set
884# CONFIG_APPLICOM is not set 803# CONFIG_APPLICOM is not set
885# CONFIG_DRM is not set
886 804
887# 805#
888# PCMCIA character devices 806# PCMCIA character devices
889# 807#
890CONFIG_SYNCLINK_CS=m 808# CONFIG_SYNCLINK_CS is not set
891# CONFIG_CARDMAN_4000 is not set 809# CONFIG_CARDMAN_4000 is not set
892# CONFIG_CARDMAN_4040 is not set 810# CONFIG_CARDMAN_4040 is not set
811# CONFIG_IPWIRELESS is not set
893# CONFIG_RAW_DRIVER is not set 812# CONFIG_RAW_DRIVER is not set
894
895#
896# TPM devices
897#
898# CONFIG_TCG_TPM is not set 813# CONFIG_TCG_TPM is not set
899 814CONFIG_DEVPORT=y
900#
901# I2C support
902#
903# CONFIG_I2C is not set 815# CONFIG_I2C is not set
904
905#
906# SPI support
907#
908# CONFIG_SPI is not set 816# CONFIG_SPI is not set
909# CONFIG_SPI_MASTER is not set
910 817
911# 818#
912# Dallas's 1-wire bus 819# PPS support
913# 820#
821# CONFIG_PPS is not set
822CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
823# CONFIG_GPIOLIB is not set
914# CONFIG_W1 is not set 824# CONFIG_W1 is not set
915 825# CONFIG_POWER_SUPPLY is not set
916#
917# Hardware Monitoring support
918#
919# CONFIG_HWMON is not set 826# CONFIG_HWMON is not set
920# CONFIG_HWMON_VID is not set 827# CONFIG_THERMAL is not set
828# CONFIG_WATCHDOG is not set
829CONFIG_SSB_POSSIBLE=y
921 830
922# 831#
923# Multimedia devices 832# Sonics Silicon Backplane
924# 833#
925# CONFIG_VIDEO_DEV is not set 834# CONFIG_SSB is not set
926 835
927# 836#
928# Digital Video Broadcasting Devices 837# Multifunction device drivers
929# 838#
930# CONFIG_DVB is not set 839# CONFIG_MFD_CORE is not set
840# CONFIG_MFD_SM501 is not set
841# CONFIG_HTC_PASIC3 is not set
842# CONFIG_MFD_TMIO is not set
843# CONFIG_REGULATOR is not set
844# CONFIG_MEDIA_SUPPORT is not set
931 845
932# 846#
933# Graphics support 847# Graphics support
934# 848#
935# CONFIG_FIRMWARE_EDID is not set 849# CONFIG_VGA_ARB is not set
936# CONFIG_FB is not set 850# CONFIG_DRM is not set
851# CONFIG_VGASTATE is not set
852# CONFIG_VIDEO_OUTPUT_CONTROL is not set
853CONFIG_FB=y
854CONFIG_FIRMWARE_EDID=y
855# CONFIG_FB_DDC is not set
856# CONFIG_FB_BOOT_VESA_SUPPORT is not set
857CONFIG_FB_CFB_FILLRECT=y
858CONFIG_FB_CFB_COPYAREA=y
859CONFIG_FB_CFB_IMAGEBLIT=y
860# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
861# CONFIG_FB_SYS_FILLRECT is not set
862# CONFIG_FB_SYS_COPYAREA is not set
863# CONFIG_FB_SYS_IMAGEBLIT is not set
864# CONFIG_FB_FOREIGN_ENDIAN is not set
865# CONFIG_FB_SYS_FOPS is not set
866# CONFIG_FB_SVGALIB is not set
867# CONFIG_FB_MACMODES is not set
868# CONFIG_FB_BACKLIGHT is not set
869CONFIG_FB_MODE_HELPERS=y
870CONFIG_FB_TILEBLITTING=y
871
872#
873# Frame buffer hardware drivers
874#
875# CONFIG_FB_CIRRUS is not set
876# CONFIG_FB_PM2 is not set
877# CONFIG_FB_CYBER2000 is not set
878# CONFIG_FB_ASILIANT is not set
879# CONFIG_FB_IMSTT is not set
880CONFIG_FB_S1D13XXX=y
881# CONFIG_FB_NVIDIA is not set
882# CONFIG_FB_RIVA is not set
883# CONFIG_FB_MATROX is not set
884# CONFIG_FB_RADEON is not set
885# CONFIG_FB_ATY128 is not set
886# CONFIG_FB_ATY is not set
887# CONFIG_FB_S3 is not set
888# CONFIG_FB_SAVAGE is not set
889# CONFIG_FB_SIS is not set
890# CONFIG_FB_VIA is not set
891# CONFIG_FB_NEOMAGIC is not set
892# CONFIG_FB_KYRO is not set
893# CONFIG_FB_3DFX is not set
894# CONFIG_FB_VOODOO1 is not set
895# CONFIG_FB_VT8623 is not set
896# CONFIG_FB_TRIDENT is not set
897# CONFIG_FB_ARK is not set
898# CONFIG_FB_PM3 is not set
899# CONFIG_FB_CARMINE is not set
900# CONFIG_FB_VIRTUAL is not set
901# CONFIG_FB_METRONOME is not set
902# CONFIG_FB_MB862XX is not set
903# CONFIG_FB_BROADSHEET is not set
937# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 904# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
938 905
939# 906#
940# Sound 907# Display device support
941# 908#
942# CONFIG_SOUND is not set 909# CONFIG_DISPLAY_SUPPORT is not set
943
944#
945# HID Devices
946#
947# CONFIG_HID is not set
948 910
949# 911#
950# USB support 912# Console display driver support
951# 913#
914CONFIG_VGA_CONSOLE=y
915# CONFIG_VGACON_SOFT_SCROLLBACK is not set
916CONFIG_DUMMY_CONSOLE=y
917# CONFIG_FRAMEBUFFER_CONSOLE is not set
918# CONFIG_LOGO is not set
919# CONFIG_SOUND is not set
920CONFIG_HID_SUPPORT=y
921CONFIG_HID=y
922# CONFIG_HIDRAW is not set
923
924#
925# USB Input Devices
926#
927CONFIG_USB_HID=y
928# CONFIG_HID_PID is not set
929CONFIG_USB_HIDDEV=y
930
931#
932# Special HID drivers
933#
934# CONFIG_HID_A4TECH is not set
935# CONFIG_HID_APPLE is not set
936# CONFIG_HID_BELKIN is not set
937# CONFIG_HID_CHERRY is not set
938# CONFIG_HID_CHICONY is not set
939# CONFIG_HID_CYPRESS is not set
940# CONFIG_HID_DRAGONRISE is not set
941# CONFIG_HID_EZKEY is not set
942# CONFIG_HID_KYE is not set
943# CONFIG_HID_GYRATION is not set
944# CONFIG_HID_TWINHAN is not set
945# CONFIG_HID_KENSINGTON is not set
946# CONFIG_HID_LOGITECH is not set
947# CONFIG_HID_MICROSOFT is not set
948# CONFIG_HID_MONTEREY is not set
949# CONFIG_HID_NTRIG is not set
950# CONFIG_HID_PANTHERLORD is not set
951# CONFIG_HID_PETALYNX is not set
952# CONFIG_HID_SAMSUNG is not set
953# CONFIG_HID_SONY is not set
954# CONFIG_HID_SUNPLUS is not set
955# CONFIG_HID_GREENASIA is not set
956# CONFIG_HID_SMARTJOYPLUS is not set
957# CONFIG_HID_TOPSEED is not set
958# CONFIG_HID_THRUSTMASTER is not set
959# CONFIG_HID_ZEROPLUS is not set
960CONFIG_USB_SUPPORT=y
952CONFIG_USB_ARCH_HAS_HCD=y 961CONFIG_USB_ARCH_HAS_HCD=y
953CONFIG_USB_ARCH_HAS_OHCI=y 962CONFIG_USB_ARCH_HAS_OHCI=y
954CONFIG_USB_ARCH_HAS_EHCI=y 963CONFIG_USB_ARCH_HAS_EHCI=y
955# CONFIG_USB is not set 964CONFIG_USB=y
965# CONFIG_USB_DEBUG is not set
966# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
956 967
957# 968#
958# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 969# Miscellaneous USB options
959# 970#
971# CONFIG_USB_DEVICEFS is not set
972# CONFIG_USB_DEVICE_CLASS is not set
973CONFIG_USB_DYNAMIC_MINORS=y
974# CONFIG_USB_SUSPEND is not set
975# CONFIG_USB_OTG is not set
976CONFIG_USB_OTG_WHITELIST=y
977# CONFIG_USB_OTG_BLACKLIST_HUB is not set
978# CONFIG_USB_MON is not set
979# CONFIG_USB_WUSB is not set
980# CONFIG_USB_WUSB_CBAF is not set
960 981
961# 982#
962# USB Gadget Support 983# USB Host Controller Drivers
963# 984#
964# CONFIG_USB_GADGET is not set 985# CONFIG_USB_C67X00_HCD is not set
986# CONFIG_USB_XHCI_HCD is not set
987# CONFIG_USB_EHCI_HCD is not set
988# CONFIG_USB_OXU210HP_HCD is not set
989# CONFIG_USB_ISP116X_HCD is not set
990# CONFIG_USB_ISP1760_HCD is not set
991# CONFIG_USB_ISP1362_HCD is not set
992CONFIG_USB_OHCI_HCD=y
993# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
994# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
995CONFIG_USB_OHCI_LITTLE_ENDIAN=y
996# CONFIG_USB_UHCI_HCD is not set
997# CONFIG_USB_SL811_HCD is not set
998# CONFIG_USB_R8A66597_HCD is not set
999# CONFIG_USB_WHCI_HCD is not set
1000# CONFIG_USB_HWA_HCD is not set
965 1001
966# 1002#
967# MMC/SD Card support 1003# USB Device Class drivers
968# 1004#
969# CONFIG_MMC is not set 1005# CONFIG_USB_ACM is not set
1006# CONFIG_USB_PRINTER is not set
1007# CONFIG_USB_WDM is not set
1008# CONFIG_USB_TMC is not set
970 1009
971# 1010#
972# LED devices 1011# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
973# 1012#
974# CONFIG_NEW_LEDS is not set
975 1013
976# 1014#
977# LED drivers 1015# also be needed; see USB_STORAGE Help for more info
978# 1016#
1017# CONFIG_USB_LIBUSUAL is not set
979 1018
980# 1019#
981# LED Triggers 1020# USB Imaging devices
982# 1021#
1022# CONFIG_USB_MDC800 is not set
983 1023
984# 1024#
985# InfiniBand support 1025# USB port drivers
986# 1026#
987# CONFIG_INFINIBAND is not set 1027# CONFIG_USB_SERIAL is not set
988 1028
989# 1029#
990# EDAC - error detection and reporting (RAS) (EXPERIMENTAL) 1030# USB Miscellaneous drivers
991# 1031#
1032# CONFIG_USB_EMI62 is not set
1033# CONFIG_USB_EMI26 is not set
1034# CONFIG_USB_ADUTUX is not set
1035# CONFIG_USB_SEVSEG is not set
1036# CONFIG_USB_RIO500 is not set
1037# CONFIG_USB_LEGOTOWER is not set
1038# CONFIG_USB_LCD is not set
1039# CONFIG_USB_BERRY_CHARGE is not set
1040# CONFIG_USB_LED is not set
1041# CONFIG_USB_CYPRESS_CY7C63 is not set
1042# CONFIG_USB_CYTHERM is not set
1043# CONFIG_USB_IDMOUSE is not set
1044# CONFIG_USB_FTDI_ELAN is not set
1045# CONFIG_USB_APPLEDISPLAY is not set
1046# CONFIG_USB_LD is not set
1047# CONFIG_USB_TRANCEVIBRATOR is not set
1048# CONFIG_USB_IOWARRIOR is not set
1049# CONFIG_USB_TEST is not set
1050# CONFIG_USB_ISIGHTFW is not set
1051# CONFIG_USB_VST is not set
1052# CONFIG_USB_GADGET is not set
992 1053
993# 1054#
994# Real Time Clock 1055# OTG and related infrastructure
995# 1056#
996# CONFIG_RTC_CLASS is not set 1057# CONFIG_USB_GPIO_VBUS is not set
1058# CONFIG_NOP_USB_XCEIV is not set
1059# CONFIG_UWB is not set
1060# CONFIG_MMC is not set
1061# CONFIG_MEMSTICK is not set
1062# CONFIG_NEW_LEDS is not set
1063# CONFIG_ACCESSIBILITY is not set
1064# CONFIG_INFINIBAND is not set
1065CONFIG_RTC_LIB=y
1066CONFIG_RTC_CLASS=y
1067CONFIG_RTC_HCTOSYS=y
1068CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
1069# CONFIG_RTC_DEBUG is not set
997 1070
998# 1071#
999# DMA Engine support 1072# RTC interfaces
1000# 1073#
1001# CONFIG_DMA_ENGINE is not set 1074CONFIG_RTC_INTF_SYSFS=y
1075CONFIG_RTC_INTF_PROC=y
1076CONFIG_RTC_INTF_DEV=y
1077# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
1078# CONFIG_RTC_DRV_TEST is not set
1002 1079
1003# 1080#
1004# DMA Clients 1081# SPI RTC drivers
1005# 1082#
1006 1083
1007# 1084#
1008# DMA Devices 1085# Platform RTC drivers
1009# 1086#
1087# CONFIG_RTC_DRV_CMOS is not set
1088# CONFIG_RTC_DRV_DS1286 is not set
1089# CONFIG_RTC_DRV_DS1511 is not set
1090# CONFIG_RTC_DRV_DS1553 is not set
1091# CONFIG_RTC_DRV_DS1742 is not set
1092# CONFIG_RTC_DRV_STK17TA8 is not set
1093# CONFIG_RTC_DRV_M48T86 is not set
1094# CONFIG_RTC_DRV_M48T35 is not set
1095# CONFIG_RTC_DRV_M48T59 is not set
1096# CONFIG_RTC_DRV_MSM6242 is not set
1097# CONFIG_RTC_DRV_BQ4802 is not set
1098# CONFIG_RTC_DRV_RP5C01 is not set
1099# CONFIG_RTC_DRV_V3020 is not set
1010 1100
1011# 1101#
1012# Auxiliary Display support 1102# on-CPU RTC drivers
1013# 1103#
1104CONFIG_RTC_DRV_AU1XXX=y
1105# CONFIG_DMADEVICES is not set
1106# CONFIG_AUXDISPLAY is not set
1107# CONFIG_UIO is not set
1014 1108
1015# 1109#
1016# Virtualization 1110# TI VLYNQ
1017# 1111#
1112# CONFIG_STAGING is not set
1018 1113
1019# 1114#
1020# File systems 1115# File systems
1021# 1116#
1022CONFIG_EXT2_FS=y 1117CONFIG_EXT2_FS=y
1023CONFIG_EXT2_FS_XATTR=y 1118# CONFIG_EXT2_FS_XATTR is not set
1024CONFIG_EXT2_FS_POSIX_ACL=y
1025# CONFIG_EXT2_FS_SECURITY is not set
1026# CONFIG_EXT2_FS_XIP is not set 1119# CONFIG_EXT2_FS_XIP is not set
1027CONFIG_EXT3_FS=y 1120# CONFIG_EXT3_FS is not set
1028CONFIG_EXT3_FS_XATTR=y 1121# CONFIG_EXT4_FS is not set
1029CONFIG_EXT3_FS_POSIX_ACL=y 1122# CONFIG_REISERFS_FS is not set
1030CONFIG_EXT3_FS_SECURITY=y
1031# CONFIG_EXT4DEV_FS is not set
1032CONFIG_JBD=y
1033# CONFIG_JBD_DEBUG is not set
1034CONFIG_FS_MBCACHE=y
1035CONFIG_REISERFS_FS=m
1036# CONFIG_REISERFS_CHECK is not set
1037# CONFIG_REISERFS_PROC_INFO is not set
1038CONFIG_REISERFS_FS_XATTR=y
1039CONFIG_REISERFS_FS_POSIX_ACL=y
1040CONFIG_REISERFS_FS_SECURITY=y
1041# CONFIG_JFS_FS is not set 1123# CONFIG_JFS_FS is not set
1042CONFIG_FS_POSIX_ACL=y 1124# CONFIG_FS_POSIX_ACL is not set
1043# CONFIG_XFS_FS is not set 1125# CONFIG_XFS_FS is not set
1044# CONFIG_GFS2_FS is not set 1126# CONFIG_GFS2_FS is not set
1045# CONFIG_OCFS2_FS is not set 1127# CONFIG_OCFS2_FS is not set
1046# CONFIG_MINIX_FS is not set 1128# CONFIG_BTRFS_FS is not set
1047# CONFIG_ROMFS_FS is not set 1129# CONFIG_NILFS2_FS is not set
1130CONFIG_FILE_LOCKING=y
1131CONFIG_FSNOTIFY=y
1132CONFIG_DNOTIFY=y
1048CONFIG_INOTIFY=y 1133CONFIG_INOTIFY=y
1049CONFIG_INOTIFY_USER=y 1134CONFIG_INOTIFY_USER=y
1050# CONFIG_QUOTA is not set 1135# CONFIG_QUOTA is not set
1051CONFIG_DNOTIFY=y 1136# CONFIG_AUTOFS_FS is not set
1052CONFIG_AUTOFS_FS=m 1137# CONFIG_AUTOFS4_FS is not set
1053CONFIG_AUTOFS4_FS=m 1138# CONFIG_FUSE_FS is not set
1054CONFIG_FUSE_FS=m 1139
1055CONFIG_GENERIC_ACL=y 1140#
1141# Caches
1142#
1143# CONFIG_FSCACHE is not set
1056 1144
1057# 1145#
1058# CD-ROM/DVD Filesystems 1146# CD-ROM/DVD Filesystems
1059# 1147#
1060# CONFIG_ISO9660_FS is not set 1148CONFIG_ISO9660_FS=y
1061# CONFIG_UDF_FS is not set 1149CONFIG_JOLIET=y
1150CONFIG_ZISOFS=y
1151CONFIG_UDF_FS=y
1152CONFIG_UDF_NLS=y
1062 1153
1063# 1154#
1064# DOS/FAT/NT Filesystems 1155# DOS/FAT/NT Filesystems
1065# 1156#
1157CONFIG_FAT_FS=y
1066# CONFIG_MSDOS_FS is not set 1158# CONFIG_MSDOS_FS is not set
1067# CONFIG_VFAT_FS is not set 1159CONFIG_VFAT_FS=y
1160CONFIG_FAT_DEFAULT_CODEPAGE=437
1161CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
1068# CONFIG_NTFS_FS is not set 1162# CONFIG_NTFS_FS is not set
1069 1163
1070# 1164#
1071# Pseudo filesystems 1165# Pseudo filesystems
1072# 1166#
1073CONFIG_PROC_FS=y 1167CONFIG_PROC_FS=y
1074CONFIG_PROC_KCORE=y 1168# CONFIG_PROC_KCORE is not set
1075CONFIG_PROC_SYSCTL=y 1169CONFIG_PROC_SYSCTL=y
1170# CONFIG_PROC_PAGE_MONITOR is not set
1076CONFIG_SYSFS=y 1171CONFIG_SYSFS=y
1077CONFIG_TMPFS=y 1172CONFIG_TMPFS=y
1078CONFIG_TMPFS_POSIX_ACL=y 1173# CONFIG_TMPFS_POSIX_ACL is not set
1079# CONFIG_HUGETLB_PAGE is not set 1174# CONFIG_HUGETLB_PAGE is not set
1080CONFIG_RAMFS=y 1175# CONFIG_CONFIGFS_FS is not set
1081CONFIG_CONFIGFS_FS=m 1176CONFIG_MISC_FILESYSTEMS=y
1082
1083#
1084# Miscellaneous filesystems
1085#
1086# CONFIG_ADFS_FS is not set 1177# CONFIG_ADFS_FS is not set
1087# CONFIG_AFFS_FS is not set 1178# CONFIG_AFFS_FS is not set
1088# CONFIG_ECRYPT_FS is not set
1089# CONFIG_HFS_FS is not set 1179# CONFIG_HFS_FS is not set
1090# CONFIG_HFSPLUS_FS is not set 1180# CONFIG_HFSPLUS_FS is not set
1091# CONFIG_BEFS_FS is not set 1181# CONFIG_BEFS_FS is not set
1092# CONFIG_BFS_FS is not set 1182# CONFIG_BFS_FS is not set
1093# CONFIG_EFS_FS is not set 1183# CONFIG_EFS_FS is not set
1094# CONFIG_JFFS2_FS is not set 1184CONFIG_JFFS2_FS=y
1095CONFIG_CRAMFS=m 1185CONFIG_JFFS2_FS_DEBUG=0
1186CONFIG_JFFS2_FS_WRITEBUFFER=y
1187# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
1188CONFIG_JFFS2_SUMMARY=y
1189# CONFIG_JFFS2_FS_XATTR is not set
1190CONFIG_JFFS2_COMPRESSION_OPTIONS=y
1191CONFIG_JFFS2_ZLIB=y
1192CONFIG_JFFS2_LZO=y
1193CONFIG_JFFS2_RTIME=y
1194CONFIG_JFFS2_RUBIN=y
1195# CONFIG_JFFS2_CMODE_NONE is not set
1196CONFIG_JFFS2_CMODE_PRIORITY=y
1197# CONFIG_JFFS2_CMODE_SIZE is not set
1198# CONFIG_JFFS2_CMODE_FAVOURLZO is not set
1199# CONFIG_CRAMFS is not set
1200CONFIG_SQUASHFS=y
1201# CONFIG_SQUASHFS_EMBEDDED is not set
1202CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
1096# CONFIG_VXFS_FS is not set 1203# CONFIG_VXFS_FS is not set
1204# CONFIG_MINIX_FS is not set
1205# CONFIG_OMFS_FS is not set
1097# CONFIG_HPFS_FS is not set 1206# CONFIG_HPFS_FS is not set
1098# CONFIG_QNX4FS_FS is not set 1207# CONFIG_QNX4FS_FS is not set
1208# CONFIG_ROMFS_FS is not set
1099# CONFIG_SYSV_FS is not set 1209# CONFIG_SYSV_FS is not set
1100# CONFIG_UFS_FS is not set 1210# CONFIG_UFS_FS is not set
1101 1211CONFIG_NETWORK_FILESYSTEMS=y
1102#
1103# Network File Systems
1104#
1105CONFIG_NFS_FS=y 1212CONFIG_NFS_FS=y
1106# CONFIG_NFS_V3 is not set 1213CONFIG_NFS_V3=y
1214# CONFIG_NFS_V3_ACL is not set
1107# CONFIG_NFS_V4 is not set 1215# CONFIG_NFS_V4 is not set
1108# CONFIG_NFS_DIRECTIO is not set
1109CONFIG_NFSD=m
1110# CONFIG_NFSD_V3 is not set
1111# CONFIG_NFSD_TCP is not set
1112CONFIG_ROOT_NFS=y 1216CONFIG_ROOT_NFS=y
1217# CONFIG_NFSD is not set
1113CONFIG_LOCKD=y 1218CONFIG_LOCKD=y
1114CONFIG_EXPORTFS=m 1219CONFIG_LOCKD_V4=y
1115CONFIG_NFS_COMMON=y 1220CONFIG_NFS_COMMON=y
1116CONFIG_SUNRPC=y 1221CONFIG_SUNRPC=y
1117# CONFIG_RPCSEC_GSS_KRB5 is not set 1222# CONFIG_RPCSEC_GSS_KRB5 is not set
1118# CONFIG_RPCSEC_GSS_SPKM3 is not set 1223# CONFIG_RPCSEC_GSS_SPKM3 is not set
1119CONFIG_SMB_FS=m 1224# CONFIG_SMB_FS is not set
1120# CONFIG_SMB_NLS_DEFAULT is not set
1121# CONFIG_CIFS is not set 1225# CONFIG_CIFS is not set
1122# CONFIG_NCP_FS is not set 1226# CONFIG_NCP_FS is not set
1123# CONFIG_CODA_FS is not set 1227# CONFIG_CODA_FS is not set
1124# CONFIG_AFS_FS is not set 1228# CONFIG_AFS_FS is not set
1125# CONFIG_9P_FS is not set
1126 1229
1127# 1230#
1128# Partition Types 1231# Partition Types
1129# 1232#
1130# CONFIG_PARTITION_ADVANCED is not set 1233# CONFIG_PARTITION_ADVANCED is not set
1131CONFIG_MSDOS_PARTITION=y 1234CONFIG_MSDOS_PARTITION=y
1132 1235CONFIG_NLS=y
1133#
1134# Native Language Support
1135#
1136CONFIG_NLS=m
1137CONFIG_NLS_DEFAULT="iso8859-1" 1236CONFIG_NLS_DEFAULT="iso8859-1"
1138# CONFIG_NLS_CODEPAGE_437 is not set 1237CONFIG_NLS_CODEPAGE_437=y
1139# CONFIG_NLS_CODEPAGE_737 is not set 1238# CONFIG_NLS_CODEPAGE_737 is not set
1140# CONFIG_NLS_CODEPAGE_775 is not set 1239# CONFIG_NLS_CODEPAGE_775 is not set
1141# CONFIG_NLS_CODEPAGE_850 is not set 1240CONFIG_NLS_CODEPAGE_850=y
1142# CONFIG_NLS_CODEPAGE_852 is not set 1241CONFIG_NLS_CODEPAGE_852=y
1143# CONFIG_NLS_CODEPAGE_855 is not set 1242# CONFIG_NLS_CODEPAGE_855 is not set
1144# CONFIG_NLS_CODEPAGE_857 is not set 1243# CONFIG_NLS_CODEPAGE_857 is not set
1145# CONFIG_NLS_CODEPAGE_860 is not set 1244# CONFIG_NLS_CODEPAGE_860 is not set
@@ -1156,10 +1255,10 @@ CONFIG_NLS_DEFAULT="iso8859-1"
1156# CONFIG_NLS_CODEPAGE_949 is not set 1255# CONFIG_NLS_CODEPAGE_949 is not set
1157# CONFIG_NLS_CODEPAGE_874 is not set 1256# CONFIG_NLS_CODEPAGE_874 is not set
1158# CONFIG_NLS_ISO8859_8 is not set 1257# CONFIG_NLS_ISO8859_8 is not set
1159# CONFIG_NLS_CODEPAGE_1250 is not set 1258CONFIG_NLS_CODEPAGE_1250=y
1160# CONFIG_NLS_CODEPAGE_1251 is not set 1259# CONFIG_NLS_CODEPAGE_1251 is not set
1161# CONFIG_NLS_ASCII is not set 1260CONFIG_NLS_ASCII=y
1162# CONFIG_NLS_ISO8859_1 is not set 1261CONFIG_NLS_ISO8859_1=y
1163# CONFIG_NLS_ISO8859_2 is not set 1262# CONFIG_NLS_ISO8859_2 is not set
1164# CONFIG_NLS_ISO8859_3 is not set 1263# CONFIG_NLS_ISO8859_3 is not set
1165# CONFIG_NLS_ISO8859_4 is not set 1264# CONFIG_NLS_ISO8859_4 is not set
@@ -1169,38 +1268,75 @@ CONFIG_NLS_DEFAULT="iso8859-1"
1169# CONFIG_NLS_ISO8859_9 is not set 1268# CONFIG_NLS_ISO8859_9 is not set
1170# CONFIG_NLS_ISO8859_13 is not set 1269# CONFIG_NLS_ISO8859_13 is not set
1171# CONFIG_NLS_ISO8859_14 is not set 1270# CONFIG_NLS_ISO8859_14 is not set
1172# CONFIG_NLS_ISO8859_15 is not set 1271CONFIG_NLS_ISO8859_15=y
1173# CONFIG_NLS_KOI8_R is not set 1272# CONFIG_NLS_KOI8_R is not set
1174# CONFIG_NLS_KOI8_U is not set 1273# CONFIG_NLS_KOI8_U is not set
1175# CONFIG_NLS_UTF8 is not set 1274CONFIG_NLS_UTF8=y
1176 1275# CONFIG_DLM is not set
1177#
1178# Distributed Lock Manager
1179#
1180CONFIG_DLM=m
1181CONFIG_DLM_TCP=y
1182# CONFIG_DLM_SCTP is not set
1183# CONFIG_DLM_DEBUG is not set
1184
1185#
1186# Profiling support
1187#
1188# CONFIG_PROFILING is not set
1189 1276
1190# 1277#
1191# Kernel hacking 1278# Kernel hacking
1192# 1279#
1193CONFIG_TRACE_IRQFLAGS_SUPPORT=y 1280CONFIG_TRACE_IRQFLAGS_SUPPORT=y
1194# CONFIG_PRINTK_TIME is not set 1281# CONFIG_PRINTK_TIME is not set
1282CONFIG_ENABLE_WARN_DEPRECATED=y
1195CONFIG_ENABLE_MUST_CHECK=y 1283CONFIG_ENABLE_MUST_CHECK=y
1284CONFIG_FRAME_WARN=1024
1196# CONFIG_MAGIC_SYSRQ is not set 1285# CONFIG_MAGIC_SYSRQ is not set
1286CONFIG_STRIP_ASM_SYMS=y
1197# CONFIG_UNUSED_SYMBOLS is not set 1287# CONFIG_UNUSED_SYMBOLS is not set
1198# CONFIG_DEBUG_FS is not set 1288# CONFIG_DEBUG_FS is not set
1199# CONFIG_HEADERS_CHECK is not set 1289# CONFIG_HEADERS_CHECK is not set
1200# CONFIG_DEBUG_KERNEL is not set 1290CONFIG_DEBUG_KERNEL=y
1201CONFIG_LOG_BUF_SHIFT=14 1291# CONFIG_DEBUG_SHIRQ is not set
1202CONFIG_CROSSCOMPILE=y 1292# CONFIG_DETECT_SOFTLOCKUP is not set
1203CONFIG_CMDLINE="" 1293# CONFIG_DETECT_HUNG_TASK is not set
1294# CONFIG_SCHED_DEBUG is not set
1295# CONFIG_SCHEDSTATS is not set
1296# CONFIG_TIMER_STATS is not set
1297# CONFIG_DEBUG_OBJECTS is not set
1298# CONFIG_DEBUG_SLAB is not set
1299# CONFIG_DEBUG_RT_MUTEXES is not set
1300# CONFIG_RT_MUTEX_TESTER is not set
1301# CONFIG_DEBUG_SPINLOCK is not set
1302# CONFIG_DEBUG_MUTEXES is not set
1303# CONFIG_DEBUG_LOCK_ALLOC is not set
1304# CONFIG_PROVE_LOCKING is not set
1305# CONFIG_LOCK_STAT is not set
1306# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1307# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1308# CONFIG_DEBUG_KOBJECT is not set
1309# CONFIG_DEBUG_INFO is not set
1310# CONFIG_DEBUG_VM is not set
1311# CONFIG_DEBUG_WRITECOUNT is not set
1312# CONFIG_DEBUG_MEMORY_INIT is not set
1313# CONFIG_DEBUG_LIST is not set
1314# CONFIG_DEBUG_SG is not set
1315# CONFIG_DEBUG_NOTIFIERS is not set
1316# CONFIG_DEBUG_CREDENTIALS is not set
1317# CONFIG_BOOT_PRINTK_DELAY is not set
1318# CONFIG_RCU_TORTURE_TEST is not set
1319# CONFIG_BACKTRACE_SELF_TEST is not set
1320# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1321# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
1322# CONFIG_FAULT_INJECTION is not set
1323# CONFIG_SYSCTL_SYSCALL_CHECK is not set
1324# CONFIG_PAGE_POISONING is not set
1325CONFIG_HAVE_FUNCTION_TRACER=y
1326CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1327CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y
1328CONFIG_HAVE_DYNAMIC_FTRACE=y
1329CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1330CONFIG_TRACING_SUPPORT=y
1331# CONFIG_FTRACE is not set
1332# CONFIG_SAMPLES is not set
1333CONFIG_HAVE_ARCH_KGDB=y
1334# CONFIG_KGDB is not set
1335CONFIG_EARLY_PRINTK=y
1336# CONFIG_CMDLINE_BOOL is not set
1337# CONFIG_DEBUG_STACK_USAGE is not set
1338# CONFIG_RUNTIME_DEBUG is not set
1339CONFIG_DEBUG_ZBOOT=y
1204 1340
1205# 1341#
1206# Security options 1342# Security options
@@ -1208,67 +1344,32 @@ CONFIG_CMDLINE=""
1208CONFIG_KEYS=y 1344CONFIG_KEYS=y
1209CONFIG_KEYS_DEBUG_PROC_KEYS=y 1345CONFIG_KEYS_DEBUG_PROC_KEYS=y
1210# CONFIG_SECURITY is not set 1346# CONFIG_SECURITY is not set
1211 1347CONFIG_SECURITYFS=y
1212# 1348# CONFIG_DEFAULT_SECURITY_SELINUX is not set
1213# Cryptographic options 1349# CONFIG_DEFAULT_SECURITY_SMACK is not set
1214# 1350# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
1215CONFIG_CRYPTO=y 1351CONFIG_DEFAULT_SECURITY_DAC=y
1216CONFIG_CRYPTO_ALGAPI=y 1352CONFIG_DEFAULT_SECURITY=""
1217CONFIG_CRYPTO_BLKCIPHER=m 1353# CONFIG_CRYPTO is not set
1218CONFIG_CRYPTO_HASH=y 1354# CONFIG_BINARY_PRINTF is not set
1219CONFIG_CRYPTO_MANAGER=y
1220CONFIG_CRYPTO_HMAC=y
1221CONFIG_CRYPTO_XCBC=m
1222CONFIG_CRYPTO_NULL=m
1223CONFIG_CRYPTO_MD4=m
1224CONFIG_CRYPTO_MD5=y
1225CONFIG_CRYPTO_SHA1=m
1226CONFIG_CRYPTO_SHA256=m
1227CONFIG_CRYPTO_SHA512=m
1228CONFIG_CRYPTO_WP512=m
1229CONFIG_CRYPTO_TGR192=m
1230CONFIG_CRYPTO_GF128MUL=m
1231CONFIG_CRYPTO_ECB=m
1232CONFIG_CRYPTO_CBC=m
1233CONFIG_CRYPTO_PCBC=m
1234CONFIG_CRYPTO_LRW=m
1235CONFIG_CRYPTO_DES=m
1236CONFIG_CRYPTO_FCRYPT=m
1237CONFIG_CRYPTO_BLOWFISH=m
1238CONFIG_CRYPTO_TWOFISH=m
1239CONFIG_CRYPTO_TWOFISH_COMMON=m
1240CONFIG_CRYPTO_SERPENT=m
1241CONFIG_CRYPTO_AES=m
1242CONFIG_CRYPTO_CAST5=m
1243CONFIG_CRYPTO_CAST6=m
1244CONFIG_CRYPTO_TEA=m
1245CONFIG_CRYPTO_ARC4=m
1246CONFIG_CRYPTO_KHAZAD=m
1247CONFIG_CRYPTO_ANUBIS=m
1248CONFIG_CRYPTO_DEFLATE=m
1249CONFIG_CRYPTO_MICHAEL_MIC=m
1250CONFIG_CRYPTO_CRC32C=m
1251CONFIG_CRYPTO_CAMELLIA=m
1252# CONFIG_CRYPTO_TEST is not set
1253
1254#
1255# Hardware crypto devices
1256#
1257 1355
1258# 1356#
1259# Library routines 1357# Library routines
1260# 1358#
1261CONFIG_BITREVERSE=y 1359CONFIG_BITREVERSE=y
1262CONFIG_CRC_CCITT=m 1360CONFIG_GENERIC_FIND_LAST_BIT=y
1263CONFIG_CRC16=m 1361# CONFIG_CRC_CCITT is not set
1362# CONFIG_CRC16 is not set
1363# CONFIG_CRC_T10DIF is not set
1364CONFIG_CRC_ITU_T=y
1264CONFIG_CRC32=y 1365CONFIG_CRC32=y
1265CONFIG_LIBCRC32C=m 1366# CONFIG_CRC7 is not set
1266CONFIG_ZLIB_INFLATE=m 1367# CONFIG_LIBCRC32C is not set
1267CONFIG_ZLIB_DEFLATE=m 1368CONFIG_ZLIB_INFLATE=y
1268CONFIG_TEXTSEARCH=y 1369CONFIG_ZLIB_DEFLATE=y
1269CONFIG_TEXTSEARCH_KMP=m 1370CONFIG_LZO_COMPRESS=y
1270CONFIG_TEXTSEARCH_BM=m 1371CONFIG_LZO_DECOMPRESS=y
1271CONFIG_TEXTSEARCH_FSM=m
1272CONFIG_PLIST=y
1273CONFIG_HAS_IOMEM=y 1372CONFIG_HAS_IOMEM=y
1274CONFIG_HAS_IOPORT=y 1373CONFIG_HAS_IOPORT=y
1374CONFIG_HAS_DMA=y
1375CONFIG_NLATTR=y
diff --git a/arch/mips/configs/pb1550_defconfig b/arch/mips/configs/pb1550_defconfig
index 1d896fd830da..aa526f53cb1b 100644
--- a/arch/mips/configs/pb1550_defconfig
+++ b/arch/mips/configs/pb1550_defconfig
@@ -1,80 +1,103 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.20 3# Linux kernel version: 2.6.33
4# Tue Feb 20 21:47:37 2007 4# Fri Feb 26 10:06:07 2010
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
8# 8#
9# Machine selection 9# Machine selection
10# 10#
11CONFIG_ZONE_DMA=y
12CONFIG_MACH_ALCHEMY=y 11CONFIG_MACH_ALCHEMY=y
13# CONFIG_MIPS_MTX1 is not set 12# CONFIG_AR7 is not set
14# CONFIG_MIPS_BOSPORUS is not set 13# CONFIG_BCM47XX is not set
15# CONFIG_MIPS_PB1000 is not set 14# CONFIG_BCM63XX is not set
16# CONFIG_MIPS_PB1100 is not set
17# CONFIG_MIPS_PB1500 is not set
18CONFIG_MIPS_PB1550=y
19# CONFIG_MIPS_PB1200 is not set
20# CONFIG_MIPS_DB1000 is not set
21# CONFIG_MIPS_DB1100 is not set
22# CONFIG_MIPS_DB1500 is not set
23# CONFIG_MIPS_DB1550 is not set
24# CONFIG_MIPS_DB1200 is not set
25# CONFIG_MIPS_MIRAGE is not set
26# CONFIG_BASLER_EXCITE is not set
27# CONFIG_MIPS_COBALT is not set 15# CONFIG_MIPS_COBALT is not set
28# CONFIG_MACH_DECSTATION is not set 16# CONFIG_MACH_DECSTATION is not set
29# CONFIG_MACH_JAZZ is not set 17# CONFIG_MACH_JAZZ is not set
18# CONFIG_LASAT is not set
19# CONFIG_MACH_LOONGSON is not set
30# CONFIG_MIPS_MALTA is not set 20# CONFIG_MIPS_MALTA is not set
31# CONFIG_WR_PPMC is not set
32# CONFIG_MIPS_SIM is not set 21# CONFIG_MIPS_SIM is not set
33# CONFIG_MOMENCO_JAGUAR_ATX is not set 22# CONFIG_NEC_MARKEINS is not set
34# CONFIG_MIPS_XXS1500 is not set 23# CONFIG_MACH_VR41XX is not set
24# CONFIG_NXP_STB220 is not set
25# CONFIG_NXP_STB225 is not set
35# CONFIG_PNX8550_JBS is not set 26# CONFIG_PNX8550_JBS is not set
36# CONFIG_PNX8550_STB810 is not set 27# CONFIG_PNX8550_STB810 is not set
37# CONFIG_MACH_VR41XX is not set 28# CONFIG_PMC_MSP is not set
38# CONFIG_PMC_YOSEMITE is not set 29# CONFIG_PMC_YOSEMITE is not set
39# CONFIG_MARKEINS is not set 30# CONFIG_POWERTV is not set
40# CONFIG_SGI_IP22 is not set 31# CONFIG_SGI_IP22 is not set
41# CONFIG_SGI_IP27 is not set 32# CONFIG_SGI_IP27 is not set
33# CONFIG_SGI_IP28 is not set
42# CONFIG_SGI_IP32 is not set 34# CONFIG_SGI_IP32 is not set
43# CONFIG_SIBYTE_BIGSUR is not set
44# CONFIG_SIBYTE_SWARM is not set
45# CONFIG_SIBYTE_SENTOSA is not set
46# CONFIG_SIBYTE_RHONE is not set
47# CONFIG_SIBYTE_CARMEL is not set
48# CONFIG_SIBYTE_LITTLESUR is not set
49# CONFIG_SIBYTE_CRHINE is not set 35# CONFIG_SIBYTE_CRHINE is not set
36# CONFIG_SIBYTE_CARMEL is not set
50# CONFIG_SIBYTE_CRHONE is not set 37# CONFIG_SIBYTE_CRHONE is not set
38# CONFIG_SIBYTE_RHONE is not set
39# CONFIG_SIBYTE_SWARM is not set
40# CONFIG_SIBYTE_LITTLESUR is not set
41# CONFIG_SIBYTE_SENTOSA is not set
42# CONFIG_SIBYTE_BIGSUR is not set
51# CONFIG_SNI_RM is not set 43# CONFIG_SNI_RM is not set
52# CONFIG_TOSHIBA_JMR3927 is not set 44# CONFIG_MACH_TX39XX is not set
53# CONFIG_TOSHIBA_RBTX4927 is not set 45# CONFIG_MACH_TX49XX is not set
54# CONFIG_TOSHIBA_RBTX4938 is not set 46# CONFIG_MIKROTIK_RB532 is not set
47# CONFIG_WR_PPMC is not set
48# CONFIG_CAVIUM_OCTEON_SIMULATOR is not set
49# CONFIG_CAVIUM_OCTEON_REFERENCE_BOARD is not set
50CONFIG_ALCHEMY_GPIOINT_AU1000=y
51# CONFIG_ALCHEMY_GPIO_INDIRECT is not set
52# CONFIG_MIPS_MTX1 is not set
53# CONFIG_MIPS_BOSPORUS is not set
54# CONFIG_MIPS_DB1000 is not set
55# CONFIG_MIPS_DB1100 is not set
56# CONFIG_MIPS_DB1200 is not set
57# CONFIG_MIPS_DB1500 is not set
58# CONFIG_MIPS_DB1550 is not set
59# CONFIG_MIPS_MIRAGE is not set
60# CONFIG_MIPS_PB1000 is not set
61# CONFIG_MIPS_PB1100 is not set
62# CONFIG_MIPS_PB1200 is not set
63# CONFIG_MIPS_PB1500 is not set
64CONFIG_MIPS_PB1550=y
65# CONFIG_MIPS_XXS1500 is not set
66CONFIG_SOC_AU1550=y
67CONFIG_SOC_AU1X00=y
68CONFIG_LOONGSON_UART_BASE=y
55CONFIG_RWSEM_GENERIC_SPINLOCK=y 69CONFIG_RWSEM_GENERIC_SPINLOCK=y
56# CONFIG_ARCH_HAS_ILOG2_U32 is not set 70# CONFIG_ARCH_HAS_ILOG2_U32 is not set
57# CONFIG_ARCH_HAS_ILOG2_U64 is not set 71# CONFIG_ARCH_HAS_ILOG2_U64 is not set
72CONFIG_ARCH_SUPPORTS_OPROFILE=y
58CONFIG_GENERIC_FIND_NEXT_BIT=y 73CONFIG_GENERIC_FIND_NEXT_BIT=y
59CONFIG_GENERIC_HWEIGHT=y 74CONFIG_GENERIC_HWEIGHT=y
60CONFIG_GENERIC_CALIBRATE_DELAY=y 75CONFIG_GENERIC_CALIBRATE_DELAY=y
76CONFIG_GENERIC_CLOCKEVENTS=y
61CONFIG_GENERIC_TIME=y 77CONFIG_GENERIC_TIME=y
62CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y 78CONFIG_GENERIC_CMOS_UPDATE=y
63# CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ is not set 79CONFIG_SCHED_OMIT_FRAME_POINTER=y
80CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
81CONFIG_CEVT_R4K_LIB=y
82CONFIG_CSRC_R4K_LIB=y
64CONFIG_DMA_NONCOHERENT=y 83CONFIG_DMA_NONCOHERENT=y
65CONFIG_DMA_NEED_PCI_MAP_STATE=y 84CONFIG_DMA_NEED_PCI_MAP_STATE=y
85CONFIG_SYS_HAS_EARLY_PRINTK=y
66CONFIG_MIPS_DISABLE_OBSOLETE_IDE=y 86CONFIG_MIPS_DISABLE_OBSOLETE_IDE=y
87# CONFIG_NO_IOPORT is not set
88CONFIG_GENERIC_GPIO=y
67# CONFIG_CPU_BIG_ENDIAN is not set 89# CONFIG_CPU_BIG_ENDIAN is not set
68CONFIG_CPU_LITTLE_ENDIAN=y 90CONFIG_CPU_LITTLE_ENDIAN=y
69CONFIG_SYS_SUPPORTS_APM_EMULATION=y 91CONFIG_SYS_SUPPORTS_APM_EMULATION=y
70CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y 92CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y
71CONFIG_SOC_AU1550=y 93CONFIG_IRQ_CPU=y
72CONFIG_SOC_AU1X00=y
73CONFIG_MIPS_L1_CACHE_SHIFT=5 94CONFIG_MIPS_L1_CACHE_SHIFT=5
74 95
75# 96#
76# CPU selection 97# CPU selection
77# 98#
99# CONFIG_CPU_LOONGSON2E is not set
100# CONFIG_CPU_LOONGSON2F is not set
78CONFIG_CPU_MIPS32_R1=y 101CONFIG_CPU_MIPS32_R1=y
79# CONFIG_CPU_MIPS32_R2 is not set 102# CONFIG_CPU_MIPS32_R2 is not set
80# CONFIG_CPU_MIPS64_R1 is not set 103# CONFIG_CPU_MIPS64_R1 is not set
@@ -87,6 +110,7 @@ CONFIG_CPU_MIPS32_R1=y
87# CONFIG_CPU_TX49XX is not set 110# CONFIG_CPU_TX49XX is not set
88# CONFIG_CPU_R5000 is not set 111# CONFIG_CPU_R5000 is not set
89# CONFIG_CPU_R5432 is not set 112# CONFIG_CPU_R5432 is not set
113# CONFIG_CPU_R5500 is not set
90# CONFIG_CPU_R6000 is not set 114# CONFIG_CPU_R6000 is not set
91# CONFIG_CPU_NEVADA is not set 115# CONFIG_CPU_NEVADA is not set
92# CONFIG_CPU_R8000 is not set 116# CONFIG_CPU_R8000 is not set
@@ -94,11 +118,14 @@ CONFIG_CPU_MIPS32_R1=y
94# CONFIG_CPU_RM7000 is not set 118# CONFIG_CPU_RM7000 is not set
95# CONFIG_CPU_RM9000 is not set 119# CONFIG_CPU_RM9000 is not set
96# CONFIG_CPU_SB1 is not set 120# CONFIG_CPU_SB1 is not set
121# CONFIG_CPU_CAVIUM_OCTEON is not set
122CONFIG_SYS_SUPPORTS_ZBOOT=y
97CONFIG_SYS_HAS_CPU_MIPS32_R1=y 123CONFIG_SYS_HAS_CPU_MIPS32_R1=y
98CONFIG_CPU_MIPS32=y 124CONFIG_CPU_MIPS32=y
99CONFIG_CPU_MIPSR1=y 125CONFIG_CPU_MIPSR1=y
100CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y 126CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y
101CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y 127CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y
128CONFIG_HARDWARE_WATCHPOINTS=y
102 129
103# 130#
104# Kernel type 131# Kernel type
@@ -108,190 +135,255 @@ CONFIG_32BIT=y
108CONFIG_PAGE_SIZE_4KB=y 135CONFIG_PAGE_SIZE_4KB=y
109# CONFIG_PAGE_SIZE_8KB is not set 136# CONFIG_PAGE_SIZE_8KB is not set
110# CONFIG_PAGE_SIZE_16KB is not set 137# CONFIG_PAGE_SIZE_16KB is not set
138# CONFIG_PAGE_SIZE_32KB is not set
111# CONFIG_PAGE_SIZE_64KB is not set 139# CONFIG_PAGE_SIZE_64KB is not set
112CONFIG_CPU_HAS_PREFETCH=y 140CONFIG_CPU_HAS_PREFETCH=y
113CONFIG_MIPS_MT_DISABLED=y 141CONFIG_MIPS_MT_DISABLED=y
114# CONFIG_MIPS_MT_SMP is not set 142# CONFIG_MIPS_MT_SMP is not set
115# CONFIG_MIPS_MT_SMTC is not set 143# CONFIG_MIPS_MT_SMTC is not set
116# CONFIG_MIPS_VPE_LOADER is not set
117CONFIG_64BIT_PHYS_ADDR=y 144CONFIG_64BIT_PHYS_ADDR=y
145CONFIG_ARCH_PHYS_ADDR_T_64BIT=y
118CONFIG_CPU_HAS_SYNC=y 146CONFIG_CPU_HAS_SYNC=y
119CONFIG_GENERIC_HARDIRQS=y 147CONFIG_GENERIC_HARDIRQS=y
120CONFIG_GENERIC_IRQ_PROBE=y 148CONFIG_GENERIC_IRQ_PROBE=y
121CONFIG_CPU_SUPPORTS_HIGHMEM=y 149CONFIG_CPU_SUPPORTS_HIGHMEM=y
122CONFIG_ARCH_FLATMEM_ENABLE=y 150CONFIG_ARCH_FLATMEM_ENABLE=y
151CONFIG_ARCH_POPULATES_NODE_MAP=y
123CONFIG_SELECT_MEMORY_MODEL=y 152CONFIG_SELECT_MEMORY_MODEL=y
124CONFIG_FLATMEM_MANUAL=y 153CONFIG_FLATMEM_MANUAL=y
125# CONFIG_DISCONTIGMEM_MANUAL is not set 154# CONFIG_DISCONTIGMEM_MANUAL is not set
126# CONFIG_SPARSEMEM_MANUAL is not set 155# CONFIG_SPARSEMEM_MANUAL is not set
127CONFIG_FLATMEM=y 156CONFIG_FLATMEM=y
128CONFIG_FLAT_NODE_MEM_MAP=y 157CONFIG_FLAT_NODE_MEM_MAP=y
129# CONFIG_SPARSEMEM_STATIC is not set 158CONFIG_PAGEFLAGS_EXTENDED=y
130CONFIG_SPLIT_PTLOCK_CPUS=4 159CONFIG_SPLIT_PTLOCK_CPUS=4
131CONFIG_RESOURCES_64BIT=y 160CONFIG_PHYS_ADDR_T_64BIT=y
132CONFIG_ZONE_DMA_FLAG=1 161CONFIG_ZONE_DMA_FLAG=0
162CONFIG_VIRT_TO_BUS=y
163# CONFIG_KSM is not set
164CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
165CONFIG_TICK_ONESHOT=y
166CONFIG_NO_HZ=y
167CONFIG_HIGH_RES_TIMERS=y
168CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
133# CONFIG_HZ_48 is not set 169# CONFIG_HZ_48 is not set
134# CONFIG_HZ_100 is not set 170CONFIG_HZ_100=y
135# CONFIG_HZ_128 is not set 171# CONFIG_HZ_128 is not set
136# CONFIG_HZ_250 is not set 172# CONFIG_HZ_250 is not set
137# CONFIG_HZ_256 is not set 173# CONFIG_HZ_256 is not set
138CONFIG_HZ_1000=y 174# CONFIG_HZ_1000 is not set
139# CONFIG_HZ_1024 is not set 175# CONFIG_HZ_1024 is not set
140CONFIG_SYS_SUPPORTS_ARBIT_HZ=y 176CONFIG_SYS_SUPPORTS_ARBIT_HZ=y
141CONFIG_HZ=1000 177CONFIG_HZ=100
142CONFIG_PREEMPT_NONE=y 178CONFIG_PREEMPT_NONE=y
143# CONFIG_PREEMPT_VOLUNTARY is not set 179# CONFIG_PREEMPT_VOLUNTARY is not set
144# CONFIG_PREEMPT is not set 180# CONFIG_PREEMPT is not set
145# CONFIG_KEXEC is not set 181# CONFIG_KEXEC is not set
182# CONFIG_SECCOMP is not set
146CONFIG_LOCKDEP_SUPPORT=y 183CONFIG_LOCKDEP_SUPPORT=y
147CONFIG_STACKTRACE_SUPPORT=y 184CONFIG_STACKTRACE_SUPPORT=y
148CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 185CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
186CONFIG_CONSTRUCTORS=y
149 187
150# 188#
151# Code maturity level options 189# General setup
152# 190#
153CONFIG_EXPERIMENTAL=y 191CONFIG_EXPERIMENTAL=y
154CONFIG_BROKEN_ON_SMP=y 192CONFIG_BROKEN_ON_SMP=y
155CONFIG_INIT_ENV_ARG_LIMIT=32 193CONFIG_INIT_ENV_ARG_LIMIT=32
156 194CONFIG_LOCALVERSION="-pb1550"
157#
158# General setup
159#
160CONFIG_LOCALVERSION=""
161CONFIG_LOCALVERSION_AUTO=y 195CONFIG_LOCALVERSION_AUTO=y
196CONFIG_HAVE_KERNEL_GZIP=y
197CONFIG_HAVE_KERNEL_BZIP2=y
198CONFIG_HAVE_KERNEL_LZMA=y
199CONFIG_HAVE_KERNEL_LZO=y
200# CONFIG_KERNEL_GZIP is not set
201# CONFIG_KERNEL_BZIP2 is not set
202CONFIG_KERNEL_LZMA=y
203# CONFIG_KERNEL_LZO is not set
162CONFIG_SWAP=y 204CONFIG_SWAP=y
163CONFIG_SYSVIPC=y 205CONFIG_SYSVIPC=y
164# CONFIG_IPC_NS is not set
165CONFIG_SYSVIPC_SYSCTL=y 206CONFIG_SYSVIPC_SYSCTL=y
166# CONFIG_POSIX_MQUEUE is not set 207CONFIG_POSIX_MQUEUE=y
208CONFIG_POSIX_MQUEUE_SYSCTL=y
167# CONFIG_BSD_PROCESS_ACCT is not set 209# CONFIG_BSD_PROCESS_ACCT is not set
168# CONFIG_TASKSTATS is not set 210# CONFIG_TASKSTATS is not set
169# CONFIG_UTS_NS is not set
170# CONFIG_AUDIT is not set 211# CONFIG_AUDIT is not set
212
213#
214# RCU Subsystem
215#
216# CONFIG_TREE_RCU is not set
217# CONFIG_TREE_PREEMPT_RCU is not set
218CONFIG_TINY_RCU=y
219# CONFIG_TREE_RCU_TRACE is not set
171# CONFIG_IKCONFIG is not set 220# CONFIG_IKCONFIG is not set
172CONFIG_SYSFS_DEPRECATED=y 221CONFIG_LOG_BUF_SHIFT=14
173CONFIG_RELAY=y 222# CONFIG_GROUP_SCHED is not set
174# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 223# CONFIG_CGROUPS is not set
224# CONFIG_SYSFS_DEPRECATED_V2 is not set
225# CONFIG_RELAY is not set
226# CONFIG_NAMESPACES is not set
227# CONFIG_BLK_DEV_INITRD is not set
228CONFIG_CC_OPTIMIZE_FOR_SIZE=y
175CONFIG_SYSCTL=y 229CONFIG_SYSCTL=y
230CONFIG_ANON_INODES=y
176CONFIG_EMBEDDED=y 231CONFIG_EMBEDDED=y
177CONFIG_SYSCTL_SYSCALL=y 232# CONFIG_SYSCTL_SYSCALL is not set
178CONFIG_KALLSYMS=y 233# CONFIG_KALLSYMS is not set
179# CONFIG_KALLSYMS_EXTRA_PASS is not set
180CONFIG_HOTPLUG=y 234CONFIG_HOTPLUG=y
181CONFIG_PRINTK=y 235CONFIG_PRINTK=y
182CONFIG_BUG=y 236CONFIG_BUG=y
183CONFIG_ELF_CORE=y 237CONFIG_ELF_CORE=y
238# CONFIG_PCSPKR_PLATFORM is not set
184CONFIG_BASE_FULL=y 239CONFIG_BASE_FULL=y
185CONFIG_FUTEX=y 240CONFIG_FUTEX=y
186CONFIG_EPOLL=y 241CONFIG_EPOLL=y
242CONFIG_SIGNALFD=y
243CONFIG_TIMERFD=y
244CONFIG_EVENTFD=y
187CONFIG_SHMEM=y 245CONFIG_SHMEM=y
246CONFIG_AIO=y
247
248#
249# Kernel Performance Events And Counters
250#
251# CONFIG_VM_EVENT_COUNTERS is not set
252CONFIG_PCI_QUIRKS=y
253# CONFIG_COMPAT_BRK is not set
188CONFIG_SLAB=y 254CONFIG_SLAB=y
189CONFIG_VM_EVENT_COUNTERS=y 255# CONFIG_SLUB is not set
190CONFIG_RT_MUTEXES=y
191# CONFIG_TINY_SHMEM is not set
192CONFIG_BASE_SMALL=0
193# CONFIG_SLOB is not set 256# CONFIG_SLOB is not set
257# CONFIG_PROFILING is not set
258CONFIG_HAVE_OPROFILE=y
194 259
195# 260#
196# Loadable module support 261# GCOV-based kernel profiling
197# 262#
263# CONFIG_SLOW_WORK is not set
264CONFIG_HAVE_GENERIC_DMA_COHERENT=y
265CONFIG_SLABINFO=y
266CONFIG_RT_MUTEXES=y
267CONFIG_BASE_SMALL=0
198CONFIG_MODULES=y 268CONFIG_MODULES=y
269# CONFIG_MODULE_FORCE_LOAD is not set
199CONFIG_MODULE_UNLOAD=y 270CONFIG_MODULE_UNLOAD=y
200# CONFIG_MODULE_FORCE_UNLOAD is not set 271# CONFIG_MODULE_FORCE_UNLOAD is not set
201CONFIG_MODVERSIONS=y 272# CONFIG_MODVERSIONS is not set
202CONFIG_MODULE_SRCVERSION_ALL=y 273# CONFIG_MODULE_SRCVERSION_ALL is not set
203CONFIG_KMOD=y
204
205#
206# Block layer
207#
208CONFIG_BLOCK=y 274CONFIG_BLOCK=y
209# CONFIG_LBD is not set 275CONFIG_LBDAF=y
210# CONFIG_BLK_DEV_IO_TRACE is not set 276CONFIG_BLK_DEV_BSG=y
211# CONFIG_LSF is not set 277# CONFIG_BLK_DEV_INTEGRITY is not set
212 278
213# 279#
214# IO Schedulers 280# IO Schedulers
215# 281#
216CONFIG_IOSCHED_NOOP=y 282CONFIG_IOSCHED_NOOP=y
217CONFIG_IOSCHED_AS=y 283# CONFIG_IOSCHED_DEADLINE is not set
218CONFIG_IOSCHED_DEADLINE=y 284# CONFIG_IOSCHED_CFQ is not set
219CONFIG_IOSCHED_CFQ=y
220CONFIG_DEFAULT_AS=y
221# CONFIG_DEFAULT_DEADLINE is not set 285# CONFIG_DEFAULT_DEADLINE is not set
222# CONFIG_DEFAULT_CFQ is not set 286# CONFIG_DEFAULT_CFQ is not set
223# CONFIG_DEFAULT_NOOP is not set 287CONFIG_DEFAULT_NOOP=y
224CONFIG_DEFAULT_IOSCHED="anticipatory" 288CONFIG_DEFAULT_IOSCHED="noop"
289# CONFIG_INLINE_SPIN_TRYLOCK is not set
290# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
291# CONFIG_INLINE_SPIN_LOCK is not set
292# CONFIG_INLINE_SPIN_LOCK_BH is not set
293# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
294# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
295CONFIG_INLINE_SPIN_UNLOCK=y
296# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
297CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
298# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
299# CONFIG_INLINE_READ_TRYLOCK is not set
300# CONFIG_INLINE_READ_LOCK is not set
301# CONFIG_INLINE_READ_LOCK_BH is not set
302# CONFIG_INLINE_READ_LOCK_IRQ is not set
303# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
304CONFIG_INLINE_READ_UNLOCK=y
305# CONFIG_INLINE_READ_UNLOCK_BH is not set
306CONFIG_INLINE_READ_UNLOCK_IRQ=y
307# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
308# CONFIG_INLINE_WRITE_TRYLOCK is not set
309# CONFIG_INLINE_WRITE_LOCK is not set
310# CONFIG_INLINE_WRITE_LOCK_BH is not set
311# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
312# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
313CONFIG_INLINE_WRITE_UNLOCK=y
314# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
315CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
316# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
317# CONFIG_MUTEX_SPIN_ON_OWNER is not set
318CONFIG_FREEZER=y
225 319
226# 320#
227# Bus options (PCI, PCMCIA, EISA, ISA, TC) 321# Bus options (PCI, PCMCIA, EISA, ISA, TC)
228# 322#
229CONFIG_HW_HAS_PCI=y 323CONFIG_HW_HAS_PCI=y
230CONFIG_PCI=y 324CONFIG_PCI=y
325CONFIG_PCI_DOMAINS=y
326# CONFIG_ARCH_SUPPORTS_MSI is not set
327CONFIG_PCI_LEGACY=y
328# CONFIG_PCI_DEBUG is not set
329# CONFIG_PCI_STUB is not set
330# CONFIG_PCI_IOV is not set
231CONFIG_MMU=y 331CONFIG_MMU=y
232 332CONFIG_PCCARD=y
233# 333CONFIG_PCMCIA=y
234# PCCARD (PCMCIA/CardBus) support
235#
236CONFIG_PCCARD=m
237# CONFIG_PCMCIA_DEBUG is not set
238CONFIG_PCMCIA=m
239CONFIG_PCMCIA_LOAD_CIS=y 334CONFIG_PCMCIA_LOAD_CIS=y
240CONFIG_PCMCIA_IOCTL=y 335CONFIG_PCMCIA_IOCTL=y
241CONFIG_CARDBUS=y 336# CONFIG_CARDBUS is not set
242 337
243# 338#
244# PC-card bridges 339# PC-card bridges
245# 340#
246# CONFIG_YENTA is not set 341# CONFIG_YENTA is not set
247CONFIG_PD6729=m 342# CONFIG_PD6729 is not set
248# CONFIG_I82092 is not set 343# CONFIG_I82092 is not set
249# CONFIG_PCMCIA_AU1X00 is not set 344# CONFIG_PCMCIA_AU1X00 is not set
250CONFIG_PCCARD_NONSTATIC=m 345CONFIG_PCMCIA_ALCHEMY_DEVBOARD=y
251
252#
253# PCI Hotplug Support
254#
255# CONFIG_HOTPLUG_PCI is not set 346# CONFIG_HOTPLUG_PCI is not set
256 347
257# 348#
258# Executable file formats 349# Executable file formats
259# 350#
260CONFIG_BINFMT_ELF=y 351CONFIG_BINFMT_ELF=y
352# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
353# CONFIG_HAVE_AOUT is not set
261# CONFIG_BINFMT_MISC is not set 354# CONFIG_BINFMT_MISC is not set
262CONFIG_TRAD_SIGNALS=y 355CONFIG_TRAD_SIGNALS=y
263 356
264# 357#
265# Power management options 358# Power management options
266# 359#
267# CONFIG_PM is not set 360CONFIG_ARCH_HIBERNATION_POSSIBLE=y
268 361CONFIG_ARCH_SUSPEND_POSSIBLE=y
269# 362CONFIG_PM=y
270# Networking 363# CONFIG_PM_DEBUG is not set
271# 364CONFIG_PM_SLEEP=y
365CONFIG_SUSPEND=y
366CONFIG_SUSPEND_FREEZER=y
367# CONFIG_HIBERNATION is not set
368# CONFIG_APM_EMULATION is not set
369CONFIG_PM_RUNTIME=y
272CONFIG_NET=y 370CONFIG_NET=y
273 371
274# 372#
275# Networking options 373# Networking options
276# 374#
277# CONFIG_NETDEBUG is not set
278CONFIG_PACKET=y 375CONFIG_PACKET=y
279# CONFIG_PACKET_MMAP is not set 376CONFIG_PACKET_MMAP=y
280CONFIG_UNIX=y 377CONFIG_UNIX=y
281CONFIG_XFRM=y 378# CONFIG_NET_KEY is not set
282CONFIG_XFRM_USER=m
283# CONFIG_XFRM_SUB_POLICY is not set
284CONFIG_XFRM_MIGRATE=y
285CONFIG_NET_KEY=y
286CONFIG_NET_KEY_MIGRATE=y
287CONFIG_INET=y 379CONFIG_INET=y
288CONFIG_IP_MULTICAST=y 380CONFIG_IP_MULTICAST=y
289# CONFIG_IP_ADVANCED_ROUTER is not set 381# CONFIG_IP_ADVANCED_ROUTER is not set
290CONFIG_IP_FIB_HASH=y 382CONFIG_IP_FIB_HASH=y
291CONFIG_IP_PNP=y 383CONFIG_IP_PNP=y
292# CONFIG_IP_PNP_DHCP is not set 384CONFIG_IP_PNP_DHCP=y
293CONFIG_IP_PNP_BOOTP=y 385CONFIG_IP_PNP_BOOTP=y
294# CONFIG_IP_PNP_RARP is not set 386CONFIG_IP_PNP_RARP=y
295# CONFIG_NET_IPIP is not set 387# CONFIG_NET_IPIP is not set
296# CONFIG_NET_IPGRE is not set 388# CONFIG_NET_IPGRE is not set
297# CONFIG_IP_MROUTE is not set 389# CONFIG_IP_MROUTE is not set
@@ -302,110 +394,25 @@ CONFIG_IP_PNP_BOOTP=y
302# CONFIG_INET_IPCOMP is not set 394# CONFIG_INET_IPCOMP is not set
303# CONFIG_INET_XFRM_TUNNEL is not set 395# CONFIG_INET_XFRM_TUNNEL is not set
304# CONFIG_INET_TUNNEL is not set 396# CONFIG_INET_TUNNEL is not set
305CONFIG_INET_XFRM_MODE_TRANSPORT=m 397# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
306CONFIG_INET_XFRM_MODE_TUNNEL=m 398# CONFIG_INET_XFRM_MODE_TUNNEL is not set
307CONFIG_INET_XFRM_MODE_BEET=m 399# CONFIG_INET_XFRM_MODE_BEET is not set
308CONFIG_INET_DIAG=y 400CONFIG_INET_LRO=y
309CONFIG_INET_TCP_DIAG=y 401# CONFIG_INET_DIAG is not set
310# CONFIG_TCP_CONG_ADVANCED is not set 402# CONFIG_TCP_CONG_ADVANCED is not set
311CONFIG_TCP_CONG_CUBIC=y 403CONFIG_TCP_CONG_CUBIC=y
312CONFIG_DEFAULT_TCP_CONG="cubic" 404CONFIG_DEFAULT_TCP_CONG="cubic"
313CONFIG_TCP_MD5SIG=y 405# CONFIG_TCP_MD5SIG is not set
314
315#
316# IP: Virtual Server Configuration
317#
318# CONFIG_IP_VS is not set
319# CONFIG_IPV6 is not set 406# CONFIG_IPV6 is not set
320# CONFIG_INET6_XFRM_TUNNEL is not set 407# CONFIG_NETWORK_SECMARK is not set
321# CONFIG_INET6_TUNNEL is not set 408# CONFIG_NETFILTER is not set
322CONFIG_NETWORK_SECMARK=y
323CONFIG_NETFILTER=y
324# CONFIG_NETFILTER_DEBUG is not set
325
326#
327# Core Netfilter Configuration
328#
329CONFIG_NETFILTER_NETLINK=m
330CONFIG_NETFILTER_NETLINK_QUEUE=m
331CONFIG_NETFILTER_NETLINK_LOG=m
332CONFIG_NF_CONNTRACK_ENABLED=m
333CONFIG_NF_CONNTRACK_SUPPORT=y
334# CONFIG_IP_NF_CONNTRACK_SUPPORT is not set
335CONFIG_NF_CONNTRACK=m
336CONFIG_NF_CT_ACCT=y
337CONFIG_NF_CONNTRACK_MARK=y
338CONFIG_NF_CONNTRACK_SECMARK=y
339CONFIG_NF_CONNTRACK_EVENTS=y
340CONFIG_NF_CT_PROTO_GRE=m
341CONFIG_NF_CT_PROTO_SCTP=m
342CONFIG_NF_CONNTRACK_AMANDA=m
343CONFIG_NF_CONNTRACK_FTP=m
344CONFIG_NF_CONNTRACK_H323=m
345CONFIG_NF_CONNTRACK_IRC=m
346# CONFIG_NF_CONNTRACK_NETBIOS_NS is not set
347CONFIG_NF_CONNTRACK_PPTP=m
348CONFIG_NF_CONNTRACK_SANE=m
349CONFIG_NF_CONNTRACK_SIP=m
350CONFIG_NF_CONNTRACK_TFTP=m
351CONFIG_NF_CT_NETLINK=m
352CONFIG_NETFILTER_XTABLES=m
353CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
354CONFIG_NETFILTER_XT_TARGET_MARK=m
355CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
356CONFIG_NETFILTER_XT_TARGET_NFLOG=m
357CONFIG_NETFILTER_XT_TARGET_SECMARK=m
358CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m
359CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
360CONFIG_NETFILTER_XT_MATCH_COMMENT=m
361CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
362CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
363CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
364CONFIG_NETFILTER_XT_MATCH_DCCP=m
365CONFIG_NETFILTER_XT_MATCH_DSCP=m
366CONFIG_NETFILTER_XT_MATCH_ESP=m
367CONFIG_NETFILTER_XT_MATCH_HELPER=m
368CONFIG_NETFILTER_XT_MATCH_LENGTH=m
369CONFIG_NETFILTER_XT_MATCH_LIMIT=m
370CONFIG_NETFILTER_XT_MATCH_MAC=m
371CONFIG_NETFILTER_XT_MATCH_MARK=m
372CONFIG_NETFILTER_XT_MATCH_POLICY=m
373CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
374CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
375CONFIG_NETFILTER_XT_MATCH_QUOTA=m
376CONFIG_NETFILTER_XT_MATCH_REALM=m
377CONFIG_NETFILTER_XT_MATCH_SCTP=m
378CONFIG_NETFILTER_XT_MATCH_STATE=m
379CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
380CONFIG_NETFILTER_XT_MATCH_STRING=m
381CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
382CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
383
384#
385# IP: Netfilter Configuration
386#
387CONFIG_NF_CONNTRACK_IPV4=m
388CONFIG_NF_CONNTRACK_PROC_COMPAT=y
389# CONFIG_IP_NF_QUEUE is not set
390# CONFIG_IP_NF_IPTABLES is not set
391# CONFIG_IP_NF_ARPTABLES is not set
392
393#
394# DCCP Configuration (EXPERIMENTAL)
395#
396# CONFIG_IP_DCCP is not set 409# CONFIG_IP_DCCP is not set
397
398#
399# SCTP Configuration (EXPERIMENTAL)
400#
401# CONFIG_IP_SCTP is not set 410# CONFIG_IP_SCTP is not set
402 411# CONFIG_RDS is not set
403#
404# TIPC Configuration (EXPERIMENTAL)
405#
406# CONFIG_TIPC is not set 412# CONFIG_TIPC is not set
407# CONFIG_ATM is not set 413# CONFIG_ATM is not set
408# CONFIG_BRIDGE is not set 414# CONFIG_BRIDGE is not set
415# CONFIG_NET_DSA is not set
409# CONFIG_VLAN_8021Q is not set 416# CONFIG_VLAN_8021Q is not set
410# CONFIG_DECNET is not set 417# CONFIG_DECNET is not set
411# CONFIG_LLC2 is not set 418# CONFIG_LLC2 is not set
@@ -415,27 +422,30 @@ CONFIG_NF_CONNTRACK_PROC_COMPAT=y
415# CONFIG_LAPB is not set 422# CONFIG_LAPB is not set
416# CONFIG_ECONET is not set 423# CONFIG_ECONET is not set
417# CONFIG_WAN_ROUTER is not set 424# CONFIG_WAN_ROUTER is not set
418 425# CONFIG_PHONET is not set
419# 426# CONFIG_IEEE802154 is not set
420# QoS and/or fair queueing
421#
422# CONFIG_NET_SCHED is not set 427# CONFIG_NET_SCHED is not set
423CONFIG_NET_CLS_ROUTE=y 428# CONFIG_DCB is not set
424 429
425# 430#
426# Network testing 431# Network testing
427# 432#
428# CONFIG_NET_PKTGEN is not set 433# CONFIG_NET_PKTGEN is not set
429# CONFIG_HAMRADIO is not set 434# CONFIG_HAMRADIO is not set
435# CONFIG_CAN is not set
430# CONFIG_IRDA is not set 436# CONFIG_IRDA is not set
431# CONFIG_BT is not set 437# CONFIG_BT is not set
432CONFIG_IEEE80211=m 438# CONFIG_AF_RXRPC is not set
433# CONFIG_IEEE80211_DEBUG is not set 439CONFIG_WIRELESS=y
434CONFIG_IEEE80211_CRYPT_WEP=m 440# CONFIG_CFG80211 is not set
435CONFIG_IEEE80211_CRYPT_CCMP=m 441# CONFIG_LIB80211 is not set
436CONFIG_IEEE80211_SOFTMAC=m 442
437# CONFIG_IEEE80211_SOFTMAC_DEBUG is not set 443#
438CONFIG_WIRELESS_EXT=y 444# CFG80211 needs to be enabled for MAC80211
445#
446# CONFIG_WIMAX is not set
447# CONFIG_RFKILL is not set
448# CONFIG_NET_9P is not set
439 449
440# 450#
441# Device Drivers 451# Device Drivers
@@ -444,25 +454,25 @@ CONFIG_WIRELESS_EXT=y
444# 454#
445# Generic Driver Options 455# Generic Driver Options
446# 456#
457CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
458# CONFIG_DEVTMPFS is not set
447CONFIG_STANDALONE=y 459CONFIG_STANDALONE=y
448CONFIG_PREVENT_FIRMWARE_BUILD=y 460CONFIG_PREVENT_FIRMWARE_BUILD=y
449CONFIG_FW_LOADER=m 461CONFIG_FW_LOADER=y
462CONFIG_FIRMWARE_IN_KERNEL=y
463CONFIG_EXTRA_FIRMWARE=""
464# CONFIG_DEBUG_DRIVER is not set
465# CONFIG_DEBUG_DEVRES is not set
450# CONFIG_SYS_HYPERVISOR is not set 466# CONFIG_SYS_HYPERVISOR is not set
451 467# CONFIG_CONNECTOR is not set
452#
453# Connector - unified userspace <-> kernelspace linker
454#
455CONFIG_CONNECTOR=m
456
457#
458# Memory Technology Devices (MTD)
459#
460CONFIG_MTD=y 468CONFIG_MTD=y
461# CONFIG_MTD_DEBUG is not set 469# CONFIG_MTD_DEBUG is not set
470# CONFIG_MTD_TESTS is not set
462# CONFIG_MTD_CONCAT is not set 471# CONFIG_MTD_CONCAT is not set
463CONFIG_MTD_PARTITIONS=y 472CONFIG_MTD_PARTITIONS=y
464# CONFIG_MTD_REDBOOT_PARTS is not set 473# CONFIG_MTD_REDBOOT_PARTS is not set
465# CONFIG_MTD_CMDLINE_PARTS is not set 474# CONFIG_MTD_CMDLINE_PARTS is not set
475# CONFIG_MTD_AR7_PARTS is not set
466 476
467# 477#
468# User Modules And Translation Layers 478# User Modules And Translation Layers
@@ -475,6 +485,7 @@ CONFIG_MTD_BLOCK=y
475# CONFIG_INFTL is not set 485# CONFIG_INFTL is not set
476# CONFIG_RFD_FTL is not set 486# CONFIG_RFD_FTL is not set
477# CONFIG_SSFDC is not set 487# CONFIG_SSFDC is not set
488# CONFIG_MTD_OOPS is not set
478 489
479# 490#
480# RAM/ROM/Flash chip drivers 491# RAM/ROM/Flash chip drivers
@@ -500,14 +511,14 @@ CONFIG_MTD_CFI_UTIL=y
500# CONFIG_MTD_RAM is not set 511# CONFIG_MTD_RAM is not set
501# CONFIG_MTD_ROM is not set 512# CONFIG_MTD_ROM is not set
502# CONFIG_MTD_ABSENT is not set 513# CONFIG_MTD_ABSENT is not set
503# CONFIG_MTD_OBSOLETE_CHIPS is not set
504 514
505# 515#
506# Mapping drivers for chip access 516# Mapping drivers for chip access
507# 517#
508# CONFIG_MTD_COMPLEX_MAPPINGS is not set 518# CONFIG_MTD_COMPLEX_MAPPINGS is not set
509# CONFIG_MTD_PHYSMAP is not set 519CONFIG_MTD_PHYSMAP=y
510CONFIG_MTD_ALCHEMY=y 520# CONFIG_MTD_PHYSMAP_COMPAT is not set
521# CONFIG_MTD_INTEL_VR_NOR is not set
511# CONFIG_MTD_PLATRAM is not set 522# CONFIG_MTD_PLATRAM is not set
512 523
513# 524#
@@ -525,30 +536,30 @@ CONFIG_MTD_ALCHEMY=y
525# CONFIG_MTD_DOC2000 is not set 536# CONFIG_MTD_DOC2000 is not set
526# CONFIG_MTD_DOC2001 is not set 537# CONFIG_MTD_DOC2001 is not set
527# CONFIG_MTD_DOC2001PLUS is not set 538# CONFIG_MTD_DOC2001PLUS is not set
528 539CONFIG_MTD_NAND=y
529# 540# CONFIG_MTD_NAND_VERIFY_WRITE is not set
530# NAND Flash Device Drivers 541# CONFIG_MTD_NAND_ECC_SMC is not set
531# 542# CONFIG_MTD_NAND_MUSEUM_IDS is not set
532# CONFIG_MTD_NAND is not set 543CONFIG_MTD_NAND_IDS=y
533 544CONFIG_MTD_NAND_AU1550=y
534# 545# CONFIG_MTD_NAND_DISKONCHIP is not set
535# OneNAND Flash Device Drivers 546# CONFIG_MTD_NAND_CAFE is not set
536# 547# CONFIG_MTD_NAND_NANDSIM is not set
548# CONFIG_MTD_NAND_PLATFORM is not set
549# CONFIG_MTD_ALAUDA is not set
537# CONFIG_MTD_ONENAND is not set 550# CONFIG_MTD_ONENAND is not set
538 551
539# 552#
540# Parallel port support 553# LPDDR flash memory drivers
541#
542# CONFIG_PARPORT is not set
543
544#
545# Plug and Play support
546# 554#
547# CONFIG_PNPACPI is not set 555# CONFIG_MTD_LPDDR is not set
548 556
549# 557#
550# Block devices 558# UBI - Unsorted block images
551# 559#
560# CONFIG_MTD_UBI is not set
561# CONFIG_PARPORT is not set
562CONFIG_BLK_DEV=y
552# CONFIG_BLK_CPQ_DA is not set 563# CONFIG_BLK_CPQ_DA is not set
553# CONFIG_BLK_CPQ_CISS_DA is not set 564# CONFIG_BLK_CPQ_CISS_DA is not set
554# CONFIG_BLK_DEV_DAC960 is not set 565# CONFIG_BLK_DEV_DAC960 is not set
@@ -556,67 +567,66 @@ CONFIG_MTD_ALCHEMY=y
556# CONFIG_BLK_DEV_COW_COMMON is not set 567# CONFIG_BLK_DEV_COW_COMMON is not set
557CONFIG_BLK_DEV_LOOP=y 568CONFIG_BLK_DEV_LOOP=y
558# CONFIG_BLK_DEV_CRYPTOLOOP is not set 569# CONFIG_BLK_DEV_CRYPTOLOOP is not set
559# CONFIG_BLK_DEV_NBD is not set
560# CONFIG_BLK_DEV_SX8 is not set
561# CONFIG_BLK_DEV_RAM is not set
562# CONFIG_BLK_DEV_INITRD is not set
563CONFIG_CDROM_PKTCDVD=m
564CONFIG_CDROM_PKTCDVD_BUFFERS=8
565# CONFIG_CDROM_PKTCDVD_WCACHE is not set
566CONFIG_ATA_OVER_ETH=m
567 570
568# 571#
569# Misc devices 572# DRBD disabled because PROC_FS, INET or CONNECTOR not selected
570#
571CONFIG_SGI_IOC4=m
572# CONFIG_TIFM_CORE is not set
573
574#
575# ATA/ATAPI/MFM/RLL support
576# 573#
574# CONFIG_BLK_DEV_NBD is not set
575# CONFIG_BLK_DEV_SX8 is not set
576CONFIG_BLK_DEV_UB=y
577# CONFIG_BLK_DEV_RAM is not set
578# CONFIG_CDROM_PKTCDVD is not set
579# CONFIG_ATA_OVER_ETH is not set
580# CONFIG_BLK_DEV_HD is not set
581# CONFIG_MISC_DEVICES is not set
582CONFIG_HAVE_IDE=y
577CONFIG_IDE=y 583CONFIG_IDE=y
578CONFIG_IDE_MAX_HWIFS=4
579CONFIG_BLK_DEV_IDE=y
580 584
581# 585#
582# Please see Documentation/ide.txt for help/info on IDE drives 586# Please see Documentation/ide/ide.txt for help/info on IDE drives
583# 587#
588CONFIG_IDE_XFER_MODE=y
589CONFIG_IDE_ATAPI=y
584# CONFIG_BLK_DEV_IDE_SATA is not set 590# CONFIG_BLK_DEV_IDE_SATA is not set
585CONFIG_BLK_DEV_IDEDISK=y 591CONFIG_IDE_GD=y
586# CONFIG_IDEDISK_MULTI_MODE is not set 592CONFIG_IDE_GD_ATA=y
587CONFIG_BLK_DEV_IDECS=m 593# CONFIG_IDE_GD_ATAPI is not set
588# CONFIG_BLK_DEV_DELKIN is not set 594CONFIG_BLK_DEV_IDECS=y
589# CONFIG_BLK_DEV_IDECD is not set 595CONFIG_BLK_DEV_IDECD=y
596# CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS is not set
590# CONFIG_BLK_DEV_IDETAPE is not set 597# CONFIG_BLK_DEV_IDETAPE is not set
591# CONFIG_BLK_DEV_IDEFLOPPY is not set
592# CONFIG_IDE_TASK_IOCTL is not set 598# CONFIG_IDE_TASK_IOCTL is not set
599CONFIG_IDE_PROC_FS=y
593 600
594# 601#
595# IDE chipset support/bugfixes 602# IDE chipset support/bugfixes
596# 603#
597CONFIG_IDE_GENERIC=y 604# CONFIG_IDE_GENERIC is not set
605# CONFIG_BLK_DEV_PLATFORM is not set
606CONFIG_BLK_DEV_IDEDMA_SFF=y
607
608#
609# PCI IDE chipsets support
610#
598CONFIG_BLK_DEV_IDEPCI=y 611CONFIG_BLK_DEV_IDEPCI=y
599# CONFIG_IDEPCI_SHARE_IRQ is not set 612# CONFIG_IDEPCI_PCIBUS_ORDER is not set
600# CONFIG_BLK_DEV_OFFBOARD is not set 613# CONFIG_BLK_DEV_OFFBOARD is not set
601CONFIG_BLK_DEV_GENERIC=y 614# CONFIG_BLK_DEV_GENERIC is not set
602# CONFIG_BLK_DEV_OPTI621 is not set 615# CONFIG_BLK_DEV_OPTI621 is not set
603CONFIG_BLK_DEV_IDEDMA_PCI=y 616CONFIG_BLK_DEV_IDEDMA_PCI=y
604# CONFIG_BLK_DEV_IDEDMA_FORCED is not set
605# CONFIG_IDEDMA_PCI_AUTO is not set
606# CONFIG_BLK_DEV_AEC62XX is not set 617# CONFIG_BLK_DEV_AEC62XX is not set
607# CONFIG_BLK_DEV_ALI15X3 is not set 618# CONFIG_BLK_DEV_ALI15X3 is not set
608# CONFIG_BLK_DEV_AMD74XX is not set 619# CONFIG_BLK_DEV_AMD74XX is not set
609# CONFIG_BLK_DEV_CMD64X is not set 620# CONFIG_BLK_DEV_CMD64X is not set
610# CONFIG_BLK_DEV_TRIFLEX is not set 621# CONFIG_BLK_DEV_TRIFLEX is not set
611# CONFIG_BLK_DEV_CY82C693 is not set
612# CONFIG_BLK_DEV_CS5520 is not set 622# CONFIG_BLK_DEV_CS5520 is not set
613# CONFIG_BLK_DEV_CS5530 is not set 623# CONFIG_BLK_DEV_CS5530 is not set
614# CONFIG_BLK_DEV_HPT34X is not set
615CONFIG_BLK_DEV_HPT366=y 624CONFIG_BLK_DEV_HPT366=y
616# CONFIG_BLK_DEV_JMICRON is not set 625# CONFIG_BLK_DEV_JMICRON is not set
617# CONFIG_BLK_DEV_SC1200 is not set 626# CONFIG_BLK_DEV_SC1200 is not set
618# CONFIG_BLK_DEV_PIIX is not set 627# CONFIG_BLK_DEV_PIIX is not set
619CONFIG_BLK_DEV_IT8213=m 628# CONFIG_BLK_DEV_IT8172 is not set
629# CONFIG_BLK_DEV_IT8213 is not set
620# CONFIG_BLK_DEV_IT821X is not set 630# CONFIG_BLK_DEV_IT821X is not set
621# CONFIG_BLK_DEV_NS87415 is not set 631# CONFIG_BLK_DEV_NS87415 is not set
622# CONFIG_BLK_DEV_PDC202XX_OLD is not set 632# CONFIG_BLK_DEV_PDC202XX_OLD is not set
@@ -626,82 +636,65 @@ CONFIG_BLK_DEV_IT8213=m
626# CONFIG_BLK_DEV_SLC90E66 is not set 636# CONFIG_BLK_DEV_SLC90E66 is not set
627# CONFIG_BLK_DEV_TRM290 is not set 637# CONFIG_BLK_DEV_TRM290 is not set
628# CONFIG_BLK_DEV_VIA82CXXX is not set 638# CONFIG_BLK_DEV_VIA82CXXX is not set
629CONFIG_BLK_DEV_TC86C001=m 639# CONFIG_BLK_DEV_TC86C001 is not set
630# CONFIG_IDE_ARM is not set
631CONFIG_BLK_DEV_IDEDMA=y 640CONFIG_BLK_DEV_IDEDMA=y
632# CONFIG_IDEDMA_IVB is not set
633# CONFIG_IDEDMA_AUTO is not set
634# CONFIG_BLK_DEV_HD is not set
635 641
636# 642#
637# SCSI device support 643# SCSI device support
638# 644#
639CONFIG_RAID_ATTRS=m 645# CONFIG_RAID_ATTRS is not set
640# CONFIG_SCSI is not set 646# CONFIG_SCSI is not set
647# CONFIG_SCSI_DMA is not set
641# CONFIG_SCSI_NETLINK is not set 648# CONFIG_SCSI_NETLINK is not set
642
643#
644# Serial ATA (prod) and Parallel ATA (experimental) drivers
645#
646# CONFIG_ATA is not set 649# CONFIG_ATA is not set
647
648#
649# Multi-device support (RAID and LVM)
650#
651# CONFIG_MD is not set 650# CONFIG_MD is not set
652
653#
654# Fusion MPT device support
655#
656# CONFIG_FUSION is not set 651# CONFIG_FUSION is not set
657 652
658# 653#
659# IEEE 1394 (FireWire) support 654# IEEE 1394 (FireWire) support
660# 655#
661# CONFIG_IEEE1394 is not set
662 656
663# 657#
664# I2O device support 658# You can enable one or both FireWire driver stacks.
665# 659#
666# CONFIG_I2O is not set
667 660
668# 661#
669# Network device support 662# The newer stack is recommended.
670# 663#
664# CONFIG_FIREWIRE is not set
665# CONFIG_IEEE1394 is not set
666# CONFIG_I2O is not set
671CONFIG_NETDEVICES=y 667CONFIG_NETDEVICES=y
672# CONFIG_DUMMY is not set 668# CONFIG_DUMMY is not set
673# CONFIG_BONDING is not set 669# CONFIG_BONDING is not set
670# CONFIG_MACVLAN is not set
674# CONFIG_EQUALIZER is not set 671# CONFIG_EQUALIZER is not set
675# CONFIG_TUN is not set 672# CONFIG_TUN is not set
676 673# CONFIG_VETH is not set
677#
678# ARCnet devices
679#
680# CONFIG_ARCNET is not set 674# CONFIG_ARCNET is not set
681
682#
683# PHY device support
684#
685CONFIG_PHYLIB=y 675CONFIG_PHYLIB=y
686 676
687# 677#
688# MII PHY device drivers 678# MII PHY device drivers
689# 679#
690CONFIG_MARVELL_PHY=m 680CONFIG_MARVELL_PHY=y
691CONFIG_DAVICOM_PHY=m 681CONFIG_DAVICOM_PHY=y
692CONFIG_QSEMI_PHY=m 682CONFIG_QSEMI_PHY=y
693CONFIG_LXT_PHY=m 683CONFIG_LXT_PHY=y
694CONFIG_CICADA_PHY=m 684CONFIG_CICADA_PHY=y
695CONFIG_VITESSE_PHY=m 685CONFIG_VITESSE_PHY=y
696CONFIG_SMSC_PHY=m 686CONFIG_SMSC_PHY=y
697# CONFIG_BROADCOM_PHY is not set 687CONFIG_BROADCOM_PHY=y
688CONFIG_ICPLUS_PHY=y
689CONFIG_REALTEK_PHY=y
690CONFIG_NATIONAL_PHY=y
691CONFIG_STE10XP=y
692CONFIG_LSI_ET1011C_PHY=y
698# CONFIG_FIXED_PHY is not set 693# CONFIG_FIXED_PHY is not set
699 694# CONFIG_MDIO_BITBANG is not set
700#
701# Ethernet (10 or 100Mbit)
702#
703CONFIG_NET_ETHERNET=y 695CONFIG_NET_ETHERNET=y
704# CONFIG_MII is not set 696CONFIG_MII=y
697# CONFIG_AX88796 is not set
705CONFIG_MIPS_AU1X00_ENET=y 698CONFIG_MIPS_AU1X00_ENET=y
706# CONFIG_HAPPYMEAL is not set 699# CONFIG_HAPPYMEAL is not set
707# CONFIG_SUNGEM is not set 700# CONFIG_SUNGEM is not set
@@ -709,88 +702,51 @@ CONFIG_MIPS_AU1X00_ENET=y
709# CONFIG_NET_VENDOR_3COM is not set 702# CONFIG_NET_VENDOR_3COM is not set
710# CONFIG_SMC91X is not set 703# CONFIG_SMC91X is not set
711# CONFIG_DM9000 is not set 704# CONFIG_DM9000 is not set
712 705# CONFIG_ETHOC is not set
713# 706# CONFIG_SMSC911X is not set
714# Tulip family network device support 707# CONFIG_DNET is not set
715#
716# CONFIG_NET_TULIP is not set 708# CONFIG_NET_TULIP is not set
717# CONFIG_HP100 is not set 709# CONFIG_HP100 is not set
710# CONFIG_IBM_NEW_EMAC_ZMII is not set
711# CONFIG_IBM_NEW_EMAC_RGMII is not set
712# CONFIG_IBM_NEW_EMAC_TAH is not set
713# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
714# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
715# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
716# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
718# CONFIG_NET_PCI is not set 717# CONFIG_NET_PCI is not set
719 718# CONFIG_B44 is not set
720# 719# CONFIG_KS8842 is not set
721# Ethernet (1000 Mbit) 720# CONFIG_KS8851_MLL is not set
722# 721# CONFIG_ATL2 is not set
723# CONFIG_ACENIC is not set 722# CONFIG_NETDEV_1000 is not set
724# CONFIG_DL2K is not set 723# CONFIG_NETDEV_10000 is not set
725# CONFIG_E1000 is not set
726# CONFIG_NS83820 is not set
727# CONFIG_HAMACHI is not set
728# CONFIG_YELLOWFIN is not set
729# CONFIG_R8169 is not set
730# CONFIG_SIS190 is not set
731# CONFIG_SKGE is not set
732# CONFIG_SKY2 is not set
733# CONFIG_SK98LIN is not set
734# CONFIG_TIGON3 is not set
735# CONFIG_BNX2 is not set
736CONFIG_QLA3XXX=m
737# CONFIG_ATL1 is not set
738
739#
740# Ethernet (10000 Mbit)
741#
742# CONFIG_CHELSIO_T1 is not set
743CONFIG_CHELSIO_T3=m
744# CONFIG_IXGB is not set
745# CONFIG_S2IO is not set
746# CONFIG_MYRI10GE is not set
747CONFIG_NETXEN_NIC=m
748
749#
750# Token Ring devices
751#
752# CONFIG_TR is not set 724# CONFIG_TR is not set
725# CONFIG_WLAN is not set
753 726
754# 727#
755# Wireless LAN (non-hamradio) 728# Enable WiMAX (Networking options) to see the WiMAX drivers
756# 729#
757# CONFIG_NET_RADIO is not set
758 730
759# 731#
760# PCMCIA network device support 732# USB Network Adapters
761# 733#
734# CONFIG_USB_CATC is not set
735# CONFIG_USB_KAWETH is not set
736# CONFIG_USB_PEGASUS is not set
737# CONFIG_USB_RTL8150 is not set
738# CONFIG_USB_USBNET is not set
762# CONFIG_NET_PCMCIA is not set 739# CONFIG_NET_PCMCIA is not set
763
764#
765# Wan interfaces
766#
767# CONFIG_WAN is not set 740# CONFIG_WAN is not set
768# CONFIG_FDDI is not set 741# CONFIG_FDDI is not set
769# CONFIG_HIPPI is not set 742# CONFIG_HIPPI is not set
770CONFIG_PPP=m 743# CONFIG_PPP is not set
771CONFIG_PPP_MULTILINK=y
772# CONFIG_PPP_FILTER is not set
773CONFIG_PPP_ASYNC=m
774# CONFIG_PPP_SYNC_TTY is not set
775CONFIG_PPP_DEFLATE=m
776# CONFIG_PPP_BSDCOMP is not set
777CONFIG_PPP_MPPE=m
778CONFIG_PPPOE=m
779# CONFIG_SLIP is not set 744# CONFIG_SLIP is not set
780CONFIG_SLHC=m
781# CONFIG_SHAPER is not set
782# CONFIG_NETCONSOLE is not set 745# CONFIG_NETCONSOLE is not set
783# CONFIG_NETPOLL is not set 746# CONFIG_NETPOLL is not set
784# CONFIG_NET_POLL_CONTROLLER is not set 747# CONFIG_NET_POLL_CONTROLLER is not set
785 748# CONFIG_VMXNET3 is not set
786#
787# ISDN subsystem
788#
789# CONFIG_ISDN is not set 749# CONFIG_ISDN is not set
790
791#
792# Telephony Support
793#
794# CONFIG_PHONE is not set 750# CONFIG_PHONE is not set
795 751
796# 752#
@@ -798,16 +754,14 @@ CONFIG_SLHC=m
798# 754#
799CONFIG_INPUT=y 755CONFIG_INPUT=y
800# CONFIG_INPUT_FF_MEMLESS is not set 756# CONFIG_INPUT_FF_MEMLESS is not set
757# CONFIG_INPUT_POLLDEV is not set
758# CONFIG_INPUT_SPARSEKMAP is not set
801 759
802# 760#
803# Userland interfaces 761# Userland interfaces
804# 762#
805CONFIG_INPUT_MOUSEDEV=y 763# CONFIG_INPUT_MOUSEDEV is not set
806CONFIG_INPUT_MOUSEDEV_PSAUX=y
807CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
808CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
809# CONFIG_INPUT_JOYDEV is not set 764# CONFIG_INPUT_JOYDEV is not set
810# CONFIG_INPUT_TSDEV is not set
811CONFIG_INPUT_EVDEV=y 765CONFIG_INPUT_EVDEV=y
812# CONFIG_INPUT_EVBUG is not set 766# CONFIG_INPUT_EVBUG is not set
813 767
@@ -817,33 +771,34 @@ CONFIG_INPUT_EVDEV=y
817# CONFIG_INPUT_KEYBOARD is not set 771# CONFIG_INPUT_KEYBOARD is not set
818# CONFIG_INPUT_MOUSE is not set 772# CONFIG_INPUT_MOUSE is not set
819# CONFIG_INPUT_JOYSTICK is not set 773# CONFIG_INPUT_JOYSTICK is not set
774# CONFIG_INPUT_TABLET is not set
820# CONFIG_INPUT_TOUCHSCREEN is not set 775# CONFIG_INPUT_TOUCHSCREEN is not set
821# CONFIG_INPUT_MISC is not set 776# CONFIG_INPUT_MISC is not set
822 777
823# 778#
824# Hardware I/O ports 779# Hardware I/O ports
825# 780#
826CONFIG_SERIO=y 781# CONFIG_SERIO is not set
827# CONFIG_SERIO_I8042 is not set
828CONFIG_SERIO_SERPORT=y
829# CONFIG_SERIO_PCIPS2 is not set
830# CONFIG_SERIO_LIBPS2 is not set
831CONFIG_SERIO_RAW=m
832# CONFIG_GAMEPORT is not set 782# CONFIG_GAMEPORT is not set
833 783
834# 784#
835# Character devices 785# Character devices
836# 786#
837# CONFIG_VT is not set 787CONFIG_VT=y
788CONFIG_CONSOLE_TRANSLATIONS=y
789CONFIG_VT_CONSOLE=y
790CONFIG_HW_CONSOLE=y
791CONFIG_VT_HW_CONSOLE_BINDING=y
792CONFIG_DEVKMEM=y
838# CONFIG_SERIAL_NONSTANDARD is not set 793# CONFIG_SERIAL_NONSTANDARD is not set
839# CONFIG_AU1X00_GPIO is not set 794# CONFIG_NOZOMI is not set
840 795
841# 796#
842# Serial drivers 797# Serial drivers
843# 798#
844CONFIG_SERIAL_8250=y 799CONFIG_SERIAL_8250=y
845CONFIG_SERIAL_8250_CONSOLE=y 800CONFIG_SERIAL_8250_CONSOLE=y
846CONFIG_SERIAL_8250_PCI=y 801# CONFIG_SERIAL_8250_PCI is not set
847# CONFIG_SERIAL_8250_CS is not set 802# CONFIG_SERIAL_8250_CS is not set
848CONFIG_SERIAL_8250_NR_UARTS=4 803CONFIG_SERIAL_8250_NR_UARTS=4
849CONFIG_SERIAL_8250_RUNTIME_UARTS=4 804CONFIG_SERIAL_8250_RUNTIME_UARTS=4
@@ -857,282 +812,492 @@ CONFIG_SERIAL_CORE=y
857CONFIG_SERIAL_CORE_CONSOLE=y 812CONFIG_SERIAL_CORE_CONSOLE=y
858# CONFIG_SERIAL_JSM is not set 813# CONFIG_SERIAL_JSM is not set
859CONFIG_UNIX98_PTYS=y 814CONFIG_UNIX98_PTYS=y
860CONFIG_LEGACY_PTYS=y 815# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
861CONFIG_LEGACY_PTY_COUNT=256 816# CONFIG_LEGACY_PTYS is not set
862
863#
864# IPMI
865#
866# CONFIG_IPMI_HANDLER is not set 817# CONFIG_IPMI_HANDLER is not set
867
868#
869# Watchdog Cards
870#
871# CONFIG_WATCHDOG is not set
872# CONFIG_HW_RANDOM is not set 818# CONFIG_HW_RANDOM is not set
873# CONFIG_RTC is not set
874# CONFIG_GEN_RTC is not set
875# CONFIG_DTLK is not set
876# CONFIG_R3964 is not set 819# CONFIG_R3964 is not set
877# CONFIG_APPLICOM is not set 820# CONFIG_APPLICOM is not set
878# CONFIG_DRM is not set
879 821
880# 822#
881# PCMCIA character devices 823# PCMCIA character devices
882# 824#
883CONFIG_SYNCLINK_CS=m 825# CONFIG_SYNCLINK_CS is not set
884# CONFIG_CARDMAN_4000 is not set 826# CONFIG_CARDMAN_4000 is not set
885# CONFIG_CARDMAN_4040 is not set 827# CONFIG_CARDMAN_4040 is not set
828# CONFIG_IPWIRELESS is not set
886# CONFIG_RAW_DRIVER is not set 829# CONFIG_RAW_DRIVER is not set
830# CONFIG_TCG_TPM is not set
831CONFIG_DEVPORT=y
832CONFIG_I2C=y
833CONFIG_I2C_BOARDINFO=y
834# CONFIG_I2C_COMPAT is not set
835CONFIG_I2C_CHARDEV=y
836# CONFIG_I2C_HELPER_AUTO is not set
887 837
888# 838#
889# TPM devices 839# I2C Algorithms
890# 840#
891# CONFIG_TCG_TPM is not set 841# CONFIG_I2C_ALGOBIT is not set
842# CONFIG_I2C_ALGOPCF is not set
843# CONFIG_I2C_ALGOPCA is not set
892 844
893# 845#
894# I2C support 846# I2C Hardware Bus support
895# 847#
896# CONFIG_I2C is not set
897 848
898# 849#
899# SPI support 850# PC SMBus host controller drivers
900# 851#
901# CONFIG_SPI is not set 852# CONFIG_I2C_ALI1535 is not set
902# CONFIG_SPI_MASTER is not set 853# CONFIG_I2C_ALI1563 is not set
854# CONFIG_I2C_ALI15X3 is not set
855# CONFIG_I2C_AMD756 is not set
856# CONFIG_I2C_AMD8111 is not set
857# CONFIG_I2C_I801 is not set
858# CONFIG_I2C_ISCH is not set
859# CONFIG_I2C_PIIX4 is not set
860# CONFIG_I2C_NFORCE2 is not set
861# CONFIG_I2C_SIS5595 is not set
862# CONFIG_I2C_SIS630 is not set
863# CONFIG_I2C_SIS96X is not set
864# CONFIG_I2C_VIA is not set
865# CONFIG_I2C_VIAPRO is not set
903 866
904# 867#
905# Dallas's 1-wire bus 868# I2C system bus drivers (mostly embedded / system-on-chip)
906# 869#
907# CONFIG_W1 is not set 870CONFIG_I2C_AU1550=y
871# CONFIG_I2C_GPIO is not set
872# CONFIG_I2C_OCORES is not set
873# CONFIG_I2C_SIMTEC is not set
874
875#
876# External I2C/SMBus adapter drivers
877#
878# CONFIG_I2C_PARPORT_LIGHT is not set
879# CONFIG_I2C_TAOS_EVM is not set
880# CONFIG_I2C_TINY_USB is not set
908 881
909# 882#
910# Hardware Monitoring support 883# Other I2C/SMBus bus drivers
911# 884#
885# CONFIG_I2C_PCA_PLATFORM is not set
886# CONFIG_I2C_STUB is not set
887
888#
889# Miscellaneous I2C Chip support
890#
891# CONFIG_SENSORS_TSL2550 is not set
892# CONFIG_I2C_DEBUG_CORE is not set
893# CONFIG_I2C_DEBUG_ALGO is not set
894# CONFIG_I2C_DEBUG_BUS is not set
895# CONFIG_I2C_DEBUG_CHIP is not set
896# CONFIG_SPI is not set
897
898#
899# PPS support
900#
901# CONFIG_PPS is not set
902CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
903# CONFIG_GPIOLIB is not set
904# CONFIG_W1 is not set
905# CONFIG_POWER_SUPPLY is not set
912# CONFIG_HWMON is not set 906# CONFIG_HWMON is not set
913# CONFIG_HWMON_VID is not set 907# CONFIG_THERMAL is not set
908# CONFIG_WATCHDOG is not set
909CONFIG_SSB_POSSIBLE=y
914 910
915# 911#
916# Multimedia devices 912# Sonics Silicon Backplane
917# 913#
918# CONFIG_VIDEO_DEV is not set 914# CONFIG_SSB is not set
919 915
920# 916#
921# Digital Video Broadcasting Devices 917# Multifunction device drivers
922# 918#
923# CONFIG_DVB is not set 919# CONFIG_MFD_CORE is not set
920# CONFIG_MFD_SM501 is not set
921# CONFIG_HTC_PASIC3 is not set
922# CONFIG_TWL4030_CORE is not set
923# CONFIG_MFD_TMIO is not set
924# CONFIG_PMIC_DA903X is not set
925# CONFIG_PMIC_ADP5520 is not set
926# CONFIG_MFD_WM8400 is not set
927# CONFIG_MFD_WM831X is not set
928# CONFIG_MFD_WM8350_I2C is not set
929# CONFIG_MFD_PCF50633 is not set
930# CONFIG_AB3100_CORE is not set
931# CONFIG_MFD_88PM8607 is not set
932# CONFIG_REGULATOR is not set
933# CONFIG_MEDIA_SUPPORT is not set
924 934
925# 935#
926# Graphics support 936# Graphics support
927# 937#
928# CONFIG_FIRMWARE_EDID is not set 938# CONFIG_VGA_ARB is not set
939# CONFIG_DRM is not set
940# CONFIG_VGASTATE is not set
941# CONFIG_VIDEO_OUTPUT_CONTROL is not set
929# CONFIG_FB is not set 942# CONFIG_FB is not set
930# CONFIG_BACKLIGHT_LCD_SUPPORT is not set 943# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
931 944
932# 945#
933# Sound 946# Display device support
934#
935# CONFIG_SOUND is not set
936
937#
938# HID Devices
939# 947#
940# CONFIG_HID is not set 948# CONFIG_DISPLAY_SUPPORT is not set
941 949
942# 950#
943# USB support 951# Console display driver support
944# 952#
953CONFIG_VGA_CONSOLE=y
954# CONFIG_VGACON_SOFT_SCROLLBACK is not set
955CONFIG_DUMMY_CONSOLE=y
956# CONFIG_SOUND is not set
957CONFIG_HID_SUPPORT=y
958CONFIG_HID=y
959CONFIG_HIDRAW=y
960
961#
962# USB Input Devices
963#
964CONFIG_USB_HID=y
965# CONFIG_HID_PID is not set
966CONFIG_USB_HIDDEV=y
967
968#
969# Special HID drivers
970#
971# CONFIG_HID_A4TECH is not set
972# CONFIG_HID_APPLE is not set
973# CONFIG_HID_BELKIN is not set
974# CONFIG_HID_CHERRY is not set
975# CONFIG_HID_CHICONY is not set
976# CONFIG_HID_CYPRESS is not set
977# CONFIG_HID_DRAGONRISE is not set
978# CONFIG_HID_EZKEY is not set
979# CONFIG_HID_KYE is not set
980# CONFIG_HID_GYRATION is not set
981# CONFIG_HID_TWINHAN is not set
982# CONFIG_HID_KENSINGTON is not set
983# CONFIG_HID_LOGITECH is not set
984# CONFIG_HID_MICROSOFT is not set
985# CONFIG_HID_MONTEREY is not set
986# CONFIG_HID_NTRIG is not set
987# CONFIG_HID_PANTHERLORD is not set
988# CONFIG_HID_PETALYNX is not set
989# CONFIG_HID_SAMSUNG is not set
990# CONFIG_HID_SONY is not set
991# CONFIG_HID_SUNPLUS is not set
992# CONFIG_HID_GREENASIA is not set
993# CONFIG_HID_SMARTJOYPLUS is not set
994# CONFIG_HID_TOPSEED is not set
995# CONFIG_HID_THRUSTMASTER is not set
996# CONFIG_HID_ZEROPLUS is not set
997CONFIG_USB_SUPPORT=y
945CONFIG_USB_ARCH_HAS_HCD=y 998CONFIG_USB_ARCH_HAS_HCD=y
946CONFIG_USB_ARCH_HAS_OHCI=y 999CONFIG_USB_ARCH_HAS_OHCI=y
947CONFIG_USB_ARCH_HAS_EHCI=y 1000CONFIG_USB_ARCH_HAS_EHCI=y
948# CONFIG_USB is not set 1001CONFIG_USB=y
1002# CONFIG_USB_DEBUG is not set
1003# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
949 1004
950# 1005#
951# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 1006# Miscellaneous USB options
952# 1007#
1008CONFIG_USB_DEVICEFS=y
1009CONFIG_USB_DEVICE_CLASS=y
1010CONFIG_USB_DYNAMIC_MINORS=y
1011CONFIG_USB_SUSPEND=y
1012# CONFIG_USB_OTG is not set
1013# CONFIG_USB_OTG_WHITELIST is not set
1014# CONFIG_USB_OTG_BLACKLIST_HUB is not set
1015# CONFIG_USB_MON is not set
1016# CONFIG_USB_WUSB is not set
1017# CONFIG_USB_WUSB_CBAF is not set
953 1018
954# 1019#
955# USB Gadget Support 1020# USB Host Controller Drivers
956# 1021#
957# CONFIG_USB_GADGET is not set 1022# CONFIG_USB_C67X00_HCD is not set
1023# CONFIG_USB_XHCI_HCD is not set
1024CONFIG_USB_EHCI_HCD=y
1025CONFIG_USB_EHCI_ROOT_HUB_TT=y
1026CONFIG_USB_EHCI_TT_NEWSCHED=y
1027# CONFIG_USB_OXU210HP_HCD is not set
1028# CONFIG_USB_ISP116X_HCD is not set
1029# CONFIG_USB_ISP1760_HCD is not set
1030# CONFIG_USB_ISP1362_HCD is not set
1031CONFIG_USB_OHCI_HCD=y
1032# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
1033# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
1034CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1035# CONFIG_USB_UHCI_HCD is not set
1036# CONFIG_USB_SL811_HCD is not set
1037# CONFIG_USB_R8A66597_HCD is not set
1038# CONFIG_USB_WHCI_HCD is not set
1039# CONFIG_USB_HWA_HCD is not set
958 1040
959# 1041#
960# MMC/SD Card support 1042# USB Device Class drivers
961# 1043#
962# CONFIG_MMC is not set 1044# CONFIG_USB_ACM is not set
1045# CONFIG_USB_PRINTER is not set
1046# CONFIG_USB_WDM is not set
1047# CONFIG_USB_TMC is not set
963 1048
964# 1049#
965# LED devices 1050# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
966# 1051#
967# CONFIG_NEW_LEDS is not set
968 1052
969# 1053#
970# LED drivers 1054# also be needed; see USB_STORAGE Help for more info
971# 1055#
1056# CONFIG_USB_LIBUSUAL is not set
972 1057
973# 1058#
974# LED Triggers 1059# USB Imaging devices
975# 1060#
1061# CONFIG_USB_MDC800 is not set
976 1062
977# 1063#
978# InfiniBand support 1064# USB port drivers
979# 1065#
980# CONFIG_INFINIBAND is not set 1066# CONFIG_USB_SERIAL is not set
981 1067
982# 1068#
983# EDAC - error detection and reporting (RAS) (EXPERIMENTAL) 1069# USB Miscellaneous drivers
984# 1070#
1071# CONFIG_USB_EMI62 is not set
1072# CONFIG_USB_EMI26 is not set
1073# CONFIG_USB_ADUTUX is not set
1074# CONFIG_USB_SEVSEG is not set
1075# CONFIG_USB_RIO500 is not set
1076# CONFIG_USB_LEGOTOWER is not set
1077# CONFIG_USB_LCD is not set
1078# CONFIG_USB_BERRY_CHARGE is not set
1079# CONFIG_USB_LED is not set
1080# CONFIG_USB_CYPRESS_CY7C63 is not set
1081# CONFIG_USB_CYTHERM is not set
1082# CONFIG_USB_IDMOUSE is not set
1083# CONFIG_USB_FTDI_ELAN is not set
1084# CONFIG_USB_APPLEDISPLAY is not set
1085# CONFIG_USB_SISUSBVGA is not set
1086# CONFIG_USB_LD is not set
1087# CONFIG_USB_TRANCEVIBRATOR is not set
1088# CONFIG_USB_IOWARRIOR is not set
1089# CONFIG_USB_TEST is not set
1090# CONFIG_USB_ISIGHTFW is not set
1091# CONFIG_USB_VST is not set
1092# CONFIG_USB_GADGET is not set
1093
1094#
1095# OTG and related infrastructure
1096#
1097# CONFIG_USB_GPIO_VBUS is not set
1098# CONFIG_NOP_USB_XCEIV is not set
1099# CONFIG_UWB is not set
1100# CONFIG_MMC is not set
1101# CONFIG_MEMSTICK is not set
1102# CONFIG_NEW_LEDS is not set
1103# CONFIG_ACCESSIBILITY is not set
1104# CONFIG_INFINIBAND is not set
1105CONFIG_RTC_LIB=y
1106CONFIG_RTC_CLASS=y
1107CONFIG_RTC_HCTOSYS=y
1108CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
1109# CONFIG_RTC_DEBUG is not set
985 1110
986# 1111#
987# Real Time Clock 1112# RTC interfaces
988# 1113#
989# CONFIG_RTC_CLASS is not set 1114CONFIG_RTC_INTF_SYSFS=y
1115CONFIG_RTC_INTF_PROC=y
1116CONFIG_RTC_INTF_DEV=y
1117# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
1118# CONFIG_RTC_DRV_TEST is not set
990 1119
991# 1120#
992# DMA Engine support 1121# I2C RTC drivers
993# 1122#
994# CONFIG_DMA_ENGINE is not set 1123# CONFIG_RTC_DRV_DS1307 is not set
1124# CONFIG_RTC_DRV_DS1374 is not set
1125# CONFIG_RTC_DRV_DS1672 is not set
1126# CONFIG_RTC_DRV_MAX6900 is not set
1127# CONFIG_RTC_DRV_RS5C372 is not set
1128# CONFIG_RTC_DRV_ISL1208 is not set
1129# CONFIG_RTC_DRV_X1205 is not set
1130# CONFIG_RTC_DRV_PCF8563 is not set
1131# CONFIG_RTC_DRV_PCF8583 is not set
1132# CONFIG_RTC_DRV_M41T80 is not set
1133# CONFIG_RTC_DRV_BQ32K is not set
1134# CONFIG_RTC_DRV_S35390A is not set
1135# CONFIG_RTC_DRV_FM3130 is not set
1136# CONFIG_RTC_DRV_RX8581 is not set
1137# CONFIG_RTC_DRV_RX8025 is not set
995 1138
996# 1139#
997# DMA Clients 1140# SPI RTC drivers
998# 1141#
999 1142
1000# 1143#
1001# DMA Devices 1144# Platform RTC drivers
1002# 1145#
1146# CONFIG_RTC_DRV_CMOS is not set
1147# CONFIG_RTC_DRV_DS1286 is not set
1148# CONFIG_RTC_DRV_DS1511 is not set
1149# CONFIG_RTC_DRV_DS1553 is not set
1150# CONFIG_RTC_DRV_DS1742 is not set
1151# CONFIG_RTC_DRV_STK17TA8 is not set
1152# CONFIG_RTC_DRV_M48T86 is not set
1153# CONFIG_RTC_DRV_M48T35 is not set
1154# CONFIG_RTC_DRV_M48T59 is not set
1155# CONFIG_RTC_DRV_MSM6242 is not set
1156# CONFIG_RTC_DRV_BQ4802 is not set
1157# CONFIG_RTC_DRV_RP5C01 is not set
1158# CONFIG_RTC_DRV_V3020 is not set
1003 1159
1004# 1160#
1005# Auxiliary Display support 1161# on-CPU RTC drivers
1006# 1162#
1163CONFIG_RTC_DRV_AU1XXX=y
1164# CONFIG_DMADEVICES is not set
1165# CONFIG_AUXDISPLAY is not set
1166# CONFIG_UIO is not set
1007 1167
1008# 1168#
1009# Virtualization 1169# TI VLYNQ
1010# 1170#
1171# CONFIG_STAGING is not set
1011 1172
1012# 1173#
1013# File systems 1174# File systems
1014# 1175#
1015CONFIG_EXT2_FS=y 1176CONFIG_EXT2_FS=y
1016CONFIG_EXT2_FS_XATTR=y 1177# CONFIG_EXT2_FS_XATTR is not set
1017CONFIG_EXT2_FS_POSIX_ACL=y
1018# CONFIG_EXT2_FS_SECURITY is not set
1019# CONFIG_EXT2_FS_XIP is not set 1178# CONFIG_EXT2_FS_XIP is not set
1020CONFIG_EXT3_FS=y 1179# CONFIG_EXT3_FS is not set
1021CONFIG_EXT3_FS_XATTR=y 1180# CONFIG_EXT4_FS is not set
1022CONFIG_EXT3_FS_POSIX_ACL=y 1181# CONFIG_REISERFS_FS is not set
1023CONFIG_EXT3_FS_SECURITY=y
1024# CONFIG_EXT4DEV_FS is not set
1025CONFIG_JBD=y
1026# CONFIG_JBD_DEBUG is not set
1027CONFIG_FS_MBCACHE=y
1028CONFIG_REISERFS_FS=m
1029# CONFIG_REISERFS_CHECK is not set
1030# CONFIG_REISERFS_PROC_INFO is not set
1031CONFIG_REISERFS_FS_XATTR=y
1032CONFIG_REISERFS_FS_POSIX_ACL=y
1033CONFIG_REISERFS_FS_SECURITY=y
1034# CONFIG_JFS_FS is not set 1182# CONFIG_JFS_FS is not set
1035CONFIG_FS_POSIX_ACL=y 1183# CONFIG_FS_POSIX_ACL is not set
1036# CONFIG_XFS_FS is not set 1184# CONFIG_XFS_FS is not set
1037# CONFIG_GFS2_FS is not set 1185# CONFIG_GFS2_FS is not set
1038# CONFIG_OCFS2_FS is not set 1186# CONFIG_OCFS2_FS is not set
1039# CONFIG_MINIX_FS is not set 1187# CONFIG_BTRFS_FS is not set
1040# CONFIG_ROMFS_FS is not set 1188# CONFIG_NILFS2_FS is not set
1189CONFIG_FILE_LOCKING=y
1190CONFIG_FSNOTIFY=y
1191CONFIG_DNOTIFY=y
1041CONFIG_INOTIFY=y 1192CONFIG_INOTIFY=y
1042CONFIG_INOTIFY_USER=y 1193CONFIG_INOTIFY_USER=y
1043# CONFIG_QUOTA is not set 1194# CONFIG_QUOTA is not set
1044CONFIG_DNOTIFY=y 1195# CONFIG_AUTOFS_FS is not set
1045CONFIG_AUTOFS_FS=m 1196# CONFIG_AUTOFS4_FS is not set
1046CONFIG_AUTOFS4_FS=m 1197# CONFIG_FUSE_FS is not set
1047CONFIG_FUSE_FS=m 1198
1048CONFIG_GENERIC_ACL=y 1199#
1200# Caches
1201#
1202# CONFIG_FSCACHE is not set
1049 1203
1050# 1204#
1051# CD-ROM/DVD Filesystems 1205# CD-ROM/DVD Filesystems
1052# 1206#
1053# CONFIG_ISO9660_FS is not set 1207CONFIG_ISO9660_FS=y
1054# CONFIG_UDF_FS is not set 1208CONFIG_JOLIET=y
1209CONFIG_ZISOFS=y
1210CONFIG_UDF_FS=y
1211CONFIG_UDF_NLS=y
1055 1212
1056# 1213#
1057# DOS/FAT/NT Filesystems 1214# DOS/FAT/NT Filesystems
1058# 1215#
1216CONFIG_FAT_FS=y
1059# CONFIG_MSDOS_FS is not set 1217# CONFIG_MSDOS_FS is not set
1060# CONFIG_VFAT_FS is not set 1218CONFIG_VFAT_FS=y
1219CONFIG_FAT_DEFAULT_CODEPAGE=437
1220CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
1061# CONFIG_NTFS_FS is not set 1221# CONFIG_NTFS_FS is not set
1062 1222
1063# 1223#
1064# Pseudo filesystems 1224# Pseudo filesystems
1065# 1225#
1066CONFIG_PROC_FS=y 1226CONFIG_PROC_FS=y
1067CONFIG_PROC_KCORE=y 1227# CONFIG_PROC_KCORE is not set
1068CONFIG_PROC_SYSCTL=y 1228CONFIG_PROC_SYSCTL=y
1229# CONFIG_PROC_PAGE_MONITOR is not set
1069CONFIG_SYSFS=y 1230CONFIG_SYSFS=y
1070CONFIG_TMPFS=y 1231CONFIG_TMPFS=y
1071CONFIG_TMPFS_POSIX_ACL=y 1232# CONFIG_TMPFS_POSIX_ACL is not set
1072# CONFIG_HUGETLB_PAGE is not set 1233# CONFIG_HUGETLB_PAGE is not set
1073CONFIG_RAMFS=y 1234# CONFIG_CONFIGFS_FS is not set
1074CONFIG_CONFIGFS_FS=m 1235CONFIG_MISC_FILESYSTEMS=y
1075
1076#
1077# Miscellaneous filesystems
1078#
1079# CONFIG_ADFS_FS is not set 1236# CONFIG_ADFS_FS is not set
1080# CONFIG_AFFS_FS is not set 1237# CONFIG_AFFS_FS is not set
1081# CONFIG_ECRYPT_FS is not set
1082# CONFIG_HFS_FS is not set 1238# CONFIG_HFS_FS is not set
1083# CONFIG_HFSPLUS_FS is not set 1239# CONFIG_HFSPLUS_FS is not set
1084# CONFIG_BEFS_FS is not set 1240# CONFIG_BEFS_FS is not set
1085# CONFIG_BFS_FS is not set 1241# CONFIG_BFS_FS is not set
1086# CONFIG_EFS_FS is not set 1242# CONFIG_EFS_FS is not set
1087# CONFIG_JFFS2_FS is not set 1243CONFIG_JFFS2_FS=y
1088CONFIG_CRAMFS=m 1244CONFIG_JFFS2_FS_DEBUG=0
1245CONFIG_JFFS2_FS_WRITEBUFFER=y
1246# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
1247CONFIG_JFFS2_SUMMARY=y
1248# CONFIG_JFFS2_FS_XATTR is not set
1249CONFIG_JFFS2_COMPRESSION_OPTIONS=y
1250CONFIG_JFFS2_ZLIB=y
1251CONFIG_JFFS2_LZO=y
1252CONFIG_JFFS2_RTIME=y
1253CONFIG_JFFS2_RUBIN=y
1254# CONFIG_JFFS2_CMODE_NONE is not set
1255CONFIG_JFFS2_CMODE_PRIORITY=y
1256# CONFIG_JFFS2_CMODE_SIZE is not set
1257# CONFIG_JFFS2_CMODE_FAVOURLZO is not set
1258# CONFIG_CRAMFS is not set
1259CONFIG_SQUASHFS=y
1260# CONFIG_SQUASHFS_EMBEDDED is not set
1261CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
1089# CONFIG_VXFS_FS is not set 1262# CONFIG_VXFS_FS is not set
1263# CONFIG_MINIX_FS is not set
1264# CONFIG_OMFS_FS is not set
1090# CONFIG_HPFS_FS is not set 1265# CONFIG_HPFS_FS is not set
1091# CONFIG_QNX4FS_FS is not set 1266# CONFIG_QNX4FS_FS is not set
1267# CONFIG_ROMFS_FS is not set
1092# CONFIG_SYSV_FS is not set 1268# CONFIG_SYSV_FS is not set
1093# CONFIG_UFS_FS is not set 1269# CONFIG_UFS_FS is not set
1094 1270CONFIG_NETWORK_FILESYSTEMS=y
1095#
1096# Network File Systems
1097#
1098CONFIG_NFS_FS=y 1271CONFIG_NFS_FS=y
1099# CONFIG_NFS_V3 is not set 1272CONFIG_NFS_V3=y
1273# CONFIG_NFS_V3_ACL is not set
1100# CONFIG_NFS_V4 is not set 1274# CONFIG_NFS_V4 is not set
1101# CONFIG_NFS_DIRECTIO is not set
1102CONFIG_NFSD=m
1103# CONFIG_NFSD_V3 is not set
1104# CONFIG_NFSD_TCP is not set
1105CONFIG_ROOT_NFS=y 1275CONFIG_ROOT_NFS=y
1276# CONFIG_NFSD is not set
1106CONFIG_LOCKD=y 1277CONFIG_LOCKD=y
1107CONFIG_EXPORTFS=m 1278CONFIG_LOCKD_V4=y
1108CONFIG_NFS_COMMON=y 1279CONFIG_NFS_COMMON=y
1109CONFIG_SUNRPC=y 1280CONFIG_SUNRPC=y
1110# CONFIG_RPCSEC_GSS_KRB5 is not set 1281# CONFIG_RPCSEC_GSS_KRB5 is not set
1111# CONFIG_RPCSEC_GSS_SPKM3 is not set 1282# CONFIG_RPCSEC_GSS_SPKM3 is not set
1112CONFIG_SMB_FS=m 1283# CONFIG_SMB_FS is not set
1113# CONFIG_SMB_NLS_DEFAULT is not set
1114# CONFIG_CIFS is not set 1284# CONFIG_CIFS is not set
1115# CONFIG_NCP_FS is not set 1285# CONFIG_NCP_FS is not set
1116# CONFIG_CODA_FS is not set 1286# CONFIG_CODA_FS is not set
1117# CONFIG_AFS_FS is not set 1287# CONFIG_AFS_FS is not set
1118# CONFIG_9P_FS is not set
1119 1288
1120# 1289#
1121# Partition Types 1290# Partition Types
1122# 1291#
1123# CONFIG_PARTITION_ADVANCED is not set 1292# CONFIG_PARTITION_ADVANCED is not set
1124CONFIG_MSDOS_PARTITION=y 1293CONFIG_MSDOS_PARTITION=y
1125 1294CONFIG_NLS=y
1126#
1127# Native Language Support
1128#
1129CONFIG_NLS=m
1130CONFIG_NLS_DEFAULT="iso8859-1" 1295CONFIG_NLS_DEFAULT="iso8859-1"
1131# CONFIG_NLS_CODEPAGE_437 is not set 1296CONFIG_NLS_CODEPAGE_437=y
1132# CONFIG_NLS_CODEPAGE_737 is not set 1297# CONFIG_NLS_CODEPAGE_737 is not set
1133# CONFIG_NLS_CODEPAGE_775 is not set 1298# CONFIG_NLS_CODEPAGE_775 is not set
1134# CONFIG_NLS_CODEPAGE_850 is not set 1299CONFIG_NLS_CODEPAGE_850=y
1135# CONFIG_NLS_CODEPAGE_852 is not set 1300CONFIG_NLS_CODEPAGE_852=y
1136# CONFIG_NLS_CODEPAGE_855 is not set 1301# CONFIG_NLS_CODEPAGE_855 is not set
1137# CONFIG_NLS_CODEPAGE_857 is not set 1302# CONFIG_NLS_CODEPAGE_857 is not set
1138# CONFIG_NLS_CODEPAGE_860 is not set 1303# CONFIG_NLS_CODEPAGE_860 is not set
@@ -1149,10 +1314,10 @@ CONFIG_NLS_DEFAULT="iso8859-1"
1149# CONFIG_NLS_CODEPAGE_949 is not set 1314# CONFIG_NLS_CODEPAGE_949 is not set
1150# CONFIG_NLS_CODEPAGE_874 is not set 1315# CONFIG_NLS_CODEPAGE_874 is not set
1151# CONFIG_NLS_ISO8859_8 is not set 1316# CONFIG_NLS_ISO8859_8 is not set
1152# CONFIG_NLS_CODEPAGE_1250 is not set 1317CONFIG_NLS_CODEPAGE_1250=y
1153# CONFIG_NLS_CODEPAGE_1251 is not set 1318# CONFIG_NLS_CODEPAGE_1251 is not set
1154# CONFIG_NLS_ASCII is not set 1319CONFIG_NLS_ASCII=y
1155# CONFIG_NLS_ISO8859_1 is not set 1320CONFIG_NLS_ISO8859_1=y
1156# CONFIG_NLS_ISO8859_2 is not set 1321# CONFIG_NLS_ISO8859_2 is not set
1157# CONFIG_NLS_ISO8859_3 is not set 1322# CONFIG_NLS_ISO8859_3 is not set
1158# CONFIG_NLS_ISO8859_4 is not set 1323# CONFIG_NLS_ISO8859_4 is not set
@@ -1162,38 +1327,75 @@ CONFIG_NLS_DEFAULT="iso8859-1"
1162# CONFIG_NLS_ISO8859_9 is not set 1327# CONFIG_NLS_ISO8859_9 is not set
1163# CONFIG_NLS_ISO8859_13 is not set 1328# CONFIG_NLS_ISO8859_13 is not set
1164# CONFIG_NLS_ISO8859_14 is not set 1329# CONFIG_NLS_ISO8859_14 is not set
1165# CONFIG_NLS_ISO8859_15 is not set 1330CONFIG_NLS_ISO8859_15=y
1166# CONFIG_NLS_KOI8_R is not set 1331# CONFIG_NLS_KOI8_R is not set
1167# CONFIG_NLS_KOI8_U is not set 1332# CONFIG_NLS_KOI8_U is not set
1168# CONFIG_NLS_UTF8 is not set 1333CONFIG_NLS_UTF8=y
1169 1334# CONFIG_DLM is not set
1170#
1171# Distributed Lock Manager
1172#
1173CONFIG_DLM=m
1174CONFIG_DLM_TCP=y
1175# CONFIG_DLM_SCTP is not set
1176# CONFIG_DLM_DEBUG is not set
1177
1178#
1179# Profiling support
1180#
1181# CONFIG_PROFILING is not set
1182 1335
1183# 1336#
1184# Kernel hacking 1337# Kernel hacking
1185# 1338#
1186CONFIG_TRACE_IRQFLAGS_SUPPORT=y 1339CONFIG_TRACE_IRQFLAGS_SUPPORT=y
1187# CONFIG_PRINTK_TIME is not set 1340# CONFIG_PRINTK_TIME is not set
1341CONFIG_ENABLE_WARN_DEPRECATED=y
1188CONFIG_ENABLE_MUST_CHECK=y 1342CONFIG_ENABLE_MUST_CHECK=y
1343CONFIG_FRAME_WARN=1024
1189# CONFIG_MAGIC_SYSRQ is not set 1344# CONFIG_MAGIC_SYSRQ is not set
1345CONFIG_STRIP_ASM_SYMS=y
1190# CONFIG_UNUSED_SYMBOLS is not set 1346# CONFIG_UNUSED_SYMBOLS is not set
1191# CONFIG_DEBUG_FS is not set 1347# CONFIG_DEBUG_FS is not set
1192# CONFIG_HEADERS_CHECK is not set 1348# CONFIG_HEADERS_CHECK is not set
1193# CONFIG_DEBUG_KERNEL is not set 1349CONFIG_DEBUG_KERNEL=y
1194CONFIG_LOG_BUF_SHIFT=14 1350# CONFIG_DEBUG_SHIRQ is not set
1195CONFIG_CROSSCOMPILE=y 1351# CONFIG_DETECT_SOFTLOCKUP is not set
1196CONFIG_CMDLINE="" 1352# CONFIG_DETECT_HUNG_TASK is not set
1353# CONFIG_SCHED_DEBUG is not set
1354# CONFIG_SCHEDSTATS is not set
1355# CONFIG_TIMER_STATS is not set
1356# CONFIG_DEBUG_OBJECTS is not set
1357# CONFIG_DEBUG_SLAB is not set
1358# CONFIG_DEBUG_RT_MUTEXES is not set
1359# CONFIG_RT_MUTEX_TESTER is not set
1360# CONFIG_DEBUG_SPINLOCK is not set
1361# CONFIG_DEBUG_MUTEXES is not set
1362# CONFIG_DEBUG_LOCK_ALLOC is not set
1363# CONFIG_PROVE_LOCKING is not set
1364# CONFIG_LOCK_STAT is not set
1365# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1366# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1367# CONFIG_DEBUG_KOBJECT is not set
1368# CONFIG_DEBUG_INFO is not set
1369# CONFIG_DEBUG_VM is not set
1370# CONFIG_DEBUG_WRITECOUNT is not set
1371# CONFIG_DEBUG_MEMORY_INIT is not set
1372# CONFIG_DEBUG_LIST is not set
1373# CONFIG_DEBUG_SG is not set
1374# CONFIG_DEBUG_NOTIFIERS is not set
1375# CONFIG_DEBUG_CREDENTIALS is not set
1376# CONFIG_BOOT_PRINTK_DELAY is not set
1377# CONFIG_RCU_TORTURE_TEST is not set
1378# CONFIG_BACKTRACE_SELF_TEST is not set
1379# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1380# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
1381# CONFIG_FAULT_INJECTION is not set
1382# CONFIG_SYSCTL_SYSCALL_CHECK is not set
1383# CONFIG_PAGE_POISONING is not set
1384CONFIG_HAVE_FUNCTION_TRACER=y
1385CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
1386CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y
1387CONFIG_HAVE_DYNAMIC_FTRACE=y
1388CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
1389CONFIG_TRACING_SUPPORT=y
1390# CONFIG_FTRACE is not set
1391# CONFIG_SAMPLES is not set
1392CONFIG_HAVE_ARCH_KGDB=y
1393# CONFIG_KGDB is not set
1394CONFIG_EARLY_PRINTK=y
1395# CONFIG_CMDLINE_BOOL is not set
1396# CONFIG_DEBUG_STACK_USAGE is not set
1397# CONFIG_RUNTIME_DEBUG is not set
1398CONFIG_DEBUG_ZBOOT=y
1197 1399
1198# 1400#
1199# Security options 1401# Security options
@@ -1201,67 +1403,32 @@ CONFIG_CMDLINE=""
1201CONFIG_KEYS=y 1403CONFIG_KEYS=y
1202CONFIG_KEYS_DEBUG_PROC_KEYS=y 1404CONFIG_KEYS_DEBUG_PROC_KEYS=y
1203# CONFIG_SECURITY is not set 1405# CONFIG_SECURITY is not set
1204 1406CONFIG_SECURITYFS=y
1205# 1407# CONFIG_DEFAULT_SECURITY_SELINUX is not set
1206# Cryptographic options 1408# CONFIG_DEFAULT_SECURITY_SMACK is not set
1207# 1409# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
1208CONFIG_CRYPTO=y 1410CONFIG_DEFAULT_SECURITY_DAC=y
1209CONFIG_CRYPTO_ALGAPI=y 1411CONFIG_DEFAULT_SECURITY=""
1210CONFIG_CRYPTO_BLKCIPHER=m 1412# CONFIG_CRYPTO is not set
1211CONFIG_CRYPTO_HASH=y 1413# CONFIG_BINARY_PRINTF is not set
1212CONFIG_CRYPTO_MANAGER=y
1213CONFIG_CRYPTO_HMAC=y
1214CONFIG_CRYPTO_XCBC=m
1215CONFIG_CRYPTO_NULL=m
1216CONFIG_CRYPTO_MD4=m
1217CONFIG_CRYPTO_MD5=y
1218CONFIG_CRYPTO_SHA1=m
1219CONFIG_CRYPTO_SHA256=m
1220CONFIG_CRYPTO_SHA512=m
1221CONFIG_CRYPTO_WP512=m
1222CONFIG_CRYPTO_TGR192=m
1223CONFIG_CRYPTO_GF128MUL=m
1224CONFIG_CRYPTO_ECB=m
1225CONFIG_CRYPTO_CBC=m
1226CONFIG_CRYPTO_PCBC=m
1227CONFIG_CRYPTO_LRW=m
1228CONFIG_CRYPTO_DES=m
1229CONFIG_CRYPTO_FCRYPT=m
1230CONFIG_CRYPTO_BLOWFISH=m
1231CONFIG_CRYPTO_TWOFISH=m
1232CONFIG_CRYPTO_TWOFISH_COMMON=m
1233CONFIG_CRYPTO_SERPENT=m
1234CONFIG_CRYPTO_AES=m
1235CONFIG_CRYPTO_CAST5=m
1236CONFIG_CRYPTO_CAST6=m
1237CONFIG_CRYPTO_TEA=m
1238CONFIG_CRYPTO_ARC4=m
1239CONFIG_CRYPTO_KHAZAD=m
1240CONFIG_CRYPTO_ANUBIS=m
1241CONFIG_CRYPTO_DEFLATE=m
1242CONFIG_CRYPTO_MICHAEL_MIC=m
1243CONFIG_CRYPTO_CRC32C=m
1244CONFIG_CRYPTO_CAMELLIA=m
1245# CONFIG_CRYPTO_TEST is not set
1246
1247#
1248# Hardware crypto devices
1249#
1250 1414
1251# 1415#
1252# Library routines 1416# Library routines
1253# 1417#
1254CONFIG_BITREVERSE=y 1418CONFIG_BITREVERSE=y
1255CONFIG_CRC_CCITT=m 1419CONFIG_GENERIC_FIND_LAST_BIT=y
1256CONFIG_CRC16=m 1420# CONFIG_CRC_CCITT is not set
1421# CONFIG_CRC16 is not set
1422# CONFIG_CRC_T10DIF is not set
1423CONFIG_CRC_ITU_T=y
1257CONFIG_CRC32=y 1424CONFIG_CRC32=y
1258CONFIG_LIBCRC32C=m 1425# CONFIG_CRC7 is not set
1259CONFIG_ZLIB_INFLATE=m 1426# CONFIG_LIBCRC32C is not set
1260CONFIG_ZLIB_DEFLATE=m 1427CONFIG_ZLIB_INFLATE=y
1261CONFIG_TEXTSEARCH=y 1428CONFIG_ZLIB_DEFLATE=y
1262CONFIG_TEXTSEARCH_KMP=m 1429CONFIG_LZO_COMPRESS=y
1263CONFIG_TEXTSEARCH_BM=m 1430CONFIG_LZO_DECOMPRESS=y
1264CONFIG_TEXTSEARCH_FSM=m
1265CONFIG_PLIST=y
1266CONFIG_HAS_IOMEM=y 1431CONFIG_HAS_IOMEM=y
1267CONFIG_HAS_IOPORT=y 1432CONFIG_HAS_IOPORT=y
1433CONFIG_HAS_DMA=y
1434CONFIG_NLATTR=y
diff --git a/arch/mips/configs/pnx8335-stb225_defconfig b/arch/mips/configs/pnx8335-stb225_defconfig
index fef4d31c2055..848344d588d1 100644
--- a/arch/mips/configs/pnx8335-stb225_defconfig
+++ b/arch/mips/configs/pnx8335-stb225_defconfig
@@ -9,7 +9,6 @@ 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_BASLER_EXCITE is not set
13# CONFIG_BCM47XX is not set 12# CONFIG_BCM47XX is not set
14# CONFIG_MIPS_COBALT is not set 13# CONFIG_MIPS_COBALT is not set
15# CONFIG_MACH_DECSTATION is not set 14# CONFIG_MACH_DECSTATION is not set
@@ -1034,7 +1033,7 @@ CONFIG_FRAME_WARN=1024
1034# CONFIG_DEBUG_KERNEL is not set 1033# CONFIG_DEBUG_KERNEL is not set
1035# CONFIG_SAMPLES is not set 1034# CONFIG_SAMPLES is not set
1036# CONFIG_KERNEL_TESTS is not set 1035# CONFIG_KERNEL_TESTS is not set
1037CONFIG_CMDLINE="" 1036# CONFIG_CMDLINE_BOOL is not set
1038 1037
1039# 1038#
1040# Security options 1039# Security options
diff --git a/arch/mips/configs/pnx8550-jbs_defconfig b/arch/mips/configs/pnx8550-jbs_defconfig
index e10c7116c3c2..9d721fdccb30 100644
--- a/arch/mips/configs/pnx8550-jbs_defconfig
+++ b/arch/mips/configs/pnx8550-jbs_defconfig
@@ -22,7 +22,6 @@ CONFIG_ZONE_DMA=y
22# CONFIG_MIPS_DB1550 is not set 22# CONFIG_MIPS_DB1550 is not set
23# CONFIG_MIPS_DB1200 is not set 23# CONFIG_MIPS_DB1200 is not set
24# CONFIG_MIPS_MIRAGE is not set 24# CONFIG_MIPS_MIRAGE is not set
25# CONFIG_BASLER_EXCITE is not set
26# CONFIG_MIPS_COBALT is not set 25# CONFIG_MIPS_COBALT is not set
27# CONFIG_MACH_DECSTATION is not set 26# CONFIG_MACH_DECSTATION is not set
28# CONFIG_MACH_JAZZ is not set 27# CONFIG_MACH_JAZZ is not set
@@ -1215,7 +1214,9 @@ CONFIG_DEBUG_MUTEXES=y
1215CONFIG_FORCED_INLINING=y 1214CONFIG_FORCED_INLINING=y
1216# CONFIG_RCU_TORTURE_TEST is not set 1215# CONFIG_RCU_TORTURE_TEST is not set
1217CONFIG_CROSSCOMPILE=y 1216CONFIG_CROSSCOMPILE=y
1217CONFIG_CMDLINE_BOOL=y
1218CONFIG_CMDLINE="console=ttyS1,38400n8 root=/dev/nfs ip=bootp" 1218CONFIG_CMDLINE="console=ttyS1,38400n8 root=/dev/nfs ip=bootp"
1219# CONFIG_CMDLINE_OVERRIDE is not set
1219# CONFIG_DEBUG_STACK_USAGE is not set 1220# CONFIG_DEBUG_STACK_USAGE is not set
1220# CONFIG_RUNTIME_DEBUG is not set 1221# CONFIG_RUNTIME_DEBUG is not set
1221 1222
diff --git a/arch/mips/configs/pnx8550-stb810_defconfig b/arch/mips/configs/pnx8550-stb810_defconfig
index 5ed3c8dfa0a1..ab07ec08c6fa 100644
--- a/arch/mips/configs/pnx8550-stb810_defconfig
+++ b/arch/mips/configs/pnx8550-stb810_defconfig
@@ -22,7 +22,6 @@ CONFIG_ZONE_DMA=y
22# CONFIG_MIPS_DB1550 is not set 22# CONFIG_MIPS_DB1550 is not set
23# CONFIG_MIPS_DB1200 is not set 23# CONFIG_MIPS_DB1200 is not set
24# CONFIG_MIPS_MIRAGE is not set 24# CONFIG_MIPS_MIRAGE is not set
25# CONFIG_BASLER_EXCITE is not set
26# CONFIG_MIPS_COBALT is not set 25# CONFIG_MIPS_COBALT is not set
27# CONFIG_MACH_DECSTATION is not set 26# CONFIG_MACH_DECSTATION is not set
28# CONFIG_MACH_JAZZ is not set 27# CONFIG_MACH_JAZZ is not set
@@ -1205,7 +1204,9 @@ CONFIG_DEBUG_SLAB=y
1205CONFIG_FORCED_INLINING=y 1204CONFIG_FORCED_INLINING=y
1206# CONFIG_RCU_TORTURE_TEST is not set 1205# CONFIG_RCU_TORTURE_TEST is not set
1207CONFIG_CROSSCOMPILE=y 1206CONFIG_CROSSCOMPILE=y
1207CONFIG_CMDLINE_BOOL=y
1208CONFIG_CMDLINE="console=ttyS1,38400n8 root=/dev/nfs ip=bootp" 1208CONFIG_CMDLINE="console=ttyS1,38400n8 root=/dev/nfs ip=bootp"
1209# CONFIG_CMDLINE_OVERRIDE is not set
1209# CONFIG_DEBUG_STACK_USAGE is not set 1210# CONFIG_DEBUG_STACK_USAGE is not set
1210# CONFIG_RUNTIME_DEBUG is not set 1211# CONFIG_RUNTIME_DEBUG is not set
1211 1212
diff --git a/arch/mips/configs/powertv_defconfig b/arch/mips/configs/powertv_defconfig
new file mode 100644
index 000000000000..7291633d81cc
--- /dev/null
+++ b/arch/mips/configs/powertv_defconfig
@@ -0,0 +1,1550 @@
1#
2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.31-rc5
4# Fri Aug 28 14:49:33 2009
5#
6CONFIG_MIPS=y
7
8#
9# Machine selection
10#
11# CONFIG_MACH_ALCHEMY is not set
12# CONFIG_AR7 is not set
13# CONFIG_BCM47XX is not set
14# CONFIG_MIPS_COBALT is not set
15# CONFIG_MACH_DECSTATION is not set
16# CONFIG_MACH_JAZZ is not set
17# CONFIG_LASAT is not set
18# CONFIG_LEMOTE_FULONG is not set
19# CONFIG_MIPS_MALTA is not set
20# CONFIG_MIPS_SIM is not set
21# CONFIG_NEC_MARKEINS is not set
22# CONFIG_MACH_VR41XX is not set
23# CONFIG_NXP_STB220 is not set
24# CONFIG_NXP_STB225 is not set
25# CONFIG_PNX8550_JBS is not set
26# CONFIG_PNX8550_STB810 is not set
27# CONFIG_PMC_MSP is not set
28# CONFIG_PMC_YOSEMITE is not set
29CONFIG_POWERTV=y
30# CONFIG_SGI_IP22 is not set
31# CONFIG_SGI_IP27 is not set
32# CONFIG_SGI_IP28 is not set
33# CONFIG_SGI_IP32 is not set
34# CONFIG_SIBYTE_CRHINE is not set
35# CONFIG_SIBYTE_CARMEL is not set
36# CONFIG_SIBYTE_CRHONE is not set
37# CONFIG_SIBYTE_RHONE is not set
38# CONFIG_SIBYTE_SWARM is not set
39# CONFIG_SIBYTE_LITTLESUR is not set
40# CONFIG_SIBYTE_SENTOSA is not set
41# CONFIG_SIBYTE_BIGSUR is not set
42# CONFIG_SNI_RM is not set
43# CONFIG_MACH_TX39XX is not set
44# CONFIG_MACH_TX49XX is not set
45# CONFIG_MIKROTIK_RB532 is not set
46# CONFIG_WR_PPMC is not set
47# CONFIG_CAVIUM_OCTEON_SIMULATOR is not set
48# CONFIG_CAVIUM_OCTEON_REFERENCE_BOARD is not set
49# CONFIG_ALCHEMY_GPIO_INDIRECT is not set
50# CONFIG_MIN_RUNTIME_RESOURCES is not set
51# CONFIG_BOOTLOADER_DRIVER is not set
52CONFIG_BOOTLOADER_FAMILY="R2"
53CONFIG_CSRC_POWERTV=y
54CONFIG_RWSEM_GENERIC_SPINLOCK=y
55# CONFIG_ARCH_HAS_ILOG2_U32 is not set
56# CONFIG_ARCH_HAS_ILOG2_U64 is not set
57CONFIG_ARCH_SUPPORTS_OPROFILE=y
58CONFIG_GENERIC_FIND_NEXT_BIT=y
59CONFIG_GENERIC_HWEIGHT=y
60CONFIG_GENERIC_CALIBRATE_DELAY=y
61CONFIG_GENERIC_CLOCKEVENTS=y
62CONFIG_GENERIC_TIME=y
63CONFIG_GENERIC_CMOS_UPDATE=y
64CONFIG_SCHED_OMIT_FRAME_POINTER=y
65CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
66CONFIG_CEVT_R4K_LIB=y
67CONFIG_CEVT_R4K=y
68CONFIG_DMA_NONCOHERENT=y
69CONFIG_DMA_NEED_PCI_MAP_STATE=y
70# CONFIG_EARLY_PRINTK is not set
71CONFIG_SYS_HAS_EARLY_PRINTK=y
72# CONFIG_NO_IOPORT is not set
73CONFIG_CPU_BIG_ENDIAN=y
74# CONFIG_CPU_LITTLE_ENDIAN is not set
75CONFIG_SYS_SUPPORTS_BIG_ENDIAN=y
76CONFIG_BOOT_ELF32=y
77CONFIG_MIPS_L1_CACHE_SHIFT=5
78
79#
80# CPU selection
81#
82# CONFIG_CPU_LOONGSON2 is not set
83# CONFIG_CPU_MIPS32_R1 is not set
84CONFIG_CPU_MIPS32_R2=y
85# CONFIG_CPU_MIPS64_R1 is not set
86# CONFIG_CPU_MIPS64_R2 is not set
87# CONFIG_CPU_R3000 is not set
88# CONFIG_CPU_TX39XX is not set
89# CONFIG_CPU_VR41XX is not set
90# CONFIG_CPU_R4300 is not set
91# CONFIG_CPU_R4X00 is not set
92# CONFIG_CPU_TX49XX is not set
93# CONFIG_CPU_R5000 is not set
94# CONFIG_CPU_R5432 is not set
95# CONFIG_CPU_R5500 is not set
96# CONFIG_CPU_R6000 is not set
97# CONFIG_CPU_NEVADA is not set
98# CONFIG_CPU_R8000 is not set
99# CONFIG_CPU_R10000 is not set
100# CONFIG_CPU_RM7000 is not set
101# CONFIG_CPU_RM9000 is not set
102# CONFIG_CPU_SB1 is not set
103# CONFIG_CPU_CAVIUM_OCTEON is not set
104CONFIG_SYS_HAS_CPU_MIPS32_R2=y
105CONFIG_CPU_MIPS32=y
106CONFIG_CPU_MIPSR2=y
107CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y
108CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y
109CONFIG_HARDWARE_WATCHPOINTS=y
110
111#
112# Kernel type
113#
114CONFIG_32BIT=y
115# CONFIG_64BIT is not set
116CONFIG_PAGE_SIZE_4KB=y
117# CONFIG_PAGE_SIZE_8KB is not set
118# CONFIG_PAGE_SIZE_16KB is not set
119# CONFIG_PAGE_SIZE_32KB is not set
120# CONFIG_PAGE_SIZE_64KB is not set
121CONFIG_CPU_HAS_PREFETCH=y
122CONFIG_MIPS_MT_DISABLED=y
123# CONFIG_MIPS_MT_SMP is not set
124# CONFIG_MIPS_MT_SMTC is not set
125CONFIG_CPU_HAS_LLSC=y
126CONFIG_CPU_MIPSR2_IRQ_VI=y
127CONFIG_CPU_MIPSR2_IRQ_EI=y
128CONFIG_CPU_HAS_SYNC=y
129CONFIG_GENERIC_HARDIRQS=y
130CONFIG_GENERIC_IRQ_PROBE=y
131# CONFIG_HIGHMEM is not set
132CONFIG_CPU_SUPPORTS_HIGHMEM=y
133CONFIG_SYS_SUPPORTS_HIGHMEM=y
134CONFIG_ARCH_FLATMEM_ENABLE=y
135CONFIG_ARCH_POPULATES_NODE_MAP=y
136CONFIG_SELECT_MEMORY_MODEL=y
137CONFIG_FLATMEM_MANUAL=y
138# CONFIG_DISCONTIGMEM_MANUAL is not set
139# CONFIG_SPARSEMEM_MANUAL is not set
140CONFIG_FLATMEM=y
141CONFIG_FLAT_NODE_MEM_MAP=y
142CONFIG_PAGEFLAGS_EXTENDED=y
143CONFIG_SPLIT_PTLOCK_CPUS=4
144# CONFIG_PHYS_ADDR_T_64BIT is not set
145CONFIG_ZONE_DMA_FLAG=0
146CONFIG_VIRT_TO_BUS=y
147CONFIG_HAVE_MLOCK=y
148CONFIG_HAVE_MLOCKED_PAGE_BIT=y
149CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
150CONFIG_TICK_ONESHOT=y
151CONFIG_NO_HZ=y
152CONFIG_HIGH_RES_TIMERS=y
153CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
154# CONFIG_HZ_48 is not set
155# CONFIG_HZ_100 is not set
156# CONFIG_HZ_128 is not set
157# CONFIG_HZ_250 is not set
158# CONFIG_HZ_256 is not set
159CONFIG_HZ_1000=y
160# CONFIG_HZ_1024 is not set
161CONFIG_SYS_SUPPORTS_ARBIT_HZ=y
162CONFIG_HZ=1000
163# CONFIG_PREEMPT_NONE is not set
164# CONFIG_PREEMPT_VOLUNTARY is not set
165CONFIG_PREEMPT=y
166# CONFIG_KEXEC is not set
167# CONFIG_SECCOMP is not set
168CONFIG_LOCKDEP_SUPPORT=y
169CONFIG_STACKTRACE_SUPPORT=y
170CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
171CONFIG_CONSTRUCTORS=y
172
173#
174# General setup
175#
176CONFIG_EXPERIMENTAL=y
177CONFIG_BROKEN_ON_SMP=y
178CONFIG_LOCK_KERNEL=y
179CONFIG_INIT_ENV_ARG_LIMIT=32
180CONFIG_LOCALVERSION=""
181CONFIG_LOCALVERSION_AUTO=y
182# CONFIG_SWAP is not set
183CONFIG_SYSVIPC=y
184CONFIG_SYSVIPC_SYSCTL=y
185# CONFIG_POSIX_MQUEUE is not set
186# CONFIG_BSD_PROCESS_ACCT is not set
187# CONFIG_TASKSTATS is not set
188# CONFIG_AUDIT is not set
189
190#
191# RCU Subsystem
192#
193CONFIG_CLASSIC_RCU=y
194# CONFIG_TREE_RCU is not set
195# CONFIG_PREEMPT_RCU is not set
196# CONFIG_TREE_RCU_TRACE is not set
197# CONFIG_PREEMPT_RCU_TRACE is not set
198# CONFIG_IKCONFIG is not set
199CONFIG_LOG_BUF_SHIFT=16
200CONFIG_GROUP_SCHED=y
201CONFIG_FAIR_GROUP_SCHED=y
202# CONFIG_RT_GROUP_SCHED is not set
203CONFIG_USER_SCHED=y
204# CONFIG_CGROUP_SCHED is not set
205# CONFIG_CGROUPS is not set
206# CONFIG_SYSFS_DEPRECATED_V2 is not set
207CONFIG_RELAY=y
208# CONFIG_NAMESPACES is not set
209CONFIG_BLK_DEV_INITRD=y
210CONFIG_INITRAMFS_SOURCE=""
211# CONFIG_RD_GZIP is not set
212# CONFIG_RD_BZIP2 is not set
213# CONFIG_RD_LZMA is not set
214# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
215CONFIG_SYSCTL=y
216CONFIG_ANON_INODES=y
217CONFIG_EMBEDDED=y
218# CONFIG_SYSCTL_SYSCALL is not set
219CONFIG_KALLSYMS=y
220CONFIG_KALLSYMS_ALL=y
221# CONFIG_KALLSYMS_EXTRA_PASS is not set
222CONFIG_HOTPLUG=y
223CONFIG_PRINTK=y
224CONFIG_BUG=y
225CONFIG_ELF_CORE=y
226# CONFIG_PCSPKR_PLATFORM is not set
227CONFIG_BASE_FULL=y
228CONFIG_FUTEX=y
229# CONFIG_EPOLL is not set
230# CONFIG_SIGNALFD is not set
231CONFIG_TIMERFD=y
232# CONFIG_EVENTFD is not set
233CONFIG_SHMEM=y
234CONFIG_AIO=y
235
236#
237# Performance Counters
238#
239# CONFIG_VM_EVENT_COUNTERS is not set
240CONFIG_PCI_QUIRKS=y
241# CONFIG_SLUB_DEBUG is not set
242# CONFIG_STRIP_ASM_SYMS is not set
243CONFIG_COMPAT_BRK=y
244# CONFIG_SLAB is not set
245CONFIG_SLUB=y
246# CONFIG_SLOB is not set
247# CONFIG_PROFILING is not set
248# CONFIG_MARKERS is not set
249CONFIG_HAVE_OPROFILE=y
250
251#
252# GCOV-based kernel profiling
253#
254# CONFIG_GCOV_KERNEL is not set
255# CONFIG_SLOW_WORK is not set
256# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
257CONFIG_RT_MUTEXES=y
258CONFIG_BASE_SMALL=0
259CONFIG_MODULES=y
260# CONFIG_MODULE_FORCE_LOAD is not set
261CONFIG_MODULE_UNLOAD=y
262# CONFIG_MODULE_FORCE_UNLOAD is not set
263CONFIG_MODVERSIONS=y
264CONFIG_MODULE_SRCVERSION_ALL=y
265CONFIG_BLOCK=y
266CONFIG_LBDAF=y
267# CONFIG_BLK_DEV_BSG is not set
268# CONFIG_BLK_DEV_INTEGRITY is not set
269
270#
271# IO Schedulers
272#
273CONFIG_IOSCHED_NOOP=y
274# CONFIG_IOSCHED_AS is not set
275# CONFIG_IOSCHED_DEADLINE is not set
276# CONFIG_IOSCHED_CFQ is not set
277# CONFIG_DEFAULT_AS is not set
278# CONFIG_DEFAULT_DEADLINE is not set
279# CONFIG_DEFAULT_CFQ is not set
280CONFIG_DEFAULT_NOOP=y
281CONFIG_DEFAULT_IOSCHED="noop"
282# CONFIG_PROBE_INITRD_HEADER is not set
283# CONFIG_FREEZER is not set
284
285#
286# Bus options (PCI, PCMCIA, EISA, ISA, TC)
287#
288CONFIG_HW_HAS_PCI=y
289CONFIG_PCI=y
290CONFIG_PCI_DOMAINS=y
291# CONFIG_ARCH_SUPPORTS_MSI is not set
292# CONFIG_PCI_LEGACY is not set
293# CONFIG_PCI_DEBUG is not set
294# CONFIG_PCI_STUB is not set
295# CONFIG_PCI_IOV is not set
296CONFIG_MMU=y
297# CONFIG_PCCARD is not set
298# CONFIG_HOTPLUG_PCI is not set
299
300#
301# Executable file formats
302#
303CONFIG_BINFMT_ELF=y
304# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
305# CONFIG_HAVE_AOUT is not set
306# CONFIG_BINFMT_MISC is not set
307CONFIG_TRAD_SIGNALS=y
308
309#
310# Power management options
311#
312CONFIG_ARCH_HIBERNATION_POSSIBLE=y
313CONFIG_ARCH_SUSPEND_POSSIBLE=y
314# CONFIG_PM is not set
315CONFIG_NET=y
316
317#
318# Networking options
319#
320CONFIG_PACKET=y
321CONFIG_PACKET_MMAP=y
322CONFIG_UNIX=y
323CONFIG_XFRM=y
324# CONFIG_XFRM_USER is not set
325# CONFIG_XFRM_SUB_POLICY is not set
326# CONFIG_XFRM_MIGRATE is not set
327# CONFIG_XFRM_STATISTICS is not set
328CONFIG_XFRM_IPCOMP=y
329# CONFIG_NET_KEY is not set
330CONFIG_INET=y
331CONFIG_IP_MULTICAST=y
332CONFIG_IP_ADVANCED_ROUTER=y
333CONFIG_ASK_IP_FIB_HASH=y
334# CONFIG_IP_FIB_TRIE is not set
335CONFIG_IP_FIB_HASH=y
336# CONFIG_IP_MULTIPLE_TABLES is not set
337# CONFIG_IP_ROUTE_MULTIPATH is not set
338# CONFIG_IP_ROUTE_VERBOSE is not set
339CONFIG_IP_PNP=y
340# CONFIG_IP_PNP_DHCP is not set
341# CONFIG_IP_PNP_BOOTP is not set
342# CONFIG_IP_PNP_RARP is not set
343# CONFIG_NET_IPIP is not set
344# CONFIG_NET_IPGRE is not set
345# CONFIG_IP_MROUTE is not set
346# CONFIG_ARPD is not set
347CONFIG_SYN_COOKIES=y
348# CONFIG_INET_AH is not set
349# CONFIG_INET_ESP is not set
350# CONFIG_INET_IPCOMP is not set
351# CONFIG_INET_XFRM_TUNNEL is not set
352# CONFIG_INET_TUNNEL is not set
353# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
354# CONFIG_INET_XFRM_MODE_TUNNEL is not set
355# CONFIG_INET_XFRM_MODE_BEET is not set
356# CONFIG_INET_LRO is not set
357# CONFIG_INET_DIAG is not set
358# CONFIG_TCP_CONG_ADVANCED is not set
359CONFIG_TCP_CONG_CUBIC=y
360CONFIG_DEFAULT_TCP_CONG="cubic"
361# CONFIG_TCP_MD5SIG is not set
362CONFIG_IPV6=y
363CONFIG_IPV6_PRIVACY=y
364# CONFIG_IPV6_ROUTER_PREF is not set
365# CONFIG_IPV6_OPTIMISTIC_DAD is not set
366CONFIG_INET6_AH=y
367CONFIG_INET6_ESP=y
368CONFIG_INET6_IPCOMP=y
369# CONFIG_IPV6_MIP6 is not set
370CONFIG_INET6_XFRM_TUNNEL=y
371CONFIG_INET6_TUNNEL=y
372# CONFIG_INET6_XFRM_MODE_TRANSPORT is not set
373# CONFIG_INET6_XFRM_MODE_TUNNEL is not set
374# CONFIG_INET6_XFRM_MODE_BEET is not set
375# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set
376# CONFIG_IPV6_SIT is not set
377CONFIG_IPV6_TUNNEL=y
378# CONFIG_IPV6_MULTIPLE_TABLES is not set
379# CONFIG_IPV6_MROUTE is not set
380# CONFIG_NETWORK_SECMARK is not set
381CONFIG_NETFILTER=y
382# CONFIG_NETFILTER_DEBUG is not set
383CONFIG_NETFILTER_ADVANCED=y
384# CONFIG_BRIDGE_NETFILTER is not set
385
386#
387# Core Netfilter Configuration
388#
389# CONFIG_NETFILTER_NETLINK_QUEUE is not set
390# CONFIG_NETFILTER_NETLINK_LOG is not set
391# CONFIG_NF_CONNTRACK is not set
392CONFIG_NETFILTER_XTABLES=y
393# CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set
394# CONFIG_NETFILTER_XT_TARGET_MARK is not set
395# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set
396# CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set
397# CONFIG_NETFILTER_XT_TARGET_RATEEST is not set
398# CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set
399# CONFIG_NETFILTER_XT_MATCH_COMMENT is not set
400# CONFIG_NETFILTER_XT_MATCH_DCCP is not set
401# CONFIG_NETFILTER_XT_MATCH_DSCP is not set
402# CONFIG_NETFILTER_XT_MATCH_ESP is not set
403# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set
404# CONFIG_NETFILTER_XT_MATCH_HL is not set
405# CONFIG_NETFILTER_XT_MATCH_IPRANGE is not set
406# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set
407# CONFIG_NETFILTER_XT_MATCH_LIMIT is not set
408# CONFIG_NETFILTER_XT_MATCH_MAC is not set
409# CONFIG_NETFILTER_XT_MATCH_MARK is not set
410CONFIG_NETFILTER_XT_MATCH_MULTIPORT=y
411# CONFIG_NETFILTER_XT_MATCH_OWNER is not set
412# CONFIG_NETFILTER_XT_MATCH_POLICY is not set
413# CONFIG_NETFILTER_XT_MATCH_PKTTYPE is not set
414# CONFIG_NETFILTER_XT_MATCH_QUOTA is not set
415# CONFIG_NETFILTER_XT_MATCH_RATEEST is not set
416# CONFIG_NETFILTER_XT_MATCH_REALM is not set
417# CONFIG_NETFILTER_XT_MATCH_RECENT is not set
418# CONFIG_NETFILTER_XT_MATCH_SCTP is not set
419# CONFIG_NETFILTER_XT_MATCH_STATISTIC is not set
420# CONFIG_NETFILTER_XT_MATCH_STRING is not set
421# CONFIG_NETFILTER_XT_MATCH_TCPMSS is not set
422# CONFIG_NETFILTER_XT_MATCH_TIME is not set
423# CONFIG_NETFILTER_XT_MATCH_U32 is not set
424# CONFIG_IP_VS is not set
425
426#
427# IP: Netfilter Configuration
428#
429# CONFIG_NF_DEFRAG_IPV4 is not set
430# CONFIG_IP_NF_QUEUE is not set
431CONFIG_IP_NF_IPTABLES=y
432# CONFIG_IP_NF_MATCH_ADDRTYPE is not set
433# CONFIG_IP_NF_MATCH_AH is not set
434# CONFIG_IP_NF_MATCH_ECN is not set
435# CONFIG_IP_NF_MATCH_TTL is not set
436CONFIG_IP_NF_FILTER=y
437# CONFIG_IP_NF_TARGET_REJECT is not set
438# CONFIG_IP_NF_TARGET_LOG is not set
439# CONFIG_IP_NF_TARGET_ULOG is not set
440# CONFIG_IP_NF_MANGLE is not set
441# CONFIG_IP_NF_TARGET_TTL is not set
442# CONFIG_IP_NF_RAW is not set
443CONFIG_IP_NF_ARPTABLES=y
444CONFIG_IP_NF_ARPFILTER=y
445# CONFIG_IP_NF_ARP_MANGLE is not set
446
447#
448# IPv6: Netfilter Configuration
449#
450# CONFIG_IP6_NF_QUEUE is not set
451CONFIG_IP6_NF_IPTABLES=y
452# CONFIG_IP6_NF_MATCH_AH is not set
453# CONFIG_IP6_NF_MATCH_EUI64 is not set
454# CONFIG_IP6_NF_MATCH_FRAG is not set
455# CONFIG_IP6_NF_MATCH_OPTS is not set
456# CONFIG_IP6_NF_MATCH_HL is not set
457# CONFIG_IP6_NF_MATCH_IPV6HEADER is not set
458# CONFIG_IP6_NF_MATCH_MH is not set
459# CONFIG_IP6_NF_MATCH_RT is not set
460# CONFIG_IP6_NF_TARGET_HL is not set
461# CONFIG_IP6_NF_TARGET_LOG is not set
462CONFIG_IP6_NF_FILTER=y
463# CONFIG_IP6_NF_TARGET_REJECT is not set
464# CONFIG_IP6_NF_MANGLE is not set
465# CONFIG_IP6_NF_RAW is not set
466# CONFIG_IP_DCCP is not set
467# CONFIG_IP_SCTP is not set
468# CONFIG_TIPC is not set
469# CONFIG_ATM is not set
470CONFIG_STP=y
471CONFIG_BRIDGE=y
472# CONFIG_NET_DSA is not set
473# CONFIG_VLAN_8021Q is not set
474# CONFIG_DECNET is not set
475CONFIG_LLC=y
476# CONFIG_LLC2 is not set
477# CONFIG_IPX is not set
478# CONFIG_ATALK is not set
479# CONFIG_X25 is not set
480# CONFIG_LAPB is not set
481# CONFIG_ECONET is not set
482# CONFIG_WAN_ROUTER is not set
483# CONFIG_PHONET is not set
484# CONFIG_IEEE802154 is not set
485CONFIG_NET_SCHED=y
486
487#
488# Queueing/Scheduling
489#
490# CONFIG_NET_SCH_CBQ is not set
491# CONFIG_NET_SCH_HTB is not set
492# CONFIG_NET_SCH_HFSC is not set
493# CONFIG_NET_SCH_PRIO is not set
494# CONFIG_NET_SCH_MULTIQ is not set
495# CONFIG_NET_SCH_RED is not set
496# CONFIG_NET_SCH_SFQ is not set
497# CONFIG_NET_SCH_TEQL is not set
498CONFIG_NET_SCH_TBF=y
499# CONFIG_NET_SCH_GRED is not set
500# CONFIG_NET_SCH_DSMARK is not set
501# CONFIG_NET_SCH_NETEM is not set
502# CONFIG_NET_SCH_DRR is not set
503
504#
505# Classification
506#
507# CONFIG_NET_CLS_BASIC is not set
508# CONFIG_NET_CLS_TCINDEX is not set
509# CONFIG_NET_CLS_ROUTE4 is not set
510# CONFIG_NET_CLS_FW is not set
511# CONFIG_NET_CLS_U32 is not set
512# CONFIG_NET_CLS_RSVP is not set
513# CONFIG_NET_CLS_RSVP6 is not set
514# CONFIG_NET_CLS_FLOW is not set
515# CONFIG_NET_EMATCH is not set
516# CONFIG_NET_CLS_ACT is not set
517CONFIG_NET_SCH_FIFO=y
518# CONFIG_DCB is not set
519
520#
521# Network testing
522#
523# CONFIG_NET_PKTGEN is not set
524# CONFIG_HAMRADIO is not set
525# CONFIG_CAN is not set
526# CONFIG_IRDA is not set
527# CONFIG_BT is not set
528# CONFIG_AF_RXRPC is not set
529# CONFIG_WIRELESS is not set
530# CONFIG_WIMAX is not set
531# CONFIG_RFKILL is not set
532# CONFIG_NET_9P is not set
533
534#
535# Device Drivers
536#
537
538#
539# Generic Driver Options
540#
541CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
542CONFIG_STANDALONE=y
543CONFIG_PREVENT_FIRMWARE_BUILD=y
544CONFIG_FW_LOADER=y
545CONFIG_FIRMWARE_IN_KERNEL=y
546CONFIG_EXTRA_FIRMWARE=""
547# CONFIG_DEBUG_DRIVER is not set
548# CONFIG_DEBUG_DEVRES is not set
549# CONFIG_SYS_HYPERVISOR is not set
550# CONFIG_CONNECTOR is not set
551CONFIG_MTD=y
552# CONFIG_MTD_DEBUG is not set
553# CONFIG_MTD_CONCAT is not set
554CONFIG_MTD_PARTITIONS=y
555# CONFIG_MTD_TESTS is not set
556# CONFIG_MTD_REDBOOT_PARTS is not set
557CONFIG_MTD_CMDLINE_PARTS=y
558# CONFIG_MTD_AR7_PARTS is not set
559
560#
561# User Modules And Translation Layers
562#
563CONFIG_MTD_CHAR=y
564CONFIG_MTD_BLKDEVS=y
565CONFIG_MTD_BLOCK=y
566# CONFIG_FTL is not set
567# CONFIG_NFTL is not set
568# CONFIG_INFTL is not set
569# CONFIG_RFD_FTL is not set
570# CONFIG_SSFDC is not set
571# CONFIG_MTD_OOPS is not set
572
573#
574# RAM/ROM/Flash chip drivers
575#
576# CONFIG_MTD_CFI is not set
577# CONFIG_MTD_JEDECPROBE is not set
578CONFIG_MTD_MAP_BANK_WIDTH_1=y
579CONFIG_MTD_MAP_BANK_WIDTH_2=y
580CONFIG_MTD_MAP_BANK_WIDTH_4=y
581# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
582# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
583# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
584CONFIG_MTD_CFI_I1=y
585CONFIG_MTD_CFI_I2=y
586# CONFIG_MTD_CFI_I4 is not set
587# CONFIG_MTD_CFI_I8 is not set
588# CONFIG_MTD_RAM is not set
589# CONFIG_MTD_ROM is not set
590# CONFIG_MTD_ABSENT is not set
591
592#
593# Mapping drivers for chip access
594#
595# CONFIG_MTD_COMPLEX_MAPPINGS is not set
596# CONFIG_MTD_INTEL_VR_NOR is not set
597# CONFIG_MTD_PLATRAM is not set
598
599#
600# Self-contained MTD device drivers
601#
602# CONFIG_MTD_PMC551 is not set
603# CONFIG_MTD_SLRAM is not set
604# CONFIG_MTD_PHRAM is not set
605# CONFIG_MTD_MTDRAM is not set
606# CONFIG_MTD_BLOCK2MTD is not set
607
608#
609# Disk-On-Chip Device Drivers
610#
611# CONFIG_MTD_DOC2000 is not set
612# CONFIG_MTD_DOC2001 is not set
613# CONFIG_MTD_DOC2001PLUS is not set
614CONFIG_MTD_NAND=y
615# CONFIG_MTD_NAND_VERIFY_WRITE is not set
616# CONFIG_MTD_NAND_ECC_SMC is not set
617# CONFIG_MTD_NAND_MUSEUM_IDS is not set
618CONFIG_MTD_NAND_IDS=y
619# CONFIG_MTD_NAND_DISKONCHIP is not set
620# CONFIG_MTD_NAND_CAFE is not set
621# CONFIG_MTD_NAND_NANDSIM is not set
622# CONFIG_MTD_NAND_PLATFORM is not set
623# CONFIG_MTD_ALAUDA is not set
624# CONFIG_MTD_ONENAND is not set
625
626#
627# LPDDR flash memory drivers
628#
629# CONFIG_MTD_LPDDR is not set
630
631#
632# UBI - Unsorted block images
633#
634# CONFIG_MTD_UBI is not set
635# CONFIG_PARPORT is not set
636CONFIG_BLK_DEV=y
637# CONFIG_BLK_CPQ_DA is not set
638# CONFIG_BLK_CPQ_CISS_DA is not set
639# CONFIG_BLK_DEV_DAC960 is not set
640# CONFIG_BLK_DEV_UMEM is not set
641# CONFIG_BLK_DEV_COW_COMMON is not set
642CONFIG_BLK_DEV_LOOP=y
643# CONFIG_BLK_DEV_CRYPTOLOOP is not set
644# CONFIG_BLK_DEV_NBD is not set
645# CONFIG_BLK_DEV_SX8 is not set
646# CONFIG_BLK_DEV_UB is not set
647CONFIG_BLK_DEV_RAM=y
648CONFIG_BLK_DEV_RAM_COUNT=16
649CONFIG_BLK_DEV_RAM_SIZE=32768
650# CONFIG_BLK_DEV_XIP is not set
651# CONFIG_CDROM_PKTCDVD is not set
652# CONFIG_ATA_OVER_ETH is not set
653# CONFIG_BLK_DEV_HD is not set
654# CONFIG_MISC_DEVICES is not set
655CONFIG_HAVE_IDE=y
656# CONFIG_IDE is not set
657
658#
659# SCSI device support
660#
661# CONFIG_RAID_ATTRS is not set
662CONFIG_SCSI=y
663CONFIG_SCSI_DMA=y
664# CONFIG_SCSI_TGT is not set
665# CONFIG_SCSI_NETLINK is not set
666# CONFIG_SCSI_PROC_FS is not set
667
668#
669# SCSI support type (disk, tape, CD-ROM)
670#
671CONFIG_BLK_DEV_SD=y
672# CONFIG_CHR_DEV_ST is not set
673# CONFIG_CHR_DEV_OSST is not set
674# CONFIG_BLK_DEV_SR is not set
675# CONFIG_CHR_DEV_SG is not set
676# CONFIG_CHR_DEV_SCH is not set
677# CONFIG_SCSI_MULTI_LUN is not set
678# CONFIG_SCSI_CONSTANTS is not set
679# CONFIG_SCSI_LOGGING is not set
680# CONFIG_SCSI_SCAN_ASYNC is not set
681CONFIG_SCSI_WAIT_SCAN=m
682
683#
684# SCSI Transports
685#
686# CONFIG_SCSI_SPI_ATTRS is not set
687# CONFIG_SCSI_FC_ATTRS is not set
688# CONFIG_SCSI_ISCSI_ATTRS is not set
689# CONFIG_SCSI_SAS_LIBSAS is not set
690# CONFIG_SCSI_SRP_ATTRS is not set
691# CONFIG_SCSI_LOWLEVEL is not set
692# CONFIG_SCSI_DH is not set
693# CONFIG_SCSI_OSD_INITIATOR is not set
694CONFIG_ATA=y
695# CONFIG_ATA_NONSTANDARD is not set
696CONFIG_SATA_PMP=y
697# CONFIG_SATA_AHCI is not set
698# CONFIG_SATA_SIL24 is not set
699CONFIG_ATA_SFF=y
700# CONFIG_SATA_SVW is not set
701# CONFIG_ATA_PIIX is not set
702# CONFIG_SATA_MV is not set
703# CONFIG_SATA_NV is not set
704# CONFIG_PDC_ADMA is not set
705# CONFIG_SATA_QSTOR is not set
706# CONFIG_SATA_PROMISE is not set
707# CONFIG_SATA_SX4 is not set
708# CONFIG_SATA_SIL is not set
709# CONFIG_SATA_SIS is not set
710# CONFIG_SATA_ULI is not set
711# CONFIG_SATA_VIA is not set
712# CONFIG_SATA_VITESSE is not set
713# CONFIG_SATA_INIC162X is not set
714# CONFIG_PATA_ALI is not set
715# CONFIG_PATA_AMD is not set
716# CONFIG_PATA_ARTOP is not set
717# CONFIG_PATA_ATIIXP is not set
718# CONFIG_PATA_CMD640_PCI is not set
719# CONFIG_PATA_CMD64X is not set
720# CONFIG_PATA_CS5520 is not set
721# CONFIG_PATA_CS5530 is not set
722# CONFIG_PATA_CYPRESS is not set
723# CONFIG_PATA_EFAR is not set
724# CONFIG_ATA_GENERIC is not set
725# CONFIG_PATA_HPT366 is not set
726# CONFIG_PATA_HPT37X is not set
727# CONFIG_PATA_HPT3X2N is not set
728# CONFIG_PATA_HPT3X3 is not set
729# CONFIG_PATA_IT821X is not set
730# CONFIG_PATA_IT8213 is not set
731# CONFIG_PATA_JMICRON is not set
732# CONFIG_PATA_TRIFLEX is not set
733# CONFIG_PATA_MARVELL is not set
734# CONFIG_PATA_MPIIX is not set
735# CONFIG_PATA_OLDPIIX is not set
736# CONFIG_PATA_NETCELL is not set
737# CONFIG_PATA_NINJA32 is not set
738# CONFIG_PATA_NS87410 is not set
739# CONFIG_PATA_NS87415 is not set
740# CONFIG_PATA_OPTI is not set
741# CONFIG_PATA_OPTIDMA is not set
742# CONFIG_PATA_PDC_OLD is not set
743# CONFIG_PATA_RADISYS is not set
744# CONFIG_PATA_RZ1000 is not set
745# CONFIG_PATA_SC1200 is not set
746# CONFIG_PATA_SERVERWORKS is not set
747# CONFIG_PATA_PDC2027X is not set
748# CONFIG_PATA_SIL680 is not set
749# CONFIG_PATA_SIS is not set
750# CONFIG_PATA_VIA is not set
751# CONFIG_PATA_WINBOND is not set
752# CONFIG_PATA_PLATFORM is not set
753# CONFIG_PATA_SCH is not set
754# CONFIG_MD is not set
755# CONFIG_FUSION is not set
756
757#
758# IEEE 1394 (FireWire) support
759#
760
761#
762# You can enable one or both FireWire driver stacks.
763#
764
765#
766# See the help texts for more information.
767#
768# CONFIG_FIREWIRE is not set
769# CONFIG_IEEE1394 is not set
770# CONFIG_I2O is not set
771CONFIG_NETDEVICES=y
772# CONFIG_DUMMY is not set
773# CONFIG_BONDING is not set
774# CONFIG_MACVLAN is not set
775# CONFIG_EQUALIZER is not set
776# CONFIG_TUN is not set
777# CONFIG_VETH is not set
778# CONFIG_ARCNET is not set
779# CONFIG_PHYLIB is not set
780CONFIG_NET_ETHERNET=y
781CONFIG_MII=y
782# CONFIG_AX88796 is not set
783# CONFIG_HAPPYMEAL is not set
784# CONFIG_SUNGEM is not set
785# CONFIG_CASSINI is not set
786# CONFIG_NET_VENDOR_3COM is not set
787# CONFIG_SMC91X is not set
788# CONFIG_DM9000 is not set
789# CONFIG_ETHOC is not set
790# CONFIG_DNET is not set
791# CONFIG_NET_TULIP is not set
792# CONFIG_HP100 is not set
793# CONFIG_IBM_NEW_EMAC_ZMII is not set
794# CONFIG_IBM_NEW_EMAC_RGMII is not set
795# CONFIG_IBM_NEW_EMAC_TAH is not set
796# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
797# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
798# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
799# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
800# CONFIG_NET_PCI is not set
801# CONFIG_B44 is not set
802# CONFIG_KS8842 is not set
803# CONFIG_ATL2 is not set
804CONFIG_NETDEV_1000=y
805# CONFIG_ACENIC is not set
806# CONFIG_DL2K is not set
807# CONFIG_E1000 is not set
808# CONFIG_E1000E is not set
809# CONFIG_IP1000 is not set
810# CONFIG_IGB is not set
811# CONFIG_IGBVF is not set
812# CONFIG_NS83820 is not set
813# CONFIG_HAMACHI is not set
814# CONFIG_YELLOWFIN is not set
815# CONFIG_R8169 is not set
816# CONFIG_SIS190 is not set
817# CONFIG_SKGE is not set
818# CONFIG_SKY2 is not set
819# CONFIG_VIA_VELOCITY is not set
820# CONFIG_TIGON3 is not set
821# CONFIG_BNX2 is not set
822# CONFIG_CNIC is not set
823# CONFIG_QLA3XXX is not set
824# CONFIG_ATL1 is not set
825# CONFIG_ATL1E is not set
826# CONFIG_ATL1C is not set
827# CONFIG_JME is not set
828CONFIG_NETDEV_10000=y
829# CONFIG_CHELSIO_T1 is not set
830CONFIG_CHELSIO_T3_DEPENDS=y
831# CONFIG_CHELSIO_T3 is not set
832# CONFIG_ENIC is not set
833# CONFIG_IXGBE is not set
834# CONFIG_IXGB is not set
835# CONFIG_S2IO is not set
836# CONFIG_VXGE is not set
837# CONFIG_MYRI10GE is not set
838# CONFIG_NETXEN_NIC is not set
839# CONFIG_NIU is not set
840# CONFIG_MLX4_EN is not set
841# CONFIG_MLX4_CORE is not set
842# CONFIG_TEHUTI is not set
843# CONFIG_BNX2X is not set
844# CONFIG_QLGE is not set
845# CONFIG_SFC is not set
846# CONFIG_BE2NET is not set
847# CONFIG_TR is not set
848
849#
850# Wireless LAN
851#
852# CONFIG_WLAN_PRE80211 is not set
853# CONFIG_WLAN_80211 is not set
854
855#
856# Enable WiMAX (Networking options) to see the WiMAX drivers
857#
858
859#
860# USB Network Adapters
861#
862# CONFIG_USB_CATC is not set
863# CONFIG_USB_KAWETH is not set
864# CONFIG_USB_PEGASUS is not set
865CONFIG_USB_RTL8150=y
866# CONFIG_USB_USBNET is not set
867# CONFIG_WAN is not set
868# CONFIG_FDDI is not set
869# CONFIG_HIPPI is not set
870# CONFIG_PPP is not set
871# CONFIG_SLIP is not set
872# CONFIG_NET_FC is not set
873# CONFIG_NETCONSOLE is not set
874# CONFIG_NETPOLL is not set
875# CONFIG_NET_POLL_CONTROLLER is not set
876# CONFIG_ISDN is not set
877# CONFIG_PHONE is not set
878
879#
880# Input device support
881#
882CONFIG_INPUT=y
883# CONFIG_INPUT_FF_MEMLESS is not set
884# CONFIG_INPUT_POLLDEV is not set
885
886#
887# Userland interfaces
888#
889# CONFIG_INPUT_MOUSEDEV is not set
890# CONFIG_INPUT_JOYDEV is not set
891CONFIG_INPUT_EVDEV=y
892# CONFIG_INPUT_EVBUG is not set
893
894#
895# Input Device Drivers
896#
897# CONFIG_INPUT_KEYBOARD is not set
898# CONFIG_INPUT_MOUSE is not set
899# CONFIG_INPUT_JOYSTICK is not set
900# CONFIG_INPUT_TABLET is not set
901# CONFIG_INPUT_TOUCHSCREEN is not set
902# CONFIG_INPUT_MISC is not set
903
904#
905# Hardware I/O ports
906#
907# CONFIG_SERIO is not set
908# CONFIG_GAMEPORT is not set
909
910#
911# Character devices
912#
913# CONFIG_VT is not set
914# CONFIG_DEVKMEM is not set
915# CONFIG_SERIAL_NONSTANDARD is not set
916# CONFIG_NOZOMI is not set
917
918#
919# Serial drivers
920#
921# CONFIG_SERIAL_8250 is not set
922
923#
924# Non-8250 serial port support
925#
926# CONFIG_SERIAL_JSM is not set
927CONFIG_UNIX98_PTYS=y
928# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
929# CONFIG_LEGACY_PTYS is not set
930# CONFIG_IPMI_HANDLER is not set
931# CONFIG_HW_RANDOM is not set
932# CONFIG_R3964 is not set
933# CONFIG_APPLICOM is not set
934# CONFIG_RAW_DRIVER is not set
935# CONFIG_TCG_TPM is not set
936CONFIG_DEVPORT=y
937# CONFIG_I2C is not set
938# CONFIG_SPI is not set
939
940#
941# PPS support
942#
943# CONFIG_PPS is not set
944# CONFIG_W1 is not set
945# CONFIG_POWER_SUPPLY is not set
946# CONFIG_HWMON is not set
947# CONFIG_THERMAL is not set
948# CONFIG_THERMAL_HWMON is not set
949# CONFIG_WATCHDOG is not set
950CONFIG_SSB_POSSIBLE=y
951
952#
953# Sonics Silicon Backplane
954#
955# CONFIG_SSB is not set
956
957#
958# Multifunction device drivers
959#
960# CONFIG_MFD_CORE is not set
961# CONFIG_MFD_SM501 is not set
962# CONFIG_HTC_PASIC3 is not set
963# CONFIG_MFD_TMIO is not set
964# CONFIG_REGULATOR is not set
965# CONFIG_MEDIA_SUPPORT is not set
966
967#
968# Graphics support
969#
970# CONFIG_DRM is not set
971# CONFIG_VGASTATE is not set
972# CONFIG_VIDEO_OUTPUT_CONTROL is not set
973# CONFIG_FB is not set
974# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
975
976#
977# Display device support
978#
979# CONFIG_DISPLAY_SUPPORT is not set
980# CONFIG_SOUND is not set
981CONFIG_HID_SUPPORT=y
982CONFIG_HID=y
983# CONFIG_HID_DEBUG is not set
984# CONFIG_HIDRAW is not set
985
986#
987# USB Input Devices
988#
989CONFIG_USB_HID=y
990# CONFIG_HID_PID is not set
991CONFIG_USB_HIDDEV=y
992
993#
994# Special HID drivers
995#
996# CONFIG_HID_A4TECH is not set
997# CONFIG_HID_APPLE is not set
998# CONFIG_HID_BELKIN is not set
999# CONFIG_HID_CHERRY is not set
1000# CONFIG_HID_CHICONY is not set
1001# CONFIG_HID_CYPRESS is not set
1002# CONFIG_HID_DRAGONRISE is not set
1003# CONFIG_HID_EZKEY is not set
1004# CONFIG_HID_KYE is not set
1005# CONFIG_HID_GYRATION is not set
1006# CONFIG_HID_KENSINGTON is not set
1007# CONFIG_HID_LOGITECH is not set
1008# CONFIG_HID_MICROSOFT is not set
1009# CONFIG_HID_MONTEREY is not set
1010# CONFIG_HID_NTRIG is not set
1011# CONFIG_HID_PANTHERLORD is not set
1012# CONFIG_HID_PETALYNX is not set
1013# CONFIG_HID_SAMSUNG is not set
1014# CONFIG_HID_SONY is not set
1015# CONFIG_HID_SUNPLUS is not set
1016# CONFIG_HID_GREENASIA is not set
1017# CONFIG_HID_SMARTJOYPLUS is not set
1018# CONFIG_HID_TOPSEED is not set
1019# CONFIG_HID_THRUSTMASTER is not set
1020# CONFIG_HID_ZEROPLUS is not set
1021CONFIG_USB_SUPPORT=y
1022CONFIG_USB_ARCH_HAS_HCD=y
1023CONFIG_USB_ARCH_HAS_OHCI=y
1024CONFIG_USB_ARCH_HAS_EHCI=y
1025CONFIG_USB=y
1026# CONFIG_USB_DEBUG is not set
1027CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
1028
1029#
1030# Miscellaneous USB options
1031#
1032CONFIG_USB_DEVICEFS=y
1033# CONFIG_USB_DEVICE_CLASS is not set
1034# CONFIG_USB_DYNAMIC_MINORS is not set
1035# CONFIG_USB_OTG is not set
1036# CONFIG_USB_OTG_WHITELIST is not set
1037# CONFIG_USB_OTG_BLACKLIST_HUB is not set
1038# CONFIG_USB_MON is not set
1039# CONFIG_USB_WUSB is not set
1040# CONFIG_USB_WUSB_CBAF is not set
1041
1042#
1043# USB Host Controller Drivers
1044#
1045# CONFIG_USB_C67X00_HCD is not set
1046# CONFIG_USB_XHCI_HCD is not set
1047CONFIG_USB_EHCI_HCD=y
1048# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
1049# CONFIG_USB_EHCI_TT_NEWSCHED is not set
1050# CONFIG_USB_OXU210HP_HCD is not set
1051# CONFIG_USB_ISP116X_HCD is not set
1052# CONFIG_USB_ISP1760_HCD is not set
1053CONFIG_USB_OHCI_HCD=y
1054# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
1055# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
1056CONFIG_USB_OHCI_LITTLE_ENDIAN=y
1057# CONFIG_USB_UHCI_HCD is not set
1058# CONFIG_USB_SL811_HCD is not set
1059# CONFIG_USB_R8A66597_HCD is not set
1060# CONFIG_USB_WHCI_HCD is not set
1061# CONFIG_USB_HWA_HCD is not set
1062
1063#
1064# USB Device Class drivers
1065#
1066# CONFIG_USB_ACM is not set
1067# CONFIG_USB_PRINTER is not set
1068# CONFIG_USB_WDM is not set
1069# CONFIG_USB_TMC is not set
1070
1071#
1072# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
1073#
1074
1075#
1076# also be needed; see USB_STORAGE Help for more info
1077#
1078CONFIG_USB_STORAGE=y
1079# CONFIG_USB_STORAGE_DEBUG is not set
1080# CONFIG_USB_STORAGE_DATAFAB is not set
1081# CONFIG_USB_STORAGE_FREECOM is not set
1082# CONFIG_USB_STORAGE_ISD200 is not set
1083# CONFIG_USB_STORAGE_USBAT is not set
1084# CONFIG_USB_STORAGE_SDDR09 is not set
1085# CONFIG_USB_STORAGE_SDDR55 is not set
1086# CONFIG_USB_STORAGE_JUMPSHOT is not set
1087# CONFIG_USB_STORAGE_ALAUDA is not set
1088# CONFIG_USB_STORAGE_ONETOUCH is not set
1089# CONFIG_USB_STORAGE_KARMA is not set
1090# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
1091# CONFIG_USB_LIBUSUAL is not set
1092
1093#
1094# USB Imaging devices
1095#
1096# CONFIG_USB_MDC800 is not set
1097# CONFIG_USB_MICROTEK is not set
1098
1099#
1100# USB port drivers
1101#
1102CONFIG_USB_SERIAL=y
1103CONFIG_USB_SERIAL_CONSOLE=y
1104# CONFIG_USB_EZUSB is not set
1105# CONFIG_USB_SERIAL_GENERIC is not set
1106# CONFIG_USB_SERIAL_AIRCABLE is not set
1107# CONFIG_USB_SERIAL_ARK3116 is not set
1108# CONFIG_USB_SERIAL_BELKIN is not set
1109# CONFIG_USB_SERIAL_CH341 is not set
1110# CONFIG_USB_SERIAL_WHITEHEAT is not set
1111# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set
1112CONFIG_USB_SERIAL_CP210X=y
1113# CONFIG_USB_SERIAL_CYPRESS_M8 is not set
1114# CONFIG_USB_SERIAL_EMPEG is not set
1115# CONFIG_USB_SERIAL_FTDI_SIO is not set
1116# CONFIG_USB_SERIAL_FUNSOFT is not set
1117# CONFIG_USB_SERIAL_VISOR is not set
1118# CONFIG_USB_SERIAL_IPAQ is not set
1119# CONFIG_USB_SERIAL_IR is not set
1120# CONFIG_USB_SERIAL_EDGEPORT is not set
1121# CONFIG_USB_SERIAL_EDGEPORT_TI is not set
1122# CONFIG_USB_SERIAL_GARMIN is not set
1123# CONFIG_USB_SERIAL_IPW is not set
1124# CONFIG_USB_SERIAL_IUU is not set
1125# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set
1126# CONFIG_USB_SERIAL_KEYSPAN is not set
1127# CONFIG_USB_SERIAL_KLSI is not set
1128# CONFIG_USB_SERIAL_KOBIL_SCT is not set
1129# CONFIG_USB_SERIAL_MCT_U232 is not set
1130# CONFIG_USB_SERIAL_MOS7720 is not set
1131# CONFIG_USB_SERIAL_MOS7840 is not set
1132# CONFIG_USB_SERIAL_MOTOROLA is not set
1133# CONFIG_USB_SERIAL_NAVMAN is not set
1134# CONFIG_USB_SERIAL_PL2303 is not set
1135# CONFIG_USB_SERIAL_OTI6858 is not set
1136# CONFIG_USB_SERIAL_QUALCOMM is not set
1137# CONFIG_USB_SERIAL_SPCP8X5 is not set
1138# CONFIG_USB_SERIAL_HP4X is not set
1139# CONFIG_USB_SERIAL_SAFE is not set
1140# CONFIG_USB_SERIAL_SIEMENS_MPI is not set
1141# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set
1142# CONFIG_USB_SERIAL_SYMBOL is not set
1143# CONFIG_USB_SERIAL_TI is not set
1144# CONFIG_USB_SERIAL_CYBERJACK is not set
1145# CONFIG_USB_SERIAL_XIRCOM is not set
1146# CONFIG_USB_SERIAL_OPTION is not set
1147# CONFIG_USB_SERIAL_OMNINET is not set
1148# CONFIG_USB_SERIAL_OPTICON is not set
1149# CONFIG_USB_SERIAL_DEBUG is not set
1150
1151#
1152# USB Miscellaneous drivers
1153#
1154# CONFIG_USB_EMI62 is not set
1155# CONFIG_USB_EMI26 is not set
1156# CONFIG_USB_ADUTUX is not set
1157# CONFIG_USB_SEVSEG is not set
1158# CONFIG_USB_RIO500 is not set
1159# CONFIG_USB_LEGOTOWER is not set
1160# CONFIG_USB_LCD is not set
1161# CONFIG_USB_BERRY_CHARGE is not set
1162# CONFIG_USB_LED is not set
1163# CONFIG_USB_CYPRESS_CY7C63 is not set
1164# CONFIG_USB_CYTHERM is not set
1165# CONFIG_USB_IDMOUSE is not set
1166# CONFIG_USB_FTDI_ELAN is not set
1167# CONFIG_USB_APPLEDISPLAY is not set
1168# CONFIG_USB_SISUSBVGA is not set
1169# CONFIG_USB_LD is not set
1170# CONFIG_USB_TRANCEVIBRATOR is not set
1171# CONFIG_USB_IOWARRIOR is not set
1172# CONFIG_USB_TEST is not set
1173# CONFIG_USB_ISIGHTFW is not set
1174# CONFIG_USB_VST is not set
1175# CONFIG_USB_GADGET is not set
1176
1177#
1178# OTG and related infrastructure
1179#
1180# CONFIG_NOP_USB_XCEIV is not set
1181# CONFIG_UWB is not set
1182# CONFIG_MMC is not set
1183# CONFIG_MEMSTICK is not set
1184# CONFIG_NEW_LEDS is not set
1185# CONFIG_ACCESSIBILITY is not set
1186# CONFIG_INFINIBAND is not set
1187CONFIG_RTC_LIB=y
1188# CONFIG_RTC_CLASS is not set
1189# CONFIG_DMADEVICES is not set
1190# CONFIG_AUXDISPLAY is not set
1191# CONFIG_UIO is not set
1192
1193#
1194# TI VLYNQ
1195#
1196# CONFIG_STAGING is not set
1197
1198#
1199# File systems
1200#
1201CONFIG_EXT2_FS=y
1202# CONFIG_EXT2_FS_XATTR is not set
1203# CONFIG_EXT2_FS_XIP is not set
1204CONFIG_EXT3_FS=y
1205# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
1206# CONFIG_EXT3_FS_XATTR is not set
1207# CONFIG_EXT4_FS is not set
1208CONFIG_JBD=y
1209# CONFIG_JBD_DEBUG is not set
1210# CONFIG_REISERFS_FS is not set
1211# CONFIG_JFS_FS is not set
1212# CONFIG_FS_POSIX_ACL is not set
1213# CONFIG_XFS_FS is not set
1214# CONFIG_GFS2_FS is not set
1215# CONFIG_OCFS2_FS is not set
1216# CONFIG_BTRFS_FS is not set
1217CONFIG_FILE_LOCKING=y
1218CONFIG_FSNOTIFY=y
1219# CONFIG_DNOTIFY is not set
1220CONFIG_INOTIFY=y
1221CONFIG_INOTIFY_USER=y
1222# CONFIG_QUOTA is not set
1223# CONFIG_AUTOFS_FS is not set
1224# CONFIG_AUTOFS4_FS is not set
1225CONFIG_FUSE_FS=y
1226# CONFIG_CUSE is not set
1227
1228#
1229# Caches
1230#
1231# CONFIG_FSCACHE is not set
1232
1233#
1234# CD-ROM/DVD Filesystems
1235#
1236# CONFIG_ISO9660_FS is not set
1237# CONFIG_UDF_FS is not set
1238
1239#
1240# DOS/FAT/NT Filesystems
1241#
1242# CONFIG_MSDOS_FS is not set
1243# CONFIG_VFAT_FS is not set
1244# CONFIG_NTFS_FS is not set
1245
1246#
1247# Pseudo filesystems
1248#
1249CONFIG_PROC_FS=y
1250CONFIG_PROC_KCORE=y
1251CONFIG_PROC_SYSCTL=y
1252CONFIG_PROC_PAGE_MONITOR=y
1253CONFIG_SYSFS=y
1254CONFIG_TMPFS=y
1255# CONFIG_TMPFS_POSIX_ACL is not set
1256# CONFIG_HUGETLB_PAGE is not set
1257# CONFIG_CONFIGFS_FS is not set
1258CONFIG_MISC_FILESYSTEMS=y
1259# CONFIG_ADFS_FS is not set
1260# CONFIG_AFFS_FS is not set
1261# CONFIG_HFS_FS is not set
1262# CONFIG_HFSPLUS_FS is not set
1263# CONFIG_BEFS_FS is not set
1264# CONFIG_BFS_FS is not set
1265# CONFIG_EFS_FS is not set
1266CONFIG_JFFS2_FS=y
1267CONFIG_JFFS2_FS_DEBUG=0
1268CONFIG_JFFS2_FS_WRITEBUFFER=y
1269# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
1270# CONFIG_JFFS2_SUMMARY is not set
1271# CONFIG_JFFS2_FS_XATTR is not set
1272# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
1273CONFIG_JFFS2_ZLIB=y
1274# CONFIG_JFFS2_LZO is not set
1275CONFIG_JFFS2_RTIME=y
1276# CONFIG_JFFS2_RUBIN is not set
1277CONFIG_CRAMFS=y
1278# CONFIG_SQUASHFS is not set
1279# CONFIG_VXFS_FS is not set
1280# CONFIG_MINIX_FS is not set
1281# CONFIG_OMFS_FS is not set
1282# CONFIG_HPFS_FS is not set
1283# CONFIG_QNX4FS_FS is not set
1284# CONFIG_ROMFS_FS is not set
1285# CONFIG_SYSV_FS is not set
1286# CONFIG_UFS_FS is not set
1287# CONFIG_NILFS2_FS is not set
1288CONFIG_NETWORK_FILESYSTEMS=y
1289CONFIG_NFS_FS=y
1290CONFIG_NFS_V3=y
1291# CONFIG_NFS_V3_ACL is not set
1292# CONFIG_NFS_V4 is not set
1293CONFIG_ROOT_NFS=y
1294# CONFIG_NFSD is not set
1295CONFIG_LOCKD=y
1296CONFIG_LOCKD_V4=y
1297CONFIG_NFS_COMMON=y
1298CONFIG_SUNRPC=y
1299# CONFIG_RPCSEC_GSS_KRB5 is not set
1300# CONFIG_RPCSEC_GSS_SPKM3 is not set
1301# CONFIG_SMB_FS is not set
1302# CONFIG_CIFS is not set
1303# CONFIG_NCP_FS is not set
1304# CONFIG_CODA_FS is not set
1305# CONFIG_AFS_FS is not set
1306
1307#
1308# Partition Types
1309#
1310# CONFIG_PARTITION_ADVANCED is not set
1311CONFIG_MSDOS_PARTITION=y
1312CONFIG_NLS=y
1313CONFIG_NLS_DEFAULT="iso8859-1"
1314# CONFIG_NLS_CODEPAGE_437 is not set
1315# CONFIG_NLS_CODEPAGE_737 is not set
1316# CONFIG_NLS_CODEPAGE_775 is not set
1317# CONFIG_NLS_CODEPAGE_850 is not set
1318# CONFIG_NLS_CODEPAGE_852 is not set
1319# CONFIG_NLS_CODEPAGE_855 is not set
1320# CONFIG_NLS_CODEPAGE_857 is not set
1321# CONFIG_NLS_CODEPAGE_860 is not set
1322# CONFIG_NLS_CODEPAGE_861 is not set
1323# CONFIG_NLS_CODEPAGE_862 is not set
1324# CONFIG_NLS_CODEPAGE_863 is not set
1325# CONFIG_NLS_CODEPAGE_864 is not set
1326# CONFIG_NLS_CODEPAGE_865 is not set
1327# CONFIG_NLS_CODEPAGE_866 is not set
1328# CONFIG_NLS_CODEPAGE_869 is not set
1329# CONFIG_NLS_CODEPAGE_936 is not set
1330# CONFIG_NLS_CODEPAGE_950 is not set
1331# CONFIG_NLS_CODEPAGE_932 is not set
1332# CONFIG_NLS_CODEPAGE_949 is not set
1333# CONFIG_NLS_CODEPAGE_874 is not set
1334# CONFIG_NLS_ISO8859_8 is not set
1335# CONFIG_NLS_CODEPAGE_1250 is not set
1336# CONFIG_NLS_CODEPAGE_1251 is not set
1337# CONFIG_NLS_ASCII is not set
1338# CONFIG_NLS_ISO8859_1 is not set
1339# CONFIG_NLS_ISO8859_2 is not set
1340# CONFIG_NLS_ISO8859_3 is not set
1341# CONFIG_NLS_ISO8859_4 is not set
1342# CONFIG_NLS_ISO8859_5 is not set
1343# CONFIG_NLS_ISO8859_6 is not set
1344# CONFIG_NLS_ISO8859_7 is not set
1345# CONFIG_NLS_ISO8859_9 is not set
1346# CONFIG_NLS_ISO8859_13 is not set
1347# CONFIG_NLS_ISO8859_14 is not set
1348# CONFIG_NLS_ISO8859_15 is not set
1349# CONFIG_NLS_KOI8_R is not set
1350# CONFIG_NLS_KOI8_U is not set
1351# CONFIG_NLS_UTF8 is not set
1352# CONFIG_DLM is not set
1353
1354#
1355# Kernel hacking
1356#
1357CONFIG_TRACE_IRQFLAGS_SUPPORT=y
1358CONFIG_PRINTK_TIME=y
1359CONFIG_ENABLE_WARN_DEPRECATED=y
1360CONFIG_ENABLE_MUST_CHECK=y
1361CONFIG_FRAME_WARN=1024
1362# CONFIG_MAGIC_SYSRQ is not set
1363# CONFIG_UNUSED_SYMBOLS is not set
1364CONFIG_DEBUG_FS=y
1365# CONFIG_HEADERS_CHECK is not set
1366CONFIG_DEBUG_KERNEL=y
1367# CONFIG_DEBUG_SHIRQ is not set
1368CONFIG_DETECT_SOFTLOCKUP=y
1369# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
1370CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
1371CONFIG_DETECT_HUNG_TASK=y
1372# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
1373CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
1374# CONFIG_SCHED_DEBUG is not set
1375# CONFIG_SCHEDSTATS is not set
1376# CONFIG_TIMER_STATS is not set
1377# CONFIG_DEBUG_OBJECTS is not set
1378# CONFIG_DEBUG_PREEMPT is not set
1379# CONFIG_DEBUG_RT_MUTEXES is not set
1380# CONFIG_RT_MUTEX_TESTER is not set
1381# CONFIG_DEBUG_SPINLOCK is not set
1382# CONFIG_DEBUG_MUTEXES is not set
1383# CONFIG_DEBUG_LOCK_ALLOC is not set
1384# CONFIG_PROVE_LOCKING is not set
1385# CONFIG_LOCK_STAT is not set
1386# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1387# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1388# CONFIG_DEBUG_KOBJECT is not set
1389CONFIG_DEBUG_INFO=y
1390# CONFIG_DEBUG_VM is not set
1391# CONFIG_DEBUG_WRITECOUNT is not set
1392# CONFIG_DEBUG_MEMORY_INIT is not set
1393# CONFIG_DEBUG_LIST is not set
1394# CONFIG_DEBUG_SG is not set
1395# CONFIG_DEBUG_NOTIFIERS is not set
1396# CONFIG_BOOT_PRINTK_DELAY is not set
1397# CONFIG_RCU_TORTURE_TEST is not set
1398# CONFIG_RCU_CPU_STALL_DETECTOR is not set
1399# CONFIG_BACKTRACE_SELF_TEST is not set
1400# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
1401# CONFIG_FAULT_INJECTION is not set
1402# CONFIG_PAGE_POISONING is not set
1403CONFIG_TRACING_SUPPORT=y
1404CONFIG_FTRACE=y
1405# CONFIG_IRQSOFF_TRACER is not set
1406# CONFIG_PREEMPT_TRACER is not set
1407# CONFIG_SCHED_TRACER is not set
1408# CONFIG_ENABLE_DEFAULT_TRACERS is not set
1409# CONFIG_BOOT_TRACER is not set
1410CONFIG_BRANCH_PROFILE_NONE=y
1411# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
1412# CONFIG_PROFILE_ALL_BRANCHES is not set
1413# CONFIG_KMEMTRACE is not set
1414# CONFIG_WORKQUEUE_TRACER is not set
1415# CONFIG_BLK_DEV_IO_TRACE is not set
1416# CONFIG_DYNAMIC_DEBUG is not set
1417# CONFIG_SAMPLES is not set
1418CONFIG_HAVE_ARCH_KGDB=y
1419# CONFIG_KGDB is not set
1420# CONFIG_KMEMCHECK is not set
1421CONFIG_CMDLINE_BOOL=y
1422CONFIG_CMDLINE="rw dhash_entries=1024 ihash_entries=1024 ip=10.0.1.3:10.0.1.1:10.0.1.1:255.255.255.0:zeus:eth0: root=/dev/nfs nfsroot=/nfsroot/cramfs,wsize=512,rsize=512,tcp nokgdb console=ttyUSB0,115200 memsize=252M"
1423# CONFIG_CMDLINE_OVERRIDE is not set
1424# CONFIG_DEBUG_STACK_USAGE is not set
1425# CONFIG_RUNTIME_DEBUG is not set
1426
1427#
1428# Security options
1429#
1430# CONFIG_KEYS is not set
1431# CONFIG_SECURITY is not set
1432# CONFIG_SECURITYFS is not set
1433# CONFIG_SECURITY_FILE_CAPABILITIES is not set
1434CONFIG_CRYPTO=y
1435
1436#
1437# Crypto core or helper
1438#
1439# CONFIG_CRYPTO_FIPS is not set
1440CONFIG_CRYPTO_ALGAPI=y
1441CONFIG_CRYPTO_ALGAPI2=y
1442CONFIG_CRYPTO_AEAD=y
1443CONFIG_CRYPTO_AEAD2=y
1444CONFIG_CRYPTO_BLKCIPHER=y
1445CONFIG_CRYPTO_BLKCIPHER2=y
1446CONFIG_CRYPTO_HASH=y
1447CONFIG_CRYPTO_HASH2=y
1448CONFIG_CRYPTO_RNG2=y
1449CONFIG_CRYPTO_PCOMP=y
1450CONFIG_CRYPTO_MANAGER=y
1451CONFIG_CRYPTO_MANAGER2=y
1452# CONFIG_CRYPTO_GF128MUL is not set
1453# CONFIG_CRYPTO_NULL is not set
1454CONFIG_CRYPTO_WORKQUEUE=y
1455# CONFIG_CRYPTO_CRYPTD is not set
1456CONFIG_CRYPTO_AUTHENC=y
1457# CONFIG_CRYPTO_TEST is not set
1458
1459#
1460# Authenticated Encryption with Associated Data
1461#
1462# CONFIG_CRYPTO_CCM is not set
1463# CONFIG_CRYPTO_GCM is not set
1464# CONFIG_CRYPTO_SEQIV is not set
1465
1466#
1467# Block modes
1468#
1469CONFIG_CRYPTO_CBC=y
1470# CONFIG_CRYPTO_CTR is not set
1471# CONFIG_CRYPTO_CTS is not set
1472# CONFIG_CRYPTO_ECB is not set
1473# CONFIG_CRYPTO_LRW is not set
1474# CONFIG_CRYPTO_PCBC is not set
1475# CONFIG_CRYPTO_XTS is not set
1476
1477#
1478# Hash modes
1479#
1480CONFIG_CRYPTO_HMAC=y
1481# CONFIG_CRYPTO_XCBC is not set
1482
1483#
1484# Digest
1485#
1486# CONFIG_CRYPTO_CRC32C is not set
1487# CONFIG_CRYPTO_MD4 is not set
1488CONFIG_CRYPTO_MD5=y
1489# CONFIG_CRYPTO_MICHAEL_MIC is not set
1490# CONFIG_CRYPTO_RMD128 is not set
1491# CONFIG_CRYPTO_RMD160 is not set
1492# CONFIG_CRYPTO_RMD256 is not set
1493# CONFIG_CRYPTO_RMD320 is not set
1494CONFIG_CRYPTO_SHA1=y
1495# CONFIG_CRYPTO_SHA256 is not set
1496# CONFIG_CRYPTO_SHA512 is not set
1497# CONFIG_CRYPTO_TGR192 is not set
1498# CONFIG_CRYPTO_WP512 is not set
1499
1500#
1501# Ciphers
1502#
1503# CONFIG_CRYPTO_AES is not set
1504# CONFIG_CRYPTO_ANUBIS is not set
1505# CONFIG_CRYPTO_ARC4 is not set
1506# CONFIG_CRYPTO_BLOWFISH is not set
1507# CONFIG_CRYPTO_CAMELLIA is not set
1508# CONFIG_CRYPTO_CAST5 is not set
1509# CONFIG_CRYPTO_CAST6 is not set
1510CONFIG_CRYPTO_DES=y
1511# CONFIG_CRYPTO_FCRYPT is not set
1512# CONFIG_CRYPTO_KHAZAD is not set
1513# CONFIG_CRYPTO_SALSA20 is not set
1514# CONFIG_CRYPTO_SEED is not set
1515# CONFIG_CRYPTO_SERPENT is not set
1516# CONFIG_CRYPTO_TEA is not set
1517# CONFIG_CRYPTO_TWOFISH is not set
1518
1519#
1520# Compression
1521#
1522CONFIG_CRYPTO_DEFLATE=y
1523# CONFIG_CRYPTO_ZLIB is not set
1524# CONFIG_CRYPTO_LZO is not set
1525
1526#
1527# Random Number Generation
1528#
1529# CONFIG_CRYPTO_ANSI_CPRNG is not set
1530# CONFIG_CRYPTO_HW is not set
1531# CONFIG_BINARY_PRINTF is not set
1532
1533#
1534# Library routines
1535#
1536CONFIG_BITREVERSE=y
1537CONFIG_GENERIC_FIND_LAST_BIT=y
1538# CONFIG_CRC_CCITT is not set
1539# CONFIG_CRC16 is not set
1540# CONFIG_CRC_T10DIF is not set
1541# CONFIG_CRC_ITU_T is not set
1542CONFIG_CRC32=y
1543# CONFIG_CRC7 is not set
1544# CONFIG_LIBCRC32C is not set
1545CONFIG_ZLIB_INFLATE=y
1546CONFIG_ZLIB_DEFLATE=y
1547CONFIG_HAS_IOMEM=y
1548CONFIG_HAS_IOPORT=y
1549CONFIG_HAS_DMA=y
1550CONFIG_NLATTR=y
diff --git a/arch/mips/configs/rb532_defconfig b/arch/mips/configs/rb532_defconfig
index f40c3a04739d..57a50483abdf 100644
--- a/arch/mips/configs/rb532_defconfig
+++ b/arch/mips/configs/rb532_defconfig
@@ -9,7 +9,6 @@ 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_BASLER_EXCITE is not set
13# CONFIG_BCM47XX is not set 12# CONFIG_BCM47XX is not set
14# CONFIG_MIPS_COBALT is not set 13# CONFIG_MIPS_COBALT is not set
15# CONFIG_MACH_DECSTATION is not set 14# CONFIG_MACH_DECSTATION is not set
@@ -1204,7 +1203,7 @@ CONFIG_FRAME_WARN=1024
1204# CONFIG_HEADERS_CHECK is not set 1203# CONFIG_HEADERS_CHECK is not set
1205# CONFIG_DEBUG_KERNEL is not set 1204# CONFIG_DEBUG_KERNEL is not set
1206# CONFIG_SAMPLES is not set 1205# CONFIG_SAMPLES is not set
1207CONFIG_CMDLINE="" 1206# CONFIG_CMDLINE_BOOL is not set
1208 1207
1209# 1208#
1210# Security options 1209# Security options
diff --git a/arch/mips/configs/rbtx49xx_defconfig b/arch/mips/configs/rbtx49xx_defconfig
index 6c6a19aebe1f..21c2022d46ee 100644
--- a/arch/mips/configs/rbtx49xx_defconfig
+++ b/arch/mips/configs/rbtx49xx_defconfig
@@ -10,7 +10,6 @@ CONFIG_MIPS=y
10# 10#
11# CONFIG_MACH_ALCHEMY is not set 11# CONFIG_MACH_ALCHEMY is not set
12# CONFIG_AR7 is not set 12# CONFIG_AR7 is not set
13# CONFIG_BASLER_EXCITE is not set
14# CONFIG_BCM47XX is not set 13# CONFIG_BCM47XX is not set
15# CONFIG_BCM63XX is not set 14# CONFIG_BCM63XX is not set
16# CONFIG_MIPS_COBALT is not set 15# CONFIG_MIPS_COBALT is not set
@@ -284,7 +283,6 @@ CONFIG_DEFAULT_AS=y
284# CONFIG_DEFAULT_CFQ is not set 283# CONFIG_DEFAULT_CFQ is not set
285# CONFIG_DEFAULT_NOOP is not set 284# CONFIG_DEFAULT_NOOP is not set
286CONFIG_DEFAULT_IOSCHED="anticipatory" 285CONFIG_DEFAULT_IOSCHED="anticipatory"
287# CONFIG_PROBE_INITRD_HEADER is not set
288# CONFIG_FREEZER is not set 286# CONFIG_FREEZER is not set
289 287
290# 288#
@@ -1063,7 +1061,7 @@ CONFIG_TRACING_SUPPORT=y
1063# CONFIG_DYNAMIC_DEBUG is not set 1061# CONFIG_DYNAMIC_DEBUG is not set
1064# CONFIG_SAMPLES is not set 1062# CONFIG_SAMPLES is not set
1065CONFIG_HAVE_ARCH_KGDB=y 1063CONFIG_HAVE_ARCH_KGDB=y
1066CONFIG_CMDLINE="" 1064# CONFIG_CMDLINE_BOOL is not set
1067 1065
1068# 1066#
1069# Security options 1067# Security options
diff --git a/arch/mips/configs/rm200_defconfig b/arch/mips/configs/rm200_defconfig
index e53b8d096cfc..790362890033 100644
--- a/arch/mips/configs/rm200_defconfig
+++ b/arch/mips/configs/rm200_defconfig
@@ -22,7 +22,6 @@ CONFIG_ZONE_DMA=y
22# CONFIG_MIPS_DB1550 is not set 22# CONFIG_MIPS_DB1550 is not set
23# CONFIG_MIPS_DB1200 is not set 23# CONFIG_MIPS_DB1200 is not set
24# CONFIG_MIPS_MIRAGE is not set 24# CONFIG_MIPS_MIRAGE is not set
25# CONFIG_BASLER_EXCITE is not set
26# CONFIG_MIPS_COBALT is not set 25# CONFIG_MIPS_COBALT is not set
27# CONFIG_MACH_DECSTATION is not set 26# CONFIG_MACH_DECSTATION is not set
28# CONFIG_MACH_JAZZ is not set 27# CONFIG_MACH_JAZZ is not set
@@ -1694,7 +1693,7 @@ CONFIG_ENABLE_MUST_CHECK=y
1694# CONFIG_DEBUG_KERNEL is not set 1693# CONFIG_DEBUG_KERNEL is not set
1695CONFIG_LOG_BUF_SHIFT=14 1694CONFIG_LOG_BUF_SHIFT=14
1696CONFIG_CROSSCOMPILE=y 1695CONFIG_CROSSCOMPILE=y
1697CONFIG_CMDLINE="" 1696# CONFIG_CMDLINE_BOOL is not set
1698 1697
1699# 1698#
1700# Security options 1699# Security options
diff --git a/arch/mips/configs/sb1250-swarm_defconfig b/arch/mips/configs/sb1250-swarm_defconfig
index 7f38c0b956f3..7f07bf02b838 100644
--- a/arch/mips/configs/sb1250-swarm_defconfig
+++ b/arch/mips/configs/sb1250-swarm_defconfig
@@ -9,7 +9,6 @@ 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_BASLER_EXCITE is not set
13# CONFIG_BCM47XX is not set 12# CONFIG_BCM47XX is not set
14# CONFIG_MIPS_COBALT is not set 13# CONFIG_MIPS_COBALT is not set
15# CONFIG_MACH_DECSTATION is not set 14# CONFIG_MACH_DECSTATION is not set
@@ -961,7 +960,7 @@ CONFIG_ENABLE_MUST_CHECK=y
961# CONFIG_HEADERS_CHECK is not set 960# CONFIG_HEADERS_CHECK is not set
962# CONFIG_DEBUG_KERNEL is not set 961# CONFIG_DEBUG_KERNEL is not set
963# CONFIG_SAMPLES is not set 962# CONFIG_SAMPLES is not set
964CONFIG_CMDLINE="" 963# CONFIG_CMDLINE_BOOL is not set
965# CONFIG_SB1XXX_CORELIS is not set 964# CONFIG_SB1XXX_CORELIS is not set
966 965
967# 966#
diff --git a/arch/mips/configs/tb0219_defconfig b/arch/mips/configs/tb0219_defconfig
index b5059881bc7e..c54d1128f9a3 100644
--- a/arch/mips/configs/tb0219_defconfig
+++ b/arch/mips/configs/tb0219_defconfig
@@ -9,7 +9,6 @@ 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_BASLER_EXCITE is not set
13# CONFIG_BCM47XX is not set 12# CONFIG_BCM47XX is not set
14# CONFIG_MIPS_COBALT is not set 13# CONFIG_MIPS_COBALT is not set
15# CONFIG_MACH_DECSTATION is not set 14# CONFIG_MACH_DECSTATION is not set
@@ -892,7 +891,9 @@ CONFIG_FRAME_WARN=1024
892# CONFIG_HEADERS_CHECK is not set 891# CONFIG_HEADERS_CHECK is not set
893# CONFIG_DEBUG_KERNEL is not set 892# CONFIG_DEBUG_KERNEL is not set
894# CONFIG_SAMPLES is not set 893# CONFIG_SAMPLES is not set
894CONFIG_CMDLINE_BOOL=y
895CONFIG_CMDLINE="cca=3 mem=64M console=ttyVR0,115200 ip=any root=/dev/nfs" 895CONFIG_CMDLINE="cca=3 mem=64M console=ttyVR0,115200 ip=any root=/dev/nfs"
896# CONFIG_CMDLINE_OVERRIDE is not set
896 897
897# 898#
898# Security options 899# Security options
diff --git a/arch/mips/configs/tb0226_defconfig b/arch/mips/configs/tb0226_defconfig
index b06a716bf23f..e7c5cd32a2bd 100644
--- a/arch/mips/configs/tb0226_defconfig
+++ b/arch/mips/configs/tb0226_defconfig
@@ -9,7 +9,6 @@ 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_BASLER_EXCITE is not set
13# CONFIG_BCM47XX is not set 12# CONFIG_BCM47XX is not set
14# CONFIG_MIPS_COBALT is not set 13# CONFIG_MIPS_COBALT is not set
15# CONFIG_MACH_DECSTATION is not set 14# CONFIG_MACH_DECSTATION is not set
@@ -895,7 +894,9 @@ CONFIG_FRAME_WARN=1024
895# CONFIG_HEADERS_CHECK is not set 894# CONFIG_HEADERS_CHECK is not set
896# CONFIG_DEBUG_KERNEL is not set 895# CONFIG_DEBUG_KERNEL is not set
897# CONFIG_SAMPLES is not set 896# CONFIG_SAMPLES is not set
897CONFIG_CMDLINE_BOOL=y
898CONFIG_CMDLINE="cca=3 mem=32M console=ttyVR0,115200" 898CONFIG_CMDLINE="cca=3 mem=32M console=ttyVR0,115200"
899# CONFIG_CMDLINE_OVERRIDE is not set
899 900
900# 901#
901# Security options 902# Security options
diff --git a/arch/mips/configs/tb0287_defconfig b/arch/mips/configs/tb0287_defconfig
index 46512cf7ce04..b50032ba4d01 100644
--- a/arch/mips/configs/tb0287_defconfig
+++ b/arch/mips/configs/tb0287_defconfig
@@ -9,7 +9,6 @@ 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_BASLER_EXCITE is not set
13# CONFIG_BCM47XX is not set 12# CONFIG_BCM47XX is not set
14# CONFIG_MIPS_COBALT is not set 13# CONFIG_MIPS_COBALT is not set
15# CONFIG_MACH_DECSTATION is not set 14# CONFIG_MACH_DECSTATION is not set
@@ -1077,7 +1076,9 @@ CONFIG_FRAME_WARN=1024
1077# CONFIG_HEADERS_CHECK is not set 1076# CONFIG_HEADERS_CHECK is not set
1078# CONFIG_DEBUG_KERNEL is not set 1077# CONFIG_DEBUG_KERNEL is not set
1079# CONFIG_SAMPLES is not set 1078# CONFIG_SAMPLES is not set
1079CONFIG_CMDLINE_BOOL=y
1080CONFIG_CMDLINE="cca=3 mem=64M console=ttyVR0,115200 ip=any root=/dev/nfs" 1080CONFIG_CMDLINE="cca=3 mem=64M console=ttyVR0,115200 ip=any root=/dev/nfs"
1081# CONFIG_CMDLINE_OVERRIDE is not set
1081 1082
1082# 1083#
1083# Security options 1084# Security options
diff --git a/arch/mips/configs/workpad_defconfig b/arch/mips/configs/workpad_defconfig
index b437eb7f8672..c02ba08b69ab 100644
--- a/arch/mips/configs/workpad_defconfig
+++ b/arch/mips/configs/workpad_defconfig
@@ -9,7 +9,6 @@ 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_BASLER_EXCITE is not set
13# CONFIG_MIPS_COBALT is not set 12# CONFIG_MIPS_COBALT is not set
14# CONFIG_MACH_DECSTATION is not set 13# CONFIG_MACH_DECSTATION is not set
15# CONFIG_MACH_JAZZ is not set 14# CONFIG_MACH_JAZZ is not set
@@ -755,7 +754,9 @@ CONFIG_ENABLE_MUST_CHECK=y
755# CONFIG_HEADERS_CHECK is not set 754# CONFIG_HEADERS_CHECK is not set
756# CONFIG_DEBUG_KERNEL is not set 755# CONFIG_DEBUG_KERNEL is not set
757CONFIG_CROSSCOMPILE=y 756CONFIG_CROSSCOMPILE=y
757CONFIG_CMDLINE_BOOL=y
758CONFIG_CMDLINE="console=ttyVR0,19200 ide0=0x170,0x376,49 mem=16M" 758CONFIG_CMDLINE="console=ttyVR0,19200 ide0=0x170,0x376,49 mem=16M"
759# CONFIG_CMDLINE_OVERRIDE is not set
759 760
760# 761#
761# Security options 762# Security options
diff --git a/arch/mips/configs/wrppmc_defconfig b/arch/mips/configs/wrppmc_defconfig
index 06acc7482e4c..a35bc41389e5 100644
--- a/arch/mips/configs/wrppmc_defconfig
+++ b/arch/mips/configs/wrppmc_defconfig
@@ -22,7 +22,6 @@ CONFIG_ZONE_DMA=y
22# CONFIG_MIPS_DB1550 is not set 22# CONFIG_MIPS_DB1550 is not set
23# CONFIG_MIPS_DB1200 is not set 23# CONFIG_MIPS_DB1200 is not set
24# CONFIG_MIPS_MIRAGE is not set 24# CONFIG_MIPS_MIRAGE is not set
25# CONFIG_BASLER_EXCITE is not set
26# CONFIG_MIPS_COBALT is not set 25# CONFIG_MIPS_COBALT is not set
27# CONFIG_MACH_DECSTATION is not set 26# CONFIG_MACH_DECSTATION is not set
28# CONFIG_MACH_JAZZ is not set 27# CONFIG_MACH_JAZZ is not set
@@ -887,7 +886,9 @@ CONFIG_ENABLE_MUST_CHECK=y
887# CONFIG_DEBUG_KERNEL is not set 886# CONFIG_DEBUG_KERNEL is not set
888CONFIG_LOG_BUF_SHIFT=14 887CONFIG_LOG_BUF_SHIFT=14
889CONFIG_CROSSCOMPILE=y 888CONFIG_CROSSCOMPILE=y
889CONFIG_CMDLINE_BOOL=y
890CONFIG_CMDLINE="console=ttyS0,115200n8" 890CONFIG_CMDLINE="console=ttyS0,115200n8"
891# CONFIG_CMDLINE_OVERRIDE is not set
891 892
892# 893#
893# Security options 894# Security options
diff --git a/arch/mips/configs/yosemite_defconfig b/arch/mips/configs/yosemite_defconfig
index 69feaf88b510..e3d68d651e7d 100644
--- a/arch/mips/configs/yosemite_defconfig
+++ b/arch/mips/configs/yosemite_defconfig
@@ -22,7 +22,6 @@ CONFIG_ZONE_DMA=y
22# CONFIG_MIPS_DB1550 is not set 22# CONFIG_MIPS_DB1550 is not set
23# CONFIG_MIPS_DB1200 is not set 23# CONFIG_MIPS_DB1200 is not set
24# CONFIG_MIPS_MIRAGE is not set 24# CONFIG_MIPS_MIRAGE is not set
25# CONFIG_BASLER_EXCITE is not set
26# CONFIG_MIPS_COBALT is not set 25# CONFIG_MIPS_COBALT is not set
27# CONFIG_MACH_DECSTATION is not set 26# CONFIG_MACH_DECSTATION is not set
28# CONFIG_MACH_JAZZ is not set 27# CONFIG_MACH_JAZZ is not set
@@ -824,7 +823,7 @@ CONFIG_DEBUG_MUTEXES=y
824CONFIG_FORCED_INLINING=y 823CONFIG_FORCED_INLINING=y
825# CONFIG_RCU_TORTURE_TEST is not set 824# CONFIG_RCU_TORTURE_TEST is not set
826CONFIG_CROSSCOMPILE=y 825CONFIG_CROSSCOMPILE=y
827CONFIG_CMDLINE="" 826# CONFIG_CMDLINE_BOOL is not set
828# CONFIG_DEBUG_STACK_USAGE is not set 827# CONFIG_DEBUG_STACK_USAGE is not set
829# CONFIG_RUNTIME_DEBUG is not set 828# CONFIG_RUNTIME_DEBUG is not set
830 829
diff --git a/arch/mips/dec/kn01-berr.c b/arch/mips/dec/kn01-berr.c
index b0dc6d53edd6..94d23b4a7dc3 100644
--- a/arch/mips/dec/kn01-berr.c
+++ b/arch/mips/dec/kn01-berr.c
@@ -46,7 +46,7 @@
46 * There is no default value -- it has to be initialized. 46 * There is no default value -- it has to be initialized.
47 */ 47 */
48u16 cached_kn01_csr; 48u16 cached_kn01_csr;
49DEFINE_SPINLOCK(kn01_lock); 49static DEFINE_RAW_SPINLOCK(kn01_lock);
50 50
51 51
52static inline void dec_kn01_be_ack(void) 52static inline void dec_kn01_be_ack(void)
@@ -54,12 +54,12 @@ static inline void dec_kn01_be_ack(void)
54 volatile u16 *csr = (void *)CKSEG1ADDR(KN01_SLOT_BASE + KN01_CSR); 54 volatile u16 *csr = (void *)CKSEG1ADDR(KN01_SLOT_BASE + KN01_CSR);
55 unsigned long flags; 55 unsigned long flags;
56 56
57 spin_lock_irqsave(&kn01_lock, flags); 57 raw_spin_lock_irqsave(&kn01_lock, flags);
58 58
59 *csr = cached_kn01_csr | KN01_CSR_MEMERR; /* Clear bus IRQ. */ 59 *csr = cached_kn01_csr | KN01_CSR_MEMERR; /* Clear bus IRQ. */
60 iob(); 60 iob();
61 61
62 spin_unlock_irqrestore(&kn01_lock, flags); 62 raw_spin_unlock_irqrestore(&kn01_lock, flags);
63} 63}
64 64
65static int dec_kn01_be_backend(struct pt_regs *regs, int is_fixup, int invoker) 65static int dec_kn01_be_backend(struct pt_regs *regs, int is_fixup, int invoker)
@@ -182,7 +182,7 @@ void __init dec_kn01_be_init(void)
182 volatile u16 *csr = (void *)CKSEG1ADDR(KN01_SLOT_BASE + KN01_CSR); 182 volatile u16 *csr = (void *)CKSEG1ADDR(KN01_SLOT_BASE + KN01_CSR);
183 unsigned long flags; 183 unsigned long flags;
184 184
185 spin_lock_irqsave(&kn01_lock, flags); 185 raw_spin_lock_irqsave(&kn01_lock, flags);
186 186
187 /* Preset write-only bits of the Control Register cache. */ 187 /* Preset write-only bits of the Control Register cache. */
188 cached_kn01_csr = *csr; 188 cached_kn01_csr = *csr;
@@ -194,7 +194,7 @@ void __init dec_kn01_be_init(void)
194 *csr = cached_kn01_csr; 194 *csr = cached_kn01_csr;
195 iob(); 195 iob();
196 196
197 spin_unlock_irqrestore(&kn01_lock, flags); 197 raw_spin_unlock_irqrestore(&kn01_lock, flags);
198 198
199 /* Clear any leftover errors from the firmware. */ 199 /* Clear any leftover errors from the firmware. */
200 dec_kn01_be_ack(); 200 dec_kn01_be_ack();
diff --git a/arch/mips/dec/prom/locore.S b/arch/mips/dec/prom/locore.S
index d9acdcefee81..f72b5741025f 100644
--- a/arch/mips/dec/prom/locore.S
+++ b/arch/mips/dec/prom/locore.S
@@ -27,4 +27,3 @@ NESTED(genexcept_early, 0, sp)
27 jr k0 27 jr k0
28 rfe 28 rfe
29END(genexcept_early) 29END(genexcept_early)
30
diff --git a/arch/mips/fw/arc/cmdline.c b/arch/mips/fw/arc/cmdline.c
index 4ca4eef934a5..5c8603c85f20 100644
--- a/arch/mips/fw/arc/cmdline.c
+++ b/arch/mips/fw/arc/cmdline.c
@@ -16,11 +16,6 @@
16 16
17#undef DEBUG_CMDLINE 17#undef DEBUG_CMDLINE
18 18
19char * __init prom_getcmdline(void)
20{
21 return arcs_cmdline;
22}
23
24static char *ignored[] = { 19static char *ignored[] = {
25 "ConsoleIn=", 20 "ConsoleIn=",
26 "ConsoleOut=", 21 "ConsoleOut=",
diff --git a/arch/mips/include/asm/abi.h b/arch/mips/include/asm/abi.h
index 1dd74fbdc09b..9252d9b50e59 100644
--- a/arch/mips/include/asm/abi.h
+++ b/arch/mips/include/asm/abi.h
@@ -13,12 +13,14 @@
13#include <asm/siginfo.h> 13#include <asm/siginfo.h>
14 14
15struct mips_abi { 15struct mips_abi {
16 int (* const setup_frame)(struct k_sigaction * ka, 16 int (* const setup_frame)(void *sig_return, struct k_sigaction *ka,
17 struct pt_regs *regs, int signr, 17 struct pt_regs *regs, int signr,
18 sigset_t *set); 18 sigset_t *set);
19 int (* const setup_rt_frame)(struct k_sigaction * ka, 19 const unsigned long signal_return_offset;
20 int (* const setup_rt_frame)(void *sig_return, struct k_sigaction *ka,
20 struct pt_regs *regs, int signr, 21 struct pt_regs *regs, int signr,
21 sigset_t *set, siginfo_t *info); 22 sigset_t *set, siginfo_t *info);
23 const unsigned long rt_signal_return_offset;
22 const unsigned long restart; 24 const unsigned long restart;
23}; 25};
24 26
diff --git a/arch/mips/include/asm/asm-offsets.h b/arch/mips/include/asm/asm-offsets.h
new file mode 100644
index 000000000000..d370ee36a182
--- /dev/null
+++ b/arch/mips/include/asm/asm-offsets.h
@@ -0,0 +1 @@
#include <generated/asm-offsets.h>
diff --git a/arch/mips/include/asm/atomic.h b/arch/mips/include/asm/atomic.h
index dd75d673447e..519197ede089 100644
--- a/arch/mips/include/asm/atomic.h
+++ b/arch/mips/include/asm/atomic.h
@@ -137,7 +137,7 @@ static __inline__ int atomic_add_return(int i, atomic_t * v)
137{ 137{
138 int result; 138 int result;
139 139
140 smp_llsc_mb(); 140 smp_mb__before_llsc();
141 141
142 if (kernel_uses_llsc && R10000_LLSC_WAR) { 142 if (kernel_uses_llsc && R10000_LLSC_WAR) {
143 int temp; 143 int temp;
@@ -189,7 +189,7 @@ static __inline__ int atomic_sub_return(int i, atomic_t * v)
189{ 189{
190 int result; 190 int result;
191 191
192 smp_llsc_mb(); 192 smp_mb__before_llsc();
193 193
194 if (kernel_uses_llsc && R10000_LLSC_WAR) { 194 if (kernel_uses_llsc && R10000_LLSC_WAR) {
195 int temp; 195 int temp;
@@ -249,7 +249,7 @@ static __inline__ int atomic_sub_if_positive(int i, atomic_t * v)
249{ 249{
250 int result; 250 int result;
251 251
252 smp_llsc_mb(); 252 smp_mb__before_llsc();
253 253
254 if (kernel_uses_llsc && R10000_LLSC_WAR) { 254 if (kernel_uses_llsc && R10000_LLSC_WAR) {
255 int temp; 255 int temp;
@@ -516,7 +516,7 @@ static __inline__ long atomic64_add_return(long i, atomic64_t * v)
516{ 516{
517 long result; 517 long result;
518 518
519 smp_llsc_mb(); 519 smp_mb__before_llsc();
520 520
521 if (kernel_uses_llsc && R10000_LLSC_WAR) { 521 if (kernel_uses_llsc && R10000_LLSC_WAR) {
522 long temp; 522 long temp;
@@ -568,7 +568,7 @@ static __inline__ long atomic64_sub_return(long i, atomic64_t * v)
568{ 568{
569 long result; 569 long result;
570 570
571 smp_llsc_mb(); 571 smp_mb__before_llsc();
572 572
573 if (kernel_uses_llsc && R10000_LLSC_WAR) { 573 if (kernel_uses_llsc && R10000_LLSC_WAR) {
574 long temp; 574 long temp;
@@ -628,7 +628,7 @@ static __inline__ long atomic64_sub_if_positive(long i, atomic64_t * v)
628{ 628{
629 long result; 629 long result;
630 630
631 smp_llsc_mb(); 631 smp_mb__before_llsc();
632 632
633 if (kernel_uses_llsc && R10000_LLSC_WAR) { 633 if (kernel_uses_llsc && R10000_LLSC_WAR) {
634 long temp; 634 long temp;
@@ -788,9 +788,9 @@ static __inline__ int atomic64_add_unless(atomic64_t *v, long a, long u)
788 * atomic*_return operations are serializing but not the non-*_return 788 * atomic*_return operations are serializing but not the non-*_return
789 * versions. 789 * versions.
790 */ 790 */
791#define smp_mb__before_atomic_dec() smp_llsc_mb() 791#define smp_mb__before_atomic_dec() smp_mb__before_llsc()
792#define smp_mb__after_atomic_dec() smp_llsc_mb() 792#define smp_mb__after_atomic_dec() smp_llsc_mb()
793#define smp_mb__before_atomic_inc() smp_llsc_mb() 793#define smp_mb__before_atomic_inc() smp_mb__before_llsc()
794#define smp_mb__after_atomic_inc() smp_llsc_mb() 794#define smp_mb__after_atomic_inc() smp_llsc_mb()
795 795
796#include <asm-generic/atomic-long.h> 796#include <asm-generic/atomic-long.h>
diff --git a/arch/mips/include/asm/barrier.h b/arch/mips/include/asm/barrier.h
index 8e9ac313ca3b..c0884f02d3a6 100644
--- a/arch/mips/include/asm/barrier.h
+++ b/arch/mips/include/asm/barrier.h
@@ -88,12 +88,20 @@
88 : /* no output */ \ 88 : /* no output */ \
89 : "m" (*(int *)CKSEG1) \ 89 : "m" (*(int *)CKSEG1) \
90 : "memory") 90 : "memory")
91 91#ifdef CONFIG_CPU_CAVIUM_OCTEON
92#define fast_wmb() __sync() 92# define OCTEON_SYNCW_STR ".set push\n.set arch=octeon\nsyncw\nsyncw\n.set pop\n"
93#define fast_rmb() __sync() 93# define __syncw() __asm__ __volatile__(OCTEON_SYNCW_STR : : : "memory")
94#define fast_mb() __sync() 94
95#ifdef CONFIG_SGI_IP28 95# define fast_wmb() __syncw()
96#define fast_iob() \ 96# define fast_rmb() barrier()
97# define fast_mb() __sync()
98# define fast_iob() do { } while (0)
99#else /* ! CONFIG_CPU_CAVIUM_OCTEON */
100# define fast_wmb() __sync()
101# define fast_rmb() __sync()
102# define fast_mb() __sync()
103# ifdef CONFIG_SGI_IP28
104# define fast_iob() \
97 __asm__ __volatile__( \ 105 __asm__ __volatile__( \
98 ".set push\n\t" \ 106 ".set push\n\t" \
99 ".set noreorder\n\t" \ 107 ".set noreorder\n\t" \
@@ -104,13 +112,14 @@
104 : /* no output */ \ 112 : /* no output */ \
105 : "m" (*(int *)CKSEG1ADDR(0x1fa00004)) \ 113 : "m" (*(int *)CKSEG1ADDR(0x1fa00004)) \
106 : "memory") 114 : "memory")
107#else 115# else
108#define fast_iob() \ 116# define fast_iob() \
109 do { \ 117 do { \
110 __sync(); \ 118 __sync(); \
111 __fast_iob(); \ 119 __fast_iob(); \
112 } while (0) 120 } while (0)
113#endif 121# endif
122#endif /* CONFIG_CPU_CAVIUM_OCTEON */
114 123
115#ifdef CONFIG_CPU_HAS_WB 124#ifdef CONFIG_CPU_HAS_WB
116 125
@@ -131,25 +140,42 @@
131#endif /* !CONFIG_CPU_HAS_WB */ 140#endif /* !CONFIG_CPU_HAS_WB */
132 141
133#if defined(CONFIG_WEAK_ORDERING) && defined(CONFIG_SMP) 142#if defined(CONFIG_WEAK_ORDERING) && defined(CONFIG_SMP)
134#define __WEAK_ORDERING_MB " sync \n" 143# ifdef CONFIG_CPU_CAVIUM_OCTEON
144# define smp_mb() __sync()
145# define smp_rmb() barrier()
146# define smp_wmb() __syncw()
147# else
148# define smp_mb() __asm__ __volatile__("sync" : : :"memory")
149# define smp_rmb() __asm__ __volatile__("sync" : : :"memory")
150# define smp_wmb() __asm__ __volatile__("sync" : : :"memory")
151# endif
135#else 152#else
136#define __WEAK_ORDERING_MB " \n" 153#define smp_mb() barrier()
154#define smp_rmb() barrier()
155#define smp_wmb() barrier()
137#endif 156#endif
157
138#if defined(CONFIG_WEAK_REORDERING_BEYOND_LLSC) && defined(CONFIG_SMP) 158#if defined(CONFIG_WEAK_REORDERING_BEYOND_LLSC) && defined(CONFIG_SMP)
139#define __WEAK_LLSC_MB " sync \n" 159#define __WEAK_LLSC_MB " sync \n"
140#else 160#else
141#define __WEAK_LLSC_MB " \n" 161#define __WEAK_LLSC_MB " \n"
142#endif 162#endif
143 163
144#define smp_mb() __asm__ __volatile__(__WEAK_ORDERING_MB : : :"memory")
145#define smp_rmb() __asm__ __volatile__(__WEAK_ORDERING_MB : : :"memory")
146#define smp_wmb() __asm__ __volatile__(__WEAK_ORDERING_MB : : :"memory")
147
148#define set_mb(var, value) \ 164#define set_mb(var, value) \
149 do { var = value; smp_mb(); } while (0) 165 do { var = value; smp_mb(); } while (0)
150 166
151#define smp_llsc_mb() __asm__ __volatile__(__WEAK_LLSC_MB : : :"memory") 167#define smp_llsc_mb() __asm__ __volatile__(__WEAK_LLSC_MB : : :"memory")
152#define smp_llsc_rmb() __asm__ __volatile__(__WEAK_LLSC_MB : : :"memory") 168
153#define smp_llsc_wmb() __asm__ __volatile__(__WEAK_LLSC_MB : : :"memory") 169#ifdef CONFIG_CPU_CAVIUM_OCTEON
170#define smp_mb__before_llsc() smp_wmb()
171/* Cause previous writes to become visible on all CPUs as soon as possible */
172#define nudge_writes() __asm__ __volatile__(".set push\n\t" \
173 ".set arch=octeon\n\t" \
174 "syncw\n\t" \
175 ".set pop" : : : "memory")
176#else
177#define smp_mb__before_llsc() smp_llsc_mb()
178#define nudge_writes() mb()
179#endif
154 180
155#endif /* __ASM_BARRIER_H */ 181#endif /* __ASM_BARRIER_H */
diff --git a/arch/mips/include/asm/bitops.h b/arch/mips/include/asm/bitops.h
index 84a383806b2c..9255cfbee459 100644
--- a/arch/mips/include/asm/bitops.h
+++ b/arch/mips/include/asm/bitops.h
@@ -42,7 +42,7 @@
42/* 42/*
43 * clear_bit() doesn't provide any barrier for the compiler. 43 * clear_bit() doesn't provide any barrier for the compiler.
44 */ 44 */
45#define smp_mb__before_clear_bit() smp_llsc_mb() 45#define smp_mb__before_clear_bit() smp_mb__before_llsc()
46#define smp_mb__after_clear_bit() smp_llsc_mb() 46#define smp_mb__after_clear_bit() smp_llsc_mb()
47 47
48/* 48/*
@@ -258,7 +258,7 @@ static inline int test_and_set_bit(unsigned long nr,
258 unsigned short bit = nr & SZLONG_MASK; 258 unsigned short bit = nr & SZLONG_MASK;
259 unsigned long res; 259 unsigned long res;
260 260
261 smp_llsc_mb(); 261 smp_mb__before_llsc();
262 262
263 if (kernel_uses_llsc && R10000_LLSC_WAR) { 263 if (kernel_uses_llsc && R10000_LLSC_WAR) {
264 unsigned long *m = ((unsigned long *) addr) + (nr >> SZLONG_LOG); 264 unsigned long *m = ((unsigned long *) addr) + (nr >> SZLONG_LOG);
@@ -395,7 +395,7 @@ static inline int test_and_clear_bit(unsigned long nr,
395 unsigned short bit = nr & SZLONG_MASK; 395 unsigned short bit = nr & SZLONG_MASK;
396 unsigned long res; 396 unsigned long res;
397 397
398 smp_llsc_mb(); 398 smp_mb__before_llsc();
399 399
400 if (kernel_uses_llsc && R10000_LLSC_WAR) { 400 if (kernel_uses_llsc && R10000_LLSC_WAR) {
401 unsigned long *m = ((unsigned long *) addr) + (nr >> SZLONG_LOG); 401 unsigned long *m = ((unsigned long *) addr) + (nr >> SZLONG_LOG);
@@ -485,7 +485,7 @@ static inline int test_and_change_bit(unsigned long nr,
485 unsigned short bit = nr & SZLONG_MASK; 485 unsigned short bit = nr & SZLONG_MASK;
486 unsigned long res; 486 unsigned long res;
487 487
488 smp_llsc_mb(); 488 smp_mb__before_llsc();
489 489
490 if (kernel_uses_llsc && R10000_LLSC_WAR) { 490 if (kernel_uses_llsc && R10000_LLSC_WAR) {
491 unsigned long *m = ((unsigned long *) addr) + (nr >> SZLONG_LOG); 491 unsigned long *m = ((unsigned long *) addr) + (nr >> SZLONG_LOG);
diff --git a/arch/mips/include/asm/bootinfo.h b/arch/mips/include/asm/bootinfo.h
index f5dfaf6a1606..09eee09780f2 100644
--- a/arch/mips/include/asm/bootinfo.h
+++ b/arch/mips/include/asm/bootinfo.h
@@ -67,9 +67,9 @@
67#define MACH_LEMOTE_ML2F7 3 67#define MACH_LEMOTE_ML2F7 3
68#define MACH_LEMOTE_YL2F89 4 68#define MACH_LEMOTE_YL2F89 4
69#define MACH_DEXXON_GDIUM2F10 5 69#define MACH_DEXXON_GDIUM2F10 5
70#define MACH_LOONGSON_END 6 70#define MACH_LEMOTE_NAS 6
71 71#define MACH_LEMOTE_LL2F 7
72#define CL_SIZE COMMAND_LINE_SIZE 72#define MACH_LOONGSON_END 8
73 73
74extern char *system_type; 74extern char *system_type;
75const char *get_system_type(void); 75const char *get_system_type(void);
@@ -107,7 +107,7 @@ extern void free_init_pages(const char *what,
107/* 107/*
108 * Initial kernel command line, usually setup by prom_init() 108 * Initial kernel command line, usually setup by prom_init()
109 */ 109 */
110extern char arcs_cmdline[CL_SIZE]; 110extern char arcs_cmdline[COMMAND_LINE_SIZE];
111 111
112/* 112/*
113 * Registers a0, a1, a3 and a4 as passed to the kernel entry by firmware 113 * Registers a0, a1, a3 and a4 as passed to the kernel entry by firmware
diff --git a/arch/mips/include/asm/bug.h b/arch/mips/include/asm/bug.h
index 6cf29c26e873..540c98a810d1 100644
--- a/arch/mips/include/asm/bug.h
+++ b/arch/mips/include/asm/bug.h
@@ -11,9 +11,7 @@
11static inline void __noreturn BUG(void) 11static inline void __noreturn BUG(void)
12{ 12{
13 __asm__ __volatile__("break %0" : : "i" (BRK_BUG)); 13 __asm__ __volatile__("break %0" : : "i" (BRK_BUG));
14 /* Fool GCC into thinking the function doesn't return. */ 14 unreachable();
15 while (1)
16 ;
17} 15}
18 16
19#define HAVE_ARCH_BUG 17#define HAVE_ARCH_BUG
diff --git a/arch/mips/include/asm/cacheflush.h b/arch/mips/include/asm/cacheflush.h
index 03b1d69b142f..40bb9fde205f 100644
--- a/arch/mips/include/asm/cacheflush.h
+++ b/arch/mips/include/asm/cacheflush.h
@@ -38,6 +38,7 @@ extern void (*flush_cache_range)(struct vm_area_struct *vma,
38extern void (*flush_cache_page)(struct vm_area_struct *vma, unsigned long page, unsigned long pfn); 38extern void (*flush_cache_page)(struct vm_area_struct *vma, unsigned long page, unsigned long pfn);
39extern void __flush_dcache_page(struct page *page); 39extern void __flush_dcache_page(struct page *page);
40 40
41#define ARCH_IMPLEMENTS_FLUSH_DCACHE_PAGE 1
41static inline void flush_dcache_page(struct page *page) 42static inline void flush_dcache_page(struct page *page)
42{ 43{
43 if (cpu_has_dc_aliases || !cpu_has_ic_fills_f_dc) 44 if (cpu_has_dc_aliases || !cpu_has_ic_fills_f_dc)
diff --git a/arch/mips/include/asm/clock.h b/arch/mips/include/asm/clock.h
new file mode 100644
index 000000000000..83894aa7932c
--- /dev/null
+++ b/arch/mips/include/asm/clock.h
@@ -0,0 +1,64 @@
1#ifndef __ASM_MIPS_CLOCK_H
2#define __ASM_MIPS_CLOCK_H
3
4#include <linux/kref.h>
5#include <linux/list.h>
6#include <linux/seq_file.h>
7#include <linux/clk.h>
8
9extern void (*cpu_wait) (void);
10
11struct clk;
12
13struct clk_ops {
14 void (*init) (struct clk *clk);
15 void (*enable) (struct clk *clk);
16 void (*disable) (struct clk *clk);
17 void (*recalc) (struct clk *clk);
18 int (*set_rate) (struct clk *clk, unsigned long rate, int algo_id);
19 long (*round_rate) (struct clk *clk, unsigned long rate);
20};
21
22struct clk {
23 struct list_head node;
24 const char *name;
25 int id;
26 struct module *owner;
27
28 struct clk *parent;
29 struct clk_ops *ops;
30
31 struct kref kref;
32
33 unsigned long rate;
34 unsigned long flags;
35};
36
37#define CLK_ALWAYS_ENABLED (1 << 0)
38#define CLK_RATE_PROPAGATES (1 << 1)
39
40/* Should be defined by processor-specific code */
41void arch_init_clk_ops(struct clk_ops **, int type);
42
43int clk_init(void);
44
45int __clk_enable(struct clk *);
46void __clk_disable(struct clk *);
47
48void clk_recalc_rate(struct clk *);
49
50int clk_register(struct clk *);
51void clk_unregister(struct clk *);
52
53/* the exported API, in addition to clk_set_rate */
54/**
55 * clk_set_rate_ex - set the clock rate for a clock source, with additional parameter
56 * @clk: clock source
57 * @rate: desired clock rate in Hz
58 * @algo_id: algorithm id to be passed down to ops->set_rate
59 *
60 * Returns success (0) or negative errno.
61 */
62int clk_set_rate_ex(struct clk *clk, unsigned long rate, int algo_id);
63
64#endif /* __ASM_MIPS_CLOCK_H */
diff --git a/arch/mips/include/asm/cmpxchg.h b/arch/mips/include/asm/cmpxchg.h
index 815a438a268d..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" \
@@ -72,14 +72,14 @@
72 */ 72 */
73extern void __cmpxchg_called_with_bad_pointer(void); 73extern void __cmpxchg_called_with_bad_pointer(void);
74 74
75#define __cmpxchg(ptr, old, new, barrier) \ 75#define __cmpxchg(ptr, old, new, pre_barrier, post_barrier) \
76({ \ 76({ \
77 __typeof__(ptr) __ptr = (ptr); \ 77 __typeof__(ptr) __ptr = (ptr); \
78 __typeof__(*(ptr)) __old = (old); \ 78 __typeof__(*(ptr)) __old = (old); \
79 __typeof__(*(ptr)) __new = (new); \ 79 __typeof__(*(ptr)) __new = (new); \
80 __typeof__(*(ptr)) __res = 0; \ 80 __typeof__(*(ptr)) __res = 0; \
81 \ 81 \
82 barrier; \ 82 pre_barrier; \
83 \ 83 \
84 switch (sizeof(*(__ptr))) { \ 84 switch (sizeof(*(__ptr))) { \
85 case 4: \ 85 case 4: \
@@ -96,13 +96,13 @@ extern void __cmpxchg_called_with_bad_pointer(void);
96 break; \ 96 break; \
97 } \ 97 } \
98 \ 98 \
99 barrier; \ 99 post_barrier; \
100 \ 100 \
101 __res; \ 101 __res; \
102}) 102})
103 103
104#define cmpxchg(ptr, old, new) __cmpxchg(ptr, old, new, smp_llsc_mb()) 104#define cmpxchg(ptr, old, new) __cmpxchg(ptr, old, new, smp_mb__before_llsc(), smp_llsc_mb())
105#define cmpxchg_local(ptr, old, new) __cmpxchg(ptr, old, new, ) 105#define cmpxchg_local(ptr, old, new) __cmpxchg(ptr, old, new, , )
106 106
107#define cmpxchg64(ptr, o, n) \ 107#define cmpxchg64(ptr, o, n) \
108 ({ \ 108 ({ \
diff --git a/arch/mips/include/asm/compat.h b/arch/mips/include/asm/compat.h
index f58aed354bfd..613f6912dfc1 100644
--- a/arch/mips/include/asm/compat.h
+++ b/arch/mips/include/asm/compat.h
@@ -8,7 +8,8 @@
8#include <asm/page.h> 8#include <asm/page.h>
9#include <asm/ptrace.h> 9#include <asm/ptrace.h>
10 10
11#define COMPAT_USER_HZ 100 11#define COMPAT_USER_HZ 100
12#define COMPAT_UTS_MACHINE "mips\0\0\0"
12 13
13typedef u32 compat_size_t; 14typedef u32 compat_size_t;
14typedef s32 compat_ssize_t; 15typedef s32 compat_ssize_t;
diff --git a/arch/mips/include/asm/cop2.h b/arch/mips/include/asm/cop2.h
new file mode 100644
index 000000000000..6b04c98b7fad
--- /dev/null
+++ b/arch/mips/include/asm/cop2.h
@@ -0,0 +1,23 @@
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) 2009 Wind River Systems,
7 * written by Ralf Baechle <ralf@linux-mips.org>
8 */
9#ifndef __ASM_COP2_H
10#define __ASM_COP2_H
11
12enum cu2_ops {
13 CU2_EXCEPTION,
14 CU2_LWC2_OP,
15 CU2_LDC2_OP,
16 CU2_SWC2_OP,
17 CU2_SDC2_OP,
18};
19
20extern int register_cu2_notifier(struct notifier_block *nb);
21extern int cu2_notifier_call_chain(unsigned long val, void *v);
22
23#endif /* __ASM_COP2_H */
diff --git a/arch/mips/include/asm/cpu-features.h b/arch/mips/include/asm/cpu-features.h
index 1f4df647c384..ac73cede3a0a 100644
--- a/arch/mips/include/asm/cpu-features.h
+++ b/arch/mips/include/asm/cpu-features.h
@@ -95,6 +95,9 @@
95#ifndef cpu_has_smartmips 95#ifndef cpu_has_smartmips
96#define cpu_has_smartmips (cpu_data[0].ases & MIPS_ASE_SMARTMIPS) 96#define cpu_has_smartmips (cpu_data[0].ases & MIPS_ASE_SMARTMIPS)
97#endif 97#endif
98#ifndef kernel_uses_smartmips_rixi
99#define kernel_uses_smartmips_rixi 0
100#endif
98#ifndef cpu_has_vtag_icache 101#ifndef cpu_has_vtag_icache
99#define cpu_has_vtag_icache (cpu_data[0].icache.flags & MIPS_CACHE_VTAG) 102#define cpu_has_vtag_icache (cpu_data[0].icache.flags & MIPS_CACHE_VTAG)
100#endif 103#endif
@@ -191,6 +194,9 @@
191# ifndef cpu_has_64bit_addresses 194# ifndef cpu_has_64bit_addresses
192# define cpu_has_64bit_addresses 0 195# define cpu_has_64bit_addresses 0
193# endif 196# endif
197# ifndef cpu_vmbits
198# define cpu_vmbits 31
199# endif
194#endif 200#endif
195 201
196#ifdef CONFIG_64BIT 202#ifdef CONFIG_64BIT
@@ -209,6 +215,10 @@
209# ifndef cpu_has_64bit_addresses 215# ifndef cpu_has_64bit_addresses
210# define cpu_has_64bit_addresses 1 216# define cpu_has_64bit_addresses 1
211# endif 217# endif
218# ifndef cpu_vmbits
219# define cpu_vmbits cpu_data[0].vmbits
220# define __NEED_VMBITS_PROBE
221# endif
212#endif 222#endif
213 223
214#if defined(CONFIG_CPU_MIPSR2_IRQ_VI) && !defined(cpu_has_vint) 224#if defined(CONFIG_CPU_MIPSR2_IRQ_VI) && !defined(cpu_has_vint)
diff --git a/arch/mips/include/asm/cpu-info.h b/arch/mips/include/asm/cpu-info.h
index 126044308dec..b39def3f6e03 100644
--- a/arch/mips/include/asm/cpu-info.h
+++ b/arch/mips/include/asm/cpu-info.h
@@ -58,6 +58,9 @@ struct cpuinfo_mips {
58 struct cache_desc tcache; /* Tertiary/split secondary cache */ 58 struct cache_desc tcache; /* Tertiary/split secondary cache */
59 int srsets; /* Shadow register sets */ 59 int srsets; /* Shadow register sets */
60 int core; /* physical core number */ 60 int core; /* physical core number */
61#ifdef CONFIG_64BIT
62 int vmbits; /* Virtual memory size in bits */
63#endif
61#if defined(CONFIG_MIPS_MT_SMP) || defined(CONFIG_MIPS_MT_SMTC) 64#if defined(CONFIG_MIPS_MT_SMP) || defined(CONFIG_MIPS_MT_SMTC)
62 /* 65 /*
63 * In the MIPS MT "SMTC" model, each TC is considered 66 * In the MIPS MT "SMTC" model, each TC is considered
diff --git a/arch/mips/include/asm/cpu.h b/arch/mips/include/asm/cpu.h
index 4b96d1a36056..a5acda416946 100644
--- a/arch/mips/include/asm/cpu.h
+++ b/arch/mips/include/asm/cpu.h
@@ -154,6 +154,8 @@
154#define PRID_REV_VR4181A 0x0070 /* Same as VR4122 */ 154#define PRID_REV_VR4181A 0x0070 /* Same as VR4122 */
155#define PRID_REV_VR4130 0x0080 155#define PRID_REV_VR4130 0x0080
156#define PRID_REV_34K_V1_0_2 0x0022 156#define PRID_REV_34K_V1_0_2 0x0022
157#define PRID_REV_LOONGSON2E 0x0002
158#define PRID_REV_LOONGSON2F 0x0003
157 159
158/* 160/*
159 * Older processors used to encode processor version and revision in two 161 * Older processors used to encode processor version and revision in two
@@ -222,7 +224,7 @@ enum cpu_type_enum {
222 * MIPS64 class processors 224 * MIPS64 class processors
223 */ 225 */
224 CPU_5KC, CPU_20KC, CPU_25KF, CPU_SB1, CPU_SB1A, CPU_LOONGSON2, 226 CPU_5KC, CPU_20KC, CPU_25KF, CPU_SB1, CPU_SB1A, CPU_LOONGSON2,
225 CPU_CAVIUM_OCTEON, 227 CPU_CAVIUM_OCTEON, CPU_CAVIUM_OCTEON_PLUS,
226 228
227 CPU_LAST 229 CPU_LAST
228}; 230};
diff --git a/arch/mips/include/asm/current.h b/arch/mips/include/asm/current.h
index 559db66b9790..4c51401b5537 100644
--- a/arch/mips/include/asm/current.h
+++ b/arch/mips/include/asm/current.h
@@ -1,23 +1 @@
1/* #include <asm-generic/current.h>
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, 2002 Ralf Baechle
7 * Copyright (C) 1999 Silicon Graphics, Inc.
8 */
9#ifndef _ASM_CURRENT_H
10#define _ASM_CURRENT_H
11
12#include <linux/thread_info.h>
13
14struct task_struct;
15
16static inline struct task_struct * get_current(void)
17{
18 return current_thread_info()->task;
19}
20
21#define current get_current()
22
23#endif /* _ASM_CURRENT_H */
diff --git a/arch/mips/include/asm/dec/kn01.h b/arch/mips/include/asm/dec/kn01.h
index 28fa717ac423..88d9ffd74258 100644
--- a/arch/mips/include/asm/dec/kn01.h
+++ b/arch/mips/include/asm/dec/kn01.h
@@ -80,7 +80,6 @@
80struct pt_regs; 80struct pt_regs;
81 81
82extern u16 cached_kn01_csr; 82extern u16 cached_kn01_csr;
83extern spinlock_t kn01_lock;
84 83
85extern void dec_kn01_be_init(void); 84extern void dec_kn01_be_init(void);
86extern int dec_kn01_be_handler(struct pt_regs *regs, int is_fixup); 85extern int dec_kn01_be_handler(struct pt_regs *regs, int is_fixup);
diff --git a/arch/mips/include/asm/device.h b/arch/mips/include/asm/device.h
index d8f9872b0e2d..06746c5e8099 100644
--- a/arch/mips/include/asm/device.h
+++ b/arch/mips/include/asm/device.h
@@ -4,4 +4,3 @@
4 * This file is released under the GPLv2 4 * This file is released under the GPLv2
5 */ 5 */
6#include <asm-generic/device.h> 6#include <asm-generic/device.h>
7
diff --git a/arch/mips/include/asm/elf.h b/arch/mips/include/asm/elf.h
index 7990694cda22..ea77a42c5f8c 100644
--- a/arch/mips/include/asm/elf.h
+++ b/arch/mips/include/asm/elf.h
@@ -310,6 +310,7 @@ do { \
310 310
311#endif /* CONFIG_64BIT */ 311#endif /* CONFIG_64BIT */
312 312
313struct pt_regs;
313struct task_struct; 314struct task_struct;
314 315
315extern void elf_dump_regs(elf_greg_t *, struct pt_regs *regs); 316extern void elf_dump_regs(elf_greg_t *, struct pt_regs *regs);
@@ -326,7 +327,6 @@ extern int dump_task_fpu(struct task_struct *, elf_fpregset_t *);
326#define ELF_CORE_COPY_FPREGS(tsk, elf_fpregs) \ 327#define ELF_CORE_COPY_FPREGS(tsk, elf_fpregs) \
327 dump_task_fpu(tsk, elf_fpregs) 328 dump_task_fpu(tsk, elf_fpregs)
328 329
329#define USE_ELF_CORE_DUMP
330#define ELF_EXEC_PAGESIZE PAGE_SIZE 330#define ELF_EXEC_PAGESIZE PAGE_SIZE
331 331
332/* This yields a mask that user programs can use to figure out what 332/* This yields a mask that user programs can use to figure out what
@@ -335,14 +335,14 @@ extern int dump_task_fpu(struct task_struct *, elf_fpregset_t *);
335 335
336#define ELF_HWCAP (0) 336#define ELF_HWCAP (0)
337 337
338/* This yields a string that ld.so will use to load implementation 338/*
339 specific libraries for optimization. This is more specific in 339 * This yields a string that ld.so will use to load implementation
340 intent than poking at uname or /proc/cpuinfo. 340 * specific libraries for optimization. This is more specific in
341 341 * intent than poking at uname or /proc/cpuinfo.
342 For the moment, we have only optimizations for the Intel generations, 342 */
343 but that could change... */
344 343
345#define ELF_PLATFORM (NULL) 344#define ELF_PLATFORM __elf_platform
345extern const char *__elf_platform;
346 346
347/* 347/*
348 * See comments in asm-alpha/elf.h, this is the same thing 348 * See comments in asm-alpha/elf.h, this is the same thing
@@ -368,4 +368,8 @@ extern int dump_task_fpu(struct task_struct *, elf_fpregset_t *);
368#define ELF_ET_DYN_BASE (TASK_SIZE / 3 * 2) 368#define ELF_ET_DYN_BASE (TASK_SIZE / 3 * 2)
369#endif 369#endif
370 370
371#define ARCH_HAS_SETUP_ADDITIONAL_PAGES 1
372struct linux_binprm;
373extern int arch_setup_additional_pages(struct linux_binprm *bprm,
374 int uses_interp);
371#endif /* _ASM_ELF_H */ 375#endif /* _ASM_ELF_H */
diff --git a/arch/mips/include/asm/fcntl.h b/arch/mips/include/asm/fcntl.h
index 2a52333a062d..e482fe90fe88 100644
--- a/arch/mips/include/asm/fcntl.h
+++ b/arch/mips/include/asm/fcntl.h
@@ -10,7 +10,7 @@
10 10
11 11
12#define O_APPEND 0x0008 12#define O_APPEND 0x0008
13#define O_SYNC 0x0010 13#define O_DSYNC 0x0010 /* used to be O_SYNC, see below */
14#define O_NONBLOCK 0x0080 14#define O_NONBLOCK 0x0080
15#define O_CREAT 0x0100 /* not fcntl */ 15#define O_CREAT 0x0100 /* not fcntl */
16#define O_TRUNC 0x0200 /* not fcntl */ 16#define O_TRUNC 0x0200 /* not fcntl */
@@ -18,6 +18,21 @@
18#define O_NOCTTY 0x0800 /* not fcntl */ 18#define O_NOCTTY 0x0800 /* not fcntl */
19#define FASYNC 0x1000 /* fcntl, for BSD compatibility */ 19#define FASYNC 0x1000 /* fcntl, for BSD compatibility */
20#define O_LARGEFILE 0x2000 /* allow large file opens */ 20#define O_LARGEFILE 0x2000 /* allow large file opens */
21/*
22 * Before Linux 2.6.33 only O_DSYNC semantics were implemented, but using
23 * the O_SYNC flag. We continue to use the existing numerical value
24 * for O_DSYNC semantics now, but using the correct symbolic name for it.
25 * This new value is used to request true Posix O_SYNC semantics. It is
26 * defined in this strange way to make sure applications compiled against
27 * new headers get at least O_DSYNC semantics on older kernels.
28 *
29 * This has the nice side-effect that we can simply test for O_DSYNC
30 * wherever we do not care if O_DSYNC or O_SYNC is used.
31 *
32 * Note: __O_SYNC must never be used directly.
33 */
34#define __O_SYNC 0x4000
35#define O_SYNC (__O_SYNC|O_DSYNC)
21#define O_DIRECT 0x8000 /* direct disk access hint */ 36#define O_DIRECT 0x8000 /* direct disk access hint */
22 37
23#define F_GETLK 14 38#define F_GETLK 14
diff --git a/arch/mips/include/asm/fpu.h b/arch/mips/include/asm/fpu.h
index 8a3ef247659a..7fcef8ef3fab 100644
--- a/arch/mips/include/asm/fpu.h
+++ b/arch/mips/include/asm/fpu.h
@@ -28,15 +28,7 @@
28struct sigcontext; 28struct sigcontext;
29struct sigcontext32; 29struct sigcontext32;
30 30
31extern asmlinkage int (*save_fp_context)(struct sigcontext __user *sc);
32extern asmlinkage int (*restore_fp_context)(struct sigcontext __user *sc);
33
34extern asmlinkage int (*save_fp_context32)(struct sigcontext32 __user *sc);
35extern asmlinkage int (*restore_fp_context32)(struct sigcontext32 __user *sc);
36
37extern void fpu_emulator_init_fpu(void); 31extern void fpu_emulator_init_fpu(void);
38extern int fpu_emulator_save_context(struct sigcontext __user *sc);
39extern int fpu_emulator_restore_context(struct sigcontext __user *sc);
40extern void _init_fpu(void); 32extern void _init_fpu(void);
41extern void _save_fp(struct task_struct *); 33extern void _save_fp(struct task_struct *);
42extern void _restore_fp(struct task_struct *); 34extern void _restore_fp(struct task_struct *);
diff --git a/arch/mips/include/asm/fpu_emulator.h b/arch/mips/include/asm/fpu_emulator.h
index e5189572956c..3b4092705567 100644
--- a/arch/mips/include/asm/fpu_emulator.h
+++ b/arch/mips/include/asm/fpu_emulator.h
@@ -25,17 +25,31 @@
25 25
26#include <asm/break.h> 26#include <asm/break.h>
27#include <asm/inst.h> 27#include <asm/inst.h>
28#include <asm/local.h>
29
30#ifdef CONFIG_DEBUG_FS
28 31
29struct mips_fpu_emulator_stats { 32struct mips_fpu_emulator_stats {
30 unsigned int emulated; 33 local_t emulated;
31 unsigned int loads; 34 local_t loads;
32 unsigned int stores; 35 local_t stores;
33 unsigned int cp1ops; 36 local_t cp1ops;
34 unsigned int cp1xops; 37 local_t cp1xops;
35 unsigned int errors; 38 local_t errors;
36}; 39};
37 40
38extern struct mips_fpu_emulator_stats fpuemustats; 41DECLARE_PER_CPU(struct mips_fpu_emulator_stats, fpuemustats);
42
43#define MIPS_FPU_EMU_INC_STATS(M) \
44do { \
45 preempt_disable(); \
46 __local_inc(&__get_cpu_var(fpuemustats).M); \
47 preempt_enable(); \
48} while (0)
49
50#else
51#define MIPS_FPU_EMU_INC_STATS(M) do { } while (0)
52#endif /* CONFIG_DEBUG_FS */
39 53
40extern int mips_dsemul(struct pt_regs *regs, mips_instruction ir, 54extern int mips_dsemul(struct pt_regs *regs, mips_instruction ir,
41 unsigned long cpc); 55 unsigned long cpc);
diff --git a/arch/mips/include/asm/ftrace.h b/arch/mips/include/asm/ftrace.h
index 40a8c178f10d..ce35c9af0c28 100644
--- a/arch/mips/include/asm/ftrace.h
+++ b/arch/mips/include/asm/ftrace.h
@@ -1 +1,90 @@
1/* empty */ 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 for
4 * more details.
5 *
6 * Copyright (C) 2009 DSLab, Lanzhou University, China
7 * Author: Wu Zhangjin <wuzhangjin@gmail.com>
8 */
9
10#ifndef _ASM_MIPS_FTRACE_H
11#define _ASM_MIPS_FTRACE_H
12
13#ifdef CONFIG_FUNCTION_TRACER
14
15#define MCOUNT_ADDR ((unsigned long)(_mcount))
16#define MCOUNT_INSN_SIZE 4 /* sizeof mcount call */
17
18#ifndef __ASSEMBLY__
19extern void _mcount(void);
20#define mcount _mcount
21
22#define safe_load(load, src, dst, error) \
23do { \
24 asm volatile ( \
25 "1: " load " %[" STR(dst) "], 0(%[" STR(src) "])\n"\
26 " li %[" STR(error) "], 0\n" \
27 "2:\n" \
28 \
29 ".section .fixup, \"ax\"\n" \
30 "3: li %[" STR(error) "], 1\n" \
31 " j 2b\n" \
32 ".previous\n" \
33 \
34 ".section\t__ex_table,\"a\"\n\t" \
35 STR(PTR) "\t1b, 3b\n\t" \
36 ".previous\n" \
37 \
38 : [dst] "=&r" (dst), [error] "=r" (error)\
39 : [src] "r" (src) \
40 : "memory" \
41 ); \
42} while (0)
43
44#define safe_store(store, src, dst, error) \
45do { \
46 asm volatile ( \
47 "1: " store " %[" STR(src) "], 0(%[" STR(dst) "])\n"\
48 " li %[" STR(error) "], 0\n" \
49 "2:\n" \
50 \
51 ".section .fixup, \"ax\"\n" \
52 "3: li %[" STR(error) "], 1\n" \
53 " j 2b\n" \
54 ".previous\n" \
55 \
56 ".section\t__ex_table,\"a\"\n\t"\
57 STR(PTR) "\t1b, 3b\n\t" \
58 ".previous\n" \
59 \
60 : [error] "=r" (error) \
61 : [dst] "r" (dst), [src] "r" (src)\
62 : "memory" \
63 ); \
64} while (0)
65
66#define safe_load_code(dst, src, error) \
67 safe_load(STR(lw), src, dst, error)
68#define safe_store_code(src, dst, error) \
69 safe_store(STR(sw), src, dst, error)
70
71#define safe_load_stack(dst, src, error) \
72 safe_load(STR(PTR_L), src, dst, error)
73
74#define safe_store_stack(src, dst, error) \
75 safe_store(STR(PTR_S), src, dst, error)
76
77
78#ifdef CONFIG_DYNAMIC_FTRACE
79static inline unsigned long ftrace_call_adjust(unsigned long addr)
80{
81 return addr;
82}
83
84struct dyn_arch_ftrace {
85};
86
87#endif /* CONFIG_DYNAMIC_FTRACE */
88#endif /* __ASSEMBLY__ */
89#endif /* CONFIG_FUNCTION_TRACER */
90#endif /* _ASM_MIPS_FTRACE_H */
diff --git a/arch/mips/include/asm/i8259.h b/arch/mips/include/asm/i8259.h
index 8572a2d90484..c7e278447c0a 100644
--- a/arch/mips/include/asm/i8259.h
+++ b/arch/mips/include/asm/i8259.h
@@ -35,7 +35,7 @@
35#define SLAVE_ICW4_DEFAULT 0x01 35#define SLAVE_ICW4_DEFAULT 0x01
36#define PIC_ICW4_AEOI 2 36#define PIC_ICW4_AEOI 2
37 37
38extern spinlock_t i8259A_lock; 38extern raw_spinlock_t i8259A_lock;
39 39
40extern int i8259A_irq_pending(unsigned int irq); 40extern int i8259A_irq_pending(unsigned int irq);
41extern void make_8259A_irq(unsigned int irq); 41extern void make_8259A_irq(unsigned int irq);
@@ -51,7 +51,7 @@ static inline int i8259_irq(void)
51{ 51{
52 int irq; 52 int irq;
53 53
54 spin_lock(&i8259A_lock); 54 raw_spin_lock(&i8259A_lock);
55 55
56 /* Perform an interrupt acknowledge cycle on controller 1. */ 56 /* Perform an interrupt acknowledge cycle on controller 1. */
57 outb(0x0C, PIC_MASTER_CMD); /* prepare for poll */ 57 outb(0x0C, PIC_MASTER_CMD); /* prepare for poll */
@@ -78,7 +78,7 @@ static inline int i8259_irq(void)
78 irq = -1; 78 irq = -1;
79 } 79 }
80 80
81 spin_unlock(&i8259A_lock); 81 raw_spin_unlock(&i8259A_lock);
82 82
83 return likely(irq >= 0) ? irq + I8259A_IRQ_BASE : irq; 83 return likely(irq >= 0) ? irq + I8259A_IRQ_BASE : irq;
84} 84}
diff --git a/arch/mips/include/asm/io.h b/arch/mips/include/asm/io.h
index 436878e4e063..c98bf514ec7d 100644
--- a/arch/mips/include/asm/io.h
+++ b/arch/mips/include/asm/io.h
@@ -447,6 +447,24 @@ __BUILDIO(q, u64)
447#define readl_relaxed readl 447#define readl_relaxed readl
448#define readq_relaxed readq 448#define readq_relaxed readq
449 449
450#define readb_be(addr) \
451 __raw_readb((__force unsigned *)(addr))
452#define readw_be(addr) \
453 be16_to_cpu(__raw_readw((__force unsigned *)(addr)))
454#define readl_be(addr) \
455 be32_to_cpu(__raw_readl((__force unsigned *)(addr)))
456#define readq_be(addr) \
457 be64_to_cpu(__raw_readq((__force unsigned *)(addr)))
458
459#define writeb_be(val, addr) \
460 __raw_writeb((val), (__force unsigned *)(addr))
461#define writew_be(val, addr) \
462 __raw_writew(cpu_to_be16((val)), (__force unsigned *)(addr))
463#define writel_be(val, addr) \
464 __raw_writel(cpu_to_be32((val)), (__force unsigned *)(addr))
465#define writeq_be(val, addr) \
466 __raw_writeq(cpu_to_be64((val)), (__force unsigned *)(addr))
467
450/* 468/*
451 * Some code tests for these symbols 469 * Some code tests for these symbols
452 */ 470 */
diff --git a/arch/mips/include/asm/irq.h b/arch/mips/include/asm/irq.h
index 09b08d05ff72..dea4aed6478f 100644
--- a/arch/mips/include/asm/irq.h
+++ b/arch/mips/include/asm/irq.h
@@ -113,36 +113,11 @@ do { \
113 113
114#endif 114#endif
115 115
116/* 116extern void do_IRQ(unsigned int irq);
117 * do_IRQ handles all normal device IRQ's (the special
118 * SMP cross-CPU interrupts have their own specific
119 * handlers).
120 *
121 * Ideally there should be away to get this into kernel/irq/handle.c to
122 * avoid the overhead of a call for just a tiny function ...
123 */
124#define do_IRQ(irq) \
125do { \
126 irq_enter(); \
127 __DO_IRQ_SMTC_HOOK(irq); \
128 generic_handle_irq(irq); \
129 irq_exit(); \
130} while (0)
131 117
132#ifdef CONFIG_MIPS_MT_SMTC_IRQAFF 118#ifdef CONFIG_MIPS_MT_SMTC_IRQAFF
133/*
134 * To avoid inefficient and in some cases pathological re-checking of
135 * IRQ affinity, we have this variant that skips the affinity check.
136 */
137
138 119
139#define do_IRQ_no_affinity(irq) \ 120extern void do_IRQ_no_affinity(unsigned int irq);
140do { \
141 irq_enter(); \
142 __NO_AFFINITY_IRQ_SMTC_HOOK(irq); \
143 generic_handle_irq(irq); \
144 irq_exit(); \
145} while (0)
146 121
147#endif /* CONFIG_MIPS_MT_SMTC_IRQAFF */ 122#endif /* CONFIG_MIPS_MT_SMTC_IRQAFF */
148 123
@@ -160,6 +135,7 @@ extern void free_irqno(unsigned int irq);
160#define CP0_LEGACY_COMPARE_IRQ 7 135#define CP0_LEGACY_COMPARE_IRQ 7
161 136
162extern int cp0_compare_irq; 137extern int cp0_compare_irq;
138extern int cp0_compare_irq_shift;
163extern int cp0_perfcount_irq; 139extern int cp0_perfcount_irq;
164 140
165#endif /* _ASM_IRQ_H */ 141#endif /* _ASM_IRQ_H */
diff --git a/arch/mips/include/asm/local.h b/arch/mips/include/asm/local.h
index 361f4f16c30c..bdcdef02d147 100644
--- a/arch/mips/include/asm/local.h
+++ b/arch/mips/include/asm/local.h
@@ -193,29 +193,4 @@ static __inline__ long local_sub_return(long i, local_t * l)
193#define __local_add(i, l) ((l)->a.counter+=(i)) 193#define __local_add(i, l) ((l)->a.counter+=(i))
194#define __local_sub(i, l) ((l)->a.counter-=(i)) 194#define __local_sub(i, l) ((l)->a.counter-=(i))
195 195
196/* Need to disable preemption for the cpu local counters otherwise we could
197 still access a variable of a previous CPU in a non atomic way. */
198#define cpu_local_wrap_v(l) \
199 ({ local_t res__; \
200 preempt_disable(); \
201 res__ = (l); \
202 preempt_enable(); \
203 res__; })
204#define cpu_local_wrap(l) \
205 ({ preempt_disable(); \
206 l; \
207 preempt_enable(); }) \
208
209#define cpu_local_read(l) cpu_local_wrap_v(local_read(&__get_cpu_var(l)))
210#define cpu_local_set(l, i) cpu_local_wrap(local_set(&__get_cpu_var(l), (i)))
211#define cpu_local_inc(l) cpu_local_wrap(local_inc(&__get_cpu_var(l)))
212#define cpu_local_dec(l) cpu_local_wrap(local_dec(&__get_cpu_var(l)))
213#define cpu_local_add(i, l) cpu_local_wrap(local_add((i), &__get_cpu_var(l)))
214#define cpu_local_sub(i, l) cpu_local_wrap(local_sub((i), &__get_cpu_var(l)))
215
216#define __cpu_local_inc(l) cpu_local_inc(l)
217#define __cpu_local_dec(l) cpu_local_dec(l)
218#define __cpu_local_add(i, l) cpu_local_add((i), (l))
219#define __cpu_local_sub(i, l) cpu_local_sub((i), (l))
220
221#endif /* _ARCH_MIPS_LOCAL_H */ 196#endif /* _ARCH_MIPS_LOCAL_H */
diff --git a/arch/mips/include/asm/mach-ar7/ar7.h b/arch/mips/include/asm/mach-ar7/ar7.h
index 21cbbc706448..f1cf38943497 100644
--- a/arch/mips/include/asm/mach-ar7/ar7.h
+++ b/arch/mips/include/asm/mach-ar7/ar7.h
@@ -105,26 +105,9 @@ static inline u8 ar7_chip_rev(void)
105 return (readl((void *)KSEG1ADDR(AR7_REGS_GPIO + 0x14)) >> 16) & 0xff; 105 return (readl((void *)KSEG1ADDR(AR7_REGS_GPIO + 0x14)) >> 16) & 0xff;
106} 106}
107 107
108static inline int ar7_cpu_freq(void) 108struct clk {
109{ 109 unsigned int rate;
110 return ar7_cpu_clock; 110};
111}
112
113static inline int ar7_bus_freq(void)
114{
115 return ar7_bus_clock;
116}
117
118static inline int ar7_vbus_freq(void)
119{
120 return ar7_bus_clock / 2;
121}
122#define ar7_cpmac_freq ar7_vbus_freq
123
124static inline int ar7_dsp_freq(void)
125{
126 return ar7_dsp_clock;
127}
128 111
129static inline int ar7_has_high_cpmac(void) 112static inline int ar7_has_high_cpmac(void)
130{ 113{
diff --git a/arch/mips/include/asm/mach-ar7/gpio.h b/arch/mips/include/asm/mach-ar7/gpio.h
index cbe9c4f126df..73f9b162c970 100644
--- a/arch/mips/include/asm/mach-ar7/gpio.h
+++ b/arch/mips/include/asm/mach-ar7/gpio.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007 Florian Fainelli <florian@openwrt.org> 2 * Copyright (C) 2007-2009 Florian Fainelli <florian@openwrt.org>
3 * 3 *
4 * This program is free software; you can redistribute it and/or modify 4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by 5 * it under the terms of the GNU General Public License as published by
@@ -22,88 +22,18 @@
22#include <asm/mach-ar7/ar7.h> 22#include <asm/mach-ar7/ar7.h>
23 23
24#define AR7_GPIO_MAX 32 24#define AR7_GPIO_MAX 32
25#define NR_BUILTIN_GPIO AR7_GPIO_MAX
25 26
26extern int gpio_request(unsigned gpio, const char *label); 27#define gpio_to_irq(gpio) NULL
27extern void gpio_free(unsigned gpio);
28 28
29/* Common GPIO layer */ 29#define gpio_get_value __gpio_get_value
30static inline int gpio_get_value(unsigned gpio) 30#define gpio_set_value __gpio_set_value
31{
32 void __iomem *gpio_in =
33 (void __iomem *)KSEG1ADDR(AR7_REGS_GPIO + AR7_GPIO_INPUT);
34 31
35 return readl(gpio_in) & (1 << gpio); 32#define gpio_cansleep __gpio_cansleep
36}
37
38static inline void gpio_set_value(unsigned gpio, int value)
39{
40 void __iomem *gpio_out =
41 (void __iomem *)KSEG1ADDR(AR7_REGS_GPIO + AR7_GPIO_OUTPUT);
42 unsigned tmp;
43
44 tmp = readl(gpio_out) & ~(1 << gpio);
45 if (value)
46 tmp |= 1 << gpio;
47 writel(tmp, gpio_out);
48}
49
50static inline int gpio_direction_input(unsigned gpio)
51{
52 void __iomem *gpio_dir =
53 (void __iomem *)KSEG1ADDR(AR7_REGS_GPIO + AR7_GPIO_DIR);
54
55 if (gpio >= AR7_GPIO_MAX)
56 return -EINVAL;
57
58 writel(readl(gpio_dir) | (1 << gpio), gpio_dir);
59
60 return 0;
61}
62
63static inline int gpio_direction_output(unsigned gpio, int value)
64{
65 void __iomem *gpio_dir =
66 (void __iomem *)KSEG1ADDR(AR7_REGS_GPIO + AR7_GPIO_DIR);
67
68 if (gpio >= AR7_GPIO_MAX)
69 return -EINVAL;
70
71 gpio_set_value(gpio, value);
72 writel(readl(gpio_dir) & ~(1 << gpio), gpio_dir);
73
74 return 0;
75}
76
77static inline int gpio_to_irq(unsigned gpio)
78{
79 return -EINVAL;
80}
81
82static inline int irq_to_gpio(unsigned irq)
83{
84 return -EINVAL;
85}
86 33
87/* Board specific GPIO functions */ 34/* Board specific GPIO functions */
88static inline int ar7_gpio_enable(unsigned gpio) 35int ar7_gpio_enable(unsigned gpio);
89{ 36int ar7_gpio_disable(unsigned gpio);
90 void __iomem *gpio_en =
91 (void __iomem *)KSEG1ADDR(AR7_REGS_GPIO + AR7_GPIO_ENABLE);
92
93 writel(readl(gpio_en) | (1 << gpio), gpio_en);
94
95 return 0;
96}
97
98static inline int ar7_gpio_disable(unsigned gpio)
99{
100 void __iomem *gpio_en =
101 (void __iomem *)KSEG1ADDR(AR7_REGS_GPIO + AR7_GPIO_ENABLE);
102
103 writel(readl(gpio_en) & ~(1 << gpio), gpio_en);
104
105 return 0;
106}
107 37
108#include <asm-generic/gpio.h> 38#include <asm-generic/gpio.h>
109 39
diff --git a/arch/mips/include/asm/mach-au1x00/au1000.h b/arch/mips/include/asm/mach-au1x00/au1000.h
index 854e95f1b07c..ae07423e6e82 100644
--- a/arch/mips/include/asm/mach-au1x00/au1000.h
+++ b/arch/mips/include/asm/mach-au1x00/au1000.h
@@ -130,6 +130,56 @@ static inline int au1xxx_cpu_needs_config_od(void)
130 return 0; 130 return 0;
131} 131}
132 132
133#define ALCHEMY_CPU_UNKNOWN -1
134#define ALCHEMY_CPU_AU1000 0
135#define ALCHEMY_CPU_AU1500 1
136#define ALCHEMY_CPU_AU1100 2
137#define ALCHEMY_CPU_AU1550 3
138#define ALCHEMY_CPU_AU1200 4
139
140static inline int alchemy_get_cputype(void)
141{
142 switch (read_c0_prid() & 0xffff0000) {
143 case 0x00030000:
144 return ALCHEMY_CPU_AU1000;
145 break;
146 case 0x01030000:
147 return ALCHEMY_CPU_AU1500;
148 break;
149 case 0x02030000:
150 return ALCHEMY_CPU_AU1100;
151 break;
152 case 0x03030000:
153 return ALCHEMY_CPU_AU1550;
154 break;
155 case 0x04030000:
156 case 0x05030000:
157 return ALCHEMY_CPU_AU1200;
158 break;
159 }
160
161 return ALCHEMY_CPU_UNKNOWN;
162}
163
164static inline void alchemy_uart_putchar(u32 uart_phys, u8 c)
165{
166 void __iomem *base = (void __iomem *)KSEG1ADDR(uart_phys);
167 int timeout, i;
168
169 /* check LSR TX_EMPTY bit */
170 timeout = 0xffffff;
171 do {
172 if (__raw_readl(base + 0x1c) & 0x20)
173 break;
174 /* slow down */
175 for (i = 10000; i; i--)
176 asm volatile ("nop");
177 } while (--timeout);
178
179 __raw_writel(c, base + 0x04); /* tx */
180 wmb();
181}
182
133/* arch/mips/au1000/common/clocks.c */ 183/* arch/mips/au1000/common/clocks.c */
134extern void set_au1x00_speed(unsigned int new_freq); 184extern void set_au1x00_speed(unsigned int new_freq);
135extern unsigned int get_au1x00_speed(void); 185extern unsigned int get_au1x00_speed(void);
@@ -143,20 +193,332 @@ void au_sleep(void);
143void save_au1xxx_intctl(void); 193void save_au1xxx_intctl(void);
144void restore_au1xxx_intctl(void); 194void restore_au1xxx_intctl(void);
145 195
146/* 196
147 * Every board describes its IRQ mapping with this table. 197/* SOC Interrupt numbers */
148 */ 198
149struct au1xxx_irqmap { 199#define AU1000_INTC0_INT_BASE (MIPS_CPU_IRQ_BASE + 8)
150 int im_irq; 200#define AU1000_INTC0_INT_LAST (AU1000_INTC0_INT_BASE + 31)
151 int im_type; 201#define AU1000_INTC1_INT_BASE (AU1000_INTC0_INT_LAST + 1)
152 int im_request; 202#define AU1000_INTC1_INT_LAST (AU1000_INTC1_INT_BASE + 31)
203#define AU1000_MAX_INTR AU1000_INTC1_INT_LAST
204
205enum soc_au1000_ints {
206 AU1000_FIRST_INT = AU1000_INTC0_INT_BASE,
207 AU1000_UART0_INT = AU1000_FIRST_INT,
208 AU1000_UART1_INT,
209 AU1000_UART2_INT,
210 AU1000_UART3_INT,
211 AU1000_SSI0_INT,
212 AU1000_SSI1_INT,
213 AU1000_DMA_INT_BASE,
214
215 AU1000_TOY_INT = AU1000_FIRST_INT + 14,
216 AU1000_TOY_MATCH0_INT,
217 AU1000_TOY_MATCH1_INT,
218 AU1000_TOY_MATCH2_INT,
219 AU1000_RTC_INT,
220 AU1000_RTC_MATCH0_INT,
221 AU1000_RTC_MATCH1_INT,
222 AU1000_RTC_MATCH2_INT,
223 AU1000_IRDA_TX_INT,
224 AU1000_IRDA_RX_INT,
225 AU1000_USB_DEV_REQ_INT,
226 AU1000_USB_DEV_SUS_INT,
227 AU1000_USB_HOST_INT,
228 AU1000_ACSYNC_INT,
229 AU1000_MAC0_DMA_INT,
230 AU1000_MAC1_DMA_INT,
231 AU1000_I2S_UO_INT,
232 AU1000_AC97C_INT,
233 AU1000_GPIO0_INT,
234 AU1000_GPIO1_INT,
235 AU1000_GPIO2_INT,
236 AU1000_GPIO3_INT,
237 AU1000_GPIO4_INT,
238 AU1000_GPIO5_INT,
239 AU1000_GPIO6_INT,
240 AU1000_GPIO7_INT,
241 AU1000_GPIO8_INT,
242 AU1000_GPIO9_INT,
243 AU1000_GPIO10_INT,
244 AU1000_GPIO11_INT,
245 AU1000_GPIO12_INT,
246 AU1000_GPIO13_INT,
247 AU1000_GPIO14_INT,
248 AU1000_GPIO15_INT,
249 AU1000_GPIO16_INT,
250 AU1000_GPIO17_INT,
251 AU1000_GPIO18_INT,
252 AU1000_GPIO19_INT,
253 AU1000_GPIO20_INT,
254 AU1000_GPIO21_INT,
255 AU1000_GPIO22_INT,
256 AU1000_GPIO23_INT,
257 AU1000_GPIO24_INT,
258 AU1000_GPIO25_INT,
259 AU1000_GPIO26_INT,
260 AU1000_GPIO27_INT,
261 AU1000_GPIO28_INT,
262 AU1000_GPIO29_INT,
263 AU1000_GPIO30_INT,
264 AU1000_GPIO31_INT,
153}; 265};
154 266
155/* core calls this function to let boards initialize other IRQ sources */ 267enum soc_au1100_ints {
156void board_init_irq(void); 268 AU1100_FIRST_INT = AU1000_INTC0_INT_BASE,
269 AU1100_UART0_INT = AU1100_FIRST_INT,
270 AU1100_UART1_INT,
271 AU1100_SD_INT,
272 AU1100_UART3_INT,
273 AU1100_SSI0_INT,
274 AU1100_SSI1_INT,
275 AU1100_DMA_INT_BASE,
276
277 AU1100_TOY_INT = AU1100_FIRST_INT + 14,
278 AU1100_TOY_MATCH0_INT,
279 AU1100_TOY_MATCH1_INT,
280 AU1100_TOY_MATCH2_INT,
281 AU1100_RTC_INT,
282 AU1100_RTC_MATCH0_INT,
283 AU1100_RTC_MATCH1_INT,
284 AU1100_RTC_MATCH2_INT,
285 AU1100_IRDA_TX_INT,
286 AU1100_IRDA_RX_INT,
287 AU1100_USB_DEV_REQ_INT,
288 AU1100_USB_DEV_SUS_INT,
289 AU1100_USB_HOST_INT,
290 AU1100_ACSYNC_INT,
291 AU1100_MAC0_DMA_INT,
292 AU1100_GPIO208_215_INT,
293 AU1100_LCD_INT,
294 AU1100_AC97C_INT,
295 AU1100_GPIO0_INT,
296 AU1100_GPIO1_INT,
297 AU1100_GPIO2_INT,
298 AU1100_GPIO3_INT,
299 AU1100_GPIO4_INT,
300 AU1100_GPIO5_INT,
301 AU1100_GPIO6_INT,
302 AU1100_GPIO7_INT,
303 AU1100_GPIO8_INT,
304 AU1100_GPIO9_INT,
305 AU1100_GPIO10_INT,
306 AU1100_GPIO11_INT,
307 AU1100_GPIO12_INT,
308 AU1100_GPIO13_INT,
309 AU1100_GPIO14_INT,
310 AU1100_GPIO15_INT,
311 AU1100_GPIO16_INT,
312 AU1100_GPIO17_INT,
313 AU1100_GPIO18_INT,
314 AU1100_GPIO19_INT,
315 AU1100_GPIO20_INT,
316 AU1100_GPIO21_INT,
317 AU1100_GPIO22_INT,
318 AU1100_GPIO23_INT,
319 AU1100_GPIO24_INT,
320 AU1100_GPIO25_INT,
321 AU1100_GPIO26_INT,
322 AU1100_GPIO27_INT,
323 AU1100_GPIO28_INT,
324 AU1100_GPIO29_INT,
325 AU1100_GPIO30_INT,
326 AU1100_GPIO31_INT,
327};
157 328
158/* boards call this to register additional (GPIO) interrupts */ 329enum soc_au1500_ints {
159void au1xxx_setup_irqmap(struct au1xxx_irqmap *map, int count); 330 AU1500_FIRST_INT = AU1000_INTC0_INT_BASE,
331 AU1500_UART0_INT = AU1500_FIRST_INT,
332 AU1500_PCI_INTA,
333 AU1500_PCI_INTB,
334 AU1500_UART3_INT,
335 AU1500_PCI_INTC,
336 AU1500_PCI_INTD,
337 AU1500_DMA_INT_BASE,
338
339 AU1500_TOY_INT = AU1500_FIRST_INT + 14,
340 AU1500_TOY_MATCH0_INT,
341 AU1500_TOY_MATCH1_INT,
342 AU1500_TOY_MATCH2_INT,
343 AU1500_RTC_INT,
344 AU1500_RTC_MATCH0_INT,
345 AU1500_RTC_MATCH1_INT,
346 AU1500_RTC_MATCH2_INT,
347 AU1500_PCI_ERR_INT,
348 AU1500_RESERVED_INT,
349 AU1500_USB_DEV_REQ_INT,
350 AU1500_USB_DEV_SUS_INT,
351 AU1500_USB_HOST_INT,
352 AU1500_ACSYNC_INT,
353 AU1500_MAC0_DMA_INT,
354 AU1500_MAC1_DMA_INT,
355 AU1500_AC97C_INT = AU1500_FIRST_INT + 31,
356 AU1500_GPIO0_INT,
357 AU1500_GPIO1_INT,
358 AU1500_GPIO2_INT,
359 AU1500_GPIO3_INT,
360 AU1500_GPIO4_INT,
361 AU1500_GPIO5_INT,
362 AU1500_GPIO6_INT,
363 AU1500_GPIO7_INT,
364 AU1500_GPIO8_INT,
365 AU1500_GPIO9_INT,
366 AU1500_GPIO10_INT,
367 AU1500_GPIO11_INT,
368 AU1500_GPIO12_INT,
369 AU1500_GPIO13_INT,
370 AU1500_GPIO14_INT,
371 AU1500_GPIO15_INT,
372 AU1500_GPIO200_INT,
373 AU1500_GPIO201_INT,
374 AU1500_GPIO202_INT,
375 AU1500_GPIO203_INT,
376 AU1500_GPIO20_INT,
377 AU1500_GPIO204_INT,
378 AU1500_GPIO205_INT,
379 AU1500_GPIO23_INT,
380 AU1500_GPIO24_INT,
381 AU1500_GPIO25_INT,
382 AU1500_GPIO26_INT,
383 AU1500_GPIO27_INT,
384 AU1500_GPIO28_INT,
385 AU1500_GPIO206_INT,
386 AU1500_GPIO207_INT,
387 AU1500_GPIO208_215_INT,
388};
389
390enum soc_au1550_ints {
391 AU1550_FIRST_INT = AU1000_INTC0_INT_BASE,
392 AU1550_UART0_INT = AU1550_FIRST_INT,
393 AU1550_PCI_INTA,
394 AU1550_PCI_INTB,
395 AU1550_DDMA_INT,
396 AU1550_CRYPTO_INT,
397 AU1550_PCI_INTC,
398 AU1550_PCI_INTD,
399 AU1550_PCI_RST_INT,
400 AU1550_UART1_INT,
401 AU1550_UART3_INT,
402 AU1550_PSC0_INT,
403 AU1550_PSC1_INT,
404 AU1550_PSC2_INT,
405 AU1550_PSC3_INT,
406 AU1550_TOY_INT,
407 AU1550_TOY_MATCH0_INT,
408 AU1550_TOY_MATCH1_INT,
409 AU1550_TOY_MATCH2_INT,
410 AU1550_RTC_INT,
411 AU1550_RTC_MATCH0_INT,
412 AU1550_RTC_MATCH1_INT,
413 AU1550_RTC_MATCH2_INT,
414
415 AU1550_NAND_INT = AU1550_FIRST_INT + 23,
416 AU1550_USB_DEV_REQ_INT,
417 AU1550_USB_DEV_SUS_INT,
418 AU1550_USB_HOST_INT,
419 AU1550_MAC0_DMA_INT,
420 AU1550_MAC1_DMA_INT,
421 AU1550_GPIO0_INT = AU1550_FIRST_INT + 32,
422 AU1550_GPIO1_INT,
423 AU1550_GPIO2_INT,
424 AU1550_GPIO3_INT,
425 AU1550_GPIO4_INT,
426 AU1550_GPIO5_INT,
427 AU1550_GPIO6_INT,
428 AU1550_GPIO7_INT,
429 AU1550_GPIO8_INT,
430 AU1550_GPIO9_INT,
431 AU1550_GPIO10_INT,
432 AU1550_GPIO11_INT,
433 AU1550_GPIO12_INT,
434 AU1550_GPIO13_INT,
435 AU1550_GPIO14_INT,
436 AU1550_GPIO15_INT,
437 AU1550_GPIO200_INT,
438 AU1550_GPIO201_205_INT, /* Logical or of GPIO201:205 */
439 AU1550_GPIO16_INT,
440 AU1550_GPIO17_INT,
441 AU1550_GPIO20_INT,
442 AU1550_GPIO21_INT,
443 AU1550_GPIO22_INT,
444 AU1550_GPIO23_INT,
445 AU1550_GPIO24_INT,
446 AU1550_GPIO25_INT,
447 AU1550_GPIO26_INT,
448 AU1550_GPIO27_INT,
449 AU1550_GPIO28_INT,
450 AU1550_GPIO206_INT,
451 AU1550_GPIO207_INT,
452 AU1550_GPIO208_215_INT, /* Logical or of GPIO208:215 */
453};
454
455enum soc_au1200_ints {
456 AU1200_FIRST_INT = AU1000_INTC0_INT_BASE,
457 AU1200_UART0_INT = AU1200_FIRST_INT,
458 AU1200_SWT_INT,
459 AU1200_SD_INT,
460 AU1200_DDMA_INT,
461 AU1200_MAE_BE_INT,
462 AU1200_GPIO200_INT,
463 AU1200_GPIO201_INT,
464 AU1200_GPIO202_INT,
465 AU1200_UART1_INT,
466 AU1200_MAE_FE_INT,
467 AU1200_PSC0_INT,
468 AU1200_PSC1_INT,
469 AU1200_AES_INT,
470 AU1200_CAMERA_INT,
471 AU1200_TOY_INT,
472 AU1200_TOY_MATCH0_INT,
473 AU1200_TOY_MATCH1_INT,
474 AU1200_TOY_MATCH2_INT,
475 AU1200_RTC_INT,
476 AU1200_RTC_MATCH0_INT,
477 AU1200_RTC_MATCH1_INT,
478 AU1200_RTC_MATCH2_INT,
479 AU1200_GPIO203_INT,
480 AU1200_NAND_INT,
481 AU1200_GPIO204_INT,
482 AU1200_GPIO205_INT,
483 AU1200_GPIO206_INT,
484 AU1200_GPIO207_INT,
485 AU1200_GPIO208_215_INT, /* Logical OR of 208:215 */
486 AU1200_USB_INT,
487 AU1200_LCD_INT,
488 AU1200_MAE_BOTH_INT,
489 AU1200_GPIO0_INT,
490 AU1200_GPIO1_INT,
491 AU1200_GPIO2_INT,
492 AU1200_GPIO3_INT,
493 AU1200_GPIO4_INT,
494 AU1200_GPIO5_INT,
495 AU1200_GPIO6_INT,
496 AU1200_GPIO7_INT,
497 AU1200_GPIO8_INT,
498 AU1200_GPIO9_INT,
499 AU1200_GPIO10_INT,
500 AU1200_GPIO11_INT,
501 AU1200_GPIO12_INT,
502 AU1200_GPIO13_INT,
503 AU1200_GPIO14_INT,
504 AU1200_GPIO15_INT,
505 AU1200_GPIO16_INT,
506 AU1200_GPIO17_INT,
507 AU1200_GPIO18_INT,
508 AU1200_GPIO19_INT,
509 AU1200_GPIO20_INT,
510 AU1200_GPIO21_INT,
511 AU1200_GPIO22_INT,
512 AU1200_GPIO23_INT,
513 AU1200_GPIO24_INT,
514 AU1200_GPIO25_INT,
515 AU1200_GPIO26_INT,
516 AU1200_GPIO27_INT,
517 AU1200_GPIO28_INT,
518 AU1200_GPIO29_INT,
519 AU1200_GPIO30_INT,
520 AU1200_GPIO31_INT,
521};
160 522
161#endif /* !defined (_LANGUAGE_ASSEMBLY) */ 523#endif /* !defined (_LANGUAGE_ASSEMBLY) */
162 524
@@ -549,78 +911,16 @@ void au1xxx_setup_irqmap(struct au1xxx_irqmap *map, int count);
549 911
550#define IC1_TESTBIT 0xB1800080 912#define IC1_TESTBIT 0xB1800080
551 913
552/* Interrupt Numbers */ 914
553/* Au1000 */ 915/* Au1000 */
554#ifdef CONFIG_SOC_AU1000 916#ifdef CONFIG_SOC_AU1000
555enum soc_au1000_ints {
556 AU1000_FIRST_INT = MIPS_CPU_IRQ_BASE + 8,
557 AU1000_UART0_INT = AU1000_FIRST_INT,
558 AU1000_UART1_INT, /* au1000 */
559 AU1000_UART2_INT, /* au1000 */
560 AU1000_UART3_INT,
561 AU1000_SSI0_INT, /* au1000 */
562 AU1000_SSI1_INT, /* au1000 */
563 AU1000_DMA_INT_BASE,
564
565 AU1000_TOY_INT = AU1000_FIRST_INT + 14,
566 AU1000_TOY_MATCH0_INT,
567 AU1000_TOY_MATCH1_INT,
568 AU1000_TOY_MATCH2_INT,
569 AU1000_RTC_INT,
570 AU1000_RTC_MATCH0_INT,
571 AU1000_RTC_MATCH1_INT,
572 AU1000_RTC_MATCH2_INT,
573 AU1000_IRDA_TX_INT, /* au1000 */
574 AU1000_IRDA_RX_INT, /* au1000 */
575 AU1000_USB_DEV_REQ_INT,
576 AU1000_USB_DEV_SUS_INT,
577 AU1000_USB_HOST_INT,
578 AU1000_ACSYNC_INT,
579 AU1000_MAC0_DMA_INT,
580 AU1000_MAC1_DMA_INT,
581 AU1000_I2S_UO_INT, /* au1000 */
582 AU1000_AC97C_INT,
583 AU1000_GPIO_0,
584 AU1000_GPIO_1,
585 AU1000_GPIO_2,
586 AU1000_GPIO_3,
587 AU1000_GPIO_4,
588 AU1000_GPIO_5,
589 AU1000_GPIO_6,
590 AU1000_GPIO_7,
591 AU1000_GPIO_8,
592 AU1000_GPIO_9,
593 AU1000_GPIO_10,
594 AU1000_GPIO_11,
595 AU1000_GPIO_12,
596 AU1000_GPIO_13,
597 AU1000_GPIO_14,
598 AU1000_GPIO_15,
599 AU1000_GPIO_16,
600 AU1000_GPIO_17,
601 AU1000_GPIO_18,
602 AU1000_GPIO_19,
603 AU1000_GPIO_20,
604 AU1000_GPIO_21,
605 AU1000_GPIO_22,
606 AU1000_GPIO_23,
607 AU1000_GPIO_24,
608 AU1000_GPIO_25,
609 AU1000_GPIO_26,
610 AU1000_GPIO_27,
611 AU1000_GPIO_28,
612 AU1000_GPIO_29,
613 AU1000_GPIO_30,
614 AU1000_GPIO_31,
615};
616 917
617#define UART0_ADDR 0xB1100000 918#define UART0_ADDR 0xB1100000
618#define UART1_ADDR 0xB1200000
619#define UART2_ADDR 0xB1300000
620#define UART3_ADDR 0xB1400000 919#define UART3_ADDR 0xB1400000
621 920
622#define USB_OHCI_BASE 0x10100000 /* phys addr for ioremap */ 921#define USB_OHCI_BASE 0x10100000 /* phys addr for ioremap */
623#define USB_HOST_CONFIG 0xB017FFFC 922#define USB_HOST_CONFIG 0xB017FFFC
923#define FOR_PLATFORM_C_USB_HOST_INT AU1000_USB_HOST_INT
624 924
625#define AU1000_ETH0_BASE 0xB0500000 925#define AU1000_ETH0_BASE 0xB0500000
626#define AU1000_ETH1_BASE 0xB0510000 926#define AU1000_ETH1_BASE 0xB0510000
@@ -631,78 +931,13 @@ enum soc_au1000_ints {
631 931
632/* Au1500 */ 932/* Au1500 */
633#ifdef CONFIG_SOC_AU1500 933#ifdef CONFIG_SOC_AU1500
634enum soc_au1500_ints {
635 AU1500_FIRST_INT = MIPS_CPU_IRQ_BASE + 8,
636 AU1500_UART0_INT = AU1500_FIRST_INT,
637 AU1000_PCI_INTA, /* au1500 */
638 AU1000_PCI_INTB, /* au1500 */
639 AU1500_UART3_INT,
640 AU1000_PCI_INTC, /* au1500 */
641 AU1000_PCI_INTD, /* au1500 */
642 AU1000_DMA_INT_BASE,
643
644 AU1000_TOY_INT = AU1500_FIRST_INT + 14,
645 AU1000_TOY_MATCH0_INT,
646 AU1000_TOY_MATCH1_INT,
647 AU1000_TOY_MATCH2_INT,
648 AU1000_RTC_INT,
649 AU1000_RTC_MATCH0_INT,
650 AU1000_RTC_MATCH1_INT,
651 AU1000_RTC_MATCH2_INT,
652 AU1500_PCI_ERR_INT,
653 AU1500_RESERVED_INT,
654 AU1000_USB_DEV_REQ_INT,
655 AU1000_USB_DEV_SUS_INT,
656 AU1000_USB_HOST_INT,
657 AU1000_ACSYNC_INT,
658 AU1500_MAC0_DMA_INT,
659 AU1500_MAC1_DMA_INT,
660 AU1000_AC97C_INT = AU1500_FIRST_INT + 31,
661 AU1000_GPIO_0,
662 AU1000_GPIO_1,
663 AU1000_GPIO_2,
664 AU1000_GPIO_3,
665 AU1000_GPIO_4,
666 AU1000_GPIO_5,
667 AU1000_GPIO_6,
668 AU1000_GPIO_7,
669 AU1000_GPIO_8,
670 AU1000_GPIO_9,
671 AU1000_GPIO_10,
672 AU1000_GPIO_11,
673 AU1000_GPIO_12,
674 AU1000_GPIO_13,
675 AU1000_GPIO_14,
676 AU1000_GPIO_15,
677 AU1500_GPIO_200,
678 AU1500_GPIO_201,
679 AU1500_GPIO_202,
680 AU1500_GPIO_203,
681 AU1500_GPIO_20,
682 AU1500_GPIO_204,
683 AU1500_GPIO_205,
684 AU1500_GPIO_23,
685 AU1500_GPIO_24,
686 AU1500_GPIO_25,
687 AU1500_GPIO_26,
688 AU1500_GPIO_27,
689 AU1500_GPIO_28,
690 AU1500_GPIO_206,
691 AU1500_GPIO_207,
692 AU1500_GPIO_208_215,
693};
694
695/* shortcuts */
696#define INTA AU1000_PCI_INTA
697#define INTB AU1000_PCI_INTB
698#define INTC AU1000_PCI_INTC
699#define INTD AU1000_PCI_INTD
700 934
701#define UART0_ADDR 0xB1100000 935#define UART0_ADDR 0xB1100000
702#define UART3_ADDR 0xB1400000 936#define UART3_ADDR 0xB1400000
703 937
704#define USB_OHCI_BASE 0x10100000 /* phys addr for ioremap */ 938#define USB_OHCI_BASE 0x10100000 /* phys addr for ioremap */
705#define USB_HOST_CONFIG 0xB017fffc 939#define USB_HOST_CONFIG 0xB017fffc
940#define FOR_PLATFORM_C_USB_HOST_INT AU1500_USB_HOST_INT
706 941
707#define AU1500_ETH0_BASE 0xB1500000 942#define AU1500_ETH0_BASE 0xB1500000
708#define AU1500_ETH1_BASE 0xB1510000 943#define AU1500_ETH1_BASE 0xB1510000
@@ -713,74 +948,13 @@ enum soc_au1500_ints {
713 948
714/* Au1100 */ 949/* Au1100 */
715#ifdef CONFIG_SOC_AU1100 950#ifdef CONFIG_SOC_AU1100
716enum soc_au1100_ints {
717 AU1100_FIRST_INT = MIPS_CPU_IRQ_BASE + 8,
718 AU1100_UART0_INT = AU1100_FIRST_INT,
719 AU1100_UART1_INT,
720 AU1100_SD_INT,
721 AU1100_UART3_INT,
722 AU1000_SSI0_INT,
723 AU1000_SSI1_INT,
724 AU1000_DMA_INT_BASE,
725
726 AU1000_TOY_INT = AU1100_FIRST_INT + 14,
727 AU1000_TOY_MATCH0_INT,
728 AU1000_TOY_MATCH1_INT,
729 AU1000_TOY_MATCH2_INT,
730 AU1000_RTC_INT,
731 AU1000_RTC_MATCH0_INT,
732 AU1000_RTC_MATCH1_INT,
733 AU1000_RTC_MATCH2_INT,
734 AU1000_IRDA_TX_INT,
735 AU1000_IRDA_RX_INT,
736 AU1000_USB_DEV_REQ_INT,
737 AU1000_USB_DEV_SUS_INT,
738 AU1000_USB_HOST_INT,
739 AU1000_ACSYNC_INT,
740 AU1100_MAC0_DMA_INT,
741 AU1100_GPIO_208_215,
742 AU1100_LCD_INT,
743 AU1000_AC97C_INT,
744 AU1000_GPIO_0,
745 AU1000_GPIO_1,
746 AU1000_GPIO_2,
747 AU1000_GPIO_3,
748 AU1000_GPIO_4,
749 AU1000_GPIO_5,
750 AU1000_GPIO_6,
751 AU1000_GPIO_7,
752 AU1000_GPIO_8,
753 AU1000_GPIO_9,
754 AU1000_GPIO_10,
755 AU1000_GPIO_11,
756 AU1000_GPIO_12,
757 AU1000_GPIO_13,
758 AU1000_GPIO_14,
759 AU1000_GPIO_15,
760 AU1000_GPIO_16,
761 AU1000_GPIO_17,
762 AU1000_GPIO_18,
763 AU1000_GPIO_19,
764 AU1000_GPIO_20,
765 AU1000_GPIO_21,
766 AU1000_GPIO_22,
767 AU1000_GPIO_23,
768 AU1000_GPIO_24,
769 AU1000_GPIO_25,
770 AU1000_GPIO_26,
771 AU1000_GPIO_27,
772 AU1000_GPIO_28,
773 AU1000_GPIO_29,
774 AU1000_GPIO_30,
775 AU1000_GPIO_31,
776};
777 951
778#define UART0_ADDR 0xB1100000 952#define UART0_ADDR 0xB1100000
779#define UART1_ADDR 0xB1200000
780#define UART3_ADDR 0xB1400000 953#define UART3_ADDR 0xB1400000
781 954
782#define USB_OHCI_BASE 0x10100000 /* phys addr for ioremap */ 955#define USB_OHCI_BASE 0x10100000 /* phys addr for ioremap */
783#define USB_HOST_CONFIG 0xB017FFFC 956#define USB_HOST_CONFIG 0xB017FFFC
957#define FOR_PLATFORM_C_USB_HOST_INT AU1100_USB_HOST_INT
784 958
785#define AU1100_ETH0_BASE 0xB0500000 959#define AU1100_ETH0_BASE 0xB0500000
786#define AU1100_MAC0_ENABLE 0xB0520000 960#define AU1100_MAC0_ENABLE 0xB0520000
@@ -788,87 +962,12 @@ enum soc_au1100_ints {
788#endif /* CONFIG_SOC_AU1100 */ 962#endif /* CONFIG_SOC_AU1100 */
789 963
790#ifdef CONFIG_SOC_AU1550 964#ifdef CONFIG_SOC_AU1550
791enum soc_au1550_ints {
792 AU1550_FIRST_INT = MIPS_CPU_IRQ_BASE + 8,
793 AU1550_UART0_INT = AU1550_FIRST_INT,
794 AU1550_PCI_INTA,
795 AU1550_PCI_INTB,
796 AU1550_DDMA_INT,
797 AU1550_CRYPTO_INT,
798 AU1550_PCI_INTC,
799 AU1550_PCI_INTD,
800 AU1550_PCI_RST_INT,
801 AU1550_UART1_INT,
802 AU1550_UART3_INT,
803 AU1550_PSC0_INT,
804 AU1550_PSC1_INT,
805 AU1550_PSC2_INT,
806 AU1550_PSC3_INT,
807 AU1000_TOY_INT,
808 AU1000_TOY_MATCH0_INT,
809 AU1000_TOY_MATCH1_INT,
810 AU1000_TOY_MATCH2_INT,
811 AU1000_RTC_INT,
812 AU1000_RTC_MATCH0_INT,
813 AU1000_RTC_MATCH1_INT,
814 AU1000_RTC_MATCH2_INT,
815
816 AU1550_NAND_INT = AU1550_FIRST_INT + 23,
817 AU1550_USB_DEV_REQ_INT,
818 AU1000_USB_DEV_REQ_INT = AU1550_USB_DEV_REQ_INT,
819 AU1550_USB_DEV_SUS_INT,
820 AU1000_USB_DEV_SUS_INT = AU1550_USB_DEV_SUS_INT,
821 AU1550_USB_HOST_INT,
822 AU1000_USB_HOST_INT = AU1550_USB_HOST_INT,
823 AU1550_MAC0_DMA_INT,
824 AU1550_MAC1_DMA_INT,
825 AU1000_GPIO_0 = AU1550_FIRST_INT + 32,
826 AU1000_GPIO_1,
827 AU1000_GPIO_2,
828 AU1000_GPIO_3,
829 AU1000_GPIO_4,
830 AU1000_GPIO_5,
831 AU1000_GPIO_6,
832 AU1000_GPIO_7,
833 AU1000_GPIO_8,
834 AU1000_GPIO_9,
835 AU1000_GPIO_10,
836 AU1000_GPIO_11,
837 AU1000_GPIO_12,
838 AU1000_GPIO_13,
839 AU1000_GPIO_14,
840 AU1000_GPIO_15,
841 AU1550_GPIO_200,
842 AU1500_GPIO_201_205, /* Logical or of GPIO201:205 */
843 AU1500_GPIO_16,
844 AU1500_GPIO_17,
845 AU1500_GPIO_20,
846 AU1500_GPIO_21,
847 AU1500_GPIO_22,
848 AU1500_GPIO_23,
849 AU1500_GPIO_24,
850 AU1500_GPIO_25,
851 AU1500_GPIO_26,
852 AU1500_GPIO_27,
853 AU1500_GPIO_28,
854 AU1500_GPIO_206,
855 AU1500_GPIO_207,
856 AU1500_GPIO_208_218, /* Logical or of GPIO208:218 */
857};
858
859/* shortcuts */
860#define INTA AU1550_PCI_INTA
861#define INTB AU1550_PCI_INTB
862#define INTC AU1550_PCI_INTC
863#define INTD AU1550_PCI_INTD
864
865#define UART0_ADDR 0xB1100000 965#define UART0_ADDR 0xB1100000
866#define UART1_ADDR 0xB1200000
867#define UART3_ADDR 0xB1400000
868 966
869#define USB_OHCI_BASE 0x14020000 /* phys addr for ioremap */ 967#define USB_OHCI_BASE 0x14020000 /* phys addr for ioremap */
870#define USB_OHCI_LEN 0x00060000 968#define USB_OHCI_LEN 0x00060000
871#define USB_HOST_CONFIG 0xB4027ffc 969#define USB_HOST_CONFIG 0xB4027ffc
970#define FOR_PLATFORM_C_USB_HOST_INT AU1550_USB_HOST_INT
872 971
873#define AU1550_ETH0_BASE 0xB0500000 972#define AU1550_ETH0_BASE 0xB0500000
874#define AU1550_ETH1_BASE 0xB0510000 973#define AU1550_ETH1_BASE 0xB0510000
@@ -877,78 +976,10 @@ enum soc_au1550_ints {
877#define NUM_ETH_INTERFACES 2 976#define NUM_ETH_INTERFACES 2
878#endif /* CONFIG_SOC_AU1550 */ 977#endif /* CONFIG_SOC_AU1550 */
879 978
979
880#ifdef CONFIG_SOC_AU1200 980#ifdef CONFIG_SOC_AU1200
881enum soc_au1200_ints {
882 AU1200_FIRST_INT = MIPS_CPU_IRQ_BASE + 8,
883 AU1200_UART0_INT = AU1200_FIRST_INT,
884 AU1200_SWT_INT,
885 AU1200_SD_INT,
886 AU1200_DDMA_INT,
887 AU1200_MAE_BE_INT,
888 AU1200_GPIO_200,
889 AU1200_GPIO_201,
890 AU1200_GPIO_202,
891 AU1200_UART1_INT,
892 AU1200_MAE_FE_INT,
893 AU1200_PSC0_INT,
894 AU1200_PSC1_INT,
895 AU1200_AES_INT,
896 AU1200_CAMERA_INT,
897 AU1000_TOY_INT,
898 AU1000_TOY_MATCH0_INT,
899 AU1000_TOY_MATCH1_INT,
900 AU1000_TOY_MATCH2_INT,
901 AU1000_RTC_INT,
902 AU1000_RTC_MATCH0_INT,
903 AU1000_RTC_MATCH1_INT,
904 AU1000_RTC_MATCH2_INT,
905 AU1200_GPIO_203,
906 AU1200_NAND_INT,
907 AU1200_GPIO_204,
908 AU1200_GPIO_205,
909 AU1200_GPIO_206,
910 AU1200_GPIO_207,
911 AU1200_GPIO_208_215, /* Logical OR of 208:215 */
912 AU1200_USB_INT,
913 AU1000_USB_HOST_INT = AU1200_USB_INT,
914 AU1200_LCD_INT,
915 AU1200_MAE_BOTH_INT,
916 AU1000_GPIO_0,
917 AU1000_GPIO_1,
918 AU1000_GPIO_2,
919 AU1000_GPIO_3,
920 AU1000_GPIO_4,
921 AU1000_GPIO_5,
922 AU1000_GPIO_6,
923 AU1000_GPIO_7,
924 AU1000_GPIO_8,
925 AU1000_GPIO_9,
926 AU1000_GPIO_10,
927 AU1000_GPIO_11,
928 AU1000_GPIO_12,
929 AU1000_GPIO_13,
930 AU1000_GPIO_14,
931 AU1000_GPIO_15,
932 AU1000_GPIO_16,
933 AU1000_GPIO_17,
934 AU1000_GPIO_18,
935 AU1000_GPIO_19,
936 AU1000_GPIO_20,
937 AU1000_GPIO_21,
938 AU1000_GPIO_22,
939 AU1000_GPIO_23,
940 AU1000_GPIO_24,
941 AU1000_GPIO_25,
942 AU1000_GPIO_26,
943 AU1000_GPIO_27,
944 AU1000_GPIO_28,
945 AU1000_GPIO_29,
946 AU1000_GPIO_30,
947 AU1000_GPIO_31,
948};
949 981
950#define UART0_ADDR 0xB1100000 982#define UART0_ADDR 0xB1100000
951#define UART1_ADDR 0xB1200000
952 983
953#define USB_UOC_BASE 0x14020020 984#define USB_UOC_BASE 0x14020020
954#define USB_UOC_LEN 0x20 985#define USB_UOC_LEN 0x20
@@ -974,15 +1005,9 @@ enum soc_au1200_ints {
974#define USBMSRMCFG_RDCOMB 30 1005#define USBMSRMCFG_RDCOMB 30
975#define USBMSRMCFG_PFEN 31 1006#define USBMSRMCFG_PFEN 31
976 1007
977#endif /* CONFIG_SOC_AU1200 */ 1008#define FOR_PLATFORM_C_USB_HOST_INT AU1200_USB_INT
978
979#define AU1000_INTC0_INT_BASE (MIPS_CPU_IRQ_BASE + 8)
980#define AU1000_INTC0_INT_LAST (AU1000_INTC0_INT_BASE + 31)
981#define AU1000_INTC1_INT_BASE (AU1000_INTC0_INT_BASE + 32)
982#define AU1000_INTC1_INT_LAST (AU1000_INTC1_INT_BASE + 31)
983 1009
984#define AU1000_MAX_INTR AU1000_INTC1_INT_LAST 1010#endif /* CONFIG_SOC_AU1200 */
985#define INTX 0xFF /* not valid */
986 1011
987/* Programmable Counters 0 and 1 */ 1012/* Programmable Counters 0 and 1 */
988#define SYS_BASE 0xB1900000 1013#define SYS_BASE 0xB1900000
@@ -1231,14 +1256,6 @@ enum soc_au1200_ints {
1231#define MAC_RX_BUFF3_STATUS 0x30 1256#define MAC_RX_BUFF3_STATUS 0x30
1232#define MAC_RX_BUFF3_ADDR 0x34 1257#define MAC_RX_BUFF3_ADDR 0x34
1233 1258
1234/* UARTS 0-3 */
1235#define UART_BASE UART0_ADDR
1236#ifdef CONFIG_SOC_AU1200
1237#define UART_DEBUG_BASE UART1_ADDR
1238#else
1239#define UART_DEBUG_BASE UART3_ADDR
1240#endif
1241
1242#define UART_RX 0 /* Receive buffer */ 1259#define UART_RX 0 /* Receive buffer */
1243#define UART_TX 4 /* Transmit buffer */ 1260#define UART_TX 4 /* Transmit buffer */
1244#define UART_IER 8 /* Interrupt Enable Register */ 1261#define UART_IER 8 /* Interrupt Enable Register */
@@ -1251,84 +1268,6 @@ enum soc_au1200_ints {
1251#define UART_CLK 0x28 /* Baud Rate Clock Divider */ 1268#define UART_CLK 0x28 /* Baud Rate Clock Divider */
1252#define UART_MOD_CNTRL 0x100 /* Module Control */ 1269#define UART_MOD_CNTRL 0x100 /* Module Control */
1253 1270
1254#define UART_FCR_ENABLE_FIFO 0x01 /* Enable the FIFO */
1255#define UART_FCR_CLEAR_RCVR 0x02 /* Clear the RCVR FIFO */
1256#define UART_FCR_CLEAR_XMIT 0x04 /* Clear the XMIT FIFO */
1257#define UART_FCR_DMA_SELECT 0x08 /* For DMA applications */
1258#define UART_FCR_TRIGGER_MASK 0xF0 /* Mask for the FIFO trigger range */
1259#define UART_FCR_R_TRIGGER_1 0x00 /* Mask for receive trigger set at 1 */
1260#define UART_FCR_R_TRIGGER_4 0x40 /* Mask for receive trigger set at 4 */
1261#define UART_FCR_R_TRIGGER_8 0x80 /* Mask for receive trigger set at 8 */
1262#define UART_FCR_R_TRIGGER_14 0xA0 /* Mask for receive trigger set at 14 */
1263#define UART_FCR_T_TRIGGER_0 0x00 /* Mask for transmit trigger set at 0 */
1264#define UART_FCR_T_TRIGGER_4 0x10 /* Mask for transmit trigger set at 4 */
1265#define UART_FCR_T_TRIGGER_8 0x20 /* Mask for transmit trigger set at 8 */
1266#define UART_FCR_T_TRIGGER_12 0x30 /* Mask for transmit trigger set at 12 */
1267
1268/*
1269 * These are the definitions for the Line Control Register
1270 */
1271#define UART_LCR_SBC 0x40 /* Set break control */
1272#define UART_LCR_SPAR 0x20 /* Stick parity (?) */
1273#define UART_LCR_EPAR 0x10 /* Even parity select */
1274#define UART_LCR_PARITY 0x08 /* Parity Enable */
1275#define UART_LCR_STOP 0x04 /* Stop bits: 0=1 stop bit, 1= 2 stop bits */
1276#define UART_LCR_WLEN5 0x00 /* Wordlength: 5 bits */
1277#define UART_LCR_WLEN6 0x01 /* Wordlength: 6 bits */
1278#define UART_LCR_WLEN7 0x02 /* Wordlength: 7 bits */
1279#define UART_LCR_WLEN8 0x03 /* Wordlength: 8 bits */
1280
1281/*
1282 * These are the definitions for the Line Status Register
1283 */
1284#define UART_LSR_TEMT 0x40 /* Transmitter empty */
1285#define UART_LSR_THRE 0x20 /* Transmit-hold-register empty */
1286#define UART_LSR_BI 0x10 /* Break interrupt indicator */
1287#define UART_LSR_FE 0x08 /* Frame error indicator */
1288#define UART_LSR_PE 0x04 /* Parity error indicator */
1289#define UART_LSR_OE 0x02 /* Overrun error indicator */
1290#define UART_LSR_DR 0x01 /* Receiver data ready */
1291
1292/*
1293 * These are the definitions for the Interrupt Identification Register
1294 */
1295#define UART_IIR_NO_INT 0x01 /* No interrupts pending */
1296#define UART_IIR_ID 0x06 /* Mask for the interrupt ID */
1297#define UART_IIR_MSI 0x00 /* Modem status interrupt */
1298#define UART_IIR_THRI 0x02 /* Transmitter holding register empty */
1299#define UART_IIR_RDI 0x04 /* Receiver data interrupt */
1300#define UART_IIR_RLSI 0x06 /* Receiver line status interrupt */
1301
1302/*
1303 * These are the definitions for the Interrupt Enable Register
1304 */
1305#define UART_IER_MSI 0x08 /* Enable Modem status interrupt */
1306#define UART_IER_RLSI 0x04 /* Enable receiver line status interrupt */
1307#define UART_IER_THRI 0x02 /* Enable Transmitter holding register int. */
1308#define UART_IER_RDI 0x01 /* Enable receiver data interrupt */
1309
1310/*
1311 * These are the definitions for the Modem Control Register
1312 */
1313#define UART_MCR_LOOP 0x10 /* Enable loopback test mode */
1314#define UART_MCR_OUT2 0x08 /* Out2 complement */
1315#define UART_MCR_OUT1 0x04 /* Out1 complement */
1316#define UART_MCR_RTS 0x02 /* RTS complement */
1317#define UART_MCR_DTR 0x01 /* DTR complement */
1318
1319/*
1320 * These are the definitions for the Modem Status Register
1321 */
1322#define UART_MSR_DCD 0x80 /* Data Carrier Detect */
1323#define UART_MSR_RI 0x40 /* Ring Indicator */
1324#define UART_MSR_DSR 0x20 /* Data Set Ready */
1325#define UART_MSR_CTS 0x10 /* Clear to Send */
1326#define UART_MSR_DDCD 0x08 /* Delta DCD */
1327#define UART_MSR_TERI 0x04 /* Trailing edge ring indicator */
1328#define UART_MSR_DDSR 0x02 /* Delta DSR */
1329#define UART_MSR_DCTS 0x01 /* Delta CTS */
1330#define UART_MSR_ANY_DELTA 0x0F /* Any of the delta bits! */
1331
1332/* SSIO */ 1271/* SSIO */
1333#define SSI0_STATUS 0xB1600000 1272#define SSI0_STATUS 0xB1600000
1334# define SSI_STATUS_BF (1 << 4) 1273# define SSI_STATUS_BF (1 << 4)
@@ -1720,7 +1659,7 @@ enum soc_au1200_ints {
1720#define IOPORT_RESOURCE_START 0x00001000 /* skip legacy probing */ 1659#define IOPORT_RESOURCE_START 0x00001000 /* skip legacy probing */
1721#define IOPORT_RESOURCE_END 0xffffffff 1660#define IOPORT_RESOURCE_END 0xffffffff
1722#define IOMEM_RESOURCE_START 0x10000000 1661#define IOMEM_RESOURCE_START 0x10000000
1723#define IOMEM_RESOURCE_END 0xffffffff 1662#define IOMEM_RESOURCE_END 0xfffffffffULL
1724 1663
1725#else /* Au1000 and Au1100 and Au1200 */ 1664#else /* Au1000 and Au1100 and Au1200 */
1726 1665
@@ -1728,7 +1667,7 @@ enum soc_au1200_ints {
1728#define IOPORT_RESOURCE_START 0x10000000 1667#define IOPORT_RESOURCE_START 0x10000000
1729#define IOPORT_RESOURCE_END 0xffffffff 1668#define IOPORT_RESOURCE_END 0xffffffff
1730#define IOMEM_RESOURCE_START 0x10000000 1669#define IOMEM_RESOURCE_START 0x10000000
1731#define IOMEM_RESOURCE_END 0xffffffff 1670#define IOMEM_RESOURCE_END 0xfffffffffULL
1732 1671
1733#define PCI_IO_START 0 1672#define PCI_IO_START 0
1734#define PCI_IO_END 0 1673#define PCI_IO_END 0
@@ -1739,53 +1678,4 @@ enum soc_au1200_ints {
1739 1678
1740#endif 1679#endif
1741 1680
1742#ifndef _LANGUAGE_ASSEMBLY
1743typedef volatile struct {
1744 /* 0x0000 */ u32 toytrim;
1745 /* 0x0004 */ u32 toywrite;
1746 /* 0x0008 */ u32 toymatch0;
1747 /* 0x000C */ u32 toymatch1;
1748 /* 0x0010 */ u32 toymatch2;
1749 /* 0x0014 */ u32 cntrctrl;
1750 /* 0x0018 */ u32 scratch0;
1751 /* 0x001C */ u32 scratch1;
1752 /* 0x0020 */ u32 freqctrl0;
1753 /* 0x0024 */ u32 freqctrl1;
1754 /* 0x0028 */ u32 clksrc;
1755 /* 0x002C */ u32 pinfunc;
1756 /* 0x0030 */ u32 reserved0;
1757 /* 0x0034 */ u32 wakemsk;
1758 /* 0x0038 */ u32 endian;
1759 /* 0x003C */ u32 powerctrl;
1760 /* 0x0040 */ u32 toyread;
1761 /* 0x0044 */ u32 rtctrim;
1762 /* 0x0048 */ u32 rtcwrite;
1763 /* 0x004C */ u32 rtcmatch0;
1764 /* 0x0050 */ u32 rtcmatch1;
1765 /* 0x0054 */ u32 rtcmatch2;
1766 /* 0x0058 */ u32 rtcread;
1767 /* 0x005C */ u32 wakesrc;
1768 /* 0x0060 */ u32 cpupll;
1769 /* 0x0064 */ u32 auxpll;
1770 /* 0x0068 */ u32 reserved1;
1771 /* 0x006C */ u32 reserved2;
1772 /* 0x0070 */ u32 reserved3;
1773 /* 0x0074 */ u32 reserved4;
1774 /* 0x0078 */ u32 slppwr;
1775 /* 0x007C */ u32 sleep;
1776 /* 0x0080 */ u32 reserved5[32];
1777 /* 0x0100 */ u32 trioutrd;
1778#define trioutclr trioutrd
1779 /* 0x0104 */ u32 reserved6;
1780 /* 0x0108 */ u32 outputrd;
1781#define outputset outputrd
1782 /* 0x010C */ u32 outputclr;
1783 /* 0x0110 */ u32 pinstaterd;
1784#define pininputen pinstaterd
1785} AU1X00_SYS;
1786
1787static AU1X00_SYS * const sys = (AU1X00_SYS *)SYS_BASE;
1788
1789#endif
1790
1791#endif 1681#endif
diff --git a/arch/mips/include/asm/mach-au1x00/au1100_mmc.h b/arch/mips/include/asm/mach-au1x00/au1100_mmc.h
index c35e20918490..94000a3b6f0b 100644
--- a/arch/mips/include/asm/mach-au1x00/au1100_mmc.h
+++ b/arch/mips/include/asm/mach-au1x00/au1100_mmc.h
@@ -46,6 +46,7 @@ struct au1xmmc_platform_data {
46 int(*card_readonly)(void *mmc_host); 46 int(*card_readonly)(void *mmc_host);
47 void(*set_power)(void *mmc_host, int state); 47 void(*set_power)(void *mmc_host, int state);
48 struct led_classdev *led; 48 struct led_classdev *led;
49 unsigned long mask_host_caps;
49}; 50};
50 51
51#define SD0_BASE 0xB0600000 52#define SD0_BASE 0xB0600000
@@ -205,4 +206,3 @@ struct au1xmmc_platform_data {
205 206
206 207
207#endif /* __ASM_AU1100_MMC_H */ 208#endif /* __ASM_AU1100_MMC_H */
208
diff --git a/arch/mips/include/asm/mach-au1x00/au1xxx_dbdma.h b/arch/mips/include/asm/mach-au1x00/au1xxx_dbdma.h
index 06f68f43800a..8c6b1105ce0b 100644
--- a/arch/mips/include/asm/mach-au1x00/au1xxx_dbdma.h
+++ b/arch/mips/include/asm/mach-au1x00/au1xxx_dbdma.h
@@ -305,6 +305,7 @@ typedef struct dbdma_chan_config {
305 dbdev_tab_t *chan_dest; 305 dbdev_tab_t *chan_dest;
306 au1x_dma_chan_t *chan_ptr; 306 au1x_dma_chan_t *chan_ptr;
307 au1x_ddma_desc_t *chan_desc_base; 307 au1x_ddma_desc_t *chan_desc_base;
308 u32 cdb_membase; /* kmalloc base of above */
308 au1x_ddma_desc_t *get_ptr, *put_ptr, *cur_ptr; 309 au1x_ddma_desc_t *get_ptr, *put_ptr, *cur_ptr;
309 void *chan_callparam; 310 void *chan_callparam;
310 void (*chan_callback)(int, void *); 311 void (*chan_callback)(int, void *);
@@ -338,8 +339,8 @@ u32 au1xxx_dbdma_set_devwidth(u32 chanid, int bits);
338u32 au1xxx_dbdma_ring_alloc(u32 chanid, int entries); 339u32 au1xxx_dbdma_ring_alloc(u32 chanid, int entries);
339 340
340/* Put buffers on source/destination descriptors. */ 341/* Put buffers on source/destination descriptors. */
341u32 _au1xxx_dbdma_put_source(u32 chanid, void *buf, int nbytes, u32 flags); 342u32 au1xxx_dbdma_put_source(u32 chanid, dma_addr_t buf, int nbytes, u32 flags);
342u32 _au1xxx_dbdma_put_dest(u32 chanid, void *buf, int nbytes, u32 flags); 343u32 au1xxx_dbdma_put_dest(u32 chanid, dma_addr_t buf, int nbytes, u32 flags);
343 344
344/* Get a buffer from the destination descriptor. */ 345/* Get a buffer from the destination descriptor. */
345u32 au1xxx_dbdma_get_dest(u32 chanid, void **buf, int *nbytes); 346u32 au1xxx_dbdma_get_dest(u32 chanid, void **buf, int *nbytes);
@@ -362,25 +363,6 @@ void au1xxx_dbdma_suspend(void);
362void au1xxx_dbdma_resume(void); 363void au1xxx_dbdma_resume(void);
363#endif 364#endif
364 365
365
366/*
367 * Some compatibilty macros -- needed to make changes to API
368 * without breaking existing drivers.
369 */
370#define au1xxx_dbdma_put_source(chanid, buf, nbytes) \
371 _au1xxx_dbdma_put_source(chanid, buf, nbytes, DDMA_FLAGS_IE)
372#define au1xxx_dbdma_put_source_flags(chanid, buf, nbytes, flags) \
373 _au1xxx_dbdma_put_source(chanid, buf, nbytes, flags)
374#define put_source_flags(chanid, buf, nbytes, flags) \
375 au1xxx_dbdma_put_source_flags(chanid, buf, nbytes, flags)
376
377#define au1xxx_dbdma_put_dest(chanid, buf, nbytes) \
378 _au1xxx_dbdma_put_dest(chanid, buf, nbytes, DDMA_FLAGS_IE)
379#define au1xxx_dbdma_put_dest_flags(chanid, buf, nbytes, flags) \
380 _au1xxx_dbdma_put_dest(chanid, buf, nbytes, flags)
381#define put_dest_flags(chanid, buf, nbytes, flags) \
382 au1xxx_dbdma_put_dest_flags(chanid, buf, nbytes, flags)
383
384/* 366/*
385 * Flags for the put_source/put_dest functions. 367 * Flags for the put_source/put_dest functions.
386 */ 368 */
diff --git a/arch/mips/include/asm/mach-au1x00/au1xxx_eth.h b/arch/mips/include/asm/mach-au1x00/au1xxx_eth.h
new file mode 100644
index 000000000000..bae9b758fcde
--- /dev/null
+++ b/arch/mips/include/asm/mach-au1x00/au1xxx_eth.h
@@ -0,0 +1,17 @@
1#ifndef __AU1X00_ETH_DATA_H
2#define __AU1X00_ETH_DATA_H
3
4/* Platform specific PHY configuration passed to the MAC driver */
5struct au1000_eth_platform_data {
6 int phy_static_config;
7 int phy_search_highest_addr;
8 int phy1_search_mac0;
9 int phy_addr;
10 int phy_busid;
11 int phy_irq;
12};
13
14void __init au1xxx_override_eth_cfg(unsigned port,
15 struct au1000_eth_platform_data *eth_data);
16
17#endif /* __AU1X00_ETH_DATA_H */
diff --git a/arch/mips/include/asm/mach-au1x00/gpio-au1000.h b/arch/mips/include/asm/mach-au1x00/gpio-au1000.h
index 91595fa89034..62d2f136d941 100644
--- a/arch/mips/include/asm/mach-au1x00/gpio-au1000.h
+++ b/arch/mips/include/asm/mach-au1x00/gpio-au1000.h
@@ -35,15 +35,13 @@ static inline int au1000_gpio2_to_irq(int gpio)
35 return -ENXIO; 35 return -ENXIO;
36} 36}
37 37
38#ifdef CONFIG_SOC_AU1000
39static inline int au1000_irq_to_gpio(int irq) 38static inline int au1000_irq_to_gpio(int irq)
40{ 39{
41 if ((irq >= AU1000_GPIO_0) && (irq <= AU1000_GPIO_31)) 40 if ((irq >= AU1000_GPIO0_INT) && (irq <= AU1000_GPIO31_INT))
42 return ALCHEMY_GPIO1_BASE + (irq - AU1000_GPIO_0) + 0; 41 return ALCHEMY_GPIO1_BASE + (irq - AU1000_GPIO0_INT) + 0;
43 42
44 return -ENXIO; 43 return -ENXIO;
45} 44}
46#endif
47 45
48static inline int au1500_gpio1_to_irq(int gpio) 46static inline int au1500_gpio1_to_irq(int gpio)
49{ 47{
@@ -71,27 +69,25 @@ static inline int au1500_gpio2_to_irq(int gpio)
71 return -ENXIO; 69 return -ENXIO;
72} 70}
73 71
74#ifdef CONFIG_SOC_AU1500
75static inline int au1500_irq_to_gpio(int irq) 72static inline int au1500_irq_to_gpio(int irq)
76{ 73{
77 switch (irq) { 74 switch (irq) {
78 case AU1000_GPIO_0 ... AU1000_GPIO_15: 75 case AU1500_GPIO0_INT ... AU1500_GPIO15_INT:
79 case AU1500_GPIO_20: 76 case AU1500_GPIO20_INT:
80 case AU1500_GPIO_23 ... AU1500_GPIO_28: 77 case AU1500_GPIO23_INT ... AU1500_GPIO28_INT:
81 return ALCHEMY_GPIO1_BASE + (irq - AU1000_GPIO_0) + 0; 78 return ALCHEMY_GPIO1_BASE + (irq - AU1500_GPIO0_INT) + 0;
82 case AU1500_GPIO_200 ... AU1500_GPIO_203: 79 case AU1500_GPIO200_INT ... AU1500_GPIO203_INT:
83 return ALCHEMY_GPIO2_BASE + (irq - AU1500_GPIO_200) + 0; 80 return ALCHEMY_GPIO2_BASE + (irq - AU1500_GPIO200_INT) + 0;
84 case AU1500_GPIO_204 ... AU1500_GPIO_205: 81 case AU1500_GPIO204_INT ... AU1500_GPIO205_INT:
85 return ALCHEMY_GPIO2_BASE + (irq - AU1500_GPIO_204) + 4; 82 return ALCHEMY_GPIO2_BASE + (irq - AU1500_GPIO204_INT) + 4;
86 case AU1500_GPIO_206 ... AU1500_GPIO_207: 83 case AU1500_GPIO206_INT ... AU1500_GPIO207_INT:
87 return ALCHEMY_GPIO2_BASE + (irq - AU1500_GPIO_206) + 6; 84 return ALCHEMY_GPIO2_BASE + (irq - AU1500_GPIO206_INT) + 6;
88 case AU1500_GPIO_208_215: 85 case AU1500_GPIO208_215_INT:
89 return ALCHEMY_GPIO2_BASE + 8; 86 return ALCHEMY_GPIO2_BASE + 8;
90 } 87 }
91 88
92 return -ENXIO; 89 return -ENXIO;
93} 90}
94#endif
95 91
96static inline int au1100_gpio1_to_irq(int gpio) 92static inline int au1100_gpio1_to_irq(int gpio)
97{ 93{
@@ -108,19 +104,17 @@ static inline int au1100_gpio2_to_irq(int gpio)
108 return -ENXIO; 104 return -ENXIO;
109} 105}
110 106
111#ifdef CONFIG_SOC_AU1100
112static inline int au1100_irq_to_gpio(int irq) 107static inline int au1100_irq_to_gpio(int irq)
113{ 108{
114 switch (irq) { 109 switch (irq) {
115 case AU1000_GPIO_0 ... AU1000_GPIO_31: 110 case AU1100_GPIO0_INT ... AU1100_GPIO31_INT:
116 return ALCHEMY_GPIO1_BASE + (irq - AU1000_GPIO_0) + 0; 111 return ALCHEMY_GPIO1_BASE + (irq - AU1100_GPIO0_INT) + 0;
117 case AU1100_GPIO_208_215: 112 case AU1100_GPIO208_215_INT:
118 return ALCHEMY_GPIO2_BASE + 8; 113 return ALCHEMY_GPIO2_BASE + 8;
119 } 114 }
120 115
121 return -ENXIO; 116 return -ENXIO;
122} 117}
123#endif
124 118
125static inline int au1550_gpio1_to_irq(int gpio) 119static inline int au1550_gpio1_to_irq(int gpio)
126{ 120{
@@ -149,24 +143,22 @@ static inline int au1550_gpio2_to_irq(int gpio)
149 return -ENXIO; 143 return -ENXIO;
150} 144}
151 145
152#ifdef CONFIG_SOC_AU1550
153static inline int au1550_irq_to_gpio(int irq) 146static inline int au1550_irq_to_gpio(int irq)
154{ 147{
155 switch (irq) { 148 switch (irq) {
156 case AU1000_GPIO_0 ... AU1000_GPIO_15: 149 case AU1550_GPIO0_INT ... AU1550_GPIO15_INT:
157 return ALCHEMY_GPIO1_BASE + (irq - AU1000_GPIO_0) + 0; 150 return ALCHEMY_GPIO1_BASE + (irq - AU1550_GPIO0_INT) + 0;
158 case AU1550_GPIO_200: 151 case AU1550_GPIO200_INT:
159 case AU1500_GPIO_201_205: 152 case AU1550_GPIO201_205_INT:
160 return ALCHEMY_GPIO2_BASE + (irq - AU1550_GPIO_200) + 0; 153 return ALCHEMY_GPIO2_BASE + (irq - AU1550_GPIO200_INT) + 0;
161 case AU1500_GPIO_16 ... AU1500_GPIO_28: 154 case AU1550_GPIO16_INT ... AU1550_GPIO28_INT:
162 return ALCHEMY_GPIO1_BASE + (irq - AU1500_GPIO_16) + 16; 155 return ALCHEMY_GPIO1_BASE + (irq - AU1550_GPIO16_INT) + 16;
163 case AU1500_GPIO_206 ... AU1500_GPIO_208_218: 156 case AU1550_GPIO206_INT ... AU1550_GPIO208_215_INT:
164 return ALCHEMY_GPIO2_BASE + (irq - AU1500_GPIO_206) + 6; 157 return ALCHEMY_GPIO2_BASE + (irq - AU1550_GPIO206_INT) + 6;
165 } 158 }
166 159
167 return -ENXIO; 160 return -ENXIO;
168} 161}
169#endif
170 162
171static inline int au1200_gpio1_to_irq(int gpio) 163static inline int au1200_gpio1_to_irq(int gpio)
172{ 164{
@@ -187,23 +179,21 @@ static inline int au1200_gpio2_to_irq(int gpio)
187 return -ENXIO; 179 return -ENXIO;
188} 180}
189 181
190#ifdef CONFIG_SOC_AU1200
191static inline int au1200_irq_to_gpio(int irq) 182static inline int au1200_irq_to_gpio(int irq)
192{ 183{
193 switch (irq) { 184 switch (irq) {
194 case AU1000_GPIO_0 ... AU1000_GPIO_31: 185 case AU1200_GPIO0_INT ... AU1200_GPIO31_INT:
195 return ALCHEMY_GPIO1_BASE + (irq - AU1000_GPIO_0) + 0; 186 return ALCHEMY_GPIO1_BASE + (irq - AU1200_GPIO0_INT) + 0;
196 case AU1200_GPIO_200 ... AU1200_GPIO_202: 187 case AU1200_GPIO200_INT ... AU1200_GPIO202_INT:
197 return ALCHEMY_GPIO2_BASE + (irq - AU1200_GPIO_200) + 0; 188 return ALCHEMY_GPIO2_BASE + (irq - AU1200_GPIO200_INT) + 0;
198 case AU1200_GPIO_203: 189 case AU1200_GPIO203_INT:
199 return ALCHEMY_GPIO2_BASE + 3; 190 return ALCHEMY_GPIO2_BASE + 3;
200 case AU1200_GPIO_204 ... AU1200_GPIO_208_215: 191 case AU1200_GPIO204_INT ... AU1200_GPIO208_215_INT:
201 return ALCHEMY_GPIO2_BASE + (irq - AU1200_GPIO_204) + 4; 192 return ALCHEMY_GPIO2_BASE + (irq - AU1200_GPIO204_INT) + 4;
202 } 193 }
203 194
204 return -ENXIO; 195 return -ENXIO;
205} 196}
206#endif
207 197
208/* 198/*
209 * GPIO1 block macros for common linux gpio functions. 199 * GPIO1 block macros for common linux gpio functions.
@@ -246,19 +236,19 @@ static inline int alchemy_gpio1_is_valid(int gpio)
246 236
247static inline int alchemy_gpio1_to_irq(int gpio) 237static inline int alchemy_gpio1_to_irq(int gpio)
248{ 238{
249#if defined(CONFIG_SOC_AU1000) 239 switch (alchemy_get_cputype()) {
250 return au1000_gpio1_to_irq(gpio); 240 case ALCHEMY_CPU_AU1000:
251#elif defined(CONFIG_SOC_AU1100) 241 return au1000_gpio1_to_irq(gpio);
252 return au1100_gpio1_to_irq(gpio); 242 case ALCHEMY_CPU_AU1100:
253#elif defined(CONFIG_SOC_AU1500) 243 return au1100_gpio1_to_irq(gpio);
254 return au1500_gpio1_to_irq(gpio); 244 case ALCHEMY_CPU_AU1500:
255#elif defined(CONFIG_SOC_AU1550) 245 return au1500_gpio1_to_irq(gpio);
256 return au1550_gpio1_to_irq(gpio); 246 case ALCHEMY_CPU_AU1550:
257#elif defined(CONFIG_SOC_AU1200) 247 return au1550_gpio1_to_irq(gpio);
258 return au1200_gpio1_to_irq(gpio); 248 case ALCHEMY_CPU_AU1200:
259#else 249 return au1200_gpio1_to_irq(gpio);
250 }
260 return -ENXIO; 251 return -ENXIO;
261#endif
262} 252}
263 253
264/* 254/*
@@ -316,19 +306,19 @@ static inline int alchemy_gpio2_is_valid(int gpio)
316 306
317static inline int alchemy_gpio2_to_irq(int gpio) 307static inline int alchemy_gpio2_to_irq(int gpio)
318{ 308{
319#if defined(CONFIG_SOC_AU1000) 309 switch (alchemy_get_cputype()) {
320 return au1000_gpio2_to_irq(gpio); 310 case ALCHEMY_CPU_AU1000:
321#elif defined(CONFIG_SOC_AU1100) 311 return au1000_gpio2_to_irq(gpio);
322 return au1100_gpio2_to_irq(gpio); 312 case ALCHEMY_CPU_AU1100:
323#elif defined(CONFIG_SOC_AU1500) 313 return au1100_gpio2_to_irq(gpio);
324 return au1500_gpio2_to_irq(gpio); 314 case ALCHEMY_CPU_AU1500:
325#elif defined(CONFIG_SOC_AU1550) 315 return au1500_gpio2_to_irq(gpio);
326 return au1550_gpio2_to_irq(gpio); 316 case ALCHEMY_CPU_AU1550:
327#elif defined(CONFIG_SOC_AU1200) 317 return au1550_gpio2_to_irq(gpio);
328 return au1200_gpio2_to_irq(gpio); 318 case ALCHEMY_CPU_AU1200:
329#else 319 return au1200_gpio2_to_irq(gpio);
320 }
330 return -ENXIO; 321 return -ENXIO;
331#endif
332} 322}
333 323
334/**********************************************************************/ 324/**********************************************************************/
@@ -384,10 +374,13 @@ static inline void alchemy_gpio2_enable_int(int gpio2)
384 374
385 gpio2 -= ALCHEMY_GPIO2_BASE; 375 gpio2 -= ALCHEMY_GPIO2_BASE;
386 376
387#if defined(CONFIG_SOC_AU1100) || defined(CONFIG_SOC_AU1500)
388 /* Au1100/Au1500 have GPIO208-215 enable bits at 0..7 */ 377 /* Au1100/Au1500 have GPIO208-215 enable bits at 0..7 */
389 gpio2 -= 8; 378 switch (alchemy_get_cputype()) {
390#endif 379 case ALCHEMY_CPU_AU1100:
380 case ALCHEMY_CPU_AU1500:
381 gpio2 -= 8;
382 }
383
391 local_irq_save(flags); 384 local_irq_save(flags);
392 __alchemy_gpio2_mod_int(gpio2, 1); 385 __alchemy_gpio2_mod_int(gpio2, 1);
393 local_irq_restore(flags); 386 local_irq_restore(flags);
@@ -405,10 +398,13 @@ static inline void alchemy_gpio2_disable_int(int gpio2)
405 398
406 gpio2 -= ALCHEMY_GPIO2_BASE; 399 gpio2 -= ALCHEMY_GPIO2_BASE;
407 400
408#if defined(CONFIG_SOC_AU1100) || defined(CONFIG_SOC_AU1500)
409 /* Au1100/Au1500 have GPIO208-215 enable bits at 0..7 */ 401 /* Au1100/Au1500 have GPIO208-215 enable bits at 0..7 */
410 gpio2 -= 8; 402 switch (alchemy_get_cputype()) {
411#endif 403 case ALCHEMY_CPU_AU1100:
404 case ALCHEMY_CPU_AU1500:
405 gpio2 -= 8;
406 }
407
412 local_irq_save(flags); 408 local_irq_save(flags);
413 __alchemy_gpio2_mod_int(gpio2, 0); 409 __alchemy_gpio2_mod_int(gpio2, 0);
414 local_irq_restore(flags); 410 local_irq_restore(flags);
@@ -494,19 +490,19 @@ static inline int alchemy_gpio_to_irq(int gpio)
494 490
495static inline int alchemy_irq_to_gpio(int irq) 491static inline int alchemy_irq_to_gpio(int irq)
496{ 492{
497#if defined(CONFIG_SOC_AU1000) 493 switch (alchemy_get_cputype()) {
498 return au1000_irq_to_gpio(irq); 494 case ALCHEMY_CPU_AU1000:
499#elif defined(CONFIG_SOC_AU1100) 495 return au1000_irq_to_gpio(irq);
500 return au1100_irq_to_gpio(irq); 496 case ALCHEMY_CPU_AU1100:
501#elif defined(CONFIG_SOC_AU1500) 497 return au1100_irq_to_gpio(irq);
502 return au1500_irq_to_gpio(irq); 498 case ALCHEMY_CPU_AU1500:
503#elif defined(CONFIG_SOC_AU1550) 499 return au1500_irq_to_gpio(irq);
504 return au1550_irq_to_gpio(irq); 500 case ALCHEMY_CPU_AU1550:
505#elif defined(CONFIG_SOC_AU1200) 501 return au1550_irq_to_gpio(irq);
506 return au1200_irq_to_gpio(irq); 502 case ALCHEMY_CPU_AU1200:
507#else 503 return au1200_irq_to_gpio(irq);
504 }
508 return -ENXIO; 505 return -ENXIO;
509#endif
510} 506}
511 507
512/**********************************************************************/ 508/**********************************************************************/
diff --git a/arch/mips/include/asm/mach-au1x00/gpio.h b/arch/mips/include/asm/mach-au1x00/gpio.h
index f9b7d41c659a..c3f60cdc3203 100644
--- a/arch/mips/include/asm/mach-au1x00/gpio.h
+++ b/arch/mips/include/asm/mach-au1x00/gpio.h
@@ -1,7 +1,7 @@
1#ifndef _ALCHEMY_GPIO_H_ 1#ifndef _ALCHEMY_GPIO_H_
2#define _ALCHEMY_GPIO_H_ 2#define _ALCHEMY_GPIO_H_
3 3
4#if defined(CONFIG_ALCHEMY_GPIO_AU1000) 4#if defined(CONFIG_ALCHEMY_GPIOINT_AU1000)
5 5
6#include <asm/mach-au1x00/gpio-au1000.h> 6#include <asm/mach-au1x00/gpio-au1000.h>
7 7
diff --git a/arch/mips/include/asm/mach-au1x00/ioremap.h b/arch/mips/include/asm/mach-au1x00/ioremap.h
index 364cea2dc71f..75a94ad3ac91 100644
--- a/arch/mips/include/asm/mach-au1x00/ioremap.h
+++ b/arch/mips/include/asm/mach-au1x00/ioremap.h
@@ -11,7 +11,7 @@
11 11
12#include <linux/types.h> 12#include <linux/types.h>
13 13
14#ifdef CONFIG_64BIT_PHYS_ADDR 14#if defined(CONFIG_64BIT_PHYS_ADDR) && defined(CONFIG_PCI)
15extern phys_t __fixup_bigphys_addr(phys_t, phys_t); 15extern phys_t __fixup_bigphys_addr(phys_t, phys_t);
16#else 16#else
17static inline phys_t __fixup_bigphys_addr(phys_t phys_addr, phys_t size) 17static inline phys_t __fixup_bigphys_addr(phys_t phys_addr, phys_t size)
diff --git a/arch/mips/include/asm/mach-au1x00/prom.h b/arch/mips/include/asm/mach-au1x00/prom.h
index e38715577c51..4c0e09cf1735 100644
--- a/arch/mips/include/asm/mach-au1x00/prom.h
+++ b/arch/mips/include/asm/mach-au1x00/prom.h
@@ -6,7 +6,6 @@ extern char **prom_argv;
6extern char **prom_envp; 6extern char **prom_envp;
7 7
8extern void prom_init_cmdline(void); 8extern void prom_init_cmdline(void);
9extern char *prom_getcmdline(void);
10extern char *prom_getenv(char *envname); 9extern char *prom_getenv(char *envname);
11extern int prom_get_ethernet_addr(char *ethernet_addr); 10extern int prom_get_ethernet_addr(char *ethernet_addr);
12 11
diff --git a/arch/mips/include/asm/mach-bcm63xx/bcm63xx_cpu.h b/arch/mips/include/asm/mach-bcm63xx/bcm63xx_cpu.h
index b12c4aca2cc9..96a2391ad85b 100644
--- a/arch/mips/include/asm/mach-bcm63xx/bcm63xx_cpu.h
+++ b/arch/mips/include/asm/mach-bcm63xx/bcm63xx_cpu.h
@@ -85,6 +85,7 @@ enum bcm63xx_regs_set {
85 RSET_TIMER, 85 RSET_TIMER,
86 RSET_WDT, 86 RSET_WDT,
87 RSET_UART0, 87 RSET_UART0,
88 RSET_UART1,
88 RSET_GPIO, 89 RSET_GPIO,
89 RSET_SPI, 90 RSET_SPI,
90 RSET_UDC0, 91 RSET_UDC0,
@@ -123,6 +124,7 @@ enum bcm63xx_regs_set {
123#define BCM_6338_TIMER_BASE (0xfffe0200) 124#define BCM_6338_TIMER_BASE (0xfffe0200)
124#define BCM_6338_WDT_BASE (0xfffe021c) 125#define BCM_6338_WDT_BASE (0xfffe021c)
125#define BCM_6338_UART0_BASE (0xfffe0300) 126#define BCM_6338_UART0_BASE (0xfffe0300)
127#define BCM_6338_UART1_BASE (0xdeadbeef)
126#define BCM_6338_GPIO_BASE (0xfffe0400) 128#define BCM_6338_GPIO_BASE (0xfffe0400)
127#define BCM_6338_SPI_BASE (0xfffe0c00) 129#define BCM_6338_SPI_BASE (0xfffe0c00)
128#define BCM_6338_UDC0_BASE (0xdeadbeef) 130#define BCM_6338_UDC0_BASE (0xdeadbeef)
@@ -153,6 +155,7 @@ enum bcm63xx_regs_set {
153#define BCM_6345_TIMER_BASE (0xfffe0200) 155#define BCM_6345_TIMER_BASE (0xfffe0200)
154#define BCM_6345_WDT_BASE (0xfffe021c) 156#define BCM_6345_WDT_BASE (0xfffe021c)
155#define BCM_6345_UART0_BASE (0xfffe0300) 157#define BCM_6345_UART0_BASE (0xfffe0300)
158#define BCM_6345_UART1_BASE (0xdeadbeef)
156#define BCM_6345_GPIO_BASE (0xfffe0400) 159#define BCM_6345_GPIO_BASE (0xfffe0400)
157#define BCM_6345_SPI_BASE (0xdeadbeef) 160#define BCM_6345_SPI_BASE (0xdeadbeef)
158#define BCM_6345_UDC0_BASE (0xdeadbeef) 161#define BCM_6345_UDC0_BASE (0xdeadbeef)
@@ -182,6 +185,7 @@ enum bcm63xx_regs_set {
182#define BCM_6348_TIMER_BASE (0xfffe0200) 185#define BCM_6348_TIMER_BASE (0xfffe0200)
183#define BCM_6348_WDT_BASE (0xfffe021c) 186#define BCM_6348_WDT_BASE (0xfffe021c)
184#define BCM_6348_UART0_BASE (0xfffe0300) 187#define BCM_6348_UART0_BASE (0xfffe0300)
188#define BCM_6348_UART1_BASE (0xdeadbeef)
185#define BCM_6348_GPIO_BASE (0xfffe0400) 189#define BCM_6348_GPIO_BASE (0xfffe0400)
186#define BCM_6348_SPI_BASE (0xfffe0c00) 190#define BCM_6348_SPI_BASE (0xfffe0c00)
187#define BCM_6348_UDC0_BASE (0xfffe1000) 191#define BCM_6348_UDC0_BASE (0xfffe1000)
@@ -208,6 +212,7 @@ enum bcm63xx_regs_set {
208#define BCM_6358_TIMER_BASE (0xfffe0040) 212#define BCM_6358_TIMER_BASE (0xfffe0040)
209#define BCM_6358_WDT_BASE (0xfffe005c) 213#define BCM_6358_WDT_BASE (0xfffe005c)
210#define BCM_6358_UART0_BASE (0xfffe0100) 214#define BCM_6358_UART0_BASE (0xfffe0100)
215#define BCM_6358_UART1_BASE (0xfffe0120)
211#define BCM_6358_GPIO_BASE (0xfffe0080) 216#define BCM_6358_GPIO_BASE (0xfffe0080)
212#define BCM_6358_SPI_BASE (0xdeadbeef) 217#define BCM_6358_SPI_BASE (0xdeadbeef)
213#define BCM_6358_UDC0_BASE (0xfffe0800) 218#define BCM_6358_UDC0_BASE (0xfffe0800)
@@ -246,6 +251,8 @@ static inline unsigned long bcm63xx_regset_address(enum bcm63xx_regs_set set)
246 return BCM_6338_WDT_BASE; 251 return BCM_6338_WDT_BASE;
247 case RSET_UART0: 252 case RSET_UART0:
248 return BCM_6338_UART0_BASE; 253 return BCM_6338_UART0_BASE;
254 case RSET_UART1:
255 return BCM_6338_UART1_BASE;
249 case RSET_GPIO: 256 case RSET_GPIO:
250 return BCM_6338_GPIO_BASE; 257 return BCM_6338_GPIO_BASE;
251 case RSET_SPI: 258 case RSET_SPI:
@@ -292,6 +299,8 @@ static inline unsigned long bcm63xx_regset_address(enum bcm63xx_regs_set set)
292 return BCM_6345_WDT_BASE; 299 return BCM_6345_WDT_BASE;
293 case RSET_UART0: 300 case RSET_UART0:
294 return BCM_6345_UART0_BASE; 301 return BCM_6345_UART0_BASE;
302 case RSET_UART1:
303 return BCM_6345_UART1_BASE;
295 case RSET_GPIO: 304 case RSET_GPIO:
296 return BCM_6345_GPIO_BASE; 305 return BCM_6345_GPIO_BASE;
297 case RSET_SPI: 306 case RSET_SPI:
@@ -338,6 +347,8 @@ static inline unsigned long bcm63xx_regset_address(enum bcm63xx_regs_set set)
338 return BCM_6348_WDT_BASE; 347 return BCM_6348_WDT_BASE;
339 case RSET_UART0: 348 case RSET_UART0:
340 return BCM_6348_UART0_BASE; 349 return BCM_6348_UART0_BASE;
350 case RSET_UART1:
351 return BCM_6348_UART1_BASE;
341 case RSET_GPIO: 352 case RSET_GPIO:
342 return BCM_6348_GPIO_BASE; 353 return BCM_6348_GPIO_BASE;
343 case RSET_SPI: 354 case RSET_SPI:
@@ -384,6 +395,8 @@ static inline unsigned long bcm63xx_regset_address(enum bcm63xx_regs_set set)
384 return BCM_6358_WDT_BASE; 395 return BCM_6358_WDT_BASE;
385 case RSET_UART0: 396 case RSET_UART0:
386 return BCM_6358_UART0_BASE; 397 return BCM_6358_UART0_BASE;
398 case RSET_UART1:
399 return BCM_6358_UART1_BASE;
387 case RSET_GPIO: 400 case RSET_GPIO:
388 return BCM_6358_GPIO_BASE; 401 return BCM_6358_GPIO_BASE;
389 case RSET_SPI: 402 case RSET_SPI:
@@ -429,6 +442,7 @@ static inline unsigned long bcm63xx_regset_address(enum bcm63xx_regs_set set)
429enum bcm63xx_irq { 442enum bcm63xx_irq {
430 IRQ_TIMER = 0, 443 IRQ_TIMER = 0,
431 IRQ_UART0, 444 IRQ_UART0,
445 IRQ_UART1,
432 IRQ_DSL, 446 IRQ_DSL,
433 IRQ_ENET0, 447 IRQ_ENET0,
434 IRQ_ENET1, 448 IRQ_ENET1,
@@ -510,6 +524,7 @@ enum bcm63xx_irq {
510 */ 524 */
511#define BCM_6358_TIMER_IRQ (IRQ_INTERNAL_BASE + 0) 525#define BCM_6358_TIMER_IRQ (IRQ_INTERNAL_BASE + 0)
512#define BCM_6358_UART0_IRQ (IRQ_INTERNAL_BASE + 2) 526#define BCM_6358_UART0_IRQ (IRQ_INTERNAL_BASE + 2)
527#define BCM_6358_UART1_IRQ (IRQ_INTERNAL_BASE + 3)
513#define BCM_6358_OHCI0_IRQ (IRQ_INTERNAL_BASE + 5) 528#define BCM_6358_OHCI0_IRQ (IRQ_INTERNAL_BASE + 5)
514#define BCM_6358_ENET1_IRQ (IRQ_INTERNAL_BASE + 6) 529#define BCM_6358_ENET1_IRQ (IRQ_INTERNAL_BASE + 6)
515#define BCM_6358_ENET0_IRQ (IRQ_INTERNAL_BASE + 8) 530#define BCM_6358_ENET0_IRQ (IRQ_INTERNAL_BASE + 8)
diff --git a/arch/mips/include/asm/mach-bcm63xx/bcm63xx_dev_uart.h b/arch/mips/include/asm/mach-bcm63xx/bcm63xx_dev_uart.h
new file mode 100644
index 000000000000..23c705baf171
--- /dev/null
+++ b/arch/mips/include/asm/mach-bcm63xx/bcm63xx_dev_uart.h
@@ -0,0 +1,6 @@
1#ifndef BCM63XX_DEV_UART_H_
2#define BCM63XX_DEV_UART_H_
3
4int bcm63xx_uart_register(unsigned int id);
5
6#endif /* BCM63XX_DEV_UART_H_ */
diff --git a/arch/mips/include/asm/mach-bcm63xx/bcm63xx_gpio.h b/arch/mips/include/asm/mach-bcm63xx/bcm63xx_gpio.h
index 76a0b7216af5..43d4da0b1e9f 100644
--- a/arch/mips/include/asm/mach-bcm63xx/bcm63xx_gpio.h
+++ b/arch/mips/include/asm/mach-bcm63xx/bcm63xx_gpio.h
@@ -10,6 +10,10 @@ static inline unsigned long bcm63xx_gpio_count(void)
10 switch (bcm63xx_get_cpu_id()) { 10 switch (bcm63xx_get_cpu_id()) {
11 case BCM6358_CPU_ID: 11 case BCM6358_CPU_ID:
12 return 40; 12 return 40;
13 case BCM6338_CPU_ID:
14 return 8;
15 case BCM6345_CPU_ID:
16 return 16;
13 case BCM6348_CPU_ID: 17 case BCM6348_CPU_ID:
14 default: 18 default:
15 return 37; 19 return 37;
diff --git a/arch/mips/include/asm/mach-bcm63xx/bcm63xx_regs.h b/arch/mips/include/asm/mach-bcm63xx/bcm63xx_regs.h
index ed4ccec87dd4..85fd27509aac 100644
--- a/arch/mips/include/asm/mach-bcm63xx/bcm63xx_regs.h
+++ b/arch/mips/include/asm/mach-bcm63xx/bcm63xx_regs.h
@@ -770,4 +770,3 @@
770#define DMIPSPLLCFG_N2_MASK (0x7 << DMIPSPLLCFG_N2_SHIFT) 770#define DMIPSPLLCFG_N2_MASK (0x7 << DMIPSPLLCFG_N2_SHIFT)
771 771
772#endif /* BCM63XX_REGS_H_ */ 772#endif /* BCM63XX_REGS_H_ */
773
diff --git a/arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h b/arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h
index 6479090a4106..474daaa53497 100644
--- a/arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h
+++ b/arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h
@@ -45,6 +45,8 @@ struct board_info {
45 unsigned int has_ohci0:1; 45 unsigned int has_ohci0:1;
46 unsigned int has_ehci0:1; 46 unsigned int has_ehci0:1;
47 unsigned int has_dsp:1; 47 unsigned int has_dsp:1;
48 unsigned int has_uart0:1;
49 unsigned int has_uart1:1;
48 50
49 /* ethernet config */ 51 /* ethernet config */
50 struct bcm63xx_enet_platform_data enet0; 52 struct bcm63xx_enet_platform_data enet0;
diff --git a/arch/mips/include/asm/mach-bcm63xx/cpu-feature-overrides.h b/arch/mips/include/asm/mach-bcm63xx/cpu-feature-overrides.h
index 71742bac940d..f453c01d0672 100644
--- a/arch/mips/include/asm/mach-bcm63xx/cpu-feature-overrides.h
+++ b/arch/mips/include/asm/mach-bcm63xx/cpu-feature-overrides.h
@@ -24,7 +24,7 @@
24#define cpu_has_smartmips 0 24#define cpu_has_smartmips 0
25#define cpu_has_vtag_icache 0 25#define cpu_has_vtag_icache 0
26 26
27#if !defined(BCMCPU_RUNTIME_DETECT) && (defined(CONFIG_BCMCPU_IS_6348) || defined(CONFIG_CPU_IS_6338) || defined(CONFIG_CPU_IS_BCM6345)) 27#if !defined(BCMCPU_RUNTIME_DETECT) && (defined(CONFIG_BCM63XX_CPU_6348) || defined(CONFIG_BCM63XX_CPU_6345) || defined(CONFIG_BCM63XX_CPU_6338))
28#define cpu_has_dc_aliases 0 28#define cpu_has_dc_aliases 0
29#endif 29#endif
30 30
diff --git a/arch/mips/include/asm/mach-cavium-octeon/cpu-feature-overrides.h b/arch/mips/include/asm/mach-cavium-octeon/cpu-feature-overrides.h
index 425e708d4fb9..bbf054042395 100644
--- a/arch/mips/include/asm/mach-cavium-octeon/cpu-feature-overrides.h
+++ b/arch/mips/include/asm/mach-cavium-octeon/cpu-feature-overrides.h
@@ -58,6 +58,9 @@
58#define cpu_has_vint 0 58#define cpu_has_vint 0
59#define cpu_has_veic 0 59#define cpu_has_veic 0
60#define cpu_hwrena_impl_bits 0xc0000000 60#define cpu_hwrena_impl_bits 0xc0000000
61
62#define kernel_uses_smartmips_rixi (cpu_data[0].cputype == CPU_CAVIUM_OCTEON_PLUS)
63
61#define ARCH_HAS_READ_CURRENT_TIMER 1 64#define ARCH_HAS_READ_CURRENT_TIMER 1
62#define ARCH_HAS_IRQ_PER_CPU 1 65#define ARCH_HAS_IRQ_PER_CPU 1
63#define ARCH_HAS_SPINLOCK_PREFETCH 1 66#define ARCH_HAS_SPINLOCK_PREFETCH 1
diff --git a/arch/mips/include/asm/mach-db1x00/bcsr.h b/arch/mips/include/asm/mach-db1x00/bcsr.h
new file mode 100644
index 000000000000..618d2de02ed3
--- /dev/null
+++ b/arch/mips/include/asm/mach-db1x00/bcsr.h
@@ -0,0 +1,238 @@
1/*
2 * bcsr.h -- Db1xxx/Pb1xxx Devboard CPLD registers ("BCSR") abstraction.
3 *
4 * All Alchemy development boards (except, of course, the weird PB1000)
5 * have a few registers in a CPLD with standardised layout; they mostly
6 * only differ in base address and bit meanings in the RESETS and BOARD
7 * registers.
8 *
9 * All data taken from the official AMD board documentation sheets.
10 */
11
12#ifndef _DB1XXX_BCSR_H_
13#define _DB1XXX_BCSR_H_
14
15
16/* BCSR base addresses on various boards. BCSR base 2 refers to the
17 * physical address of the first HEXLEDS register, which is usually
18 * a variable offset from the WHOAMI register.
19 */
20
21/* DB1000, DB1100, DB1500, PB1100, PB1500 */
22#define DB1000_BCSR_PHYS_ADDR 0x0E000000
23#define DB1000_BCSR_HEXLED_OFS 0x01000000
24
25#define DB1550_BCSR_PHYS_ADDR 0x0F000000
26#define DB1550_BCSR_HEXLED_OFS 0x00400000
27
28#define PB1550_BCSR_PHYS_ADDR 0x0F000000
29#define PB1550_BCSR_HEXLED_OFS 0x00800000
30
31#define DB1200_BCSR_PHYS_ADDR 0x19800000
32#define DB1200_BCSR_HEXLED_OFS 0x00400000
33
34#define PB1200_BCSR_PHYS_ADDR 0x0D800000
35#define PB1200_BCSR_HEXLED_OFS 0x00400000
36
37
38enum bcsr_id {
39 /* BCSR base 1 */
40 BCSR_WHOAMI = 0,
41 BCSR_STATUS,
42 BCSR_SWITCHES,
43 BCSR_RESETS,
44 BCSR_PCMCIA,
45 BCSR_BOARD,
46 BCSR_LEDS,
47 BCSR_SYSTEM,
48 /* Au1200/1300 based boards */
49 BCSR_INTCLR,
50 BCSR_INTSET,
51 BCSR_MASKCLR,
52 BCSR_MASKSET,
53 BCSR_SIGSTAT,
54 BCSR_INTSTAT,
55
56 /* BCSR base 2 */
57 BCSR_HEXLEDS,
58 BCSR_RSVD1,
59 BCSR_HEXCLEAR,
60
61 BCSR_CNT,
62};
63
64/* register offsets, valid for all Db1xxx/Pb1xxx boards */
65#define BCSR_REG_WHOAMI 0x00
66#define BCSR_REG_STATUS 0x04
67#define BCSR_REG_SWITCHES 0x08
68#define BCSR_REG_RESETS 0x0c
69#define BCSR_REG_PCMCIA 0x10
70#define BCSR_REG_BOARD 0x14
71#define BCSR_REG_LEDS 0x18
72#define BCSR_REG_SYSTEM 0x1c
73/* Au1200/Au1300 based boards: CPLD IRQ muxer */
74#define BCSR_REG_INTCLR 0x20
75#define BCSR_REG_INTSET 0x24
76#define BCSR_REG_MASKCLR 0x28
77#define BCSR_REG_MASKSET 0x2c
78#define BCSR_REG_SIGSTAT 0x30
79#define BCSR_REG_INTSTAT 0x34
80
81/* hexled control, offset from BCSR base 2 */
82#define BCSR_REG_HEXLEDS 0x00
83#define BCSR_REG_HEXCLEAR 0x08
84
85/*
86 * Register Bits and Pieces.
87 */
88#define BCSR_WHOAMI_DCID(x) ((x) & 0xf)
89#define BCSR_WHOAMI_CPLD(x) (((x) >> 4) & 0xf)
90#define BCSR_WHOAMI_BOARD(x) (((x) >> 8) & 0xf)
91
92/* register "WHOAMI" bits 11:8 identify the board */
93enum bcsr_whoami_boards {
94 BCSR_WHOAMI_PB1500 = 1,
95 BCSR_WHOAMI_PB1500R2,
96 BCSR_WHOAMI_PB1100,
97 BCSR_WHOAMI_DB1000,
98 BCSR_WHOAMI_DB1100,
99 BCSR_WHOAMI_DB1500,
100 BCSR_WHOAMI_DB1550,
101 BCSR_WHOAMI_PB1550_DDR,
102 BCSR_WHOAMI_PB1550 = BCSR_WHOAMI_PB1550_DDR,
103 BCSR_WHOAMI_PB1550_SDR,
104 BCSR_WHOAMI_PB1200_DDR1,
105 BCSR_WHOAMI_PB1200 = BCSR_WHOAMI_PB1200_DDR1,
106 BCSR_WHOAMI_PB1200_DDR2,
107 BCSR_WHOAMI_DB1200,
108};
109
110/* STATUS reg. Unless otherwise noted, they're valid on all boards.
111 * PB1200 = DB1200.
112 */
113#define BCSR_STATUS_PC0VS 0x0003
114#define BCSR_STATUS_PC1VS 0x000C
115#define BCSR_STATUS_PC0FI 0x0010
116#define BCSR_STATUS_PC1FI 0x0020
117#define BCSR_STATUS_PB1550_SWAPBOOT 0x0040
118#define BCSR_STATUS_SRAMWIDTH 0x0080
119#define BCSR_STATUS_FLASHBUSY 0x0100
120#define BCSR_STATUS_ROMBUSY 0x0400
121#define BCSR_STATUS_SD0WP 0x0400 /* DB1200 */
122#define BCSR_STATUS_SD1WP 0x0800
123#define BCSR_STATUS_USBOTGID 0x0800 /* PB/DB1550 */
124#define BCSR_STATUS_DB1000_SWAPBOOT 0x2000
125#define BCSR_STATUS_DB1200_SWAPBOOT 0x0040 /* DB1200 */
126#define BCSR_STATUS_IDECBLID 0x0200 /* DB1200 */
127#define BCSR_STATUS_DB1200_U0RXD 0x1000 /* DB1200 */
128#define BCSR_STATUS_DB1200_U1RXD 0x2000 /* DB1200 */
129#define BCSR_STATUS_FLASHDEN 0xC000
130#define BCSR_STATUS_DB1550_U0RXD 0x1000 /* DB1550 */
131#define BCSR_STATUS_DB1550_U3RXD 0x2000 /* DB1550 */
132#define BCSR_STATUS_PB1550_U0RXD 0x1000 /* PB1550 */
133#define BCSR_STATUS_PB1550_U1RXD 0x2000 /* PB1550 */
134#define BCSR_STATUS_PB1550_U3RXD 0x8000 /* PB1550 */
135
136
137/* DB/PB1000,1100,1500,1550 */
138#define BCSR_RESETS_PHY0 0x0001
139#define BCSR_RESETS_PHY1 0x0002
140#define BCSR_RESETS_DC 0x0004
141#define BCSR_RESETS_FIR_SEL 0x2000
142#define BCSR_RESETS_IRDA_MODE_MASK 0xC000
143#define BCSR_RESETS_IRDA_MODE_FULL 0x0000
144#define BCSR_RESETS_PB1550_WSCFSM 0x2000
145#define BCSR_RESETS_IRDA_MODE_OFF 0x4000
146#define BCSR_RESETS_IRDA_MODE_2_3 0x8000
147#define BCSR_RESETS_IRDA_MODE_1_3 0xC000
148#define BCSR_RESETS_DMAREQ 0x8000 /* PB1550 */
149
150#define BCSR_BOARD_PCIM66EN 0x0001
151#define BCSR_BOARD_SD0PWR 0x0040
152#define BCSR_BOARD_SD1PWR 0x0080
153#define BCSR_BOARD_PCIM33 0x0100
154#define BCSR_BOARD_PCIEXTARB 0x0200
155#define BCSR_BOARD_GPIO200RST 0x0400
156#define BCSR_BOARD_PCICLKOUT 0x0800
157#define BCSR_BOARD_PCICFG 0x1000
158#define BCSR_BOARD_SPISEL 0x4000 /* PB/DB1550 */
159#define BCSR_BOARD_SD0WP 0x4000 /* DB1100 */
160#define BCSR_BOARD_SD1WP 0x8000 /* DB1100 */
161
162
163/* DB/PB1200 */
164#define BCSR_RESETS_ETH 0x0001
165#define BCSR_RESETS_CAMERA 0x0002
166#define BCSR_RESETS_DC 0x0004
167#define BCSR_RESETS_IDE 0x0008
168#define BCSR_RESETS_TV 0x0010 /* DB1200 */
169/* Not resets but in the same register */
170#define BCSR_RESETS_PWMR1MUX 0x0800 /* DB1200 */
171#define BCSR_RESETS_PB1200_WSCFSM 0x0800 /* PB1200 */
172#define BCSR_RESETS_PSC0MUX 0x1000
173#define BCSR_RESETS_PSC1MUX 0x2000
174#define BCSR_RESETS_SPISEL 0x4000
175#define BCSR_RESETS_SD1MUX 0x8000 /* PB1200 */
176
177#define BCSR_BOARD_LCDVEE 0x0001
178#define BCSR_BOARD_LCDVDD 0x0002
179#define BCSR_BOARD_LCDBL 0x0004
180#define BCSR_BOARD_CAMSNAP 0x0010
181#define BCSR_BOARD_CAMPWR 0x0020
182#define BCSR_BOARD_SD0PWR 0x0040
183
184
185#define BCSR_SWITCHES_DIP 0x00FF
186#define BCSR_SWITCHES_DIP_1 0x0080
187#define BCSR_SWITCHES_DIP_2 0x0040
188#define BCSR_SWITCHES_DIP_3 0x0020
189#define BCSR_SWITCHES_DIP_4 0x0010
190#define BCSR_SWITCHES_DIP_5 0x0008
191#define BCSR_SWITCHES_DIP_6 0x0004
192#define BCSR_SWITCHES_DIP_7 0x0002
193#define BCSR_SWITCHES_DIP_8 0x0001
194#define BCSR_SWITCHES_ROTARY 0x0F00
195
196
197#define BCSR_PCMCIA_PC0VPP 0x0003
198#define BCSR_PCMCIA_PC0VCC 0x000C
199#define BCSR_PCMCIA_PC0DRVEN 0x0010
200#define BCSR_PCMCIA_PC0RST 0x0080
201#define BCSR_PCMCIA_PC1VPP 0x0300
202#define BCSR_PCMCIA_PC1VCC 0x0C00
203#define BCSR_PCMCIA_PC1DRVEN 0x1000
204#define BCSR_PCMCIA_PC1RST 0x8000
205
206
207#define BCSR_LEDS_DECIMALS 0x0003
208#define BCSR_LEDS_LED0 0x0100
209#define BCSR_LEDS_LED1 0x0200
210#define BCSR_LEDS_LED2 0x0400
211#define BCSR_LEDS_LED3 0x0800
212
213
214#define BCSR_SYSTEM_RESET 0x8000 /* clear to reset */
215#define BCSR_SYSTEM_PWROFF 0x4000 /* set to power off */
216#define BCSR_SYSTEM_VDDI 0x001F /* PB1xxx boards */
217
218
219
220
221/* initialize BCSR for a board. Provide the PHYSICAL addresses of both
222 * BCSR spaces.
223 */
224void __init bcsr_init(unsigned long bcsr1_phys, unsigned long bcsr2_phys);
225
226/* read a board register */
227unsigned short bcsr_read(enum bcsr_id reg);
228
229/* write to a board register */
230void bcsr_write(enum bcsr_id reg, unsigned short val);
231
232/* modify a register. clear bits set in 'clr', set bits set in 'set' */
233void bcsr_mod(enum bcsr_id reg, unsigned short clr, unsigned short set);
234
235/* install CPLD IRQ demuxer (DB1200/PB1200) */
236void __init bcsr_init_irq(int csc_start, int csc_end, int hook_irq);
237
238#endif
diff --git a/arch/mips/include/asm/mach-db1x00/db1200.h b/arch/mips/include/asm/mach-db1x00/db1200.h
index 27f26102b1bb..3404248f5094 100644
--- a/arch/mips/include/asm/mach-db1x00/db1200.h
+++ b/arch/mips/include/asm/mach-db1x00/db1200.h
@@ -25,133 +25,9 @@
25#define __ASM_DB1200_H 25#define __ASM_DB1200_H
26 26
27#include <linux/types.h> 27#include <linux/types.h>
28#include <asm/mach-au1x00/au1000.h>
28#include <asm/mach-au1x00/au1xxx_psc.h> 29#include <asm/mach-au1x00/au1xxx_psc.h>
29 30
30#define DBDMA_AC97_TX_CHAN DSCR_CMD0_PSC1_TX
31#define DBDMA_AC97_RX_CHAN DSCR_CMD0_PSC1_RX
32#define DBDMA_I2S_TX_CHAN DSCR_CMD0_PSC1_TX
33#define DBDMA_I2S_RX_CHAN DSCR_CMD0_PSC1_RX
34
35/*
36 * SPI and SMB are muxed on the DBAu1200 board.
37 * Refer to board documentation.
38 */
39#define SPI_PSC_BASE PSC0_BASE_ADDR
40#define SMBUS_PSC_BASE PSC0_BASE_ADDR
41/*
42 * AC'97 and I2S are muxed on the DBAu1200 board.
43 * Refer to board documentation.
44 */
45#define AC97_PSC_BASE PSC1_BASE_ADDR
46#define I2S_PSC_BASE PSC1_BASE_ADDR
47
48#define BCSR_KSEG1_ADDR 0xB9800000
49
50typedef volatile struct
51{
52 /*00*/ u16 whoami;
53 u16 reserved0;
54 /*04*/ u16 status;
55 u16 reserved1;
56 /*08*/ u16 switches;
57 u16 reserved2;
58 /*0C*/ u16 resets;
59 u16 reserved3;
60
61 /*10*/ u16 pcmcia;
62 u16 reserved4;
63 /*14*/ u16 board;
64 u16 reserved5;
65 /*18*/ u16 disk_leds;
66 u16 reserved6;
67 /*1C*/ u16 system;
68 u16 reserved7;
69
70 /*20*/ u16 intclr;
71 u16 reserved8;
72 /*24*/ u16 intset;
73 u16 reserved9;
74 /*28*/ u16 intclr_mask;
75 u16 reserved10;
76 /*2C*/ u16 intset_mask;
77 u16 reserved11;
78
79 /*30*/ u16 sig_status;
80 u16 reserved12;
81 /*34*/ u16 int_status;
82 u16 reserved13;
83 /*38*/ u16 reserved14;
84 u16 reserved15;
85 /*3C*/ u16 reserved16;
86 u16 reserved17;
87
88} BCSR;
89
90static BCSR * const bcsr = (BCSR *)BCSR_KSEG1_ADDR;
91
92/*
93 * Register bit definitions for the BCSRs
94 */
95#define BCSR_WHOAMI_DCID 0x000F
96#define BCSR_WHOAMI_CPLD 0x00F0
97#define BCSR_WHOAMI_BOARD 0x0F00
98
99#define BCSR_STATUS_PCMCIA0VS 0x0003
100#define BCSR_STATUS_PCMCIA1VS 0x000C
101#define BCSR_STATUS_SWAPBOOT 0x0040
102#define BCSR_STATUS_FLASHBUSY 0x0100
103#define BCSR_STATUS_IDECBLID 0x0200
104#define BCSR_STATUS_SD0WP 0x0400
105#define BCSR_STATUS_U0RXD 0x1000
106#define BCSR_STATUS_U1RXD 0x2000
107
108#define BCSR_SWITCHES_OCTAL 0x00FF
109#define BCSR_SWITCHES_DIP_1 0x0080
110#define BCSR_SWITCHES_DIP_2 0x0040
111#define BCSR_SWITCHES_DIP_3 0x0020
112#define BCSR_SWITCHES_DIP_4 0x0010
113#define BCSR_SWITCHES_DIP_5 0x0008
114#define BCSR_SWITCHES_DIP_6 0x0004
115#define BCSR_SWITCHES_DIP_7 0x0002
116#define BCSR_SWITCHES_DIP_8 0x0001
117#define BCSR_SWITCHES_ROTARY 0x0F00
118
119#define BCSR_RESETS_ETH 0x0001
120#define BCSR_RESETS_CAMERA 0x0002
121#define BCSR_RESETS_DC 0x0004
122#define BCSR_RESETS_IDE 0x0008
123#define BCSR_RESETS_TV 0x0010
124/* Not resets but in the same register */
125#define BCSR_RESETS_PWMR1MUX 0x0800
126#define BCSR_RESETS_PCS0MUX 0x1000
127#define BCSR_RESETS_PCS1MUX 0x2000
128#define BCSR_RESETS_SPISEL 0x4000
129
130#define BCSR_PCMCIA_PC0VPP 0x0003
131#define BCSR_PCMCIA_PC0VCC 0x000C
132#define BCSR_PCMCIA_PC0DRVEN 0x0010
133#define BCSR_PCMCIA_PC0RST 0x0080
134#define BCSR_PCMCIA_PC1VPP 0x0300
135#define BCSR_PCMCIA_PC1VCC 0x0C00
136#define BCSR_PCMCIA_PC1DRVEN 0x1000
137#define BCSR_PCMCIA_PC1RST 0x8000
138
139#define BCSR_BOARD_LCDVEE 0x0001
140#define BCSR_BOARD_LCDVDD 0x0002
141#define BCSR_BOARD_LCDBL 0x0004
142#define BCSR_BOARD_CAMSNAP 0x0010
143#define BCSR_BOARD_CAMPWR 0x0020
144#define BCSR_BOARD_SD0PWR 0x0040
145
146#define BCSR_LEDS_DECIMALS 0x0003
147#define BCSR_LEDS_LED0 0x0100
148#define BCSR_LEDS_LED1 0x0200
149#define BCSR_LEDS_LED2 0x0400
150#define BCSR_LEDS_LED3 0x0800
151
152#define BCSR_SYSTEM_POWEROFF 0x4000
153#define BCSR_SYSTEM_RESET 0x8000
154
155/* Bit positions for the different interrupt sources */ 31/* Bit positions for the different interrupt sources */
156#define BCSR_INT_IDE 0x0001 32#define BCSR_INT_IDE 0x0001
157#define BCSR_INT_ETH 0x0002 33#define BCSR_INT_ETH 0x0002
@@ -168,17 +44,15 @@ static BCSR * const bcsr = (BCSR *)BCSR_KSEG1_ADDR;
168#define BCSR_INT_SD0INSERT 0x1000 44#define BCSR_INT_SD0INSERT 0x1000
169#define BCSR_INT_SD0EJECT 0x2000 45#define BCSR_INT_SD0EJECT 0x2000
170 46
171#define SMC91C111_PHYS_ADDR 0x19000300
172#define SMC91C111_INT DB1200_ETH_INT
173
174#define IDE_PHYS_ADDR 0x18800000 47#define IDE_PHYS_ADDR 0x18800000
175#define IDE_REG_SHIFT 5 48#define IDE_REG_SHIFT 5
176#define IDE_PHYS_LEN (16 << IDE_REG_SHIFT)
177#define IDE_INT DB1200_IDE_INT
178#define IDE_DDMA_REQ DSCR_CMD0_DMA_REQ1 49#define IDE_DDMA_REQ DSCR_CMD0_DMA_REQ1
179#define IDE_RQSIZE 128 50#define IDE_RQSIZE 128
180 51
181#define NAND_PHYS_ADDR 0x20000000 52#define DB1200_IDE_PHYS_ADDR IDE_PHYS_ADDR
53#define DB1200_IDE_PHYS_LEN (16 << IDE_REG_SHIFT)
54#define DB1200_ETH_PHYS_ADDR 0x19000300
55#define DB1200_NAND_PHYS_ADDR 0x20000000
182 56
183/* 57/*
184 * External Interrupts for DBAu1200 as of 8/6/2004. 58 * External Interrupts for DBAu1200 as of 8/6/2004.
@@ -188,7 +62,7 @@ static BCSR * const bcsr = (BCSR *)BCSR_KSEG1_ADDR;
188 * Example: IDE bis pos is = 64 - 64 62 * Example: IDE bis pos is = 64 - 64
189 * ETH bit pos is = 65 - 64 63 * ETH bit pos is = 65 - 64
190 */ 64 */
191enum external_pb1200_ints { 65enum external_db1200_ints {
192 DB1200_INT_BEGIN = AU1000_MAX_INTR + 1, 66 DB1200_INT_BEGIN = AU1000_MAX_INTR + 1,
193 67
194 DB1200_IDE_INT = DB1200_INT_BEGIN, 68 DB1200_IDE_INT = DB1200_INT_BEGIN,
@@ -209,22 +83,4 @@ enum external_pb1200_ints {
209 DB1200_INT_END = DB1200_INT_BEGIN + 15, 83 DB1200_INT_END = DB1200_INT_BEGIN + 15,
210}; 84};
211 85
212
213/*
214 * DBAu1200 specific PCMCIA defines for drivers/pcmcia/au1000_db1x00.c
215 */
216#define PCMCIA_MAX_SOCK 1
217#define PCMCIA_NUM_SOCKS (PCMCIA_MAX_SOCK + 1)
218
219/* VPP/VCC */
220#define SET_VCC_VPP(VCC, VPP, SLOT) \
221 ((((VCC) << 2) | ((VPP) << 0)) << ((SLOT) * 8))
222
223#define BOARD_PC0_INT DB1200_PC0_INT
224#define BOARD_PC1_INT DB1200_PC1_INT
225#define BOARD_CARD_INSERTED(SOCKET) bcsr->sig_status & (1 << (8 + (2 * SOCKET)))
226
227/* NAND chip select */
228#define NAND_CS 1
229
230#endif /* __ASM_DB1200_H */ 86#endif /* __ASM_DB1200_H */
diff --git a/arch/mips/include/asm/mach-db1x00/db1x00.h b/arch/mips/include/asm/mach-db1x00/db1x00.h
index 1a515b8c870f..a919dac525a1 100644
--- a/arch/mips/include/asm/mach-db1x00/db1x00.h
+++ b/arch/mips/include/asm/mach-db1x00/db1x00.h
@@ -41,111 +41,11 @@
41#define SMBUS_PSC_BASE PSC2_BASE_ADDR 41#define SMBUS_PSC_BASE PSC2_BASE_ADDR
42#define I2S_PSC_BASE PSC3_BASE_ADDR 42#define I2S_PSC_BASE PSC3_BASE_ADDR
43 43
44#define BCSR_KSEG1_ADDR 0xAF000000
45#define NAND_PHYS_ADDR 0x20000000 44#define NAND_PHYS_ADDR 0x20000000
46 45
47#else
48#define BCSR_KSEG1_ADDR 0xAE000000
49#endif 46#endif
50 47
51/* 48/*
52 * Overlay data structure of the DBAu1x00 board registers.
53 * Registers are located at physical 0E0000xx, KSEG1 0xAE0000xx.
54 */
55typedef volatile struct
56{
57 /*00*/ unsigned short whoami;
58 unsigned short reserved0;
59 /*04*/ unsigned short status;
60 unsigned short reserved1;
61 /*08*/ unsigned short switches;
62 unsigned short reserved2;
63 /*0C*/ unsigned short resets;
64 unsigned short reserved3;
65 /*10*/ unsigned short pcmcia;
66 unsigned short reserved4;
67 /*14*/ unsigned short specific;
68 unsigned short reserved5;
69 /*18*/ unsigned short leds;
70 unsigned short reserved6;
71 /*1C*/ unsigned short swreset;
72 unsigned short reserved7;
73
74} BCSR;
75
76
77/*
78 * Register/mask bit definitions for the BCSRs
79 */
80#define BCSR_WHOAMI_DCID 0x000F
81#define BCSR_WHOAMI_CPLD 0x00F0
82#define BCSR_WHOAMI_BOARD 0x0F00
83
84#define BCSR_STATUS_PC0VS 0x0003
85#define BCSR_STATUS_PC1VS 0x000C
86#define BCSR_STATUS_PC0FI 0x0010
87#define BCSR_STATUS_PC1FI 0x0020
88#define BCSR_STATUS_FLASHBUSY 0x0100
89#define BCSR_STATUS_ROMBUSY 0x0400
90#define BCSR_STATUS_SWAPBOOT 0x2000
91#define BCSR_STATUS_FLASHDEN 0xC000
92
93#define BCSR_SWITCHES_DIP 0x00FF
94#define BCSR_SWITCHES_DIP_1 0x0080
95#define BCSR_SWITCHES_DIP_2 0x0040
96#define BCSR_SWITCHES_DIP_3 0x0020
97#define BCSR_SWITCHES_DIP_4 0x0010
98#define BCSR_SWITCHES_DIP_5 0x0008
99#define BCSR_SWITCHES_DIP_6 0x0004
100#define BCSR_SWITCHES_DIP_7 0x0002
101#define BCSR_SWITCHES_DIP_8 0x0001
102#define BCSR_SWITCHES_ROTARY 0x0F00
103
104#define BCSR_RESETS_PHY0 0x0001
105#define BCSR_RESETS_PHY1 0x0002
106#define BCSR_RESETS_DC 0x0004
107#define BCSR_RESETS_FIR_SEL 0x2000
108#define BCSR_RESETS_IRDA_MODE_MASK 0xC000
109#define BCSR_RESETS_IRDA_MODE_FULL 0x0000
110#define BCSR_RESETS_IRDA_MODE_OFF 0x4000
111#define BCSR_RESETS_IRDA_MODE_2_3 0x8000
112#define BCSR_RESETS_IRDA_MODE_1_3 0xC000
113
114#define BCSR_PCMCIA_PC0VPP 0x0003
115#define BCSR_PCMCIA_PC0VCC 0x000C
116#define BCSR_PCMCIA_PC0DRVEN 0x0010
117#define BCSR_PCMCIA_PC0RST 0x0080
118#define BCSR_PCMCIA_PC1VPP 0x0300
119#define BCSR_PCMCIA_PC1VCC 0x0C00
120#define BCSR_PCMCIA_PC1DRVEN 0x1000
121#define BCSR_PCMCIA_PC1RST 0x8000
122
123#define BCSR_BOARD_PCIM66EN 0x0001
124#define BCSR_BOARD_SD0_PWR 0x0040
125#define BCSR_BOARD_SD1_PWR 0x0080
126#define BCSR_BOARD_PCIM33 0x0100
127#define BCSR_BOARD_GPIO200RST 0x0400
128#define BCSR_BOARD_PCICFG 0x1000
129#define BCSR_BOARD_SD0_WP 0x4000
130#define BCSR_BOARD_SD1_WP 0x8000
131
132#define BCSR_LEDS_DECIMALS 0x0003
133#define BCSR_LEDS_LED0 0x0100
134#define BCSR_LEDS_LED1 0x0200
135#define BCSR_LEDS_LED2 0x0400
136#define BCSR_LEDS_LED3 0x0800
137
138#define BCSR_SWRESET_RESET 0x0080
139
140/* PCMCIA DBAu1x00 specific defines */
141#define PCMCIA_MAX_SOCK 1
142#define PCMCIA_NUM_SOCKS (PCMCIA_MAX_SOCK + 1)
143
144/* VPP/VCC */
145#define SET_VCC_VPP(VCC, VPP, SLOT)\
146 ((((VCC) << 2) | ((VPP) << 0)) << ((SLOT) * 8))
147
148/*
149 * NAND defines 49 * NAND defines
150 * 50 *
151 * Timing values as described in databook, * ns value stripped of the 51 * Timing values as described in databook, * ns value stripped of the
diff --git a/arch/mips/include/asm/mach-excite/cpu-feature-overrides.h b/arch/mips/include/asm/mach-excite/cpu-feature-overrides.h
deleted file mode 100644
index 107104c3cd12..000000000000
--- a/arch/mips/include/asm/mach-excite/cpu-feature-overrides.h
+++ /dev/null
@@ -1,48 +0,0 @@
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) 2004 Thomas Koeller <thomas.koeller@baslerweb.com>
7 * Copyright (C) 2007 Ralf Baechle (ralf@linux-mips.org)
8 */
9#ifndef __ASM_MACH_EXCITE_CPU_FEATURE_OVERRIDES_H
10#define __ASM_MACH_EXCITE_CPU_FEATURE_OVERRIDES_H
11
12/*
13 * Basler eXcite has an RM9122 processor.
14 */
15#define cpu_has_watch 1
16#define cpu_has_mips16 0
17#define cpu_has_divec 0
18#define cpu_has_vce 0
19#define cpu_has_cache_cdex_p 0
20#define cpu_has_cache_cdex_s 0
21#define cpu_has_prefetch 1
22#define cpu_has_mcheck 0
23#define cpu_has_ejtag 0
24
25#define cpu_has_llsc 1
26#define cpu_has_vtag_icache 0
27#define cpu_has_dc_aliases 0
28#define cpu_has_ic_fills_f_dc 0
29#define cpu_has_dsp 0
30#define cpu_icache_snoops_remote_store 0
31#define cpu_has_mipsmt 0
32#define cpu_has_userlocal 0
33
34#define cpu_has_nofpuex 0
35#define cpu_has_64bits 1
36
37#define cpu_has_mips32r1 0
38#define cpu_has_mips32r2 0
39#define cpu_has_mips64r1 0
40#define cpu_has_mips64r2 0
41
42#define cpu_has_inclusive_pcaches 0
43
44#define cpu_dcache_line_size() 32
45#define cpu_icache_line_size() 32
46#define cpu_scache_line_size() 32
47
48#endif /* __ASM_MACH_EXCITE_CPU_FEATURE_OVERRIDES_H */
diff --git a/arch/mips/include/asm/mach-excite/excite.h b/arch/mips/include/asm/mach-excite/excite.h
deleted file mode 100644
index 4c29ba44992c..000000000000
--- a/arch/mips/include/asm/mach-excite/excite.h
+++ /dev/null
@@ -1,154 +0,0 @@
1#ifndef __EXCITE_H__
2#define __EXCITE_H__
3
4#include <linux/init.h>
5#include <asm/addrspace.h>
6#include <asm/types.h>
7
8#define EXCITE_CPU_EXT_CLOCK 100000000
9
10#if !defined(__ASSEMBLY__)
11void __init excite_kgdb_init(void);
12void excite_procfs_init(void);
13extern unsigned long memsize;
14extern char modetty[];
15extern u32 unit_id;
16#endif
17
18/* Base name for XICAP devices */
19#define XICAP_NAME "xicap_gpi"
20
21/* OCD register offsets */
22#define LKB0 0x0038
23#define LKB5 0x0128
24#define LKM5 0x012C
25#define LKB7 0x0138
26#define LKM7 0x013c
27#define LKB8 0x0140
28#define LKM8 0x0144
29#define LKB9 0x0148
30#define LKM9 0x014c
31#define LKB10 0x0150
32#define LKM10 0x0154
33#define LKB11 0x0158
34#define LKM11 0x015c
35#define LKB12 0x0160
36#define LKM12 0x0164
37#define LKB13 0x0168
38#define LKM13 0x016c
39#define LDP0 0x0200
40#define LDP1 0x0210
41#define LDP2 0x0220
42#define LDP3 0x0230
43#define INTPIN0 0x0A40
44#define INTPIN1 0x0A44
45#define INTPIN2 0x0A48
46#define INTPIN3 0x0A4C
47#define INTPIN4 0x0A50
48#define INTPIN5 0x0A54
49#define INTPIN6 0x0A58
50#define INTPIN7 0x0A5C
51
52
53
54
55/* TITAN register offsets */
56#define CPRR 0x0004
57#define CPDSR 0x0008
58#define CPTC0R 0x000c
59#define CPTC1R 0x0010
60#define CPCFG0 0x0020
61#define CPCFG1 0x0024
62#define CPDST0A 0x0028
63#define CPDST0B 0x002c
64#define CPDST1A 0x0030
65#define CPDST1B 0x0034
66#define CPXDSTA 0x0038
67#define CPXDSTB 0x003c
68#define CPXCISRA 0x0048
69#define CPXCISRB 0x004c
70#define CPGIG0ER 0x0050
71#define CPGIG1ER 0x0054
72#define CPGRWL 0x0068
73#define CPURSLMT 0x00f8
74#define UACFG 0x0200
75#define UAINTS 0x0204
76#define SDRXFCIE 0x4828
77#define SDTXFCIE 0x4928
78#define INTP0Status0 0x1B00
79#define INTP0Mask0 0x1B04
80#define INTP0Set0 0x1B08
81#define INTP0Clear0 0x1B0C
82#define GXCFG 0x5000
83#define GXDMADRPFX 0x5018
84#define GXDMA_DESCADR 0x501c
85#define GXCH0TDESSTRT 0x5054
86
87/* IRQ definitions */
88#define NMICONFIG 0xac0
89#define TITAN_MSGINT 0xc4
90#define TITAN_IRQ ((TITAN_MSGINT / 0x20) + 2)
91#define FPGA0_MSGINT 0x5a
92#define FPGA0_IRQ ((FPGA0_MSGINT / 0x20) + 2)
93#define FPGA1_MSGINT 0x7b
94#define FPGA1_IRQ ((FPGA1_MSGINT / 0x20) + 2)
95#define PHY_MSGINT 0x9c
96#define PHY_IRQ ((PHY_MSGINT / 0x20) + 2)
97
98#if defined(CONFIG_BASLER_EXCITE_PROTOTYPE)
99/* Pre-release units used interrupt pin #9 */
100#define USB_IRQ 11
101#else
102/* Re-designed units use interrupt pin #1 */
103#define USB_MSGINT 0x39
104#define USB_IRQ ((USB_MSGINT / 0x20) + 2)
105#endif
106#define TIMER_IRQ 12
107
108
109/* Device address ranges */
110#define EXCITE_OFFS_OCD 0x1fffc000
111#define EXCITE_SIZE_OCD (16 * 1024)
112#define EXCITE_PHYS_OCD CPHYSADDR(EXCITE_OFFS_OCD)
113#define EXCITE_ADDR_OCD CKSEG1ADDR(EXCITE_OFFS_OCD)
114
115#define EXCITE_OFFS_SCRAM 0x1fffa000
116#define EXCITE_SIZE_SCRAM (8 << 10)
117#define EXCITE_PHYS_SCRAM CPHYSADDR(EXCITE_OFFS_SCRAM)
118#define EXCITE_ADDR_SCRAM CKSEG1ADDR(EXCITE_OFFS_SCRAM)
119
120#define EXCITE_OFFS_PCI_IO 0x1fff8000
121#define EXCITE_SIZE_PCI_IO (8 << 10)
122#define EXCITE_PHYS_PCI_IO CPHYSADDR(EXCITE_OFFS_PCI_IO)
123#define EXCITE_ADDR_PCI_IO CKSEG1ADDR(EXCITE_OFFS_PCI_IO)
124
125#define EXCITE_OFFS_TITAN 0x1fff0000
126#define EXCITE_SIZE_TITAN (32 << 10)
127#define EXCITE_PHYS_TITAN CPHYSADDR(EXCITE_OFFS_TITAN)
128#define EXCITE_ADDR_TITAN CKSEG1ADDR(EXCITE_OFFS_TITAN)
129
130#define EXCITE_OFFS_PCI_MEM 0x1ffe0000
131#define EXCITE_SIZE_PCI_MEM (64 << 10)
132#define EXCITE_PHYS_PCI_MEM CPHYSADDR(EXCITE_OFFS_PCI_MEM)
133#define EXCITE_ADDR_PCI_MEM CKSEG1ADDR(EXCITE_OFFS_PCI_MEM)
134
135#define EXCITE_OFFS_FPGA 0x1ffdc000
136#define EXCITE_SIZE_FPGA (16 << 10)
137#define EXCITE_PHYS_FPGA CPHYSADDR(EXCITE_OFFS_FPGA)
138#define EXCITE_ADDR_FPGA CKSEG1ADDR(EXCITE_OFFS_FPGA)
139
140#define EXCITE_OFFS_NAND 0x1ffd8000
141#define EXCITE_SIZE_NAND (16 << 10)
142#define EXCITE_PHYS_NAND CPHYSADDR(EXCITE_OFFS_NAND)
143#define EXCITE_ADDR_NAND CKSEG1ADDR(EXCITE_OFFS_NAND)
144
145#define EXCITE_OFFS_BOOTROM 0x1f000000
146#define EXCITE_SIZE_BOOTROM (8 << 20)
147#define EXCITE_PHYS_BOOTROM CPHYSADDR(EXCITE_OFFS_BOOTROM)
148#define EXCITE_ADDR_BOOTROM CKSEG1ADDR(EXCITE_OFFS_BOOTROM)
149
150/* FPGA address offsets */
151#define EXCITE_FPGA_DPR 0x0104 /* dual-ported ram */
152#define EXCITE_FPGA_SYSCTL 0x0200 /* system control register block */
153
154#endif /* __EXCITE_H__ */
diff --git a/arch/mips/include/asm/mach-excite/excite_fpga.h b/arch/mips/include/asm/mach-excite/excite_fpga.h
deleted file mode 100644
index 0a1ef69bece7..000000000000
--- a/arch/mips/include/asm/mach-excite/excite_fpga.h
+++ /dev/null
@@ -1,80 +0,0 @@
1#ifndef EXCITE_FPGA_H_INCLUDED
2#define EXCITE_FPGA_H_INCLUDED
3
4
5/**
6 * Address alignment of the individual FPGA bytes.
7 * The address arrangement of the individual bytes of the FPGA is two
8 * byte aligned at the embedded MK2 platform.
9 */
10#ifdef EXCITE_CCI_FPGA_MK2
11typedef unsigned char excite_cci_fpga_align_t __attribute__ ((aligned(2)));
12#else
13typedef unsigned char excite_cci_fpga_align_t;
14#endif
15
16
17/**
18 * Size of Dual Ported RAM.
19 */
20#define EXCITE_DPR_SIZE 263
21
22
23/**
24 * Size of Reserved Status Fields in Dual Ported RAM.
25 */
26#define EXCITE_DPR_STATUS_SIZE 7
27
28
29
30/**
31 * FPGA.
32 * Hardware register layout of the FPGA interface. The FPGA must accessed
33 * byte wise solely.
34 * @see EXCITE_CCI_DPR_MK2
35 */
36typedef struct excite_fpga {
37
38 /**
39 * Dual Ported RAM.
40 */
41 excite_cci_fpga_align_t dpr[EXCITE_DPR_SIZE];
42
43 /**
44 * Status.
45 */
46 excite_cci_fpga_align_t status[EXCITE_DPR_STATUS_SIZE];
47
48#ifdef EXCITE_CCI_FPGA_MK2
49 /**
50 * RM9000 Interrupt.
51 * Write access initiates interrupt at the RM9000 (MIPS) processor of the eXcite.
52 */
53 excite_cci_fpga_align_t rm9k_int;
54#else
55 /**
56 * MK2 Interrupt.
57 * Write access initiates interrupt at the ARM processor of the MK2.
58 */
59 excite_cci_fpga_align_t mk2_int;
60
61 excite_cci_fpga_align_t gap[0x1000-0x10f];
62
63 /**
64 * IRQ Source/Acknowledge.
65 */
66 excite_cci_fpga_align_t rm9k_irq_src;
67
68 /**
69 * IRQ Mask.
70 * Set bits enable the related interrupt.
71 */
72 excite_cci_fpga_align_t rm9k_irq_mask;
73#endif
74
75
76} excite_fpga;
77
78
79
80#endif /* ndef EXCITE_FPGA_H_INCLUDED */
diff --git a/arch/mips/include/asm/mach-excite/excite_nandflash.h b/arch/mips/include/asm/mach-excite/excite_nandflash.h
deleted file mode 100644
index c4cf6140622e..000000000000
--- a/arch/mips/include/asm/mach-excite/excite_nandflash.h
+++ /dev/null
@@ -1,7 +0,0 @@
1#ifndef __EXCITE_NANDFLASH_H__
2#define __EXCITE_NANDFLASH_H__
3
4/* Resource names */
5#define EXCITE_NANDFLASH_RESOURCE_REGS "excite_nandflash_regs"
6
7#endif /* __EXCITE_NANDFLASH_H__ */
diff --git a/arch/mips/include/asm/mach-excite/rm9k_eth.h b/arch/mips/include/asm/mach-excite/rm9k_eth.h
deleted file mode 100644
index 94705a46f72e..000000000000
--- a/arch/mips/include/asm/mach-excite/rm9k_eth.h
+++ /dev/null
@@ -1,23 +0,0 @@
1#if !defined(__RM9K_ETH_H__)
2#define __RM9K_ETH_H__
3
4#define RM9K_GE_NAME "rm9k_ge"
5
6/* Resource names */
7#define RM9K_GE_RESOURCE_MAC "rm9k_ge_mac"
8#define RM9K_GE_RESOURCE_MSTAT "rm9k_ge_mstat"
9#define RM9K_GE_RESOURCE_PKTPROC "rm9k_ge_pktproc"
10#define RM9K_GE_RESOURCE_XDMA "rm9k_ge_xdma"
11#define RM9K_GE_RESOURCE_FIFO_RX "rm9k_ge_fifo_rx"
12#define RM9K_GE_RESOURCE_FIFO_TX "rm9k_ge_fifo_tx"
13#define RM9K_GE_RESOURCE_FIFOMEM_RX "rm9k_ge_fifo_memory_rx"
14#define RM9K_GE_RESOURCE_FIFOMEM_TX "rm9k_ge_fifo_memory_tx"
15#define RM9K_GE_RESOURCE_PHY "rm9k_ge_phy"
16#define RM9K_GE_RESOURCE_DMADESC_RX "rm9k_ge_dmadesc_rx"
17#define RM9K_GE_RESOURCE_DMADESC_TX "rm9k_ge_dmadesc_tx"
18#define RM9K_GE_RESOURCE_IRQ_MAIN "rm9k_ge_irq_main"
19#define RM9K_GE_RESOURCE_IRQ_PHY "rm9k_ge_irq_phy"
20#define RM9K_GE_RESOURCE_GPI_SLICE "rm9k_ge_gpi_slice"
21#define RM9K_GE_RESOURCE_MDIO_CHANNEL "rm9k_ge_mdio_channel"
22
23#endif /* !defined(__RM9K_ETH_H__) */
diff --git a/arch/mips/include/asm/mach-excite/rm9k_wdt.h b/arch/mips/include/asm/mach-excite/rm9k_wdt.h
deleted file mode 100644
index 3fa3c08d2da7..000000000000
--- a/arch/mips/include/asm/mach-excite/rm9k_wdt.h
+++ /dev/null
@@ -1,12 +0,0 @@
1#ifndef __RM9K_WDT_H__
2#define __RM9K_WDT_H__
3
4/* Device name */
5#define WDT_NAME "wdt_gpi"
6
7/* Resource names */
8#define WDT_RESOURCE_REGS "excite_watchdog_regs"
9#define WDT_RESOURCE_IRQ "excite_watchdog_irq"
10#define WDT_RESOURCE_COUNTER "excite_watchdog_counter"
11
12#endif /* __RM9K_WDT_H__ */
diff --git a/arch/mips/include/asm/mach-excite/rm9k_xicap.h b/arch/mips/include/asm/mach-excite/rm9k_xicap.h
deleted file mode 100644
index 009577734a8d..000000000000
--- a/arch/mips/include/asm/mach-excite/rm9k_xicap.h
+++ /dev/null
@@ -1,16 +0,0 @@
1#ifndef __EXCITE_XICAP_H__
2#define __EXCITE_XICAP_H__
3
4
5/* Resource names */
6#define XICAP_RESOURCE_FIFO_RX "xicap_fifo_rx"
7#define XICAP_RESOURCE_FIFO_TX "xicap_fifo_tx"
8#define XICAP_RESOURCE_XDMA "xicap_xdma"
9#define XICAP_RESOURCE_DMADESC "xicap_dmadesc"
10#define XICAP_RESOURCE_PKTPROC "xicap_pktproc"
11#define XICAP_RESOURCE_IRQ "xicap_irq"
12#define XICAP_RESOURCE_GPI_SLICE "xicap_gpi_slice"
13#define XICAP_RESOURCE_FIFO_BLK "xicap_fifo_blocks"
14#define XICAP_RESOURCE_PKT_STREAM "xicap_pkt_stream"
15
16#endif /* __EXCITE_XICAP_H__ */
diff --git a/arch/mips/include/asm/mach-ip27/topology.h b/arch/mips/include/asm/mach-ip27/topology.h
index 09a59bcc1b07..1b1a7d1632b9 100644
--- a/arch/mips/include/asm/mach-ip27/topology.h
+++ b/arch/mips/include/asm/mach-ip27/topology.h
@@ -24,7 +24,9 @@ extern struct cpuinfo_ip27 sn_cpu_info[NR_CPUS];
24 24
25#define cpu_to_node(cpu) (sn_cpu_info[(cpu)].p_nodeid) 25#define cpu_to_node(cpu) (sn_cpu_info[(cpu)].p_nodeid)
26#define parent_node(node) (node) 26#define parent_node(node) (node)
27#define cpumask_of_node(node) (&hub_data(node)->h_cpus) 27#define cpumask_of_node(node) ((node) == -1 ? \
28 cpu_all_mask : \
29 &hub_data(node)->h_cpus)
28struct pci_bus; 30struct pci_bus;
29extern int pcibus_to_node(struct pci_bus *); 31extern int pcibus_to_node(struct pci_bus *);
30 32
diff --git a/arch/mips/include/asm/mach-loongson/cpu-feature-overrides.h b/arch/mips/include/asm/mach-loongson/cpu-feature-overrides.h
index 9947e57c91de..16210cedd929 100644
--- a/arch/mips/include/asm/mach-loongson/cpu-feature-overrides.h
+++ b/arch/mips/include/asm/mach-loongson/cpu-feature-overrides.h
@@ -3,7 +3,7 @@
3 * License. See the file "COPYING" in the main directory of this archive 3 * License. See the file "COPYING" in the main directory of this archive
4 * for more details. 4 * for more details.
5 * 5 *
6 * Copyright (C) 2009 Wu Zhangjin <wuzj@lemote.com> 6 * Copyright (C) 2009 Wu Zhangjin <wuzhangjin@gmail.com>
7 * Copyright (C) 2009 Philippe Vachon <philippe@cowpig.ca> 7 * Copyright (C) 2009 Philippe Vachon <philippe@cowpig.ca>
8 * Copyright (C) 2009 Zhang Le <r0bertz@gentoo.org> 8 * Copyright (C) 2009 Zhang Le <r0bertz@gentoo.org>
9 * 9 *
diff --git a/arch/mips/include/asm/mach-loongson/cs5536/cs5536.h b/arch/mips/include/asm/mach-loongson/cs5536/cs5536.h
new file mode 100644
index 000000000000..021f77ca59ec
--- /dev/null
+++ b/arch/mips/include/asm/mach-loongson/cs5536/cs5536.h
@@ -0,0 +1,305 @@
1/*
2 * The header file of cs5536 sourth bridge.
3 *
4 * Copyright (C) 2007 Lemote, Inc.
5 * Author : jlliu <liujl@lemote.com>
6 */
7
8#ifndef _CS5536_H
9#define _CS5536_H
10
11#include <linux/types.h>
12
13extern void _rdmsr(u32 msr, u32 *hi, u32 *lo);
14extern void _wrmsr(u32 msr, u32 hi, u32 lo);
15
16/*
17 * MSR module base
18 */
19#define CS5536_SB_MSR_BASE (0x00000000)
20#define CS5536_GLIU_MSR_BASE (0x10000000)
21#define CS5536_ILLEGAL_MSR_BASE (0x20000000)
22#define CS5536_USB_MSR_BASE (0x40000000)
23#define CS5536_IDE_MSR_BASE (0x60000000)
24#define CS5536_DIVIL_MSR_BASE (0x80000000)
25#define CS5536_ACC_MSR_BASE (0xa0000000)
26#define CS5536_UNUSED_MSR_BASE (0xc0000000)
27#define CS5536_GLCP_MSR_BASE (0xe0000000)
28
29#define SB_MSR_REG(offset) (CS5536_SB_MSR_BASE | (offset))
30#define GLIU_MSR_REG(offset) (CS5536_GLIU_MSR_BASE | (offset))
31#define ILLEGAL_MSR_REG(offset) (CS5536_ILLEGAL_MSR_BASE | (offset))
32#define USB_MSR_REG(offset) (CS5536_USB_MSR_BASE | (offset))
33#define IDE_MSR_REG(offset) (CS5536_IDE_MSR_BASE | (offset))
34#define DIVIL_MSR_REG(offset) (CS5536_DIVIL_MSR_BASE | (offset))
35#define ACC_MSR_REG(offset) (CS5536_ACC_MSR_BASE | (offset))
36#define UNUSED_MSR_REG(offset) (CS5536_UNUSED_MSR_BASE | (offset))
37#define GLCP_MSR_REG(offset) (CS5536_GLCP_MSR_BASE | (offset))
38
39/*
40 * BAR SPACE OF VIRTUAL PCI :
41 * range for pci probe use, length is the actual size.
42 */
43/* IO space for all DIVIL modules */
44#define CS5536_IRQ_RANGE 0xffffffe0 /* USERD FOR PCI PROBE */
45#define CS5536_IRQ_LENGTH 0x20 /* THE REGS ACTUAL LENGTH */
46#define CS5536_SMB_RANGE 0xfffffff8
47#define CS5536_SMB_LENGTH 0x08
48#define CS5536_GPIO_RANGE 0xffffff00
49#define CS5536_GPIO_LENGTH 0x100
50#define CS5536_MFGPT_RANGE 0xffffffc0
51#define CS5536_MFGPT_LENGTH 0x40
52#define CS5536_ACPI_RANGE 0xffffffe0
53#define CS5536_ACPI_LENGTH 0x20
54#define CS5536_PMS_RANGE 0xffffff80
55#define CS5536_PMS_LENGTH 0x80
56/* IO space for IDE */
57#define CS5536_IDE_RANGE 0xfffffff0
58#define CS5536_IDE_LENGTH 0x10
59/* IO space for ACC */
60#define CS5536_ACC_RANGE 0xffffff80
61#define CS5536_ACC_LENGTH 0x80
62/* MEM space for ALL USB modules */
63#define CS5536_OHCI_RANGE 0xfffff000
64#define CS5536_OHCI_LENGTH 0x1000
65#define CS5536_EHCI_RANGE 0xfffff000
66#define CS5536_EHCI_LENGTH 0x1000
67
68/*
69 * PCI MSR ACCESS
70 */
71#define PCI_MSR_CTRL 0xF0
72#define PCI_MSR_ADDR 0xF4
73#define PCI_MSR_DATA_LO 0xF8
74#define PCI_MSR_DATA_HI 0xFC
75
76/**************** MSR *****************************/
77
78/*
79 * GLIU STANDARD MSR
80 */
81#define GLIU_CAP 0x00
82#define GLIU_CONFIG 0x01
83#define GLIU_SMI 0x02
84#define GLIU_ERROR 0x03
85#define GLIU_PM 0x04
86#define GLIU_DIAG 0x05
87
88/*
89 * GLIU SPEC. MSR
90 */
91#define GLIU_P2D_BM0 0x20
92#define GLIU_P2D_BM1 0x21
93#define GLIU_P2D_BM2 0x22
94#define GLIU_P2D_BMK0 0x23
95#define GLIU_P2D_BMK1 0x24
96#define GLIU_P2D_BM3 0x25
97#define GLIU_P2D_BM4 0x26
98#define GLIU_COH 0x80
99#define GLIU_PAE 0x81
100#define GLIU_ARB 0x82
101#define GLIU_ASMI 0x83
102#define GLIU_AERR 0x84
103#define GLIU_DEBUG 0x85
104#define GLIU_PHY_CAP 0x86
105#define GLIU_NOUT_RESP 0x87
106#define GLIU_NOUT_WDATA 0x88
107#define GLIU_WHOAMI 0x8B
108#define GLIU_SLV_DIS 0x8C
109#define GLIU_IOD_BM0 0xE0
110#define GLIU_IOD_BM1 0xE1
111#define GLIU_IOD_BM2 0xE2
112#define GLIU_IOD_BM3 0xE3
113#define GLIU_IOD_BM4 0xE4
114#define GLIU_IOD_BM5 0xE5
115#define GLIU_IOD_BM6 0xE6
116#define GLIU_IOD_BM7 0xE7
117#define GLIU_IOD_BM8 0xE8
118#define GLIU_IOD_BM9 0xE9
119#define GLIU_IOD_SC0 0xEA
120#define GLIU_IOD_SC1 0xEB
121#define GLIU_IOD_SC2 0xEC
122#define GLIU_IOD_SC3 0xED
123#define GLIU_IOD_SC4 0xEE
124#define GLIU_IOD_SC5 0xEF
125#define GLIU_IOD_SC6 0xF0
126#define GLIU_IOD_SC7 0xF1
127
128/*
129 * SB STANDARD
130 */
131#define SB_CAP 0x00
132#define SB_CONFIG 0x01
133#define SB_SMI 0x02
134#define SB_ERROR 0x03
135#define SB_MAR_ERR_EN 0x00000001
136#define SB_TAR_ERR_EN 0x00000002
137#define SB_RSVD_BIT1 0x00000004
138#define SB_EXCEP_ERR_EN 0x00000008
139#define SB_SYSE_ERR_EN 0x00000010
140#define SB_PARE_ERR_EN 0x00000020
141#define SB_TAS_ERR_EN 0x00000040
142#define SB_MAR_ERR_FLAG 0x00010000
143#define SB_TAR_ERR_FLAG 0x00020000
144#define SB_RSVD_BIT2 0x00040000
145#define SB_EXCEP_ERR_FLAG 0x00080000
146#define SB_SYSE_ERR_FLAG 0x00100000
147#define SB_PARE_ERR_FLAG 0x00200000
148#define SB_TAS_ERR_FLAG 0x00400000
149#define SB_PM 0x04
150#define SB_DIAG 0x05
151
152/*
153 * SB SPEC.
154 */
155#define SB_CTRL 0x10
156#define SB_R0 0x20
157#define SB_R1 0x21
158#define SB_R2 0x22
159#define SB_R3 0x23
160#define SB_R4 0x24
161#define SB_R5 0x25
162#define SB_R6 0x26
163#define SB_R7 0x27
164#define SB_R8 0x28
165#define SB_R9 0x29
166#define SB_R10 0x2A
167#define SB_R11 0x2B
168#define SB_R12 0x2C
169#define SB_R13 0x2D
170#define SB_R14 0x2E
171#define SB_R15 0x2F
172
173/*
174 * GLCP STANDARD
175 */
176#define GLCP_CAP 0x00
177#define GLCP_CONFIG 0x01
178#define GLCP_SMI 0x02
179#define GLCP_ERROR 0x03
180#define GLCP_PM 0x04
181#define GLCP_DIAG 0x05
182
183/*
184 * GLCP SPEC.
185 */
186#define GLCP_CLK_DIS_DELAY 0x08
187#define GLCP_PM_CLK_DISABLE 0x09
188#define GLCP_GLB_PM 0x0B
189#define GLCP_DBG_OUT 0x0C
190#define GLCP_RSVD1 0x0D
191#define GLCP_SOFT_COM 0x0E
192#define SOFT_BAR_SMB_FLAG 0x00000001
193#define SOFT_BAR_GPIO_FLAG 0x00000002
194#define SOFT_BAR_MFGPT_FLAG 0x00000004
195#define SOFT_BAR_IRQ_FLAG 0x00000008
196#define SOFT_BAR_PMS_FLAG 0x00000010
197#define SOFT_BAR_ACPI_FLAG 0x00000020
198#define SOFT_BAR_IDE_FLAG 0x00000400
199#define SOFT_BAR_ACC_FLAG 0x00000800
200#define SOFT_BAR_OHCI_FLAG 0x00001000
201#define SOFT_BAR_EHCI_FLAG 0x00002000
202#define GLCP_RSVD2 0x0F
203#define GLCP_CLK_OFF 0x10
204#define GLCP_CLK_ACTIVE 0x11
205#define GLCP_CLK_DISABLE 0x12
206#define GLCP_CLK4ACK 0x13
207#define GLCP_SYS_RST 0x14
208#define GLCP_RSVD3 0x15
209#define GLCP_DBG_CLK_CTRL 0x16
210#define GLCP_CHIP_REV_ID 0x17
211
212/* PIC */
213#define PIC_YSEL_LOW 0x20
214#define PIC_YSEL_LOW_USB_SHIFT 8
215#define PIC_YSEL_LOW_ACC_SHIFT 16
216#define PIC_YSEL_LOW_FLASH_SHIFT 24
217#define PIC_YSEL_HIGH 0x21
218#define PIC_ZSEL_LOW 0x22
219#define PIC_ZSEL_HIGH 0x23
220#define PIC_IRQM_PRIM 0x24
221#define PIC_IRQM_LPC 0x25
222#define PIC_XIRR_STS_LOW 0x26
223#define PIC_XIRR_STS_HIGH 0x27
224#define PCI_SHDW 0x34
225
226/*
227 * DIVIL STANDARD
228 */
229#define DIVIL_CAP 0x00
230#define DIVIL_CONFIG 0x01
231#define DIVIL_SMI 0x02
232#define DIVIL_ERROR 0x03
233#define DIVIL_PM 0x04
234#define DIVIL_DIAG 0x05
235
236/*
237 * DIVIL SPEC.
238 */
239#define DIVIL_LBAR_IRQ 0x08
240#define DIVIL_LBAR_KEL 0x09
241#define DIVIL_LBAR_SMB 0x0B
242#define DIVIL_LBAR_GPIO 0x0C
243#define DIVIL_LBAR_MFGPT 0x0D
244#define DIVIL_LBAR_ACPI 0x0E
245#define DIVIL_LBAR_PMS 0x0F
246#define DIVIL_LEG_IO 0x14
247#define DIVIL_BALL_OPTS 0x15
248#define DIVIL_SOFT_IRQ 0x16
249#define DIVIL_SOFT_RESET 0x17
250
251/* MFGPT */
252#define MFGPT_IRQ 0x28
253
254/*
255 * IDE STANDARD
256 */
257#define IDE_CAP 0x00
258#define IDE_CONFIG 0x01
259#define IDE_SMI 0x02
260#define IDE_ERROR 0x03
261#define IDE_PM 0x04
262#define IDE_DIAG 0x05
263
264/*
265 * IDE SPEC.
266 */
267#define IDE_IO_BAR 0x08
268#define IDE_CFG 0x10
269#define IDE_DTC 0x12
270#define IDE_CAST 0x13
271#define IDE_ETC 0x14
272#define IDE_INTERNAL_PM 0x15
273
274/*
275 * ACC STANDARD
276 */
277#define ACC_CAP 0x00
278#define ACC_CONFIG 0x01
279#define ACC_SMI 0x02
280#define ACC_ERROR 0x03
281#define ACC_PM 0x04
282#define ACC_DIAG 0x05
283
284/*
285 * USB STANDARD
286 */
287#define USB_CAP 0x00
288#define USB_CONFIG 0x01
289#define USB_SMI 0x02
290#define USB_ERROR 0x03
291#define USB_PM 0x04
292#define USB_DIAG 0x05
293
294/*
295 * USB SPEC.
296 */
297#define USB_OHCI 0x08
298#define USB_EHCI 0x09
299
300/****************** NATIVE ***************************/
301/* GPIO : I/O SPACE; REG : 32BITS */
302#define GPIOL_OUT_VAL 0x00
303#define GPIOL_OUT_EN 0x04
304
305#endif /* _CS5536_H */
diff --git a/arch/mips/include/asm/mach-loongson/cs5536/cs5536_mfgpt.h b/arch/mips/include/asm/mach-loongson/cs5536/cs5536_mfgpt.h
new file mode 100644
index 000000000000..4b493d6772c2
--- /dev/null
+++ b/arch/mips/include/asm/mach-loongson/cs5536/cs5536_mfgpt.h
@@ -0,0 +1,35 @@
1/*
2 * cs5536 mfgpt header file
3 */
4
5#ifndef _CS5536_MFGPT_H
6#define _CS5536_MFGPT_H
7
8#include <cs5536/cs5536.h>
9#include <cs5536/cs5536_pci.h>
10
11#ifdef CONFIG_CS5536_MFGPT
12extern void setup_mfgpt0_timer(void);
13extern void disable_mfgpt0_counter(void);
14extern void enable_mfgpt0_counter(void);
15#else
16static inline void __maybe_unused setup_mfgpt0_timer(void)
17{
18}
19static inline void __maybe_unused disable_mfgpt0_counter(void)
20{
21}
22static inline void __maybe_unused enable_mfgpt0_counter(void)
23{
24}
25#endif
26
27#define MFGPT_TICK_RATE 14318000
28#define COMPARE ((MFGPT_TICK_RATE + HZ/2) / HZ)
29
30#define MFGPT_BASE mfgpt_base
31#define MFGPT0_CMP2 (MFGPT_BASE + 2)
32#define MFGPT0_CNT (MFGPT_BASE + 4)
33#define MFGPT0_SETUP (MFGPT_BASE + 6)
34
35#endif /*!_CS5536_MFGPT_H */
diff --git a/arch/mips/include/asm/mach-loongson/cs5536/cs5536_pci.h b/arch/mips/include/asm/mach-loongson/cs5536/cs5536_pci.h
new file mode 100644
index 000000000000..0dca9c89ee7c
--- /dev/null
+++ b/arch/mips/include/asm/mach-loongson/cs5536/cs5536_pci.h
@@ -0,0 +1,153 @@
1/*
2 * the definition file of cs5536 Virtual Support Module(VSM).
3 * pci configuration space can be accessed through the VSM, so
4 * there is no need of the MSR read/write now, except the spec.
5 * MSR registers which are not implemented yet.
6 *
7 * Copyright (C) 2007 Lemote Inc.
8 * Author : jlliu, liujl@lemote.com
9 */
10
11#ifndef _CS5536_PCI_H
12#define _CS5536_PCI_H
13
14#include <linux/types.h>
15#include <linux/pci_regs.h>
16
17extern void cs5536_pci_conf_write4(int function, int reg, u32 value);
18extern u32 cs5536_pci_conf_read4(int function, int reg);
19
20#define CS5536_ACC_INTR 9
21#define CS5536_IDE_INTR 14
22#define CS5536_USB_INTR 11
23#define CS5536_MFGPT_INTR 5
24#define CS5536_UART1_INTR 4
25#define CS5536_UART2_INTR 3
26
27/************** PCI BUS DEVICE FUNCTION ***************/
28
29/*
30 * PCI bus device function
31 */
32#define PCI_BUS_CS5536 0
33#define PCI_IDSEL_CS5536 14
34
35/********** STANDARD PCI-2.2 EXPANSION ****************/
36
37/*
38 * PCI configuration space
39 * we have to virtualize the PCI configure space head, so we should
40 * define the necessary IDs and some others.
41 */
42
43/* CONFIG of PCI VENDOR ID*/
44#define CFG_PCI_VENDOR_ID(mod_dev_id, sys_vendor_id) \
45 (((mod_dev_id) << 16) | (sys_vendor_id))
46
47/* VENDOR ID */
48#define CS5536_VENDOR_ID 0x1022
49
50/* DEVICE ID */
51#define CS5536_ISA_DEVICE_ID 0x2090
52#define CS5536_IDE_DEVICE_ID 0x209a
53#define CS5536_ACC_DEVICE_ID 0x2093
54#define CS5536_OHCI_DEVICE_ID 0x2094
55#define CS5536_EHCI_DEVICE_ID 0x2095
56
57/* CLASS CODE : CLASS SUB-CLASS INTERFACE */
58#define CS5536_ISA_CLASS_CODE 0x060100
59#define CS5536_IDE_CLASS_CODE 0x010180
60#define CS5536_ACC_CLASS_CODE 0x040100
61#define CS5536_OHCI_CLASS_CODE 0x0C0310
62#define CS5536_EHCI_CLASS_CODE 0x0C0320
63
64/* BHLC : BIST HEADER-TYPE LATENCY-TIMER CACHE-LINE-SIZE */
65
66#define CFG_PCI_CACHE_LINE_SIZE(header_type, latency_timer) \
67 ((PCI_NONE_BIST << 24) | ((header_type) << 16) \
68 | ((latency_timer) << 8) | PCI_NORMAL_CACHE_LINE_SIZE);
69
70#define PCI_NONE_BIST 0x00 /* RO not implemented yet. */
71#define PCI_BRIDGE_HEADER_TYPE 0x80 /* RO */
72#define PCI_NORMAL_HEADER_TYPE 0x00
73#define PCI_NORMAL_LATENCY_TIMER 0x00
74#define PCI_NORMAL_CACHE_LINE_SIZE 0x08 /* RW */
75
76/* BAR */
77#define PCI_BAR0_REG 0x10
78#define PCI_BAR1_REG 0x14
79#define PCI_BAR2_REG 0x18
80#define PCI_BAR3_REG 0x1c
81#define PCI_BAR4_REG 0x20
82#define PCI_BAR5_REG 0x24
83#define PCI_BAR_COUNT 6
84#define PCI_BAR_RANGE_MASK 0xFFFFFFFF
85
86/* CARDBUS CIS POINTER */
87#define PCI_CARDBUS_CIS_POINTER 0x00000000
88
89/* SUBSYSTEM VENDOR ID */
90#define CS5536_SUB_VENDOR_ID CS5536_VENDOR_ID
91
92/* SUBSYSTEM ID */
93#define CS5536_ISA_SUB_ID CS5536_ISA_DEVICE_ID
94#define CS5536_IDE_SUB_ID CS5536_IDE_DEVICE_ID
95#define CS5536_ACC_SUB_ID CS5536_ACC_DEVICE_ID
96#define CS5536_OHCI_SUB_ID CS5536_OHCI_DEVICE_ID
97#define CS5536_EHCI_SUB_ID CS5536_EHCI_DEVICE_ID
98
99/* EXPANSION ROM BAR */
100#define PCI_EXPANSION_ROM_BAR 0x00000000
101
102/* CAPABILITIES POINTER */
103#define PCI_CAPLIST_POINTER 0x00000000
104#define PCI_CAPLIST_USB_POINTER 0x40
105/* INTERRUPT */
106
107#define CFG_PCI_INTERRUPT_LINE(pin, mod_intr) \
108 ((PCI_MAX_LATENCY << 24) | (PCI_MIN_GRANT << 16) | \
109 ((pin) << 8) | (mod_intr))
110
111#define PCI_MAX_LATENCY 0x40
112#define PCI_MIN_GRANT 0x00
113#define PCI_DEFAULT_PIN 0x01
114
115/*********** EXPANSION PCI REG ************************/
116
117/*
118 * ISA EXPANSION
119 */
120#define PCI_UART1_INT_REG 0x50
121#define PCI_UART2_INT_REG 0x54
122#define PCI_ISA_FIXUP_REG 0x58
123
124/*
125 * IDE EXPANSION
126 */
127#define PCI_IDE_CFG_REG 0x40
128#define CS5536_IDE_FLASH_SIGNATURE 0xDEADBEEF
129#define PCI_IDE_DTC_REG 0x48
130#define PCI_IDE_CAST_REG 0x4C
131#define PCI_IDE_ETC_REG 0x50
132#define PCI_IDE_PM_REG 0x54
133#define PCI_IDE_INT_REG 0x60
134
135/*
136 * ACC EXPANSION
137 */
138#define PCI_ACC_INT_REG 0x50
139
140/*
141 * OHCI EXPANSION : INTTERUPT IS IMPLEMENTED BY THE OHCI
142 */
143#define PCI_OHCI_PM_REG 0x40
144#define PCI_OHCI_INT_REG 0x50
145
146/*
147 * EHCI EXPANSION
148 */
149#define PCI_EHCI_LEGSMIEN_REG 0x50
150#define PCI_EHCI_LEGSMISTS_REG 0x54
151#define PCI_EHCI_FLADJ_REG 0x60
152
153#endif /* _CS5536_PCI_H_ */
diff --git a/arch/mips/include/asm/mach-loongson/cs5536/cs5536_vsm.h b/arch/mips/include/asm/mach-loongson/cs5536/cs5536_vsm.h
new file mode 100644
index 000000000000..21c4ecedebe7
--- /dev/null
+++ b/arch/mips/include/asm/mach-loongson/cs5536/cs5536_vsm.h
@@ -0,0 +1,31 @@
1/*
2 * the read/write interfaces for Virtual Support Module(VSM)
3 *
4 * Copyright (C) 2009 Lemote, Inc.
5 * Author: Wu Zhangjin <wuzhangjin@gmail.com>
6 */
7
8#ifndef _CS5536_VSM_H
9#define _CS5536_VSM_H
10
11#include <linux/types.h>
12
13typedef void (*cs5536_pci_vsm_write)(int reg, u32 value);
14typedef u32 (*cs5536_pci_vsm_read)(int reg);
15
16#define DECLARE_CS5536_MODULE(name) \
17extern void pci_##name##_write_reg(int reg, u32 value); \
18extern u32 pci_##name##_read_reg(int reg);
19
20/* ide module */
21DECLARE_CS5536_MODULE(ide)
22/* acc module */
23DECLARE_CS5536_MODULE(acc)
24/* ohci module */
25DECLARE_CS5536_MODULE(ohci)
26/* isa module */
27DECLARE_CS5536_MODULE(isa)
28/* ehci module */
29DECLARE_CS5536_MODULE(ehci)
30
31#endif /* _CS5536_VSM_H */
diff --git a/arch/mips/include/asm/mach-loongson/dma-coherence.h b/arch/mips/include/asm/mach-loongson/dma-coherence.h
index 71a6851ba833..981c75f91a7d 100644
--- a/arch/mips/include/asm/mach-loongson/dma-coherence.h
+++ b/arch/mips/include/asm/mach-loongson/dma-coherence.h
@@ -28,7 +28,11 @@ static inline dma_addr_t plat_map_dma_mem_page(struct device *dev,
28static inline unsigned long plat_dma_addr_to_phys(struct device *dev, 28static inline unsigned long plat_dma_addr_to_phys(struct device *dev,
29 dma_addr_t dma_addr) 29 dma_addr_t dma_addr)
30{ 30{
31#if defined(CONFIG_CPU_LOONGSON2F) && defined(CONFIG_64BIT)
32 return (dma_addr > 0x8fffffff) ? dma_addr : (dma_addr & 0x0fffffff);
33#else
31 return dma_addr & 0x7fffffff; 34 return dma_addr & 0x7fffffff;
35#endif
32} 36}
33 37
34static inline void plat_unmap_dma_mem(struct device *dev, dma_addr_t dma_addr, 38static inline void plat_unmap_dma_mem(struct device *dev, dma_addr_t dma_addr,
diff --git a/arch/mips/include/asm/mach-loongson/loongson.h b/arch/mips/include/asm/mach-loongson/loongson.h
index da70bcf2304e..fcdbe3a4ce1f 100644
--- a/arch/mips/include/asm/mach-loongson/loongson.h
+++ b/arch/mips/include/asm/mach-loongson/loongson.h
@@ -1,12 +1,11 @@
1/* 1/*
2 * Copyright (C) 2009 Lemote, Inc. & Institute of Computing Technology 2 * Copyright (C) 2009 Lemote, Inc.
3 * Author: Wu Zhangjin <wuzj@lemote.com> 3 * Author: Wu Zhangjin <wuzhangjin@gmail.com>
4 * 4 *
5 * This program is free software; you can redistribute it and/or modify it 5 * This program is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License as published by the 6 * under the terms of the GNU General Public License as published by the
7 * Free Software Foundation; either version 2 of the License, or (at your 7 * Free Software Foundation; either version 2 of the License, or (at your
8 * option) any later version. 8 * option) any later version.
9 *
10 */ 9 */
11 10
12#ifndef __ASM_MACH_LOONGSON_LOONGSON_H 11#ifndef __ASM_MACH_LOONGSON_LOONGSON_H
@@ -15,9 +14,6 @@
15#include <linux/io.h> 14#include <linux/io.h>
16#include <linux/init.h> 15#include <linux/init.h>
17 16
18/* there is an internal bonito64-compatiable northbridge in loongson2e/2f */
19#include <asm/mips-boards/bonito64.h>
20
21/* loongson internal northbridge initialization */ 17/* loongson internal northbridge initialization */
22extern void bonito_irq_init(void); 18extern void bonito_irq_init(void);
23 19
@@ -26,13 +22,25 @@ extern void mach_prepare_reboot(void);
26extern void mach_prepare_shutdown(void); 22extern void mach_prepare_shutdown(void);
27 23
28/* environment arguments from bootloader */ 24/* environment arguments from bootloader */
29extern unsigned long bus_clock, cpu_clock_freq; 25extern unsigned long cpu_clock_freq;
30extern unsigned long memsize, highmemsize; 26extern unsigned long memsize, highmemsize;
31 27
32/* loongson-specific command line, env and memory initialization */ 28/* loongson-specific command line, env and memory initialization */
33extern void __init prom_init_memory(void); 29extern void __init prom_init_memory(void);
34extern void __init prom_init_cmdline(void); 30extern void __init prom_init_cmdline(void);
31extern void __init prom_init_machtype(void);
35extern void __init prom_init_env(void); 32extern void __init prom_init_env(void);
33#ifdef CONFIG_LOONGSON_UART_BASE
34extern unsigned long _loongson_uart_base, loongson_uart_base;
35extern void prom_init_loongson_uart_base(void);
36#endif
37
38static inline void prom_init_uart_base(void)
39{
40#ifdef CONFIG_LOONGSON_UART_BASE
41 prom_init_loongson_uart_base();
42#endif
43}
36 44
37/* irq operation functions */ 45/* irq operation functions */
38extern void bonito_irqdispatch(void); 46extern void bonito_irqdispatch(void);
@@ -40,25 +48,276 @@ extern void __init bonito_irq_init(void);
40extern void __init set_irq_trigger_mode(void); 48extern void __init set_irq_trigger_mode(void);
41extern void __init mach_init_irq(void); 49extern void __init mach_init_irq(void);
42extern void mach_irq_dispatch(unsigned int pending); 50extern void mach_irq_dispatch(unsigned int pending);
51extern int mach_i8259_irq(void);
52
53/* We need this in some places... */
54#define delay() ({ \
55 int x; \
56 for (x = 0; x < 100000; x++) \
57 __asm__ __volatile__(""); \
58})
59
60#define LOONGSON_REG(x) \
61 (*(volatile u32 *)((char *)CKSEG1ADDR(LOONGSON_REG_BASE) + (x)))
62
63#define LOONGSON_IRQ_BASE 32
64#define LOONGSON2_PERFCNT_IRQ (MIPS_CPU_IRQ_BASE + 6) /* cpu perf counter */
65
66#define LOONGSON_FLASH_BASE 0x1c000000
67#define LOONGSON_FLASH_SIZE 0x02000000 /* 32M */
68#define LOONGSON_FLASH_TOP (LOONGSON_FLASH_BASE+LOONGSON_FLASH_SIZE-1)
69
70#define LOONGSON_LIO0_BASE 0x1e000000
71#define LOONGSON_LIO0_SIZE 0x01C00000 /* 28M */
72#define LOONGSON_LIO0_TOP (LOONGSON_LIO0_BASE+LOONGSON_LIO0_SIZE-1)
73
74#define LOONGSON_BOOT_BASE 0x1fc00000
75#define LOONGSON_BOOT_SIZE 0x00100000 /* 1M */
76#define LOONGSON_BOOT_TOP (LOONGSON_BOOT_BASE+LOONGSON_BOOT_SIZE-1)
77#define LOONGSON_REG_BASE 0x1fe00000
78#define LOONGSON_REG_SIZE 0x00100000 /* 256Bytes + 256Bytes + ??? */
79#define LOONGSON_REG_TOP (LOONGSON_REG_BASE+LOONGSON_REG_SIZE-1)
80
81#define LOONGSON_LIO1_BASE 0x1ff00000
82#define LOONGSON_LIO1_SIZE 0x00100000 /* 1M */
83#define LOONGSON_LIO1_TOP (LOONGSON_LIO1_BASE+LOONGSON_LIO1_SIZE-1)
84
85#define LOONGSON_PCILO0_BASE 0x10000000
86#define LOONGSON_PCILO1_BASE 0x14000000
87#define LOONGSON_PCILO2_BASE 0x18000000
88#define LOONGSON_PCILO_BASE LOONGSON_PCILO0_BASE
89#define LOONGSON_PCILO_SIZE 0x0c000000 /* 64M * 3 */
90#define LOONGSON_PCILO_TOP (LOONGSON_PCILO0_BASE+LOONGSON_PCILO_SIZE-1)
91
92#define LOONGSON_PCICFG_BASE 0x1fe80000
93#define LOONGSON_PCICFG_SIZE 0x00000800 /* 2K */
94#define LOONGSON_PCICFG_TOP (LOONGSON_PCICFG_BASE+LOONGSON_PCICFG_SIZE-1)
95#define LOONGSON_PCIIO_BASE 0x1fd00000
96#define LOONGSON_PCIIO_SIZE 0x00100000 /* 1M */
97#define LOONGSON_PCIIO_TOP (LOONGSON_PCIIO_BASE+LOONGSON_PCIIO_SIZE-1)
98
99/* Loongson Register Bases */
100
101#define LOONGSON_PCICONFIGBASE 0x00
102#define LOONGSON_REGBASE 0x100
43 103
44/* PCI Configuration Registers */ 104/* PCI Configuration Registers */
45#define LOONGSON_PCI_ISR4C BONITO_PCI_REG(0x4c) 105
106#define LOONGSON_PCI_REG(x) LOONGSON_REG(LOONGSON_PCICONFIGBASE + (x))
107#define LOONGSON_PCIDID LOONGSON_PCI_REG(0x00)
108#define LOONGSON_PCICMD LOONGSON_PCI_REG(0x04)
109#define LOONGSON_PCICLASS LOONGSON_PCI_REG(0x08)
110#define LOONGSON_PCILTIMER LOONGSON_PCI_REG(0x0c)
111#define LOONGSON_PCIBASE0 LOONGSON_PCI_REG(0x10)
112#define LOONGSON_PCIBASE1 LOONGSON_PCI_REG(0x14)
113#define LOONGSON_PCIBASE2 LOONGSON_PCI_REG(0x18)
114#define LOONGSON_PCIBASE3 LOONGSON_PCI_REG(0x1c)
115#define LOONGSON_PCIBASE4 LOONGSON_PCI_REG(0x20)
116#define LOONGSON_PCIEXPRBASE LOONGSON_PCI_REG(0x30)
117#define LOONGSON_PCIINT LOONGSON_PCI_REG(0x3c)
118
119#define LOONGSON_PCI_ISR4C LOONGSON_PCI_REG(0x4c)
120
121#define LOONGSON_PCICMD_PERR_CLR 0x80000000
122#define LOONGSON_PCICMD_SERR_CLR 0x40000000
123#define LOONGSON_PCICMD_MABORT_CLR 0x20000000
124#define LOONGSON_PCICMD_MTABORT_CLR 0x10000000
125#define LOONGSON_PCICMD_TABORT_CLR 0x08000000
126#define LOONGSON_PCICMD_MPERR_CLR 0x01000000
127#define LOONGSON_PCICMD_PERRRESPEN 0x00000040
128#define LOONGSON_PCICMD_ASTEPEN 0x00000080
129#define LOONGSON_PCICMD_SERREN 0x00000100
130#define LOONGSON_PCILTIMER_BUSLATENCY 0x0000ff00
131#define LOONGSON_PCILTIMER_BUSLATENCY_SHIFT 8
132
133/* Loongson h/w Configuration */
134
135#define LOONGSON_GENCFG_OFFSET 0x4
136#define LOONGSON_GENCFG LOONGSON_REG(LOONGSON_REGBASE + LOONGSON_GENCFG_OFFSET)
137
138#define LOONGSON_GENCFG_DEBUGMODE 0x00000001
139#define LOONGSON_GENCFG_SNOOPEN 0x00000002
140#define LOONGSON_GENCFG_CPUSELFRESET 0x00000004
141
142#define LOONGSON_GENCFG_FORCE_IRQA 0x00000008
143#define LOONGSON_GENCFG_IRQA_ISOUT 0x00000010
144#define LOONGSON_GENCFG_IRQA_FROM_INT1 0x00000020
145#define LOONGSON_GENCFG_BYTESWAP 0x00000040
146
147#define LOONGSON_GENCFG_UNCACHED 0x00000080
148#define LOONGSON_GENCFG_PREFETCHEN 0x00000100
149#define LOONGSON_GENCFG_WBEHINDEN 0x00000200
150#define LOONGSON_GENCFG_CACHEALG 0x00000c00
151#define LOONGSON_GENCFG_CACHEALG_SHIFT 10
152#define LOONGSON_GENCFG_PCIQUEUE 0x00001000
153#define LOONGSON_GENCFG_CACHESTOP 0x00002000
154#define LOONGSON_GENCFG_MSTRBYTESWAP 0x00004000
155#define LOONGSON_GENCFG_BUSERREN 0x00008000
156#define LOONGSON_GENCFG_NORETRYTIMEOUT 0x00010000
157#define LOONGSON_GENCFG_SHORTCOPYTIMEOUT 0x00020000
158
159/* PCI address map control */
160
161#define LOONGSON_PCIMAP LOONGSON_REG(LOONGSON_REGBASE + 0x10)
162#define LOONGSON_PCIMEMBASECFG LOONGSON_REG(LOONGSON_REGBASE + 0x14)
163#define LOONGSON_PCIMAP_CFG LOONGSON_REG(LOONGSON_REGBASE + 0x18)
164
165/* GPIO Regs - r/w */
166
167#define LOONGSON_GPIODATA LOONGSON_REG(LOONGSON_REGBASE + 0x1c)
168#define LOONGSON_GPIOIE LOONGSON_REG(LOONGSON_REGBASE + 0x20)
169
170/* ICU Configuration Regs - r/w */
171
172#define LOONGSON_INTEDGE LOONGSON_REG(LOONGSON_REGBASE + 0x24)
173#define LOONGSON_INTSTEER LOONGSON_REG(LOONGSON_REGBASE + 0x28)
174#define LOONGSON_INTPOL LOONGSON_REG(LOONGSON_REGBASE + 0x2c)
175
176/* ICU Enable Regs - IntEn & IntISR are r/o. */
177
178#define LOONGSON_INTENSET LOONGSON_REG(LOONGSON_REGBASE + 0x30)
179#define LOONGSON_INTENCLR LOONGSON_REG(LOONGSON_REGBASE + 0x34)
180#define LOONGSON_INTEN LOONGSON_REG(LOONGSON_REGBASE + 0x38)
181#define LOONGSON_INTISR LOONGSON_REG(LOONGSON_REGBASE + 0x3c)
182
183/* ICU */
184#define LOONGSON_ICU_MBOXES 0x0000000f
185#define LOONGSON_ICU_MBOXES_SHIFT 0
186#define LOONGSON_ICU_DMARDY 0x00000010
187#define LOONGSON_ICU_DMAEMPTY 0x00000020
188#define LOONGSON_ICU_COPYRDY 0x00000040
189#define LOONGSON_ICU_COPYEMPTY 0x00000080
190#define LOONGSON_ICU_COPYERR 0x00000100
191#define LOONGSON_ICU_PCIIRQ 0x00000200
192#define LOONGSON_ICU_MASTERERR 0x00000400
193#define LOONGSON_ICU_SYSTEMERR 0x00000800
194#define LOONGSON_ICU_DRAMPERR 0x00001000
195#define LOONGSON_ICU_RETRYERR 0x00002000
196#define LOONGSON_ICU_GPIOS 0x01ff0000
197#define LOONGSON_ICU_GPIOS_SHIFT 16
198#define LOONGSON_ICU_GPINS 0x7e000000
199#define LOONGSON_ICU_GPINS_SHIFT 25
200#define LOONGSON_ICU_MBOX(N) (1<<(LOONGSON_ICU_MBOXES_SHIFT+(N)))
201#define LOONGSON_ICU_GPIO(N) (1<<(LOONGSON_ICU_GPIOS_SHIFT+(N)))
202#define LOONGSON_ICU_GPIN(N) (1<<(LOONGSON_ICU_GPINS_SHIFT+(N)))
203
204/* PCI prefetch window base & mask */
205
206#define LOONGSON_MEM_WIN_BASE_L LOONGSON_REG(LOONGSON_REGBASE + 0x40)
207#define LOONGSON_MEM_WIN_BASE_H LOONGSON_REG(LOONGSON_REGBASE + 0x44)
208#define LOONGSON_MEM_WIN_MASK_L LOONGSON_REG(LOONGSON_REGBASE + 0x48)
209#define LOONGSON_MEM_WIN_MASK_H LOONGSON_REG(LOONGSON_REGBASE + 0x4c)
46 210
47/* PCI_Hit*_Sel_* */ 211/* PCI_Hit*_Sel_* */
48 212
49#define LOONGSON_PCI_HIT0_SEL_L BONITO(BONITO_REGBASE + 0x50) 213#define LOONGSON_PCI_HIT0_SEL_L LOONGSON_REG(LOONGSON_REGBASE + 0x50)
50#define LOONGSON_PCI_HIT0_SEL_H BONITO(BONITO_REGBASE + 0x54) 214#define LOONGSON_PCI_HIT0_SEL_H LOONGSON_REG(LOONGSON_REGBASE + 0x54)
51#define LOONGSON_PCI_HIT1_SEL_L BONITO(BONITO_REGBASE + 0x58) 215#define LOONGSON_PCI_HIT1_SEL_L LOONGSON_REG(LOONGSON_REGBASE + 0x58)
52#define LOONGSON_PCI_HIT1_SEL_H BONITO(BONITO_REGBASE + 0x5c) 216#define LOONGSON_PCI_HIT1_SEL_H LOONGSON_REG(LOONGSON_REGBASE + 0x5c)
53#define LOONGSON_PCI_HIT2_SEL_L BONITO(BONITO_REGBASE + 0x60) 217#define LOONGSON_PCI_HIT2_SEL_L LOONGSON_REG(LOONGSON_REGBASE + 0x60)
54#define LOONGSON_PCI_HIT2_SEL_H BONITO(BONITO_REGBASE + 0x64) 218#define LOONGSON_PCI_HIT2_SEL_H LOONGSON_REG(LOONGSON_REGBASE + 0x64)
55 219
56/* PXArb Config & Status */ 220/* PXArb Config & Status */
57 221
58#define LOONGSON_PXARB_CFG BONITO(BONITO_REGBASE + 0x68) 222#define LOONGSON_PXARB_CFG LOONGSON_REG(LOONGSON_REGBASE + 0x68)
59#define LOONGSON_PXARB_STATUS BONITO(BONITO_REGBASE + 0x6c) 223#define LOONGSON_PXARB_STATUS LOONGSON_REG(LOONGSON_REGBASE + 0x6c)
224
225/* pcimap */
226
227#define LOONGSON_PCIMAP_PCIMAP_LO0 0x0000003f
228#define LOONGSON_PCIMAP_PCIMAP_LO0_SHIFT 0
229#define LOONGSON_PCIMAP_PCIMAP_LO1 0x00000fc0
230#define LOONGSON_PCIMAP_PCIMAP_LO1_SHIFT 6
231#define LOONGSON_PCIMAP_PCIMAP_LO2 0x0003f000
232#define LOONGSON_PCIMAP_PCIMAP_LO2_SHIFT 12
233#define LOONGSON_PCIMAP_PCIMAP_2 0x00040000
234#define LOONGSON_PCIMAP_WIN(WIN, ADDR) \
235 ((((ADDR)>>26) & LOONGSON_PCIMAP_PCIMAP_LO0) << ((WIN)*6))
236
237#ifdef CONFIG_CPU_SUPPORTS_CPUFREQ
238#include <linux/cpufreq.h>
239extern void loongson2_cpu_wait(void);
240extern struct cpufreq_frequency_table loongson2_clockmod_table[];
241
242/* Chip Config */
243#define LOONGSON_CHIPCFG0 LOONGSON_REG(LOONGSON_REGBASE + 0x80)
244#endif
245
246/*
247 * address windows configuration module
248 *
249 * loongson2e do not have this module
250 */
251#ifdef CONFIG_CPU_SUPPORTS_ADDRWINCFG
252
253/* address window config module base address */
254#define LOONGSON_ADDRWINCFG_BASE 0x3ff00000ul
255#define LOONGSON_ADDRWINCFG_SIZE 0x180
256
257extern unsigned long _loongson_addrwincfg_base;
258#define LOONGSON_ADDRWINCFG(offset) \
259 (*(volatile u64 *)(_loongson_addrwincfg_base + (offset)))
260
261#define CPU_WIN0_BASE LOONGSON_ADDRWINCFG(0x00)
262#define CPU_WIN1_BASE LOONGSON_ADDRWINCFG(0x08)
263#define CPU_WIN2_BASE LOONGSON_ADDRWINCFG(0x10)
264#define CPU_WIN3_BASE LOONGSON_ADDRWINCFG(0x18)
265
266#define CPU_WIN0_MASK LOONGSON_ADDRWINCFG(0x20)
267#define CPU_WIN1_MASK LOONGSON_ADDRWINCFG(0x28)
268#define CPU_WIN2_MASK LOONGSON_ADDRWINCFG(0x30)
269#define CPU_WIN3_MASK LOONGSON_ADDRWINCFG(0x38)
270
271#define CPU_WIN0_MMAP LOONGSON_ADDRWINCFG(0x40)
272#define CPU_WIN1_MMAP LOONGSON_ADDRWINCFG(0x48)
273#define CPU_WIN2_MMAP LOONGSON_ADDRWINCFG(0x50)
274#define CPU_WIN3_MMAP LOONGSON_ADDRWINCFG(0x58)
275
276#define PCIDMA_WIN0_BASE LOONGSON_ADDRWINCFG(0x60)
277#define PCIDMA_WIN1_BASE LOONGSON_ADDRWINCFG(0x68)
278#define PCIDMA_WIN2_BASE LOONGSON_ADDRWINCFG(0x70)
279#define PCIDMA_WIN3_BASE LOONGSON_ADDRWINCFG(0x78)
280
281#define PCIDMA_WIN0_MASK LOONGSON_ADDRWINCFG(0x80)
282#define PCIDMA_WIN1_MASK LOONGSON_ADDRWINCFG(0x88)
283#define PCIDMA_WIN2_MASK LOONGSON_ADDRWINCFG(0x90)
284#define PCIDMA_WIN3_MASK LOONGSON_ADDRWINCFG(0x98)
285
286#define PCIDMA_WIN0_MMAP LOONGSON_ADDRWINCFG(0xa0)
287#define PCIDMA_WIN1_MMAP LOONGSON_ADDRWINCFG(0xa8)
288#define PCIDMA_WIN2_MMAP LOONGSON_ADDRWINCFG(0xb0)
289#define PCIDMA_WIN3_MMAP LOONGSON_ADDRWINCFG(0xb8)
290
291#define ADDRWIN_WIN0 0
292#define ADDRWIN_WIN1 1
293#define ADDRWIN_WIN2 2
294#define ADDRWIN_WIN3 3
295
296#define ADDRWIN_MAP_DST_DDR 0
297#define ADDRWIN_MAP_DST_PCI 1
298#define ADDRWIN_MAP_DST_LIO 1
299
300/*
301 * s: CPU, PCIDMA
302 * d: DDR, PCI, LIO
303 * win: 0, 1, 2, 3
304 * src: map source
305 * dst: map destination
306 * size: ~mask + 1
307 */
308#define LOONGSON_ADDRWIN_CFG(s, d, w, src, dst, size) do {\
309 s##_WIN##w##_BASE = (src); \
310 s##_WIN##w##_MMAP = (dst) | ADDRWIN_MAP_DST_##d; \
311 s##_WIN##w##_MASK = ~(size-1); \
312} while (0)
313
314#define LOONGSON_ADDRWIN_CPUTOPCI(win, src, dst, size) \
315 LOONGSON_ADDRWIN_CFG(CPU, PCI, win, src, dst, size)
316#define LOONGSON_ADDRWIN_CPUTODDR(win, src, dst, size) \
317 LOONGSON_ADDRWIN_CFG(CPU, DDR, win, src, dst, size)
318#define LOONGSON_ADDRWIN_PCITODDR(win, src, dst, size) \
319 LOONGSON_ADDRWIN_CFG(PCIDMA, DDR, win, src, dst, size)
60 320
61/* loongson2-specific perf counter IRQ */ 321#endif /* ! CONFIG_CPU_SUPPORTS_ADDRWINCFG */
62#define LOONGSON2_PERFCNT_IRQ (MIPS_CPU_IRQ_BASE + 6)
63 322
64#endif /* __ASM_MACH_LOONGSON_LOONGSON_H */ 323#endif /* __ASM_MACH_LOONGSON_LOONGSON_H */
diff --git a/arch/mips/include/asm/mach-loongson/machine.h b/arch/mips/include/asm/mach-loongson/machine.h
index 206ea2067916..43213388c174 100644
--- a/arch/mips/include/asm/mach-loongson/machine.h
+++ b/arch/mips/include/asm/mach-loongson/machine.h
@@ -1,6 +1,6 @@
1/* 1/*
2 * Copyright (C) 2009 Lemote, Inc. & Institute of Computing Technology 2 * Copyright (C) 2009 Lemote, Inc.
3 * Author: Wu Zhangjin <wuzj@lemote.com> 3 * Author: Wu Zhangjin <wuzhangjin@gmail.com>
4 * 4 *
5 * This program is free software; you can redistribute it and/or modify it 5 * This program is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License as published by the 6 * under the terms of the GNU General Public License as published by the
@@ -13,10 +13,15 @@
13 13
14#ifdef CONFIG_LEMOTE_FULOONG2E 14#ifdef CONFIG_LEMOTE_FULOONG2E
15 15
16#define LOONGSON_UART_BASE (BONITO_PCIIO_BASE + 0x3f8)
17
18#define LOONGSON_MACHTYPE MACH_LEMOTE_FL2E 16#define LOONGSON_MACHTYPE MACH_LEMOTE_FL2E
19 17
20#endif 18#endif
21 19
20/* use fuloong2f as the default machine of LEMOTE_MACH2F */
21#ifdef CONFIG_LEMOTE_MACH2F
22
23#define LOONGSON_MACHTYPE MACH_LEMOTE_FL2F
24
25#endif
26
22#endif /* __ASM_MACH_LOONGSON_MACHINE_H */ 27#endif /* __ASM_MACH_LOONGSON_MACHINE_H */
diff --git a/arch/mips/include/asm/mach-loongson/mem.h b/arch/mips/include/asm/mach-loongson/mem.h
index bd7b3cba7e35..3b23ee8647d6 100644
--- a/arch/mips/include/asm/mach-loongson/mem.h
+++ b/arch/mips/include/asm/mach-loongson/mem.h
@@ -1,6 +1,6 @@
1/* 1/*
2 * Copyright (C) 2009 Lemote, Inc. & Institute of Computing Technology 2 * Copyright (C) 2009 Lemote, Inc.
3 * Author: Wu Zhangjin <wuzj@lemote.com> 3 * Author: Wu Zhangjin <wuzhangjin@gmail.com>
4 * 4 *
5 * This program is free software; you can redistribute it and/or modify it 5 * This program is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License as published by the 6 * under the terms of the GNU General Public License as published by the
@@ -12,19 +12,30 @@
12#define __ASM_MACH_LOONGSON_MEM_H 12#define __ASM_MACH_LOONGSON_MEM_H
13 13
14/* 14/*
15 * On Lemote Loongson 2e 15 * high memory space
16 * 16 *
17 * the high memory space starts from 512M. 17 * in loongson2e, starts from 512M
18 * the peripheral registers reside between 0x1000:0000 and 0x2000:0000. 18 * in loongson2f, starts from 2G 256M
19 */ 19 */
20#ifdef CONFIG_CPU_LOONGSON2E
21#define LOONGSON_HIGHMEM_START 0x20000000
22#else
23#define LOONGSON_HIGHMEM_START 0x90000000
24#endif
20 25
21#ifdef CONFIG_LEMOTE_FULOONG2E 26/*
22 27 * the peripheral registers(MMIO):
23#define LOONGSON_HIGHMEM_START 0x20000000 28 *
29 * On the Lemote Loongson 2e system, reside between 0x1000:0000 and 0x2000:0000.
30 * On the Lemote Loongson 2f system, reside between 0x1000:0000 and 0x8000:0000.
31 */
24 32
25#define LOONGSON_MMIO_MEM_START 0x10000000 33#define LOONGSON_MMIO_MEM_START 0x10000000
26#define LOONGSON_MMIO_MEM_END 0x20000000
27 34
35#ifdef CONFIG_CPU_LOONGSON2E
36#define LOONGSON_MMIO_MEM_END 0x20000000
37#else
38#define LOONGSON_MMIO_MEM_END 0x80000000
28#endif 39#endif
29 40
30#endif /* __ASM_MACH_LOONGSON_MEM_H */ 41#endif /* __ASM_MACH_LOONGSON_MEM_H */
diff --git a/arch/mips/include/asm/mach-loongson/pci.h b/arch/mips/include/asm/mach-loongson/pci.h
index f1663ca81da0..bc99dab4ef63 100644
--- a/arch/mips/include/asm/mach-loongson/pci.h
+++ b/arch/mips/include/asm/mach-loongson/pci.h
@@ -1,37 +1,50 @@
1/* 1/*
2 * Copyright (c) 2008 Zhang Le <r0bertz@gentoo.org> 2 * Copyright (c) 2008 Zhang Le <r0bertz@gentoo.org>
3 * Copyright (c) 2009 Wu Zhangjin <wuzhangjin@gmail.com>
3 * 4 *
4 * This program is free software; you can redistribute it 5 * This program is free software; you can redistribute it
5 * and/or modify it under the terms of the GNU General 6 * and/or modify it under the terms of the GNU General
6 * Public License as published by the Free Software 7 * Public License as published by the Free Software
7 * Foundation; either version 2 of the License, or (at your 8 * Foundation; either version 2 of the License, or (at your
8 * option) any later version. 9 * option) any later version.
9 *
10 * This program is distributed in the hope that it will be
11 * useful, but WITHOUT ANY WARRANTY; without even the implied
12 * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
13 * PURPOSE. See the GNU General Public License for more
14 * details.
15 *
16 * You should have received a copy of the GNU General Public
17 * License along with this program; if not, write to the Free
18 * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA
19 * 02139, USA.
20 */ 10 */
21 11
22#ifndef __ASM_MACH_LOONGSON_PCI_H_ 12#ifndef __ASM_MACH_LOONGSON_PCI_H_
23#define __ASM_MACH_LOONGSON_PCI_H_ 13#define __ASM_MACH_LOONGSON_PCI_H_
24 14
25extern struct pci_ops bonito64_pci_ops; 15extern struct pci_ops loongson_pci_ops;
16
17/* this is an offset from mips_io_port_base */
18#define LOONGSON_PCI_IO_START 0x00004000UL
19
20#ifdef CONFIG_CPU_SUPPORTS_ADDRWINCFG
21
22/*
23 * we use address window2 to map cpu address space to pci space
24 * window2: cpu [1G, 2G] -> pci [1G, 2G]
25 * why not use window 0 & 1? because they are used by cpu when booting.
26 * window0: cpu [0, 256M] -> ddr [0, 256M]
27 * window1: cpu [256M, 512M] -> pci [256M, 512M]
28 */
29
30/* the smallest LOONGSON_CPU_MEM_SRC can be 512M */
31#define LOONGSON_CPU_MEM_SRC 0x40000000ul /* 1G */
32#define LOONGSON_PCI_MEM_DST LOONGSON_CPU_MEM_SRC
33
34#define LOONGSON_PCI_MEM_START LOONGSON_PCI_MEM_DST
35#define LOONGSON_PCI_MEM_END (0x80000000ul-1) /* 2G */
36
37#define MMAP_CPUTOPCI_SIZE (LOONGSON_PCI_MEM_END - \
38 LOONGSON_PCI_MEM_START + 1)
26 39
27#ifdef CONFIG_LEMOTE_FULOONG2E 40#else /* loongson2f/32bit & loongson2e */
28 41
29/* this pci memory space is mapped by pcimap in pci.c */ 42/* this pci memory space is mapped by pcimap in pci.c */
30#define LOONGSON_PCI_MEM_START BONITO_PCILO1_BASE 43#define LOONGSON_PCI_MEM_START LOONGSON_PCILO1_BASE
31#define LOONGSON_PCI_MEM_END (BONITO_PCILO1_BASE + 0x04000000 * 2) 44#define LOONGSON_PCI_MEM_END (LOONGSON_PCILO1_BASE + 0x04000000 * 2)
32/* this is an offset from mips_io_port_base */ 45/* this is an offset from mips_io_port_base */
33#define LOONGSON_PCI_IO_START 0x00004000UL 46#define LOONGSON_PCI_IO_START 0x00004000UL
34 47
35#endif 48#endif /* !CONFIG_CPU_SUPPORTS_ADDRWINCFG */
36 49
37#endif /* !__ASM_MACH_LOONGSON_PCI_H_ */ 50#endif /* !__ASM_MACH_LOONGSON_PCI_H_ */
diff --git a/arch/mips/include/asm/mach-pb1x00/pb1100.h b/arch/mips/include/asm/mach-pb1x00/pb1100.h
deleted file mode 100644
index b1a60f1cbd02..000000000000
--- a/arch/mips/include/asm/mach-pb1x00/pb1100.h
+++ /dev/null
@@ -1,85 +0,0 @@
1/*
2 * Alchemy Semi Pb1100 Referrence Board
3 *
4 * Copyright 2001, 2008 MontaVista Software Inc.
5 * Author: MontaVista Software, Inc. <source@mvista.com>
6 *
7 * ########################################################################
8 *
9 * This program is free software; you can distribute it and/or modify it
10 * under the terms of the GNU General Public License (Version 2) as
11 * published by the Free Software Foundation.
12 *
13 * This program is distributed in the hope it will be useful, but WITHOUT
14 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
15 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
16 * for more details.
17 *
18 * You should have received a copy of the GNU General Public License along
19 * with this program; if not, write to the Free Software Foundation, Inc.,
20 * 59 Temple Place - Suite 330, Boston MA 02111-1307, USA.
21 *
22 * ########################################################################
23 *
24 *
25 */
26#ifndef __ASM_PB1100_H
27#define __ASM_PB1100_H
28
29#define PB1100_IDENT 0xAE000000
30#define BOARD_STATUS_REG 0xAE000004
31# define PB1100_ROM_SEL (1 << 15)
32# define PB1100_ROM_SIZ (1 << 14)
33# define PB1100_SWAP_BOOT (1 << 13)
34# define PB1100_FLASH_WP (1 << 12)
35# define PB1100_ROM_H_STS (1 << 11)
36# define PB1100_ROM_L_STS (1 << 10)
37# define PB1100_FLASH_H_STS (1 << 9)
38# define PB1100_FLASH_L_STS (1 << 8)
39# define PB1100_SRAM_SIZ (1 << 7)
40# define PB1100_TSC_BUSY (1 << 6)
41# define PB1100_PCMCIA_VS_MASK (3 << 4)
42# define PB1100_RS232_CD (1 << 3)
43# define PB1100_RS232_CTS (1 << 2)
44# define PB1100_RS232_DSR (1 << 1)
45# define PB1100_RS232_RI (1 << 0)
46
47#define PB1100_IRDA_RS232 0xAE00000C
48# define PB1100_IRDA_FULL (0 << 14) /* full power */
49# define PB1100_IRDA_SHUTDOWN (1 << 14)
50# define PB1100_IRDA_TT (2 << 14) /* 2/3 power */
51# define PB1100_IRDA_OT (3 << 14) /* 1/3 power */
52# define PB1100_IRDA_FIR (1 << 13)
53
54#define PCMCIA_BOARD_REG 0xAE000010
55# define PB1100_SD_WP1_RO (1 << 15) /* read only */
56# define PB1100_SD_WP0_RO (1 << 14) /* read only */
57# define PB1100_SD_PWR1 (1 << 11) /* applies power to SD1 */
58# define PB1100_SD_PWR0 (1 << 10) /* applies power to SD0 */
59# define PB1100_SEL_SD_CONN1 (1 << 9)
60# define PB1100_SEL_SD_CONN0 (1 << 8)
61# define PC_DEASSERT_RST (1 << 7)
62# define PC_DRV_EN (1 << 4)
63
64#define PB1100_G_CONTROL 0xAE000014 /* graphics control */
65
66#define PB1100_RST_VDDI 0xAE00001C
67# define PB1100_SOFT_RESET (1 << 15) /* clear to reset the board */
68# define PB1100_VDDI_MASK 0x1F
69
70#define PB1100_LEDS 0xAE000018
71
72/*
73 * 11:8 is 4 discreet LEDs. Clearing a bit illuminates the LED.
74 * 7:0 is the LED Display's decimal points.
75 */
76#define PB1100_HEX_LED 0xAE000018
77
78/* PCMCIA Pb1100 specific defines */
79#define PCMCIA_MAX_SOCK 0
80#define PCMCIA_NUM_SOCKS (PCMCIA_MAX_SOCK + 1)
81
82/* VPP/VCC */
83#define SET_VCC_VPP(VCC, VPP) (((VCC) << 2) | ((VPP) << 0))
84
85#endif /* __ASM_PB1100_H */
diff --git a/arch/mips/include/asm/mach-pb1x00/pb1200.h b/arch/mips/include/asm/mach-pb1x00/pb1200.h
index c8618df88cb5..962eb55dc880 100644
--- a/arch/mips/include/asm/mach-pb1x00/pb1200.h
+++ b/arch/mips/include/asm/mach-pb1x00/pb1200.h
@@ -25,6 +25,7 @@
25#define __ASM_PB1200_H 25#define __ASM_PB1200_H
26 26
27#include <linux/types.h> 27#include <linux/types.h>
28#include <asm/mach-au1x00/au1000.h>
28#include <asm/mach-au1x00/au1xxx_psc.h> 29#include <asm/mach-au1x00/au1xxx_psc.h>
29 30
30#define DBDMA_AC97_TX_CHAN DSCR_CMD0_PSC1_TX 31#define DBDMA_AC97_TX_CHAN DSCR_CMD0_PSC1_TX
@@ -43,113 +44,8 @@
43 * Refer to board documentation. 44 * Refer to board documentation.
44 */ 45 */
45#define AC97_PSC_BASE PSC1_BASE_ADDR 46#define AC97_PSC_BASE PSC1_BASE_ADDR
46#define I2S_PSC_BASE PSC1_BASE_ADDR 47#define I2S_PSC_BASE PSC1_BASE_ADDR
47 48
48#define BCSR_KSEG1_ADDR 0xAD800000
49
50typedef volatile struct
51{
52 /*00*/ u16 whoami;
53 u16 reserved0;
54 /*04*/ u16 status;
55 u16 reserved1;
56 /*08*/ u16 switches;
57 u16 reserved2;
58 /*0C*/ u16 resets;
59 u16 reserved3;
60
61 /*10*/ u16 pcmcia;
62 u16 reserved4;
63 /*14*/ u16 board;
64 u16 reserved5;
65 /*18*/ u16 disk_leds;
66 u16 reserved6;
67 /*1C*/ u16 system;
68 u16 reserved7;
69
70 /*20*/ u16 intclr;
71 u16 reserved8;
72 /*24*/ u16 intset;
73 u16 reserved9;
74 /*28*/ u16 intclr_mask;
75 u16 reserved10;
76 /*2C*/ u16 intset_mask;
77 u16 reserved11;
78
79 /*30*/ u16 sig_status;
80 u16 reserved12;
81 /*34*/ u16 int_status;
82 u16 reserved13;
83 /*38*/ u16 reserved14;
84 u16 reserved15;
85 /*3C*/ u16 reserved16;
86 u16 reserved17;
87
88} BCSR;
89
90static BCSR * const bcsr = (BCSR *)BCSR_KSEG1_ADDR;
91
92/*
93 * Register bit definitions for the BCSRs
94 */
95#define BCSR_WHOAMI_DCID 0x000F
96#define BCSR_WHOAMI_CPLD 0x00F0
97#define BCSR_WHOAMI_BOARD 0x0F00
98
99#define BCSR_STATUS_PCMCIA0VS 0x0003
100#define BCSR_STATUS_PCMCIA1VS 0x000C
101#define BCSR_STATUS_SWAPBOOT 0x0040
102#define BCSR_STATUS_FLASHBUSY 0x0100
103#define BCSR_STATUS_IDECBLID 0x0200
104#define BCSR_STATUS_SD0WP 0x0400
105#define BCSR_STATUS_SD1WP 0x0800
106#define BCSR_STATUS_U0RXD 0x1000
107#define BCSR_STATUS_U1RXD 0x2000
108
109#define BCSR_SWITCHES_OCTAL 0x00FF
110#define BCSR_SWITCHES_DIP_1 0x0080
111#define BCSR_SWITCHES_DIP_2 0x0040
112#define BCSR_SWITCHES_DIP_3 0x0020
113#define BCSR_SWITCHES_DIP_4 0x0010
114#define BCSR_SWITCHES_DIP_5 0x0008
115#define BCSR_SWITCHES_DIP_6 0x0004
116#define BCSR_SWITCHES_DIP_7 0x0002
117#define BCSR_SWITCHES_DIP_8 0x0001
118#define BCSR_SWITCHES_ROTARY 0x0F00
119
120#define BCSR_RESETS_ETH 0x0001
121#define BCSR_RESETS_CAMERA 0x0002
122#define BCSR_RESETS_DC 0x0004
123#define BCSR_RESETS_IDE 0x0008
124/* not resets but in the same register */
125#define BCSR_RESETS_WSCFSM 0x0800
126#define BCSR_RESETS_PCS0MUX 0x1000
127#define BCSR_RESETS_PCS1MUX 0x2000
128#define BCSR_RESETS_SPISEL 0x4000
129#define BCSR_RESETS_SD1MUX 0x8000
130
131#define BCSR_PCMCIA_PC0VPP 0x0003
132#define BCSR_PCMCIA_PC0VCC 0x000C
133#define BCSR_PCMCIA_PC0DRVEN 0x0010
134#define BCSR_PCMCIA_PC0RST 0x0080
135#define BCSR_PCMCIA_PC1VPP 0x0300
136#define BCSR_PCMCIA_PC1VCC 0x0C00
137#define BCSR_PCMCIA_PC1DRVEN 0x1000
138#define BCSR_PCMCIA_PC1RST 0x8000
139
140#define BCSR_BOARD_LCDVEE 0x0001
141#define BCSR_BOARD_LCDVDD 0x0002
142#define BCSR_BOARD_LCDBL 0x0004
143#define BCSR_BOARD_CAMSNAP 0x0010
144#define BCSR_BOARD_CAMPWR 0x0020
145#define BCSR_BOARD_SD0PWR 0x0040
146#define BCSR_BOARD_SD1PWR 0x0080
147
148#define BCSR_LEDS_DECIMALS 0x00FF
149#define BCSR_LEDS_LED0 0x0100
150#define BCSR_LEDS_LED1 0x0200
151#define BCSR_LEDS_LED2 0x0400
152#define BCSR_LEDS_LED3 0x0800
153 49
154#define BCSR_SYSTEM_VDDI 0x001F 50#define BCSR_SYSTEM_VDDI 0x001F
155#define BCSR_SYSTEM_POWEROFF 0x4000 51#define BCSR_SYSTEM_POWEROFF 0x4000
@@ -239,20 +135,6 @@ enum external_pb1200_ints {
239 PB1200_INT_END = PB1200_INT_BEGIN + 15 135 PB1200_INT_END = PB1200_INT_BEGIN + 15
240}; 136};
241 137
242/*
243 * Pb1200 specific PCMCIA defines for drivers/pcmcia/au1000_db1x00.c
244 */
245#define PCMCIA_MAX_SOCK 1
246#define PCMCIA_NUM_SOCKS (PCMCIA_MAX_SOCK + 1)
247
248/* VPP/VCC */
249#define SET_VCC_VPP(VCC, VPP, SLOT) \
250 ((((VCC) << 2) | ((VPP) << 0)) << ((SLOT) * 8))
251
252#define BOARD_PC0_INT PB1200_PC0_INT
253#define BOARD_PC1_INT PB1200_PC1_INT
254#define BOARD_CARD_INSERTED(SOCKET) bcsr->sig_status & (1 << (8 + (2 * SOCKET)))
255
256/* NAND chip select */ 138/* NAND chip select */
257#define NAND_CS 1 139#define NAND_CS 1
258 140
diff --git a/arch/mips/include/asm/mach-pb1x00/pb1500.h b/arch/mips/include/asm/mach-pb1x00/pb1500.h
deleted file mode 100644
index da51a2eb7b82..000000000000
--- a/arch/mips/include/asm/mach-pb1x00/pb1500.h
+++ /dev/null
@@ -1,49 +0,0 @@
1/*
2 * Alchemy Semi Pb1500 Referrence Board
3 *
4 * Copyright 2001, 2008 MontaVista Software Inc.
5 * Author: MontaVista Software, Inc. <source@mvista.com>
6 *
7 * ########################################################################
8 *
9 * This program is free software; you can distribute it and/or modify it
10 * under the terms of the GNU General Public License (Version 2) as
11 * published by the Free Software Foundation.
12 *
13 * This program is distributed in the hope it will be useful, but WITHOUT
14 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
15 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
16 * for more details.
17 *
18 * You should have received a copy of the GNU General Public License along
19 * with this program; if not, write to the Free Software Foundation, Inc.,
20 * 59 Temple Place - Suite 330, Boston MA 02111-1307, USA.
21 *
22 * ########################################################################
23 *
24 *
25 */
26#ifndef __ASM_PB1500_H
27#define __ASM_PB1500_H
28
29#define IDENT_BOARD_REG 0xAE000000
30#define BOARD_STATUS_REG 0xAE000004
31#define PCI_BOARD_REG 0xAE000010
32#define PCMCIA_BOARD_REG 0xAE000010
33# define PC_DEASSERT_RST 0x80
34# define PC_DRV_EN 0x10
35#define PB1500_G_CONTROL 0xAE000014
36#define PB1500_RST_VDDI 0xAE00001C
37#define PB1500_LEDS 0xAE000018
38
39#define PB1500_HEX_LED 0xAF000004
40#define PB1500_HEX_LED_BLANK 0xAF000008
41
42/* PCMCIA Pb1500 specific defines */
43#define PCMCIA_MAX_SOCK 0
44#define PCMCIA_NUM_SOCKS (PCMCIA_MAX_SOCK + 1)
45
46/* VPP/VCC */
47#define SET_VCC_VPP(VCC, VPP) (((VCC) << 2) | ((VPP) << 0))
48
49#endif /* __ASM_PB1500_H */
diff --git a/arch/mips/include/asm/mach-pb1x00/pb1550.h b/arch/mips/include/asm/mach-pb1x00/pb1550.h
index 6704a11497db..58796410bd6e 100644
--- a/arch/mips/include/asm/mach-pb1x00/pb1550.h
+++ b/arch/mips/include/asm/mach-pb1x00/pb1550.h
@@ -40,102 +40,6 @@
40#define SMBUS_PSC_BASE PSC2_BASE_ADDR 40#define SMBUS_PSC_BASE PSC2_BASE_ADDR
41#define I2S_PSC_BASE PSC3_BASE_ADDR 41#define I2S_PSC_BASE PSC3_BASE_ADDR
42 42
43#define BCSR_PHYS_ADDR 0xAF000000
44
45typedef volatile struct
46{
47 /*00*/ u16 whoami;
48 u16 reserved0;
49 /*04*/ u16 status;
50 u16 reserved1;
51 /*08*/ u16 switches;
52 u16 reserved2;
53 /*0C*/ u16 resets;
54 u16 reserved3;
55 /*10*/ u16 pcmcia;
56 u16 reserved4;
57 /*14*/ u16 pci;
58 u16 reserved5;
59 /*18*/ u16 leds;
60 u16 reserved6;
61 /*1C*/ u16 system;
62 u16 reserved7;
63
64} BCSR;
65
66static BCSR * const bcsr = (BCSR *)BCSR_PHYS_ADDR;
67
68/*
69 * Register bit definitions for the BCSRs
70 */
71#define BCSR_WHOAMI_DCID 0x000F
72#define BCSR_WHOAMI_CPLD 0x00F0
73#define BCSR_WHOAMI_BOARD 0x0F00
74
75#define BCSR_STATUS_PCMCIA0VS 0x0003
76#define BCSR_STATUS_PCMCIA1VS 0x000C
77#define BCSR_STATUS_PCMCIA0FI 0x0010
78#define BCSR_STATUS_PCMCIA1FI 0x0020
79#define BCSR_STATUS_SWAPBOOT 0x0040
80#define BCSR_STATUS_SRAMWIDTH 0x0080
81#define BCSR_STATUS_FLASHBUSY 0x0100
82#define BCSR_STATUS_ROMBUSY 0x0200
83#define BCSR_STATUS_USBOTGID 0x0800
84#define BCSR_STATUS_U0RXD 0x1000
85#define BCSR_STATUS_U1RXD 0x2000
86#define BCSR_STATUS_U3RXD 0x8000
87
88#define BCSR_SWITCHES_OCTAL 0x00FF
89#define BCSR_SWITCHES_DIP_1 0x0080
90#define BCSR_SWITCHES_DIP_2 0x0040
91#define BCSR_SWITCHES_DIP_3 0x0020
92#define BCSR_SWITCHES_DIP_4 0x0010
93#define BCSR_SWITCHES_DIP_5 0x0008
94#define BCSR_SWITCHES_DIP_6 0x0004
95#define BCSR_SWITCHES_DIP_7 0x0002
96#define BCSR_SWITCHES_DIP_8 0x0001
97#define BCSR_SWITCHES_ROTARY 0x0F00
98
99#define BCSR_RESETS_PHY0 0x0001
100#define BCSR_RESETS_PHY1 0x0002
101#define BCSR_RESETS_DC 0x0004
102#define BCSR_RESETS_WSC 0x2000
103#define BCSR_RESETS_SPISEL 0x4000
104#define BCSR_RESETS_DMAREQ 0x8000
105
106#define BCSR_PCMCIA_PC0VPP 0x0003
107#define BCSR_PCMCIA_PC0VCC 0x000C
108#define BCSR_PCMCIA_PC0DRVEN 0x0010
109#define BCSR_PCMCIA_PC0RST 0x0080
110#define BCSR_PCMCIA_PC1VPP 0x0300
111#define BCSR_PCMCIA_PC1VCC 0x0C00
112#define BCSR_PCMCIA_PC1DRVEN 0x1000
113#define BCSR_PCMCIA_PC1RST 0x8000
114
115#define BCSR_PCI_M66EN 0x0001
116#define BCSR_PCI_M33 0x0100
117#define BCSR_PCI_EXTERNARB 0x0200
118#define BCSR_PCI_GPIO200RST 0x0400
119#define BCSR_PCI_CLKOUT 0x0800
120#define BCSR_PCI_CFGHOST 0x1000
121
122#define BCSR_LEDS_DECIMALS 0x00FF
123#define BCSR_LEDS_LED0 0x0100
124#define BCSR_LEDS_LED1 0x0200
125#define BCSR_LEDS_LED2 0x0400
126#define BCSR_LEDS_LED3 0x0800
127
128#define BCSR_SYSTEM_VDDI 0x001F
129#define BCSR_SYSTEM_POWEROFF 0x4000
130#define BCSR_SYSTEM_RESET 0x8000
131
132#define PCMCIA_MAX_SOCK 1
133#define PCMCIA_NUM_SOCKS (PCMCIA_MAX_SOCK + 1)
134
135/* VPP/VCC */
136#define SET_VCC_VPP(VCC, VPP, SLOT) \
137 ((((VCC) << 2) | ((VPP) << 0)) << ((SLOT) * 8))
138
139#if defined(CONFIG_MTD_PB1550_BOOT) && defined(CONFIG_MTD_PB1550_USER) 43#if defined(CONFIG_MTD_PB1550_BOOT) && defined(CONFIG_MTD_PB1550_USER)
140#define PB1550_BOTH_BANKS 44#define PB1550_BOTH_BANKS
141#elif defined(CONFIG_MTD_PB1550_BOOT) && !defined(CONFIG_MTD_PB1550_USER) 45#elif defined(CONFIG_MTD_PB1550_BOOT) && !defined(CONFIG_MTD_PB1550_USER)
diff --git a/arch/mips/include/asm/mach-pnx833x/gpio.h b/arch/mips/include/asm/mach-pnx833x/gpio.h
index 8de0eb9c98a3..ed3a88da70f6 100644
--- a/arch/mips/include/asm/mach-pnx833x/gpio.h
+++ b/arch/mips/include/asm/mach-pnx833x/gpio.h
@@ -24,7 +24,7 @@
24 24
25/* BIG FAT WARNING: races danger! 25/* BIG FAT WARNING: races danger!
26 No protections exist here. Current users are only early init code, 26 No protections exist here. Current users are only early init code,
27 when locking is not needed because no cuncurency yet exists there, 27 when locking is not needed because no concurrency yet exists there,
28 and GPIO IRQ dispatcher, which does locking. 28 and GPIO IRQ dispatcher, which does locking.
29 However, if many uses will ever happen, proper locking will be needed 29 However, if many uses will ever happen, proper locking will be needed
30 - including locking between different uses 30 - including locking between different uses
diff --git a/arch/mips/include/asm/mach-pnx833x/irq-mapping.h b/arch/mips/include/asm/mach-pnx833x/irq-mapping.h
index 657f089b1724..6d70264557b2 100644
--- a/arch/mips/include/asm/mach-pnx833x/irq-mapping.h
+++ b/arch/mips/include/asm/mach-pnx833x/irq-mapping.h
@@ -123,4 +123,3 @@
123#define PNX833X_GPIO_15_INT (PNX833X_GPIO_IRQ_BASE + 15) 123#define PNX833X_GPIO_15_INT (PNX833X_GPIO_IRQ_BASE + 15)
124 124
125#endif 125#endif
126
diff --git a/arch/mips/include/asm/mach-powertv/asic.h b/arch/mips/include/asm/mach-powertv/asic.h
new file mode 100644
index 000000000000..bcad43a93ebf
--- /dev/null
+++ b/arch/mips/include/asm/mach-powertv/asic.h
@@ -0,0 +1,107 @@
1/*
2 * Copyright (C) 2009 Cisco Systems, Inc.
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
17 */
18
19#ifndef _ASM_MACH_POWERTV_ASIC_H
20#define _ASM_MACH_POWERTV_ASIC_H
21
22#include <linux/ioport.h>
23#include <asm/mach-powertv/asic_regs.h>
24
25#define DVR_CAPABLE (1<<0)
26#define PCIE_CAPABLE (1<<1)
27#define FFS_CAPABLE (1<<2)
28#define DISPLAY_CAPABLE (1<<3)
29
30/* Platform Family types
31 * For compitability, the new value must be added in the end */
32enum family_type {
33 FAMILY_8500,
34 FAMILY_8500RNG,
35 FAMILY_4500,
36 FAMILY_1500,
37 FAMILY_8600,
38 FAMILY_4600,
39 FAMILY_4600VZA,
40 FAMILY_8600VZB,
41 FAMILY_1500VZE,
42 FAMILY_1500VZF,
43 FAMILIES
44};
45
46/* Register maps for each ASIC */
47extern const struct register_map calliope_register_map;
48extern const struct register_map cronus_register_map;
49extern const struct register_map zeus_register_map;
50
51extern struct resource dvr_cronus_resources[];
52extern struct resource dvr_zeus_resources[];
53extern struct resource non_dvr_calliope_resources[];
54extern struct resource non_dvr_cronus_resources[];
55extern struct resource non_dvr_cronuslite_resources[];
56extern struct resource non_dvr_vz_calliope_resources[];
57extern struct resource non_dvr_vze_calliope_resources[];
58extern struct resource non_dvr_vzf_calliope_resources[];
59extern struct resource non_dvr_zeus_resources[];
60
61extern void powertv_platform_init(void);
62extern void platform_alloc_bootmem(void);
63extern enum asic_type platform_get_asic(void);
64extern enum family_type platform_get_family(void);
65extern int platform_supports_dvr(void);
66extern int platform_supports_ffs(void);
67extern int platform_supports_pcie(void);
68extern int platform_supports_display(void);
69extern void configure_platform(void);
70extern void platform_configure_usb_ehci(void);
71extern void platform_unconfigure_usb_ehci(void);
72extern void platform_configure_usb_ohci(void);
73extern void platform_unconfigure_usb_ohci(void);
74
75/* Platform Resources */
76#define ASIC_RESOURCE_GET_EXISTS 1
77extern struct resource *asic_resource_get(const char *name);
78extern void platform_release_memory(void *baddr, int size);
79
80/* Reboot Cause */
81extern void set_reboot_cause(char code, unsigned int data, unsigned int data2);
82extern void set_locked_reboot_cause(char code, unsigned int data,
83 unsigned int data2);
84
85enum sys_reboot_type {
86 sys_unknown_reboot = 0x00, /* Unknown reboot cause */
87 sys_davic_change = 0x01, /* Reboot due to change in DAVIC
88 * mode */
89 sys_user_reboot = 0x02, /* Reboot initiated by user */
90 sys_system_reboot = 0x03, /* Reboot initiated by OS */
91 sys_trap_reboot = 0x04, /* Reboot due to a CPU trap */
92 sys_silent_reboot = 0x05, /* Silent reboot */
93 sys_boot_ldr_reboot = 0x06, /* Bootloader reboot */
94 sys_power_up_reboot = 0x07, /* Power on bootup. Older
95 * drivers may report as
96 * userReboot. */
97 sys_code_change = 0x08, /* Reboot to take code change.
98 * Older drivers may report as
99 * userReboot. */
100 sys_hardware_reset = 0x09, /* HW watchdog or front-panel
101 * reset button reset. Older
102 * drivers may report as
103 * userReboot. */
104 sys_watchdogInterrupt = 0x0A /* Pre-watchdog interrupt */
105};
106
107#endif /* _ASM_MACH_POWERTV_ASIC_H */
diff --git a/arch/mips/include/asm/mach-powertv/asic_reg_map.h b/arch/mips/include/asm/mach-powertv/asic_reg_map.h
new file mode 100644
index 000000000000..6f26cb09828e
--- /dev/null
+++ b/arch/mips/include/asm/mach-powertv/asic_reg_map.h
@@ -0,0 +1,90 @@
1/*
2 * asic_reg_map.h
3 *
4 * A macro-enclosed list of the elements for the register_map structure for
5 * use in defining and manipulating the structure.
6 *
7 * Copyright (C) 2009 Cisco Systems, Inc.
8 *
9 * This program is free software; you can redistribute it and/or modify
10 * it under the terms of the GNU General Public License as published by
11 * the Free Software Foundation; either version 2 of the License, or
12 * (at your option) any later version.
13 *
14 * This program is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
18 *
19 * You should have received a copy of the GNU General Public License
20 * along with this program; if not, write to the Free Software
21 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
22 */
23
24REGISTER_MAP_ELEMENT(eic_slow0_strt_add)
25REGISTER_MAP_ELEMENT(eic_cfg_bits)
26REGISTER_MAP_ELEMENT(eic_ready_status)
27REGISTER_MAP_ELEMENT(chipver3)
28REGISTER_MAP_ELEMENT(chipver2)
29REGISTER_MAP_ELEMENT(chipver1)
30REGISTER_MAP_ELEMENT(chipver0)
31REGISTER_MAP_ELEMENT(uart1_intstat)
32REGISTER_MAP_ELEMENT(uart1_inten)
33REGISTER_MAP_ELEMENT(uart1_config1)
34REGISTER_MAP_ELEMENT(uart1_config2)
35REGISTER_MAP_ELEMENT(uart1_divisorhi)
36REGISTER_MAP_ELEMENT(uart1_divisorlo)
37REGISTER_MAP_ELEMENT(uart1_data)
38REGISTER_MAP_ELEMENT(uart1_status)
39REGISTER_MAP_ELEMENT(int_stat_3)
40REGISTER_MAP_ELEMENT(int_stat_2)
41REGISTER_MAP_ELEMENT(int_stat_1)
42REGISTER_MAP_ELEMENT(int_stat_0)
43REGISTER_MAP_ELEMENT(int_config)
44REGISTER_MAP_ELEMENT(int_int_scan)
45REGISTER_MAP_ELEMENT(ien_int_3)
46REGISTER_MAP_ELEMENT(ien_int_2)
47REGISTER_MAP_ELEMENT(ien_int_1)
48REGISTER_MAP_ELEMENT(ien_int_0)
49REGISTER_MAP_ELEMENT(int_level_3_3)
50REGISTER_MAP_ELEMENT(int_level_3_2)
51REGISTER_MAP_ELEMENT(int_level_3_1)
52REGISTER_MAP_ELEMENT(int_level_3_0)
53REGISTER_MAP_ELEMENT(int_level_2_3)
54REGISTER_MAP_ELEMENT(int_level_2_2)
55REGISTER_MAP_ELEMENT(int_level_2_1)
56REGISTER_MAP_ELEMENT(int_level_2_0)
57REGISTER_MAP_ELEMENT(int_level_1_3)
58REGISTER_MAP_ELEMENT(int_level_1_2)
59REGISTER_MAP_ELEMENT(int_level_1_1)
60REGISTER_MAP_ELEMENT(int_level_1_0)
61REGISTER_MAP_ELEMENT(int_level_0_3)
62REGISTER_MAP_ELEMENT(int_level_0_2)
63REGISTER_MAP_ELEMENT(int_level_0_1)
64REGISTER_MAP_ELEMENT(int_level_0_0)
65REGISTER_MAP_ELEMENT(int_docsis_en)
66REGISTER_MAP_ELEMENT(mips_pll_setup)
67REGISTER_MAP_ELEMENT(usb_fs)
68REGISTER_MAP_ELEMENT(test_bus)
69REGISTER_MAP_ELEMENT(crt_spare)
70REGISTER_MAP_ELEMENT(usb2_ohci_int_mask)
71REGISTER_MAP_ELEMENT(usb2_strap)
72REGISTER_MAP_ELEMENT(ehci_hcapbase)
73REGISTER_MAP_ELEMENT(ohci_hc_revision)
74REGISTER_MAP_ELEMENT(bcm1_bs_lmi_steer)
75REGISTER_MAP_ELEMENT(usb2_control)
76REGISTER_MAP_ELEMENT(usb2_stbus_obc)
77REGISTER_MAP_ELEMENT(usb2_stbus_mess_size)
78REGISTER_MAP_ELEMENT(usb2_stbus_chunk_size)
79REGISTER_MAP_ELEMENT(pcie_regs)
80REGISTER_MAP_ELEMENT(tim_ch)
81REGISTER_MAP_ELEMENT(tim_cl)
82REGISTER_MAP_ELEMENT(gpio_dout)
83REGISTER_MAP_ELEMENT(gpio_din)
84REGISTER_MAP_ELEMENT(gpio_dir)
85REGISTER_MAP_ELEMENT(watchdog)
86REGISTER_MAP_ELEMENT(front_panel)
87REGISTER_MAP_ELEMENT(misc_clk_ctl1)
88REGISTER_MAP_ELEMENT(misc_clk_ctl2)
89REGISTER_MAP_ELEMENT(crt_ext_ctl)
90REGISTER_MAP_ELEMENT(register_maps)
diff --git a/arch/mips/include/asm/mach-powertv/asic_regs.h b/arch/mips/include/asm/mach-powertv/asic_regs.h
new file mode 100644
index 000000000000..1e11236c6dbc
--- /dev/null
+++ b/arch/mips/include/asm/mach-powertv/asic_regs.h
@@ -0,0 +1,122 @@
1/*
2 * Copyright (C) 2009 Cisco Systems, Inc.
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
17 */
18
19#ifndef __ASM_MACH_POWERTV_ASIC_H_
20#define __ASM_MACH_POWERTV_ASIC_H_
21#include <linux/io.h>
22
23/* ASIC types */
24enum asic_type {
25 ASIC_UNKNOWN,
26 ASIC_ZEUS,
27 ASIC_CALLIOPE,
28 ASIC_CRONUS,
29 ASIC_CRONUSLITE,
30 ASICS
31};
32
33/* hardcoded values read from Chip Version registers */
34#define CRONUS_10 0x0B4C1C20
35#define CRONUS_11 0x0B4C1C21
36#define CRONUSLITE_10 0x0B4C1C40
37
38#define NAND_FLASH_BASE 0x03000000
39#define CALLIOPE_IO_BASE 0x08000000
40#define CRONUS_IO_BASE 0x09000000
41#define ZEUS_IO_BASE 0x09000000
42
43#define ASIC_IO_SIZE 0x01000000
44
45/* Definitions for backward compatibility */
46#define UART1_INTSTAT uart1_intstat
47#define UART1_INTEN uart1_inten
48#define UART1_CONFIG1 uart1_config1
49#define UART1_CONFIG2 uart1_config2
50#define UART1_DIVISORHI uart1_divisorhi
51#define UART1_DIVISORLO uart1_divisorlo
52#define UART1_DATA uart1_data
53#define UART1_STATUS uart1_status
54
55/* ASIC register enumeration */
56union register_map_entry {
57 unsigned long phys;
58 u32 *virt;
59};
60
61#define REGISTER_MAP_ELEMENT(x) union register_map_entry x;
62struct register_map {
63#include <asm/mach-powertv/asic_reg_map.h>
64};
65#undef REGISTER_MAP_ELEMENT
66
67/**
68 * register_map_offset_phys - add an offset to the physical address
69 * @map: Pointer to the &struct register_map
70 * @offset: Value to add
71 *
72 * Only adds the base to non-zero physical addresses
73 */
74static inline void register_map_offset_phys(struct register_map *map,
75 unsigned long offset)
76{
77#define REGISTER_MAP_ELEMENT(x) do { \
78 if (map->x.phys != 0) \
79 map->x.phys += offset; \
80 } while (false);
81
82#include <asm/mach-powertv/asic_reg_map.h>
83#undef REGISTER_MAP_ELEMENT
84}
85
86/**
87 * register_map_virtualize - Convert &register_map to virtual addresses
88 * @map: Pointer to &register_map to virtualize
89 */
90static inline void register_map_virtualize(struct register_map *map)
91{
92#define REGISTER_MAP_ELEMENT(x) do { \
93 map->x.virt = (!map->x.phys) ? NULL : \
94 UNCAC_ADDR(phys_to_virt(map->x.phys)); \
95 } while (false);
96
97#include <asm/mach-powertv/asic_reg_map.h>
98#undef REGISTER_MAP_ELEMENT
99}
100
101extern struct register_map _asic_register_map;
102
103/*
104 * Macros to interface to registers through their ioremapped address
105 * asic_reg_phys_addr Returns the physical address of the given register
106 * asic_reg_addr Returns the iomapped virtual address of the given
107 * register.
108 */
109#define asic_reg_addr(x) (_asic_register_map.x.virt)
110#define asic_reg_phys_addr(x) (virt_to_phys((void *) CAC_ADDR( \
111 (unsigned long) asic_reg_addr(x))))
112
113/*
114 * The asic_reg macro is gone. It should be replaced by either asic_read or
115 * asic_write, as appropriate.
116 */
117
118#define asic_read(x) readl(asic_reg_addr(x))
119#define asic_write(v, x) writel(v, asic_reg_addr(x))
120
121extern void asic_irq_init(void);
122#endif
diff --git a/arch/mips/include/asm/mach-powertv/dma-coherence.h b/arch/mips/include/asm/mach-powertv/dma-coherence.h
new file mode 100644
index 000000000000..5b8d5ebeb838
--- /dev/null
+++ b/arch/mips/include/asm/mach-powertv/dma-coherence.h
@@ -0,0 +1,119 @@
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 * Version from mach-generic modified to support PowerTV port
7 * Portions Copyright (C) 2009 Cisco Systems, Inc.
8 * Copyright (C) 2006 Ralf Baechle <ralf@linux-mips.org>
9 *
10 */
11
12#ifndef __ASM_MACH_POWERTV_DMA_COHERENCE_H
13#define __ASM_MACH_POWERTV_DMA_COHERENCE_H
14
15#include <linux/sched.h>
16#include <linux/version.h>
17#include <linux/device.h>
18#include <asm/mach-powertv/asic.h>
19
20static inline bool is_kseg2(void *addr)
21{
22 return (unsigned long)addr >= KSEG2;
23}
24
25static inline unsigned long virt_to_phys_from_pte(void *addr)
26{
27 pgd_t *pgd;
28 pud_t *pud;
29 pmd_t *pmd;
30 pte_t *ptep, pte;
31
32 unsigned long virt_addr = (unsigned long)addr;
33 unsigned long phys_addr = 0UL;
34
35 /* get the page global directory. */
36 pgd = pgd_offset_k(virt_addr);
37
38 if (!pgd_none(*pgd)) {
39 /* get the page upper directory */
40 pud = pud_offset(pgd, virt_addr);
41 if (!pud_none(*pud)) {
42 /* get the page middle directory */
43 pmd = pmd_offset(pud, virt_addr);
44 if (!pmd_none(*pmd)) {
45 /* get a pointer to the page table entry */
46 ptep = pte_offset(pmd, virt_addr);
47 pte = *ptep;
48 /* check for a valid page */
49 if (pte_present(pte)) {
50 /* get the physical address the page is
51 * refering to */
52 phys_addr = (unsigned long)
53 page_to_phys(pte_page(pte));
54 /* add the offset within the page */
55 phys_addr |= (virt_addr & ~PAGE_MASK);
56 }
57 }
58 }
59 }
60
61 return phys_addr;
62}
63
64static inline dma_addr_t plat_map_dma_mem(struct device *dev, void *addr,
65 size_t size)
66{
67 if (is_kseg2(addr))
68 return phys_to_bus(virt_to_phys_from_pte(addr));
69 else
70 return phys_to_bus(virt_to_phys(addr));
71}
72
73static inline dma_addr_t plat_map_dma_mem_page(struct device *dev,
74 struct page *page)
75{
76 return phys_to_bus(page_to_phys(page));
77}
78
79static inline unsigned long plat_dma_addr_to_phys(struct device *dev,
80 dma_addr_t dma_addr)
81{
82 return bus_to_phys(dma_addr);
83}
84
85static inline void plat_unmap_dma_mem(struct device *dev, dma_addr_t dma_addr,
86 size_t size, enum dma_data_direction direction)
87{
88}
89
90static inline int plat_dma_supported(struct device *dev, u64 mask)
91{
92 /*
93 * we fall back to GFP_DMA when the mask isn't all 1s,
94 * so we can't guarantee allocations that must be
95 * within a tighter range than GFP_DMA..
96 */
97 if (mask < DMA_BIT_MASK(24))
98 return 0;
99
100 return 1;
101}
102
103static inline void plat_extra_sync_for_device(struct device *dev)
104{
105 return;
106}
107
108static inline int plat_dma_mapping_error(struct device *dev,
109 dma_addr_t dma_addr)
110{
111 return 0;
112}
113
114static inline int plat_device_is_coherent(struct device *dev)
115{
116 return 0;
117}
118
119#endif /* __ASM_MACH_POWERTV_DMA_COHERENCE_H */
diff --git a/arch/mips/include/asm/mach-powertv/interrupts.h b/arch/mips/include/asm/mach-powertv/interrupts.h
new file mode 100644
index 000000000000..4fd652ceb52a
--- /dev/null
+++ b/arch/mips/include/asm/mach-powertv/interrupts.h
@@ -0,0 +1,253 @@
1/*
2 * Copyright (C) 2009 Cisco Systems, Inc.
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
17 */
18
19#ifndef _ASM_MACH_POWERTV_INTERRUPTS_H_
20#define _ASM_MACH_POWERTV_INTERRUPTS_H_
21
22/*
23 * Defines for all of the interrupt lines
24 */
25
26/* Definitions for backward compatibility */
27#define kIrq_Uart1 irq_uart1
28
29#define ibase 0
30
31/*------------- Register: int_stat_3 */
32/* 126 unused (bit 31) */
33#define irq_asc2video (ibase+126) /* ASC 2 Video Interrupt */
34#define irq_asc1video (ibase+125) /* ASC 1 Video Interrupt */
35#define irq_comms_block_wd (ibase+124) /* ASC 1 Video Interrupt */
36#define irq_fdma_mailbox (ibase+123) /* FDMA Mailbox Output */
37#define irq_fdma_gp (ibase+122) /* FDMA GP Output */
38#define irq_mips_pic (ibase+121) /* MIPS Performance Counter
39 * Interrupt */
40#define irq_mips_timer (ibase+120) /* MIPS Timer Interrupt */
41#define irq_memory_protect (ibase+119) /* Memory Protection Interrupt
42 * -- Ored by glue logic inside
43 * SPARC ILC (see
44 * INT_MEM_PROT_STAT, below,
45 * for individual interrupts)
46 */
47/* 118 unused (bit 22) */
48#define irq_sbag (ibase+117) /* SBAG Interrupt -- Ored by
49 * glue logic inside SPARC ILC
50 * (see INT_SBAG_STAT, below,
51 * for individual interrupts) */
52#define irq_qam_b_fec (ibase+116) /* QAM B FEC Interrupt */
53#define irq_qam_a_fec (ibase+115) /* QAM A FEC Interrupt */
54/* 114 unused (bit 18) */
55#define irq_mailbox (ibase+113) /* Mailbox Debug Interrupt --
56 * Ored by glue logic inside
57 * SPARC ILC (see
58 * INT_MAILBOX_STAT, below, for
59 * individual interrupts) */
60#define irq_fuse_stat1 (ibase+112) /* Fuse Status 1 */
61#define irq_fuse_stat2 (ibase+111) /* Fuse Status 2 */
62#define irq_fuse_stat3 (ibase+110) /* Blitter Interrupt / Fuse
63 * Status 3 */
64#define irq_blitter (ibase+110) /* Blitter Interrupt / Fuse
65 * Status 3 */
66#define irq_avc1_pp0 (ibase+109) /* AVC Decoder #1 PP0
67 * Interrupt */
68#define irq_avc1_pp1 (ibase+108) /* AVC Decoder #1 PP1
69 * Interrupt */
70#define irq_avc1_mbe (ibase+107) /* AVC Decoder #1 MBE
71 * Interrupt */
72#define irq_avc2_pp0 (ibase+106) /* AVC Decoder #2 PP0
73 * Interrupt */
74#define irq_avc2_pp1 (ibase+105) /* AVC Decoder #2 PP1
75 * Interrupt */
76#define irq_avc2_mbe (ibase+104) /* AVC Decoder #2 MBE
77 * Interrupt */
78#define irq_zbug_spi (ibase+103) /* Zbug SPI Slave Interrupt */
79#define irq_qam_mod2 (ibase+102) /* QAM Modulator 2 DMA
80 * Interrupt */
81#define irq_ir_rx (ibase+101) /* IR RX 2 Interrupt */
82#define irq_aud_dsp2 (ibase+100) /* Audio DSP #2 Interrupt */
83#define irq_aud_dsp1 (ibase+99) /* Audio DSP #1 Interrupt */
84#define irq_docsis (ibase+98) /* DOCSIS Debug Interrupt */
85#define irq_sd_dvp1 (ibase+97) /* SD DVP #1 Interrupt */
86#define irq_sd_dvp2 (ibase+96) /* SD DVP #2 Interrupt */
87/*------------- Register: int_stat_2 */
88#define irq_hd_dvp (ibase+95) /* HD DVP Interrupt */
89#define kIrq_Prewatchdog (ibase+94) /* watchdog Pre-Interrupt */
90#define irq_timer2 (ibase+93) /* Programmable Timer
91 * Interrupt 2 */
92#define irq_1394 (ibase+92) /* 1394 Firewire Interrupt */
93#define irq_usbohci (ibase+91) /* USB 2.0 OHCI Interrupt */
94#define irq_usbehci (ibase+90) /* USB 2.0 EHCI Interrupt */
95#define irq_pciexp (ibase+89) /* PCI Express 0 Interrupt */
96#define irq_pciexp0 (ibase+89) /* PCI Express 0 Interrupt */
97#define irq_afe1 (ibase+88) /* AFE 1 Interrupt */
98#define irq_sata (ibase+87) /* SATA 1 Interrupt */
99#define irq_sata1 (ibase+87) /* SATA 1 Interrupt */
100#define irq_dtcp (ibase+86) /* DTCP Interrupt */
101#define irq_pciexp1 (ibase+85) /* PCI Express 1 Interrupt */
102/* 84 unused (bit 20) */
103/* 83 unused (bit 19) */
104/* 82 unused (bit 18) */
105#define irq_sata2 (ibase+81) /* SATA2 Interrupt */
106#define irq_uart2 (ibase+80) /* UART2 Interrupt */
107#define irq_legacy_usb (ibase+79) /* Legacy USB Host ISR (1.1
108 * Host module) */
109#define irq_pod (ibase+78) /* POD Interrupt */
110#define irq_slave_usb (ibase+77) /* Slave USB */
111#define irq_denc1 (ibase+76) /* DENC #1 VTG Interrupt */
112#define irq_vbi_vtg (ibase+75) /* VBI VTG Interrupt */
113#define irq_afe2 (ibase+74) /* AFE 2 Interrupt */
114#define irq_denc2 (ibase+73) /* DENC #2 VTG Interrupt */
115#define irq_asc2 (ibase+72) /* ASC #2 Interrupt */
116#define irq_asc1 (ibase+71) /* ASC #1 Interrupt */
117#define irq_mod_dma (ibase+70) /* Modulator DMA Interrupt */
118#define irq_byte_eng1 (ibase+69) /* Byte Engine Interrupt [1] */
119#define irq_byte_eng0 (ibase+68) /* Byte Engine Interrupt [0] */
120/* 67 unused (bit 03) */
121/* 66 unused (bit 02) */
122/* 65 unused (bit 01) */
123/* 64 unused (bit 00) */
124/*------------- Register: int_stat_1 */
125/* 63 unused (bit 31) */
126/* 62 unused (bit 30) */
127/* 61 unused (bit 29) */
128/* 60 unused (bit 28) */
129/* 59 unused (bit 27) */
130/* 58 unused (bit 26) */
131/* 57 unused (bit 25) */
132/* 56 unused (bit 24) */
133#define irq_buf_dma_mem2mem (ibase+55) /* BufDMA Memory to Memory
134 * Interrupt */
135#define irq_buf_dma_usbtransmit (ibase+54) /* BufDMA USB Transmit
136 * Interrupt */
137#define irq_buf_dma_qpskpodtransmit (ibase+53) /* BufDMA QPSK/POD Tramsit
138 * Interrupt */
139#define irq_buf_dma_transmit_error (ibase+52) /* BufDMA Transmit Error
140 * Interrupt */
141#define irq_buf_dma_usbrecv (ibase+51) /* BufDMA USB Receive
142 * Interrupt */
143#define irq_buf_dma_qpskpodrecv (ibase+50) /* BufDMA QPSK/POD Receive
144 * Interrupt */
145#define irq_buf_dma_recv_error (ibase+49) /* BufDMA Receive Error
146 * Interrupt */
147#define irq_qamdma_transmit_play (ibase+48) /* QAMDMA Transmit/Play
148 * Interrupt */
149#define irq_qamdma_transmit_error (ibase+47) /* QAMDMA Transmit Error
150 * Interrupt */
151#define irq_qamdma_recv2high (ibase+46) /* QAMDMA Receive 2 High
152 * (Chans 63-32) */
153#define irq_qamdma_recv2low (ibase+45) /* QAMDMA Receive 2 Low
154 * (Chans 31-0) */
155#define irq_qamdma_recv1high (ibase+44) /* QAMDMA Receive 1 High
156 * (Chans 63-32) */
157#define irq_qamdma_recv1low (ibase+43) /* QAMDMA Receive 1 Low
158 * (Chans 31-0) */
159#define irq_qamdma_recv_error (ibase+42) /* QAMDMA Receive Error
160 * Interrupt */
161#define irq_mpegsplice (ibase+41) /* MPEG Splice Interrupt */
162#define irq_deinterlace_rdy (ibase+40) /* Deinterlacer Frame Ready
163 * Interrupt */
164#define irq_ext_in0 (ibase+39) /* External Interrupt irq_in0 */
165#define irq_gpio3 (ibase+38) /* GP I/O IRQ 3 - From GP I/O
166 * Module */
167#define irq_gpio2 (ibase+37) /* GP I/O IRQ 2 - From GP I/O
168 * Module (ABE_intN) */
169#define irq_pcrcmplt1 (ibase+36) /* PCR Capture Complete or
170 * Discontinuity 1 */
171#define irq_pcrcmplt2 (ibase+35) /* PCR Capture Complete or
172 * Discontinuity 2 */
173#define irq_parse_peierr (ibase+34) /* PID Parser Error Detect
174 * (PEI) */
175#define irq_parse_cont_err (ibase+33) /* PID Parser continuity error
176 * detect */
177#define irq_ds1framer (ibase+32) /* DS1 Framer Interrupt */
178/*------------- Register: int_stat_0 */
179#define irq_gpio1 (ibase+31) /* GP I/O IRQ 1 - From GP I/O
180 * Module */
181#define irq_gpio0 (ibase+30) /* GP I/O IRQ 0 - From GP I/O
182 * Module */
183#define irq_qpsk_out_aloha (ibase+29) /* QPSK Output Slotted Aloha
184 * (chan 3) Transmission
185 * Completed OK */
186#define irq_qpsk_out_tdma (ibase+28) /* QPSK Output TDMA (chan 2)
187 * Transmission Completed OK */
188#define irq_qpsk_out_reserve (ibase+27) /* QPSK Output Reservation
189 * (chan 1) Transmission
190 * Completed OK */
191#define irq_qpsk_out_aloha_err (ibase+26) /* QPSK Output Slotted Aloha
192 * (chan 3)Transmission
193 * completed with Errors. */
194#define irq_qpsk_out_tdma_err (ibase+25) /* QPSK Output TDMA (chan 2)
195 * Transmission completed with
196 * Errors. */
197#define irq_qpsk_out_rsrv_err (ibase+24) /* QPSK Output Reservation
198 * (chan 1) Transmission
199 * completed with Errors */
200#define irq_aloha_fail (ibase+23) /* Unsuccessful Resend of Aloha
201 * for N times. Aloha retry
202 * timeout for channel 3. */
203#define irq_timer1 (ibase+22) /* Programmable Timer
204 * Interrupt */
205#define irq_keyboard (ibase+21) /* Keyboard Module Interrupt */
206#define irq_i2c (ibase+20) /* I2C Module Interrupt */
207#define irq_spi (ibase+19) /* SPI Module Interrupt */
208#define irq_irblaster (ibase+18) /* IR Blaster Interrupt */
209#define irq_splice_detect (ibase+17) /* PID Key Change Interrupt or
210 * Splice Detect Interrupt */
211#define irq_se_micro (ibase+16) /* Secure Micro I/F Module
212 * Interrupt */
213#define irq_uart1 (ibase+15) /* UART Interrupt */
214#define irq_irrecv (ibase+14) /* IR Receiver Interrupt */
215#define irq_host_int1 (ibase+13) /* Host-to-Host Interrupt 1 */
216#define irq_host_int0 (ibase+12) /* Host-to-Host Interrupt 0 */
217#define irq_qpsk_hecerr (ibase+11) /* QPSK HEC Error Interrupt */
218#define irq_qpsk_crcerr (ibase+10) /* QPSK AAL-5 CRC Error
219 * Interrupt */
220/* 9 unused (bit 09) */
221/* 8 unused (bit 08) */
222#define irq_psicrcerr (ibase+7) /* QAM PSI CRC Error
223 * Interrupt */
224#define irq_psilength_err (ibase+6) /* QAM PSI Length Error
225 * Interrupt */
226#define irq_esfforward (ibase+5) /* ESF Interrupt Mark From
227 * Forward Path Reference -
228 * every 3ms when forward Mbits
229 * and forward slot control
230 * bytes are updated. */
231#define irq_esfreverse (ibase+4) /* ESF Interrupt Mark from
232 * Reverse Path Reference -
233 * delayed from forward mark by
234 * the ranging delay plus a
235 * fixed amount. When reverse
236 * Mbits and reverse slot
237 * control bytes are updated.
238 * Occurs every 3ms for 3.0M and
239 * 1.554 M upstream rates and
240 * every 6 ms for 256K upstream
241 * rate. */
242#define irq_aloha_timeout (ibase+3) /* Slotted-Aloha timeout on
243 * Channel 1. */
244#define irq_reservation (ibase+2) /* Partial (or Incremental)
245 * Reservation Message Completed
246 * or Slotted aloha verify for
247 * channel 1. */
248#define irq_aloha3 (ibase+1) /* Slotted-Aloha Message Verify
249 * Interrupt or Reservation
250 * increment completed for
251 * channel 3. */
252#define irq_mpeg_d (ibase+0) /* MPEG Decoder Interrupt */
253#endif /* _ASM_MACH_POWERTV_INTERRUPTS_H_ */
diff --git a/arch/mips/include/asm/mach-powertv/ioremap.h b/arch/mips/include/asm/mach-powertv/ioremap.h
new file mode 100644
index 000000000000..e6276d5146e8
--- /dev/null
+++ b/arch/mips/include/asm/mach-powertv/ioremap.h
@@ -0,0 +1,90 @@
1/*
2 * This program is free software; you can redistribute it and/or
3 * modify it under the terms of the GNU General Public License
4 * as published by the Free Software Foundation; either version
5 * 2 of the License, or (at your option) any later version.
6 *
7 * Portions Copyright (C) Cisco Systems, Inc.
8 */
9#ifndef __ASM_MACH_POWERTV_IOREMAP_H
10#define __ASM_MACH_POWERTV_IOREMAP_H
11
12#include <linux/types.h>
13
14#define LOW_MEM_BOUNDARY_PHYS 0x20000000
15#define LOW_MEM_BOUNDARY_MASK (~(LOW_MEM_BOUNDARY_PHYS - 1))
16
17/*
18 * The bus addresses are different than the physical addresses that
19 * the processor sees by an offset. This offset varies by ASIC
20 * version. Define a variable to hold the offset and some macros to
21 * make the conversion simpler. */
22extern unsigned long phys_to_bus_offset;
23
24#ifdef CONFIG_HIGHMEM
25#define MEM_GAP_PHYS 0x60000000
26/*
27 * TODO: We will use the hard code for conversion between physical and
28 * bus until the bootloader releases their device tree to us.
29 */
30#define phys_to_bus(x) (((x) < LOW_MEM_BOUNDARY_PHYS) ? \
31 ((x) + phys_to_bus_offset) : (x))
32#define bus_to_phys(x) (((x) < MEM_GAP_PHYS_ADDR) ? \
33 ((x) - phys_to_bus_offset) : (x))
34#else
35#define phys_to_bus(x) ((x) + phys_to_bus_offset)
36#define bus_to_phys(x) ((x) - phys_to_bus_offset)
37#endif
38
39/*
40 * Determine whether the address we are given is for an ASIC device
41 * Params: addr Address to check
42 * Returns: Zero if the address is not for ASIC devices, non-zero
43 * if it is.
44 */
45static inline int asic_is_device_addr(phys_t addr)
46{
47 return !((phys_t)addr & (phys_t) LOW_MEM_BOUNDARY_MASK);
48}
49
50/*
51 * Determine whether the address we are given is external RAM mappable
52 * into KSEG1.
53 * Params: addr Address to check
54 * Returns: Zero if the address is not for external RAM and
55 */
56static inline int asic_is_lowmem_ram_addr(phys_t addr)
57{
58 /*
59 * The RAM always starts at the following address in the processor's
60 * physical address space
61 */
62 static const phys_t phys_ram_base = 0x10000000;
63 phys_t bus_ram_base;
64
65 bus_ram_base = phys_to_bus_offset + phys_ram_base;
66
67 return addr >= bus_ram_base &&
68 addr < (bus_ram_base + (LOW_MEM_BOUNDARY_PHYS - phys_ram_base));
69}
70
71/*
72 * Allow physical addresses to be fixed up to help peripherals located
73 * outside the low 32-bit range -- generic pass-through version.
74 */
75static inline phys_t fixup_bigphys_addr(phys_t phys_addr, phys_t size)
76{
77 return phys_addr;
78}
79
80static inline void __iomem *plat_ioremap(phys_t offset, unsigned long size,
81 unsigned long flags)
82{
83 return NULL;
84}
85
86static inline int plat_iounmap(const volatile void __iomem *addr)
87{
88 return 0;
89}
90#endif /* __ASM_MACH_POWERTV_IOREMAP_H */
diff --git a/arch/mips/include/asm/mach-powertv/irq.h b/arch/mips/include/asm/mach-powertv/irq.h
new file mode 100644
index 000000000000..4bd5d0c61a91
--- /dev/null
+++ b/arch/mips/include/asm/mach-powertv/irq.h
@@ -0,0 +1,25 @@
1/*
2 * Copyright (C) 2009 Cisco Systems, Inc.
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
17 */
18
19#ifndef _ASM_MACH_POWERTV_IRQ_H
20#define _ASM_MACH_POWERTV_IRQ_H
21#include <asm/mach-powertv/interrupts.h>
22
23#define MIPS_CPU_IRQ_BASE ibase
24#define NR_IRQS 127
25#endif
diff --git a/arch/mips/include/asm/mach-powertv/powertv-clock.h b/arch/mips/include/asm/mach-powertv/powertv-clock.h
new file mode 100644
index 000000000000..6f3e9a0fcf8c
--- /dev/null
+++ b/arch/mips/include/asm/mach-powertv/powertv-clock.h
@@ -0,0 +1,29 @@
1/*
2 * Copyright (C) 2009 Cisco Systems, Inc.
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
17 */
18/*
19 * Local definitions for the powertv PCI code
20 */
21
22#ifndef _POWERTV_PCI_POWERTV_PCI_H_
23#define _POWERTV_PCI_POWERTV_PCI_H_
24extern int asic_pcie_map_irq(const struct pci_dev *dev, u8 slot, u8 pin);
25extern int asic_pcie_init(void);
26extern int asic_pcie_init(void);
27
28extern int log_level;
29#endif
diff --git a/arch/mips/include/asm/mach-excite/war.h b/arch/mips/include/asm/mach-powertv/war.h
index 1f82180c1598..7ac05ecc512b 100644
--- a/arch/mips/include/asm/mach-excite/war.h
+++ b/arch/mips/include/asm/mach-powertv/war.h
@@ -3,10 +3,13 @@
3 * License. See the file "COPYING" in the main directory of this archive 3 * License. See the file "COPYING" in the main directory of this archive
4 * for more details. 4 * for more details.
5 * 5 *
6 * This version for the PowerTV platform copied from the Malta version.
7 *
6 * Copyright (C) 2002, 2004, 2007 by Ralf Baechle <ralf@linux-mips.org> 8 * Copyright (C) 2002, 2004, 2007 by Ralf Baechle <ralf@linux-mips.org>
9 * Portions copyright (C) 2009 Cisco Systems, Inc.
7 */ 10 */
8#ifndef __ASM_MIPS_MACH_EXCITE_WAR_H 11#ifndef __ASM_MACH_POWERTV_WAR_H
9#define __ASM_MIPS_MACH_EXCITE_WAR_H 12#define __ASM_MACH_POWERTV_WAR_H
10 13
11#define R4600_V1_INDEX_ICACHEOP_WAR 0 14#define R4600_V1_INDEX_ICACHEOP_WAR 0
12#define R4600_V1_HIT_CACHEOP_WAR 0 15#define R4600_V1_HIT_CACHEOP_WAR 0
@@ -14,12 +17,12 @@
14#define R5432_CP0_INTERRUPT_WAR 0 17#define R5432_CP0_INTERRUPT_WAR 0
15#define BCM1250_M3_WAR 0 18#define BCM1250_M3_WAR 0
16#define SIBYTE_1956_WAR 0 19#define SIBYTE_1956_WAR 0
17#define MIPS4K_ICACHE_REFILL_WAR 0 20#define MIPS4K_ICACHE_REFILL_WAR 1
18#define MIPS_CACHE_SYNC_WAR 0 21#define MIPS_CACHE_SYNC_WAR 1
19#define TX49XX_ICACHE_INDEX_INV_WAR 0 22#define TX49XX_ICACHE_INDEX_INV_WAR 0
20#define RM9000_CDEX_SMP_WAR 1 23#define RM9000_CDEX_SMP_WAR 0
21#define ICACHE_REFILLS_WORKAROUND_WAR 1 24#define ICACHE_REFILLS_WORKAROUND_WAR 1
22#define R10000_LLSC_WAR 0 25#define R10000_LLSC_WAR 0
23#define MIPS34K_MISSED_ITLB_WAR 0 26#define MIPS34K_MISSED_ITLB_WAR 0
24 27
25#endif /* __ASM_MIPS_MACH_EXCITE_WAR_H */ 28#endif /* __ASM_MACH_POWERTV_WAR_H */
diff --git a/arch/mips/include/asm/mach-sibyte/war.h b/arch/mips/include/asm/mach-sibyte/war.h
index 7950ef4f032c..743385d7b5f2 100644
--- a/arch/mips/include/asm/mach-sibyte/war.h
+++ b/arch/mips/include/asm/mach-sibyte/war.h
@@ -16,7 +16,11 @@
16#if defined(CONFIG_SB1_PASS_1_WORKAROUNDS) || \ 16#if defined(CONFIG_SB1_PASS_1_WORKAROUNDS) || \
17 defined(CONFIG_SB1_PASS_2_WORKAROUNDS) 17 defined(CONFIG_SB1_PASS_2_WORKAROUNDS)
18 18
19#define BCM1250_M3_WAR 1 19#ifndef __ASSEMBLY__
20extern int sb1250_m3_workaround_needed(void);
21#endif
22
23#define BCM1250_M3_WAR sb1250_m3_workaround_needed()
20#define SIBYTE_1956_WAR 1 24#define SIBYTE_1956_WAR 1
21 25
22#else 26#else
diff --git a/arch/mips/include/asm/mips-boards/bonito64.h b/arch/mips/include/asm/mips-boards/bonito64.h
index a576ce044c3c..d14e2adc4be5 100644
--- a/arch/mips/include/asm/mips-boards/bonito64.h
+++ b/arch/mips/include/asm/mips-boards/bonito64.h
@@ -26,11 +26,6 @@
26/* offsets from base register */ 26/* offsets from base register */
27#define BONITO(x) (x) 27#define BONITO(x) (x)
28 28
29#elif defined(CONFIG_LEMOTE_FULOONG2E)
30
31#define BONITO(x) (*(volatile u32 *)((char *)CKSEG1ADDR(BONITO_REG_BASE) + (x)))
32#define BONITO_IRQ_BASE 32
33
34#else 29#else
35 30
36/* 31/*
diff --git a/arch/mips/include/asm/mipsregs.h b/arch/mips/include/asm/mipsregs.h
index a581d60cbcc2..c6e3c93ce7c7 100644
--- a/arch/mips/include/asm/mipsregs.h
+++ b/arch/mips/include/asm/mipsregs.h
@@ -135,6 +135,12 @@
135#define FPU_CSR_COND7 0x80000000 /* $fcc7 */ 135#define FPU_CSR_COND7 0x80000000 /* $fcc7 */
136 136
137/* 137/*
138 * Bits 18 - 20 of the FPU Status Register will be read as 0,
139 * and should be written as zero.
140 */
141#define FPU_CSR_RSVD 0x001c0000
142
143/*
138 * X the exception cause indicator 144 * X the exception cause indicator
139 * E the exception enable 145 * E the exception enable
140 * S the sticky/flag bit 146 * S the sticky/flag bit
@@ -161,7 +167,8 @@
161#define FPU_CSR_UDF_S 0x00000008 167#define FPU_CSR_UDF_S 0x00000008
162#define FPU_CSR_INE_S 0x00000004 168#define FPU_CSR_INE_S 0x00000004
163 169
164/* rounding mode */ 170/* Bits 0 and 1 of FPU Status Register specify the rounding mode */
171#define FPU_CSR_RM 0x00000003
165#define FPU_CSR_RN 0x0 /* nearest */ 172#define FPU_CSR_RN 0x0 /* nearest */
166#define FPU_CSR_RZ 0x1 /* towards zero */ 173#define FPU_CSR_RZ 0x1 /* towards zero */
167#define FPU_CSR_RU 0x2 /* towards +Infinity */ 174#define FPU_CSR_RU 0x2 /* towards +Infinity */
@@ -251,6 +258,14 @@
251#define PL_256M 28 258#define PL_256M 28
252 259
253/* 260/*
261 * PageGrain bits
262 */
263#define PG_RIE (_ULCAST_(1) << 31)
264#define PG_XIE (_ULCAST_(1) << 30)
265#define PG_ELPA (_ULCAST_(1) << 29)
266#define PG_ESP (_ULCAST_(1) << 28)
267
268/*
254 * R4x00 interrupt enable / cause bits 269 * R4x00 interrupt enable / cause bits
255 */ 270 */
256#define IE_SW0 (_ULCAST_(1) << 8) 271#define IE_SW0 (_ULCAST_(1) << 8)
@@ -406,6 +421,16 @@
406#define ST0_XX 0x80000000 /* MIPS IV naming */ 421#define ST0_XX 0x80000000 /* MIPS IV naming */
407 422
408/* 423/*
424 * Bitfields and bit numbers in the coprocessor 0 IntCtl register. (MIPSR2)
425 *
426 * Refer to your MIPS R4xx0 manual, chapter 5 for explanation.
427 */
428#define INTCTLB_IPPCI 26
429#define INTCTLF_IPPCI (_ULCAST_(7) << INTCTLB_IPPCI)
430#define INTCTLB_IPTI 29
431#define INTCTLF_IPTI (_ULCAST_(7) << INTCTLB_IPTI)
432
433/*
409 * Bitfields and bit numbers in the coprocessor 0 cause register. 434 * Bitfields and bit numbers in the coprocessor 0 cause register.
410 * 435 *
411 * Refer to your MIPS R4xx0 manual, chapter 5 for explanation. 436 * Refer to your MIPS R4xx0 manual, chapter 5 for explanation.
@@ -434,6 +459,8 @@
434#define CAUSEF_IV (_ULCAST_(1) << 23) 459#define CAUSEF_IV (_ULCAST_(1) << 23)
435#define CAUSEB_CE 28 460#define CAUSEB_CE 28
436#define CAUSEF_CE (_ULCAST_(3) << 28) 461#define CAUSEF_CE (_ULCAST_(3) << 28)
462#define CAUSEB_TI 30
463#define CAUSEF_TI (_ULCAST_(1) << 30)
437#define CAUSEB_BD 31 464#define CAUSEB_BD 31
438#define CAUSEF_BD (_ULCAST_(1) << 31) 465#define CAUSEF_BD (_ULCAST_(1) << 31)
439 466
@@ -564,6 +591,10 @@
564#define MIPS_CONF3_DSP (_ULCAST_(1) << 10) 591#define MIPS_CONF3_DSP (_ULCAST_(1) << 10)
565#define MIPS_CONF3_ULRI (_ULCAST_(1) << 13) 592#define MIPS_CONF3_ULRI (_ULCAST_(1) << 13)
566 593
594#define MIPS_CONF4_MMUSIZEEXT (_ULCAST_(255) << 0)
595#define MIPS_CONF4_MMUEXTDEF (_ULCAST_(3) << 14)
596#define MIPS_CONF4_MMUEXTDEF_MMUSIZEEXT (_ULCAST_(1) << 14)
597
567#define MIPS_CONF7_WII (_ULCAST_(1) << 31) 598#define MIPS_CONF7_WII (_ULCAST_(1) << 31)
568 599
569#define MIPS_CONF7_RPS (_ULCAST_(1) << 2) 600#define MIPS_CONF7_RPS (_ULCAST_(1) << 2)
@@ -814,6 +845,9 @@ do { \
814#define read_c0_pagemask() __read_32bit_c0_register($5, 0) 845#define read_c0_pagemask() __read_32bit_c0_register($5, 0)
815#define write_c0_pagemask(val) __write_32bit_c0_register($5, 0, val) 846#define write_c0_pagemask(val) __write_32bit_c0_register($5, 0, val)
816 847
848#define read_c0_pagegrain() __read_32bit_c0_register($5, 1)
849#define write_c0_pagegrain(val) __write_32bit_c0_register($5, 1, val)
850
817#define read_c0_wired() __read_32bit_c0_register($6, 0) 851#define read_c0_wired() __read_32bit_c0_register($6, 0)
818#define write_c0_wired(val) __write_32bit_c0_register($6, 0, val) 852#define write_c0_wired(val) __write_32bit_c0_register($6, 0, val)
819 853
diff --git a/arch/mips/include/asm/mmu.h b/arch/mips/include/asm/mmu.h
index 4063edd79623..c436138945a8 100644
--- a/arch/mips/include/asm/mmu.h
+++ b/arch/mips/include/asm/mmu.h
@@ -1,6 +1,9 @@
1#ifndef __ASM_MMU_H 1#ifndef __ASM_MMU_H
2#define __ASM_MMU_H 2#define __ASM_MMU_H
3 3
4typedef unsigned long mm_context_t[NR_CPUS]; 4typedef struct {
5 unsigned long asid[NR_CPUS];
6 void *vdso;
7} mm_context_t;
5 8
6#endif /* __ASM_MMU_H */ 9#endif /* __ASM_MMU_H */
diff --git a/arch/mips/include/asm/mmu_context.h b/arch/mips/include/asm/mmu_context.h
index 6083db586500..d9592733a7ba 100644
--- a/arch/mips/include/asm/mmu_context.h
+++ b/arch/mips/include/asm/mmu_context.h
@@ -24,6 +24,33 @@
24#endif /* SMTC */ 24#endif /* SMTC */
25#include <asm-generic/mm_hooks.h> 25#include <asm-generic/mm_hooks.h>
26 26
27#ifdef CONFIG_MIPS_PGD_C0_CONTEXT
28
29#define TLBMISS_HANDLER_SETUP_PGD(pgd) \
30 tlbmiss_handler_setup_pgd((unsigned long)(pgd))
31
32static inline void tlbmiss_handler_setup_pgd(unsigned long pgd)
33{
34 /* Check for swapper_pg_dir and convert to physical address. */
35 if ((pgd & CKSEG3) == CKSEG0)
36 pgd = CPHYSADDR(pgd);
37 write_c0_context(pgd << 11);
38}
39
40#define TLBMISS_HANDLER_SETUP() \
41 do { \
42 TLBMISS_HANDLER_SETUP_PGD(swapper_pg_dir); \
43 write_c0_xcontext((unsigned long) smp_processor_id() << 51); \
44 } while (0)
45
46
47static inline unsigned long get_current_pgd(void)
48{
49 return PHYS_TO_XKSEG_CACHED((read_c0_context() >> 11) & ~0xfffUL);
50}
51
52#else /* CONFIG_MIPS_PGD_C0_CONTEXT: using pgd_current*/
53
27/* 54/*
28 * For the fast tlb miss handlers, we keep a per cpu array of pointers 55 * For the fast tlb miss handlers, we keep a per cpu array of pointers
29 * to the current pgd for each processor. Also, the proc. id is stuffed 56 * to the current pgd for each processor. Also, the proc. id is stuffed
@@ -46,7 +73,7 @@ extern unsigned long pgd_current[];
46 back_to_back_c0_hazard(); \ 73 back_to_back_c0_hazard(); \
47 TLBMISS_HANDLER_SETUP_PGD(swapper_pg_dir) 74 TLBMISS_HANDLER_SETUP_PGD(swapper_pg_dir)
48#endif 75#endif
49 76#endif /* CONFIG_MIPS_PGD_C0_CONTEXT*/
50#if defined(CONFIG_CPU_R3000) || defined(CONFIG_CPU_TX39XX) 77#if defined(CONFIG_CPU_R3000) || defined(CONFIG_CPU_TX39XX)
51 78
52#define ASID_INC 0x40 79#define ASID_INC 0x40
@@ -77,7 +104,7 @@ extern unsigned long smtc_asid_mask;
77 104
78#endif 105#endif
79 106
80#define cpu_context(cpu, mm) ((mm)->context[cpu]) 107#define cpu_context(cpu, mm) ((mm)->context.asid[cpu])
81#define cpu_asid(cpu, mm) (cpu_context((cpu), (mm)) & ASID_MASK) 108#define cpu_asid(cpu, mm) (cpu_context((cpu), (mm)) & ASID_MASK)
82#define asid_cache(cpu) (cpu_data[cpu].asid_cache) 109#define asid_cache(cpu) (cpu_data[cpu].asid_cache)
83 110
diff --git a/arch/mips/include/asm/msc01_ic.h b/arch/mips/include/asm/msc01_ic.h
index 7989b9ffc1d2..d92406ae2841 100644
--- a/arch/mips/include/asm/msc01_ic.h
+++ b/arch/mips/include/asm/msc01_ic.h
@@ -145,4 +145,3 @@ extern void __init init_msc_irqs(unsigned long icubase, unsigned int base, msc_i
145extern void ll_msc_irq(void); 145extern void ll_msc_irq(void);
146 146
147#endif /* __ASM_MIPS_BOARDS_MSC01_IC_H */ 147#endif /* __ASM_MIPS_BOARDS_MSC01_IC_H */
148
diff --git a/arch/mips/include/asm/nile4.h b/arch/mips/include/asm/nile4.h
index c3ca959aa4d9..af0e51a9f68a 100644
--- a/arch/mips/include/asm/nile4.h
+++ b/arch/mips/include/asm/nile4.h
@@ -307,4 +307,3 @@ extern u8 nile4_i8259_iack(void);
307extern void nile4_dump_irq_status(void); /* Debug */ 307extern void nile4_dump_irq_status(void); /* Debug */
308 308
309#endif 309#endif
310
diff --git a/arch/mips/include/asm/octeon/cvmx-agl-defs.h b/arch/mips/include/asm/octeon/cvmx-agl-defs.h
new file mode 100644
index 000000000000..ec94b9ab7be1
--- /dev/null
+++ b/arch/mips/include/asm/octeon/cvmx-agl-defs.h
@@ -0,0 +1,1194 @@
1/***********************license start***************
2 * Author: Cavium Networks
3 *
4 * Contact: support@caviumnetworks.com
5 * This file is part of the OCTEON SDK
6 *
7 * Copyright (c) 2003-2008 Cavium Networks
8 *
9 * This file is free software; you can redistribute it and/or modify
10 * it under the terms of the GNU General Public License, Version 2, as
11 * published by the Free Software Foundation.
12 *
13 * This file is distributed in the hope that it will be useful, but
14 * AS-IS and WITHOUT ANY WARRANTY; without even the implied warranty
15 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, TITLE, or
16 * NONINFRINGEMENT. See the GNU General Public License for more
17 * details.
18 *
19 * You should have received a copy of the GNU General Public License
20 * along with this file; if not, write to the Free Software
21 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
22 * or visit http://www.gnu.org/licenses/.
23 *
24 * This file may also be available under a different license from Cavium.
25 * Contact Cavium Networks for more information
26 ***********************license end**************************************/
27
28#ifndef __CVMX_AGL_DEFS_H__
29#define __CVMX_AGL_DEFS_H__
30
31#define CVMX_AGL_GMX_BAD_REG \
32 CVMX_ADD_IO_SEG(0x00011800E0000518ull)
33#define CVMX_AGL_GMX_BIST \
34 CVMX_ADD_IO_SEG(0x00011800E0000400ull)
35#define CVMX_AGL_GMX_DRV_CTL \
36 CVMX_ADD_IO_SEG(0x00011800E00007F0ull)
37#define CVMX_AGL_GMX_INF_MODE \
38 CVMX_ADD_IO_SEG(0x00011800E00007F8ull)
39#define CVMX_AGL_GMX_PRTX_CFG(offset) \
40 CVMX_ADD_IO_SEG(0x00011800E0000010ull + (((offset) & 1) * 2048))
41#define CVMX_AGL_GMX_RXX_ADR_CAM0(offset) \
42 CVMX_ADD_IO_SEG(0x00011800E0000180ull + (((offset) & 1) * 2048))
43#define CVMX_AGL_GMX_RXX_ADR_CAM1(offset) \
44 CVMX_ADD_IO_SEG(0x00011800E0000188ull + (((offset) & 1) * 2048))
45#define CVMX_AGL_GMX_RXX_ADR_CAM2(offset) \
46 CVMX_ADD_IO_SEG(0x00011800E0000190ull + (((offset) & 1) * 2048))
47#define CVMX_AGL_GMX_RXX_ADR_CAM3(offset) \
48 CVMX_ADD_IO_SEG(0x00011800E0000198ull + (((offset) & 1) * 2048))
49#define CVMX_AGL_GMX_RXX_ADR_CAM4(offset) \
50 CVMX_ADD_IO_SEG(0x00011800E00001A0ull + (((offset) & 1) * 2048))
51#define CVMX_AGL_GMX_RXX_ADR_CAM5(offset) \
52 CVMX_ADD_IO_SEG(0x00011800E00001A8ull + (((offset) & 1) * 2048))
53#define CVMX_AGL_GMX_RXX_ADR_CAM_EN(offset) \
54 CVMX_ADD_IO_SEG(0x00011800E0000108ull + (((offset) & 1) * 2048))
55#define CVMX_AGL_GMX_RXX_ADR_CTL(offset) \
56 CVMX_ADD_IO_SEG(0x00011800E0000100ull + (((offset) & 1) * 2048))
57#define CVMX_AGL_GMX_RXX_DECISION(offset) \
58 CVMX_ADD_IO_SEG(0x00011800E0000040ull + (((offset) & 1) * 2048))
59#define CVMX_AGL_GMX_RXX_FRM_CHK(offset) \
60 CVMX_ADD_IO_SEG(0x00011800E0000020ull + (((offset) & 1) * 2048))
61#define CVMX_AGL_GMX_RXX_FRM_CTL(offset) \
62 CVMX_ADD_IO_SEG(0x00011800E0000018ull + (((offset) & 1) * 2048))
63#define CVMX_AGL_GMX_RXX_FRM_MAX(offset) \
64 CVMX_ADD_IO_SEG(0x00011800E0000030ull + (((offset) & 1) * 2048))
65#define CVMX_AGL_GMX_RXX_FRM_MIN(offset) \
66 CVMX_ADD_IO_SEG(0x00011800E0000028ull + (((offset) & 1) * 2048))
67#define CVMX_AGL_GMX_RXX_IFG(offset) \
68 CVMX_ADD_IO_SEG(0x00011800E0000058ull + (((offset) & 1) * 2048))
69#define CVMX_AGL_GMX_RXX_INT_EN(offset) \
70 CVMX_ADD_IO_SEG(0x00011800E0000008ull + (((offset) & 1) * 2048))
71#define CVMX_AGL_GMX_RXX_INT_REG(offset) \
72 CVMX_ADD_IO_SEG(0x00011800E0000000ull + (((offset) & 1) * 2048))
73#define CVMX_AGL_GMX_RXX_JABBER(offset) \
74 CVMX_ADD_IO_SEG(0x00011800E0000038ull + (((offset) & 1) * 2048))
75#define CVMX_AGL_GMX_RXX_PAUSE_DROP_TIME(offset) \
76 CVMX_ADD_IO_SEG(0x00011800E0000068ull + (((offset) & 1) * 2048))
77#define CVMX_AGL_GMX_RXX_STATS_CTL(offset) \
78 CVMX_ADD_IO_SEG(0x00011800E0000050ull + (((offset) & 1) * 2048))
79#define CVMX_AGL_GMX_RXX_STATS_OCTS(offset) \
80 CVMX_ADD_IO_SEG(0x00011800E0000088ull + (((offset) & 1) * 2048))
81#define CVMX_AGL_GMX_RXX_STATS_OCTS_CTL(offset) \
82 CVMX_ADD_IO_SEG(0x00011800E0000098ull + (((offset) & 1) * 2048))
83#define CVMX_AGL_GMX_RXX_STATS_OCTS_DMAC(offset) \
84 CVMX_ADD_IO_SEG(0x00011800E00000A8ull + (((offset) & 1) * 2048))
85#define CVMX_AGL_GMX_RXX_STATS_OCTS_DRP(offset) \
86 CVMX_ADD_IO_SEG(0x00011800E00000B8ull + (((offset) & 1) * 2048))
87#define CVMX_AGL_GMX_RXX_STATS_PKTS(offset) \
88 CVMX_ADD_IO_SEG(0x00011800E0000080ull + (((offset) & 1) * 2048))
89#define CVMX_AGL_GMX_RXX_STATS_PKTS_BAD(offset) \
90 CVMX_ADD_IO_SEG(0x00011800E00000C0ull + (((offset) & 1) * 2048))
91#define CVMX_AGL_GMX_RXX_STATS_PKTS_CTL(offset) \
92 CVMX_ADD_IO_SEG(0x00011800E0000090ull + (((offset) & 1) * 2048))
93#define CVMX_AGL_GMX_RXX_STATS_PKTS_DMAC(offset) \
94 CVMX_ADD_IO_SEG(0x00011800E00000A0ull + (((offset) & 1) * 2048))
95#define CVMX_AGL_GMX_RXX_STATS_PKTS_DRP(offset) \
96 CVMX_ADD_IO_SEG(0x00011800E00000B0ull + (((offset) & 1) * 2048))
97#define CVMX_AGL_GMX_RXX_UDD_SKP(offset) \
98 CVMX_ADD_IO_SEG(0x00011800E0000048ull + (((offset) & 1) * 2048))
99#define CVMX_AGL_GMX_RX_BP_DROPX(offset) \
100 CVMX_ADD_IO_SEG(0x00011800E0000420ull + (((offset) & 1) * 8))
101#define CVMX_AGL_GMX_RX_BP_OFFX(offset) \
102 CVMX_ADD_IO_SEG(0x00011800E0000460ull + (((offset) & 1) * 8))
103#define CVMX_AGL_GMX_RX_BP_ONX(offset) \
104 CVMX_ADD_IO_SEG(0x00011800E0000440ull + (((offset) & 1) * 8))
105#define CVMX_AGL_GMX_RX_PRT_INFO \
106 CVMX_ADD_IO_SEG(0x00011800E00004E8ull)
107#define CVMX_AGL_GMX_RX_TX_STATUS \
108 CVMX_ADD_IO_SEG(0x00011800E00007E8ull)
109#define CVMX_AGL_GMX_SMACX(offset) \
110 CVMX_ADD_IO_SEG(0x00011800E0000230ull + (((offset) & 1) * 2048))
111#define CVMX_AGL_GMX_STAT_BP \
112 CVMX_ADD_IO_SEG(0x00011800E0000520ull)
113#define CVMX_AGL_GMX_TXX_APPEND(offset) \
114 CVMX_ADD_IO_SEG(0x00011800E0000218ull + (((offset) & 1) * 2048))
115#define CVMX_AGL_GMX_TXX_CTL(offset) \
116 CVMX_ADD_IO_SEG(0x00011800E0000270ull + (((offset) & 1) * 2048))
117#define CVMX_AGL_GMX_TXX_MIN_PKT(offset) \
118 CVMX_ADD_IO_SEG(0x00011800E0000240ull + (((offset) & 1) * 2048))
119#define CVMX_AGL_GMX_TXX_PAUSE_PKT_INTERVAL(offset) \
120 CVMX_ADD_IO_SEG(0x00011800E0000248ull + (((offset) & 1) * 2048))
121#define CVMX_AGL_GMX_TXX_PAUSE_PKT_TIME(offset) \
122 CVMX_ADD_IO_SEG(0x00011800E0000238ull + (((offset) & 1) * 2048))
123#define CVMX_AGL_GMX_TXX_PAUSE_TOGO(offset) \
124 CVMX_ADD_IO_SEG(0x00011800E0000258ull + (((offset) & 1) * 2048))
125#define CVMX_AGL_GMX_TXX_PAUSE_ZERO(offset) \
126 CVMX_ADD_IO_SEG(0x00011800E0000260ull + (((offset) & 1) * 2048))
127#define CVMX_AGL_GMX_TXX_SOFT_PAUSE(offset) \
128 CVMX_ADD_IO_SEG(0x00011800E0000250ull + (((offset) & 1) * 2048))
129#define CVMX_AGL_GMX_TXX_STAT0(offset) \
130 CVMX_ADD_IO_SEG(0x00011800E0000280ull + (((offset) & 1) * 2048))
131#define CVMX_AGL_GMX_TXX_STAT1(offset) \
132 CVMX_ADD_IO_SEG(0x00011800E0000288ull + (((offset) & 1) * 2048))
133#define CVMX_AGL_GMX_TXX_STAT2(offset) \
134 CVMX_ADD_IO_SEG(0x00011800E0000290ull + (((offset) & 1) * 2048))
135#define CVMX_AGL_GMX_TXX_STAT3(offset) \
136 CVMX_ADD_IO_SEG(0x00011800E0000298ull + (((offset) & 1) * 2048))
137#define CVMX_AGL_GMX_TXX_STAT4(offset) \
138 CVMX_ADD_IO_SEG(0x00011800E00002A0ull + (((offset) & 1) * 2048))
139#define CVMX_AGL_GMX_TXX_STAT5(offset) \
140 CVMX_ADD_IO_SEG(0x00011800E00002A8ull + (((offset) & 1) * 2048))
141#define CVMX_AGL_GMX_TXX_STAT6(offset) \
142 CVMX_ADD_IO_SEG(0x00011800E00002B0ull + (((offset) & 1) * 2048))
143#define CVMX_AGL_GMX_TXX_STAT7(offset) \
144 CVMX_ADD_IO_SEG(0x00011800E00002B8ull + (((offset) & 1) * 2048))
145#define CVMX_AGL_GMX_TXX_STAT8(offset) \
146 CVMX_ADD_IO_SEG(0x00011800E00002C0ull + (((offset) & 1) * 2048))
147#define CVMX_AGL_GMX_TXX_STAT9(offset) \
148 CVMX_ADD_IO_SEG(0x00011800E00002C8ull + (((offset) & 1) * 2048))
149#define CVMX_AGL_GMX_TXX_STATS_CTL(offset) \
150 CVMX_ADD_IO_SEG(0x00011800E0000268ull + (((offset) & 1) * 2048))
151#define CVMX_AGL_GMX_TXX_THRESH(offset) \
152 CVMX_ADD_IO_SEG(0x00011800E0000210ull + (((offset) & 1) * 2048))
153#define CVMX_AGL_GMX_TX_BP \
154 CVMX_ADD_IO_SEG(0x00011800E00004D0ull)
155#define CVMX_AGL_GMX_TX_COL_ATTEMPT \
156 CVMX_ADD_IO_SEG(0x00011800E0000498ull)
157#define CVMX_AGL_GMX_TX_IFG \
158 CVMX_ADD_IO_SEG(0x00011800E0000488ull)
159#define CVMX_AGL_GMX_TX_INT_EN \
160 CVMX_ADD_IO_SEG(0x00011800E0000508ull)
161#define CVMX_AGL_GMX_TX_INT_REG \
162 CVMX_ADD_IO_SEG(0x00011800E0000500ull)
163#define CVMX_AGL_GMX_TX_JAM \
164 CVMX_ADD_IO_SEG(0x00011800E0000490ull)
165#define CVMX_AGL_GMX_TX_LFSR \
166 CVMX_ADD_IO_SEG(0x00011800E00004F8ull)
167#define CVMX_AGL_GMX_TX_OVR_BP \
168 CVMX_ADD_IO_SEG(0x00011800E00004C8ull)
169#define CVMX_AGL_GMX_TX_PAUSE_PKT_DMAC \
170 CVMX_ADD_IO_SEG(0x00011800E00004A0ull)
171#define CVMX_AGL_GMX_TX_PAUSE_PKT_TYPE \
172 CVMX_ADD_IO_SEG(0x00011800E00004A8ull)
173
174union cvmx_agl_gmx_bad_reg {
175 uint64_t u64;
176 struct cvmx_agl_gmx_bad_reg_s {
177 uint64_t reserved_38_63:26;
178 uint64_t txpsh1:1;
179 uint64_t txpop1:1;
180 uint64_t ovrflw1:1;
181 uint64_t txpsh:1;
182 uint64_t txpop:1;
183 uint64_t ovrflw:1;
184 uint64_t reserved_27_31:5;
185 uint64_t statovr:1;
186 uint64_t reserved_23_25:3;
187 uint64_t loststat:1;
188 uint64_t reserved_4_21:18;
189 uint64_t out_ovr:2;
190 uint64_t reserved_0_1:2;
191 } s;
192 struct cvmx_agl_gmx_bad_reg_s cn52xx;
193 struct cvmx_agl_gmx_bad_reg_s cn52xxp1;
194 struct cvmx_agl_gmx_bad_reg_cn56xx {
195 uint64_t reserved_35_63:29;
196 uint64_t txpsh:1;
197 uint64_t txpop:1;
198 uint64_t ovrflw:1;
199 uint64_t reserved_27_31:5;
200 uint64_t statovr:1;
201 uint64_t reserved_23_25:3;
202 uint64_t loststat:1;
203 uint64_t reserved_3_21:19;
204 uint64_t out_ovr:1;
205 uint64_t reserved_0_1:2;
206 } cn56xx;
207 struct cvmx_agl_gmx_bad_reg_cn56xx cn56xxp1;
208};
209
210union cvmx_agl_gmx_bist {
211 uint64_t u64;
212 struct cvmx_agl_gmx_bist_s {
213 uint64_t reserved_10_63:54;
214 uint64_t status:10;
215 } s;
216 struct cvmx_agl_gmx_bist_s cn52xx;
217 struct cvmx_agl_gmx_bist_s cn52xxp1;
218 struct cvmx_agl_gmx_bist_s cn56xx;
219 struct cvmx_agl_gmx_bist_s cn56xxp1;
220};
221
222union cvmx_agl_gmx_drv_ctl {
223 uint64_t u64;
224 struct cvmx_agl_gmx_drv_ctl_s {
225 uint64_t reserved_49_63:15;
226 uint64_t byp_en1:1;
227 uint64_t reserved_45_47:3;
228 uint64_t pctl1:5;
229 uint64_t reserved_37_39:3;
230 uint64_t nctl1:5;
231 uint64_t reserved_17_31:15;
232 uint64_t byp_en:1;
233 uint64_t reserved_13_15:3;
234 uint64_t pctl:5;
235 uint64_t reserved_5_7:3;
236 uint64_t nctl:5;
237 } s;
238 struct cvmx_agl_gmx_drv_ctl_s cn52xx;
239 struct cvmx_agl_gmx_drv_ctl_s cn52xxp1;
240 struct cvmx_agl_gmx_drv_ctl_cn56xx {
241 uint64_t reserved_17_63:47;
242 uint64_t byp_en:1;
243 uint64_t reserved_13_15:3;
244 uint64_t pctl:5;
245 uint64_t reserved_5_7:3;
246 uint64_t nctl:5;
247 } cn56xx;
248 struct cvmx_agl_gmx_drv_ctl_cn56xx cn56xxp1;
249};
250
251union cvmx_agl_gmx_inf_mode {
252 uint64_t u64;
253 struct cvmx_agl_gmx_inf_mode_s {
254 uint64_t reserved_2_63:62;
255 uint64_t en:1;
256 uint64_t reserved_0_0:1;
257 } s;
258 struct cvmx_agl_gmx_inf_mode_s cn52xx;
259 struct cvmx_agl_gmx_inf_mode_s cn52xxp1;
260 struct cvmx_agl_gmx_inf_mode_s cn56xx;
261 struct cvmx_agl_gmx_inf_mode_s cn56xxp1;
262};
263
264union cvmx_agl_gmx_prtx_cfg {
265 uint64_t u64;
266 struct cvmx_agl_gmx_prtx_cfg_s {
267 uint64_t reserved_6_63:58;
268 uint64_t tx_en:1;
269 uint64_t rx_en:1;
270 uint64_t slottime:1;
271 uint64_t duplex:1;
272 uint64_t speed:1;
273 uint64_t en:1;
274 } s;
275 struct cvmx_agl_gmx_prtx_cfg_s cn52xx;
276 struct cvmx_agl_gmx_prtx_cfg_s cn52xxp1;
277 struct cvmx_agl_gmx_prtx_cfg_s cn56xx;
278 struct cvmx_agl_gmx_prtx_cfg_s cn56xxp1;
279};
280
281union cvmx_agl_gmx_rxx_adr_cam0 {
282 uint64_t u64;
283 struct cvmx_agl_gmx_rxx_adr_cam0_s {
284 uint64_t adr:64;
285 } s;
286 struct cvmx_agl_gmx_rxx_adr_cam0_s cn52xx;
287 struct cvmx_agl_gmx_rxx_adr_cam0_s cn52xxp1;
288 struct cvmx_agl_gmx_rxx_adr_cam0_s cn56xx;
289 struct cvmx_agl_gmx_rxx_adr_cam0_s cn56xxp1;
290};
291
292union cvmx_agl_gmx_rxx_adr_cam1 {
293 uint64_t u64;
294 struct cvmx_agl_gmx_rxx_adr_cam1_s {
295 uint64_t adr:64;
296 } s;
297 struct cvmx_agl_gmx_rxx_adr_cam1_s cn52xx;
298 struct cvmx_agl_gmx_rxx_adr_cam1_s cn52xxp1;
299 struct cvmx_agl_gmx_rxx_adr_cam1_s cn56xx;
300 struct cvmx_agl_gmx_rxx_adr_cam1_s cn56xxp1;
301};
302
303union cvmx_agl_gmx_rxx_adr_cam2 {
304 uint64_t u64;
305 struct cvmx_agl_gmx_rxx_adr_cam2_s {
306 uint64_t adr:64;
307 } s;
308 struct cvmx_agl_gmx_rxx_adr_cam2_s cn52xx;
309 struct cvmx_agl_gmx_rxx_adr_cam2_s cn52xxp1;
310 struct cvmx_agl_gmx_rxx_adr_cam2_s cn56xx;
311 struct cvmx_agl_gmx_rxx_adr_cam2_s cn56xxp1;
312};
313
314union cvmx_agl_gmx_rxx_adr_cam3 {
315 uint64_t u64;
316 struct cvmx_agl_gmx_rxx_adr_cam3_s {
317 uint64_t adr:64;
318 } s;
319 struct cvmx_agl_gmx_rxx_adr_cam3_s cn52xx;
320 struct cvmx_agl_gmx_rxx_adr_cam3_s cn52xxp1;
321 struct cvmx_agl_gmx_rxx_adr_cam3_s cn56xx;
322 struct cvmx_agl_gmx_rxx_adr_cam3_s cn56xxp1;
323};
324
325union cvmx_agl_gmx_rxx_adr_cam4 {
326 uint64_t u64;
327 struct cvmx_agl_gmx_rxx_adr_cam4_s {
328 uint64_t adr:64;
329 } s;
330 struct cvmx_agl_gmx_rxx_adr_cam4_s cn52xx;
331 struct cvmx_agl_gmx_rxx_adr_cam4_s cn52xxp1;
332 struct cvmx_agl_gmx_rxx_adr_cam4_s cn56xx;
333 struct cvmx_agl_gmx_rxx_adr_cam4_s cn56xxp1;
334};
335
336union cvmx_agl_gmx_rxx_adr_cam5 {
337 uint64_t u64;
338 struct cvmx_agl_gmx_rxx_adr_cam5_s {
339 uint64_t adr:64;
340 } s;
341 struct cvmx_agl_gmx_rxx_adr_cam5_s cn52xx;
342 struct cvmx_agl_gmx_rxx_adr_cam5_s cn52xxp1;
343 struct cvmx_agl_gmx_rxx_adr_cam5_s cn56xx;
344 struct cvmx_agl_gmx_rxx_adr_cam5_s cn56xxp1;
345};
346
347union cvmx_agl_gmx_rxx_adr_cam_en {
348 uint64_t u64;
349 struct cvmx_agl_gmx_rxx_adr_cam_en_s {
350 uint64_t reserved_8_63:56;
351 uint64_t en:8;
352 } s;
353 struct cvmx_agl_gmx_rxx_adr_cam_en_s cn52xx;
354 struct cvmx_agl_gmx_rxx_adr_cam_en_s cn52xxp1;
355 struct cvmx_agl_gmx_rxx_adr_cam_en_s cn56xx;
356 struct cvmx_agl_gmx_rxx_adr_cam_en_s cn56xxp1;
357};
358
359union cvmx_agl_gmx_rxx_adr_ctl {
360 uint64_t u64;
361 struct cvmx_agl_gmx_rxx_adr_ctl_s {
362 uint64_t reserved_4_63:60;
363 uint64_t cam_mode:1;
364 uint64_t mcst:2;
365 uint64_t bcst:1;
366 } s;
367 struct cvmx_agl_gmx_rxx_adr_ctl_s cn52xx;
368 struct cvmx_agl_gmx_rxx_adr_ctl_s cn52xxp1;
369 struct cvmx_agl_gmx_rxx_adr_ctl_s cn56xx;
370 struct cvmx_agl_gmx_rxx_adr_ctl_s cn56xxp1;
371};
372
373union cvmx_agl_gmx_rxx_decision {
374 uint64_t u64;
375 struct cvmx_agl_gmx_rxx_decision_s {
376 uint64_t reserved_5_63:59;
377 uint64_t cnt:5;
378 } s;
379 struct cvmx_agl_gmx_rxx_decision_s cn52xx;
380 struct cvmx_agl_gmx_rxx_decision_s cn52xxp1;
381 struct cvmx_agl_gmx_rxx_decision_s cn56xx;
382 struct cvmx_agl_gmx_rxx_decision_s cn56xxp1;
383};
384
385union cvmx_agl_gmx_rxx_frm_chk {
386 uint64_t u64;
387 struct cvmx_agl_gmx_rxx_frm_chk_s {
388 uint64_t reserved_9_63:55;
389 uint64_t skperr:1;
390 uint64_t rcverr:1;
391 uint64_t lenerr:1;
392 uint64_t alnerr:1;
393 uint64_t fcserr:1;
394 uint64_t jabber:1;
395 uint64_t maxerr:1;
396 uint64_t reserved_1_1:1;
397 uint64_t minerr:1;
398 } s;
399 struct cvmx_agl_gmx_rxx_frm_chk_s cn52xx;
400 struct cvmx_agl_gmx_rxx_frm_chk_s cn52xxp1;
401 struct cvmx_agl_gmx_rxx_frm_chk_s cn56xx;
402 struct cvmx_agl_gmx_rxx_frm_chk_s cn56xxp1;
403};
404
405union cvmx_agl_gmx_rxx_frm_ctl {
406 uint64_t u64;
407 struct cvmx_agl_gmx_rxx_frm_ctl_s {
408 uint64_t reserved_10_63:54;
409 uint64_t pre_align:1;
410 uint64_t pad_len:1;
411 uint64_t vlan_len:1;
412 uint64_t pre_free:1;
413 uint64_t ctl_smac:1;
414 uint64_t ctl_mcst:1;
415 uint64_t ctl_bck:1;
416 uint64_t ctl_drp:1;
417 uint64_t pre_strp:1;
418 uint64_t pre_chk:1;
419 } s;
420 struct cvmx_agl_gmx_rxx_frm_ctl_s cn52xx;
421 struct cvmx_agl_gmx_rxx_frm_ctl_s cn52xxp1;
422 struct cvmx_agl_gmx_rxx_frm_ctl_s cn56xx;
423 struct cvmx_agl_gmx_rxx_frm_ctl_s cn56xxp1;
424};
425
426union cvmx_agl_gmx_rxx_frm_max {
427 uint64_t u64;
428 struct cvmx_agl_gmx_rxx_frm_max_s {
429 uint64_t reserved_16_63:48;
430 uint64_t len:16;
431 } s;
432 struct cvmx_agl_gmx_rxx_frm_max_s cn52xx;
433 struct cvmx_agl_gmx_rxx_frm_max_s cn52xxp1;
434 struct cvmx_agl_gmx_rxx_frm_max_s cn56xx;
435 struct cvmx_agl_gmx_rxx_frm_max_s cn56xxp1;
436};
437
438union cvmx_agl_gmx_rxx_frm_min {
439 uint64_t u64;
440 struct cvmx_agl_gmx_rxx_frm_min_s {
441 uint64_t reserved_16_63:48;
442 uint64_t len:16;
443 } s;
444 struct cvmx_agl_gmx_rxx_frm_min_s cn52xx;
445 struct cvmx_agl_gmx_rxx_frm_min_s cn52xxp1;
446 struct cvmx_agl_gmx_rxx_frm_min_s cn56xx;
447 struct cvmx_agl_gmx_rxx_frm_min_s cn56xxp1;
448};
449
450union cvmx_agl_gmx_rxx_ifg {
451 uint64_t u64;
452 struct cvmx_agl_gmx_rxx_ifg_s {
453 uint64_t reserved_4_63:60;
454 uint64_t ifg:4;
455 } s;
456 struct cvmx_agl_gmx_rxx_ifg_s cn52xx;
457 struct cvmx_agl_gmx_rxx_ifg_s cn52xxp1;
458 struct cvmx_agl_gmx_rxx_ifg_s cn56xx;
459 struct cvmx_agl_gmx_rxx_ifg_s cn56xxp1;
460};
461
462union cvmx_agl_gmx_rxx_int_en {
463 uint64_t u64;
464 struct cvmx_agl_gmx_rxx_int_en_s {
465 uint64_t reserved_20_63:44;
466 uint64_t pause_drp:1;
467 uint64_t reserved_16_18:3;
468 uint64_t ifgerr:1;
469 uint64_t coldet:1;
470 uint64_t falerr:1;
471 uint64_t rsverr:1;
472 uint64_t pcterr:1;
473 uint64_t ovrerr:1;
474 uint64_t reserved_9_9:1;
475 uint64_t skperr:1;
476 uint64_t rcverr:1;
477 uint64_t lenerr:1;
478 uint64_t alnerr:1;
479 uint64_t fcserr:1;
480 uint64_t jabber:1;
481 uint64_t maxerr:1;
482 uint64_t reserved_1_1:1;
483 uint64_t minerr:1;
484 } s;
485 struct cvmx_agl_gmx_rxx_int_en_s cn52xx;
486 struct cvmx_agl_gmx_rxx_int_en_s cn52xxp1;
487 struct cvmx_agl_gmx_rxx_int_en_s cn56xx;
488 struct cvmx_agl_gmx_rxx_int_en_s cn56xxp1;
489};
490
491union cvmx_agl_gmx_rxx_int_reg {
492 uint64_t u64;
493 struct cvmx_agl_gmx_rxx_int_reg_s {
494 uint64_t reserved_20_63:44;
495 uint64_t pause_drp:1;
496 uint64_t reserved_16_18:3;
497 uint64_t ifgerr:1;
498 uint64_t coldet:1;
499 uint64_t falerr:1;
500 uint64_t rsverr:1;
501 uint64_t pcterr:1;
502 uint64_t ovrerr:1;
503 uint64_t reserved_9_9:1;
504 uint64_t skperr:1;
505 uint64_t rcverr:1;
506 uint64_t lenerr:1;
507 uint64_t alnerr:1;
508 uint64_t fcserr:1;
509 uint64_t jabber:1;
510 uint64_t maxerr:1;
511 uint64_t reserved_1_1:1;
512 uint64_t minerr:1;
513 } s;
514 struct cvmx_agl_gmx_rxx_int_reg_s cn52xx;
515 struct cvmx_agl_gmx_rxx_int_reg_s cn52xxp1;
516 struct cvmx_agl_gmx_rxx_int_reg_s cn56xx;
517 struct cvmx_agl_gmx_rxx_int_reg_s cn56xxp1;
518};
519
520union cvmx_agl_gmx_rxx_jabber {
521 uint64_t u64;
522 struct cvmx_agl_gmx_rxx_jabber_s {
523 uint64_t reserved_16_63:48;
524 uint64_t cnt:16;
525 } s;
526 struct cvmx_agl_gmx_rxx_jabber_s cn52xx;
527 struct cvmx_agl_gmx_rxx_jabber_s cn52xxp1;
528 struct cvmx_agl_gmx_rxx_jabber_s cn56xx;
529 struct cvmx_agl_gmx_rxx_jabber_s cn56xxp1;
530};
531
532union cvmx_agl_gmx_rxx_pause_drop_time {
533 uint64_t u64;
534 struct cvmx_agl_gmx_rxx_pause_drop_time_s {
535 uint64_t reserved_16_63:48;
536 uint64_t status:16;
537 } s;
538 struct cvmx_agl_gmx_rxx_pause_drop_time_s cn52xx;
539 struct cvmx_agl_gmx_rxx_pause_drop_time_s cn52xxp1;
540 struct cvmx_agl_gmx_rxx_pause_drop_time_s cn56xx;
541 struct cvmx_agl_gmx_rxx_pause_drop_time_s cn56xxp1;
542};
543
544union cvmx_agl_gmx_rxx_stats_ctl {
545 uint64_t u64;
546 struct cvmx_agl_gmx_rxx_stats_ctl_s {
547 uint64_t reserved_1_63:63;
548 uint64_t rd_clr:1;
549 } s;
550 struct cvmx_agl_gmx_rxx_stats_ctl_s cn52xx;
551 struct cvmx_agl_gmx_rxx_stats_ctl_s cn52xxp1;
552 struct cvmx_agl_gmx_rxx_stats_ctl_s cn56xx;
553 struct cvmx_agl_gmx_rxx_stats_ctl_s cn56xxp1;
554};
555
556union cvmx_agl_gmx_rxx_stats_octs {
557 uint64_t u64;
558 struct cvmx_agl_gmx_rxx_stats_octs_s {
559 uint64_t reserved_48_63:16;
560 uint64_t cnt:48;
561 } s;
562 struct cvmx_agl_gmx_rxx_stats_octs_s cn52xx;
563 struct cvmx_agl_gmx_rxx_stats_octs_s cn52xxp1;
564 struct cvmx_agl_gmx_rxx_stats_octs_s cn56xx;
565 struct cvmx_agl_gmx_rxx_stats_octs_s cn56xxp1;
566};
567
568union cvmx_agl_gmx_rxx_stats_octs_ctl {
569 uint64_t u64;
570 struct cvmx_agl_gmx_rxx_stats_octs_ctl_s {
571 uint64_t reserved_48_63:16;
572 uint64_t cnt:48;
573 } s;
574 struct cvmx_agl_gmx_rxx_stats_octs_ctl_s cn52xx;
575 struct cvmx_agl_gmx_rxx_stats_octs_ctl_s cn52xxp1;
576 struct cvmx_agl_gmx_rxx_stats_octs_ctl_s cn56xx;
577 struct cvmx_agl_gmx_rxx_stats_octs_ctl_s cn56xxp1;
578};
579
580union cvmx_agl_gmx_rxx_stats_octs_dmac {
581 uint64_t u64;
582 struct cvmx_agl_gmx_rxx_stats_octs_dmac_s {
583 uint64_t reserved_48_63:16;
584 uint64_t cnt:48;
585 } s;
586 struct cvmx_agl_gmx_rxx_stats_octs_dmac_s cn52xx;
587 struct cvmx_agl_gmx_rxx_stats_octs_dmac_s cn52xxp1;
588 struct cvmx_agl_gmx_rxx_stats_octs_dmac_s cn56xx;
589 struct cvmx_agl_gmx_rxx_stats_octs_dmac_s cn56xxp1;
590};
591
592union cvmx_agl_gmx_rxx_stats_octs_drp {
593 uint64_t u64;
594 struct cvmx_agl_gmx_rxx_stats_octs_drp_s {
595 uint64_t reserved_48_63:16;
596 uint64_t cnt:48;
597 } s;
598 struct cvmx_agl_gmx_rxx_stats_octs_drp_s cn52xx;
599 struct cvmx_agl_gmx_rxx_stats_octs_drp_s cn52xxp1;
600 struct cvmx_agl_gmx_rxx_stats_octs_drp_s cn56xx;
601 struct cvmx_agl_gmx_rxx_stats_octs_drp_s cn56xxp1;
602};
603
604union cvmx_agl_gmx_rxx_stats_pkts {
605 uint64_t u64;
606 struct cvmx_agl_gmx_rxx_stats_pkts_s {
607 uint64_t reserved_32_63:32;
608 uint64_t cnt:32;
609 } s;
610 struct cvmx_agl_gmx_rxx_stats_pkts_s cn52xx;
611 struct cvmx_agl_gmx_rxx_stats_pkts_s cn52xxp1;
612 struct cvmx_agl_gmx_rxx_stats_pkts_s cn56xx;
613 struct cvmx_agl_gmx_rxx_stats_pkts_s cn56xxp1;
614};
615
616union cvmx_agl_gmx_rxx_stats_pkts_bad {
617 uint64_t u64;
618 struct cvmx_agl_gmx_rxx_stats_pkts_bad_s {
619 uint64_t reserved_32_63:32;
620 uint64_t cnt:32;
621 } s;
622 struct cvmx_agl_gmx_rxx_stats_pkts_bad_s cn52xx;
623 struct cvmx_agl_gmx_rxx_stats_pkts_bad_s cn52xxp1;
624 struct cvmx_agl_gmx_rxx_stats_pkts_bad_s cn56xx;
625 struct cvmx_agl_gmx_rxx_stats_pkts_bad_s cn56xxp1;
626};
627
628union cvmx_agl_gmx_rxx_stats_pkts_ctl {
629 uint64_t u64;
630 struct cvmx_agl_gmx_rxx_stats_pkts_ctl_s {
631 uint64_t reserved_32_63:32;
632 uint64_t cnt:32;
633 } s;
634 struct cvmx_agl_gmx_rxx_stats_pkts_ctl_s cn52xx;
635 struct cvmx_agl_gmx_rxx_stats_pkts_ctl_s cn52xxp1;
636 struct cvmx_agl_gmx_rxx_stats_pkts_ctl_s cn56xx;
637 struct cvmx_agl_gmx_rxx_stats_pkts_ctl_s cn56xxp1;
638};
639
640union cvmx_agl_gmx_rxx_stats_pkts_dmac {
641 uint64_t u64;
642 struct cvmx_agl_gmx_rxx_stats_pkts_dmac_s {
643 uint64_t reserved_32_63:32;
644 uint64_t cnt:32;
645 } s;
646 struct cvmx_agl_gmx_rxx_stats_pkts_dmac_s cn52xx;
647 struct cvmx_agl_gmx_rxx_stats_pkts_dmac_s cn52xxp1;
648 struct cvmx_agl_gmx_rxx_stats_pkts_dmac_s cn56xx;
649 struct cvmx_agl_gmx_rxx_stats_pkts_dmac_s cn56xxp1;
650};
651
652union cvmx_agl_gmx_rxx_stats_pkts_drp {
653 uint64_t u64;
654 struct cvmx_agl_gmx_rxx_stats_pkts_drp_s {
655 uint64_t reserved_32_63:32;
656 uint64_t cnt:32;
657 } s;
658 struct cvmx_agl_gmx_rxx_stats_pkts_drp_s cn52xx;
659 struct cvmx_agl_gmx_rxx_stats_pkts_drp_s cn52xxp1;
660 struct cvmx_agl_gmx_rxx_stats_pkts_drp_s cn56xx;
661 struct cvmx_agl_gmx_rxx_stats_pkts_drp_s cn56xxp1;
662};
663
664union cvmx_agl_gmx_rxx_udd_skp {
665 uint64_t u64;
666 struct cvmx_agl_gmx_rxx_udd_skp_s {
667 uint64_t reserved_9_63:55;
668 uint64_t fcssel:1;
669 uint64_t reserved_7_7:1;
670 uint64_t len:7;
671 } s;
672 struct cvmx_agl_gmx_rxx_udd_skp_s cn52xx;
673 struct cvmx_agl_gmx_rxx_udd_skp_s cn52xxp1;
674 struct cvmx_agl_gmx_rxx_udd_skp_s cn56xx;
675 struct cvmx_agl_gmx_rxx_udd_skp_s cn56xxp1;
676};
677
678union cvmx_agl_gmx_rx_bp_dropx {
679 uint64_t u64;
680 struct cvmx_agl_gmx_rx_bp_dropx_s {
681 uint64_t reserved_6_63:58;
682 uint64_t mark:6;
683 } s;
684 struct cvmx_agl_gmx_rx_bp_dropx_s cn52xx;
685 struct cvmx_agl_gmx_rx_bp_dropx_s cn52xxp1;
686 struct cvmx_agl_gmx_rx_bp_dropx_s cn56xx;
687 struct cvmx_agl_gmx_rx_bp_dropx_s cn56xxp1;
688};
689
690union cvmx_agl_gmx_rx_bp_offx {
691 uint64_t u64;
692 struct cvmx_agl_gmx_rx_bp_offx_s {
693 uint64_t reserved_6_63:58;
694 uint64_t mark:6;
695 } s;
696 struct cvmx_agl_gmx_rx_bp_offx_s cn52xx;
697 struct cvmx_agl_gmx_rx_bp_offx_s cn52xxp1;
698 struct cvmx_agl_gmx_rx_bp_offx_s cn56xx;
699 struct cvmx_agl_gmx_rx_bp_offx_s cn56xxp1;
700};
701
702union cvmx_agl_gmx_rx_bp_onx {
703 uint64_t u64;
704 struct cvmx_agl_gmx_rx_bp_onx_s {
705 uint64_t reserved_9_63:55;
706 uint64_t mark:9;
707 } s;
708 struct cvmx_agl_gmx_rx_bp_onx_s cn52xx;
709 struct cvmx_agl_gmx_rx_bp_onx_s cn52xxp1;
710 struct cvmx_agl_gmx_rx_bp_onx_s cn56xx;
711 struct cvmx_agl_gmx_rx_bp_onx_s cn56xxp1;
712};
713
714union cvmx_agl_gmx_rx_prt_info {
715 uint64_t u64;
716 struct cvmx_agl_gmx_rx_prt_info_s {
717 uint64_t reserved_18_63:46;
718 uint64_t drop:2;
719 uint64_t reserved_2_15:14;
720 uint64_t commit:2;
721 } s;
722 struct cvmx_agl_gmx_rx_prt_info_s cn52xx;
723 struct cvmx_agl_gmx_rx_prt_info_s cn52xxp1;
724 struct cvmx_agl_gmx_rx_prt_info_cn56xx {
725 uint64_t reserved_17_63:47;
726 uint64_t drop:1;
727 uint64_t reserved_1_15:15;
728 uint64_t commit:1;
729 } cn56xx;
730 struct cvmx_agl_gmx_rx_prt_info_cn56xx cn56xxp1;
731};
732
733union cvmx_agl_gmx_rx_tx_status {
734 uint64_t u64;
735 struct cvmx_agl_gmx_rx_tx_status_s {
736 uint64_t reserved_6_63:58;
737 uint64_t tx:2;
738 uint64_t reserved_2_3:2;
739 uint64_t rx:2;
740 } s;
741 struct cvmx_agl_gmx_rx_tx_status_s cn52xx;
742 struct cvmx_agl_gmx_rx_tx_status_s cn52xxp1;
743 struct cvmx_agl_gmx_rx_tx_status_cn56xx {
744 uint64_t reserved_5_63:59;
745 uint64_t tx:1;
746 uint64_t reserved_1_3:3;
747 uint64_t rx:1;
748 } cn56xx;
749 struct cvmx_agl_gmx_rx_tx_status_cn56xx cn56xxp1;
750};
751
752union cvmx_agl_gmx_smacx {
753 uint64_t u64;
754 struct cvmx_agl_gmx_smacx_s {
755 uint64_t reserved_48_63:16;
756 uint64_t smac:48;
757 } s;
758 struct cvmx_agl_gmx_smacx_s cn52xx;
759 struct cvmx_agl_gmx_smacx_s cn52xxp1;
760 struct cvmx_agl_gmx_smacx_s cn56xx;
761 struct cvmx_agl_gmx_smacx_s cn56xxp1;
762};
763
764union cvmx_agl_gmx_stat_bp {
765 uint64_t u64;
766 struct cvmx_agl_gmx_stat_bp_s {
767 uint64_t reserved_17_63:47;
768 uint64_t bp:1;
769 uint64_t cnt:16;
770 } s;
771 struct cvmx_agl_gmx_stat_bp_s cn52xx;
772 struct cvmx_agl_gmx_stat_bp_s cn52xxp1;
773 struct cvmx_agl_gmx_stat_bp_s cn56xx;
774 struct cvmx_agl_gmx_stat_bp_s cn56xxp1;
775};
776
777union cvmx_agl_gmx_txx_append {
778 uint64_t u64;
779 struct cvmx_agl_gmx_txx_append_s {
780 uint64_t reserved_4_63:60;
781 uint64_t force_fcs:1;
782 uint64_t fcs:1;
783 uint64_t pad:1;
784 uint64_t preamble:1;
785 } s;
786 struct cvmx_agl_gmx_txx_append_s cn52xx;
787 struct cvmx_agl_gmx_txx_append_s cn52xxp1;
788 struct cvmx_agl_gmx_txx_append_s cn56xx;
789 struct cvmx_agl_gmx_txx_append_s cn56xxp1;
790};
791
792union cvmx_agl_gmx_txx_ctl {
793 uint64_t u64;
794 struct cvmx_agl_gmx_txx_ctl_s {
795 uint64_t reserved_2_63:62;
796 uint64_t xsdef_en:1;
797 uint64_t xscol_en:1;
798 } s;
799 struct cvmx_agl_gmx_txx_ctl_s cn52xx;
800 struct cvmx_agl_gmx_txx_ctl_s cn52xxp1;
801 struct cvmx_agl_gmx_txx_ctl_s cn56xx;
802 struct cvmx_agl_gmx_txx_ctl_s cn56xxp1;
803};
804
805union cvmx_agl_gmx_txx_min_pkt {
806 uint64_t u64;
807 struct cvmx_agl_gmx_txx_min_pkt_s {
808 uint64_t reserved_8_63:56;
809 uint64_t min_size:8;
810 } s;
811 struct cvmx_agl_gmx_txx_min_pkt_s cn52xx;
812 struct cvmx_agl_gmx_txx_min_pkt_s cn52xxp1;
813 struct cvmx_agl_gmx_txx_min_pkt_s cn56xx;
814 struct cvmx_agl_gmx_txx_min_pkt_s cn56xxp1;
815};
816
817union cvmx_agl_gmx_txx_pause_pkt_interval {
818 uint64_t u64;
819 struct cvmx_agl_gmx_txx_pause_pkt_interval_s {
820 uint64_t reserved_16_63:48;
821 uint64_t interval:16;
822 } s;
823 struct cvmx_agl_gmx_txx_pause_pkt_interval_s cn52xx;
824 struct cvmx_agl_gmx_txx_pause_pkt_interval_s cn52xxp1;
825 struct cvmx_agl_gmx_txx_pause_pkt_interval_s cn56xx;
826 struct cvmx_agl_gmx_txx_pause_pkt_interval_s cn56xxp1;
827};
828
829union cvmx_agl_gmx_txx_pause_pkt_time {
830 uint64_t u64;
831 struct cvmx_agl_gmx_txx_pause_pkt_time_s {
832 uint64_t reserved_16_63:48;
833 uint64_t time:16;
834 } s;
835 struct cvmx_agl_gmx_txx_pause_pkt_time_s cn52xx;
836 struct cvmx_agl_gmx_txx_pause_pkt_time_s cn52xxp1;
837 struct cvmx_agl_gmx_txx_pause_pkt_time_s cn56xx;
838 struct cvmx_agl_gmx_txx_pause_pkt_time_s cn56xxp1;
839};
840
841union cvmx_agl_gmx_txx_pause_togo {
842 uint64_t u64;
843 struct cvmx_agl_gmx_txx_pause_togo_s {
844 uint64_t reserved_16_63:48;
845 uint64_t time:16;
846 } s;
847 struct cvmx_agl_gmx_txx_pause_togo_s cn52xx;
848 struct cvmx_agl_gmx_txx_pause_togo_s cn52xxp1;
849 struct cvmx_agl_gmx_txx_pause_togo_s cn56xx;
850 struct cvmx_agl_gmx_txx_pause_togo_s cn56xxp1;
851};
852
853union cvmx_agl_gmx_txx_pause_zero {
854 uint64_t u64;
855 struct cvmx_agl_gmx_txx_pause_zero_s {
856 uint64_t reserved_1_63:63;
857 uint64_t send:1;
858 } s;
859 struct cvmx_agl_gmx_txx_pause_zero_s cn52xx;
860 struct cvmx_agl_gmx_txx_pause_zero_s cn52xxp1;
861 struct cvmx_agl_gmx_txx_pause_zero_s cn56xx;
862 struct cvmx_agl_gmx_txx_pause_zero_s cn56xxp1;
863};
864
865union cvmx_agl_gmx_txx_soft_pause {
866 uint64_t u64;
867 struct cvmx_agl_gmx_txx_soft_pause_s {
868 uint64_t reserved_16_63:48;
869 uint64_t time:16;
870 } s;
871 struct cvmx_agl_gmx_txx_soft_pause_s cn52xx;
872 struct cvmx_agl_gmx_txx_soft_pause_s cn52xxp1;
873 struct cvmx_agl_gmx_txx_soft_pause_s cn56xx;
874 struct cvmx_agl_gmx_txx_soft_pause_s cn56xxp1;
875};
876
877union cvmx_agl_gmx_txx_stat0 {
878 uint64_t u64;
879 struct cvmx_agl_gmx_txx_stat0_s {
880 uint64_t xsdef:32;
881 uint64_t xscol:32;
882 } s;
883 struct cvmx_agl_gmx_txx_stat0_s cn52xx;
884 struct cvmx_agl_gmx_txx_stat0_s cn52xxp1;
885 struct cvmx_agl_gmx_txx_stat0_s cn56xx;
886 struct cvmx_agl_gmx_txx_stat0_s cn56xxp1;
887};
888
889union cvmx_agl_gmx_txx_stat1 {
890 uint64_t u64;
891 struct cvmx_agl_gmx_txx_stat1_s {
892 uint64_t scol:32;
893 uint64_t mcol:32;
894 } s;
895 struct cvmx_agl_gmx_txx_stat1_s cn52xx;
896 struct cvmx_agl_gmx_txx_stat1_s cn52xxp1;
897 struct cvmx_agl_gmx_txx_stat1_s cn56xx;
898 struct cvmx_agl_gmx_txx_stat1_s cn56xxp1;
899};
900
901union cvmx_agl_gmx_txx_stat2 {
902 uint64_t u64;
903 struct cvmx_agl_gmx_txx_stat2_s {
904 uint64_t reserved_48_63:16;
905 uint64_t octs:48;
906 } s;
907 struct cvmx_agl_gmx_txx_stat2_s cn52xx;
908 struct cvmx_agl_gmx_txx_stat2_s cn52xxp1;
909 struct cvmx_agl_gmx_txx_stat2_s cn56xx;
910 struct cvmx_agl_gmx_txx_stat2_s cn56xxp1;
911};
912
913union cvmx_agl_gmx_txx_stat3 {
914 uint64_t u64;
915 struct cvmx_agl_gmx_txx_stat3_s {
916 uint64_t reserved_32_63:32;
917 uint64_t pkts:32;
918 } s;
919 struct cvmx_agl_gmx_txx_stat3_s cn52xx;
920 struct cvmx_agl_gmx_txx_stat3_s cn52xxp1;
921 struct cvmx_agl_gmx_txx_stat3_s cn56xx;
922 struct cvmx_agl_gmx_txx_stat3_s cn56xxp1;
923};
924
925union cvmx_agl_gmx_txx_stat4 {
926 uint64_t u64;
927 struct cvmx_agl_gmx_txx_stat4_s {
928 uint64_t hist1:32;
929 uint64_t hist0:32;
930 } s;
931 struct cvmx_agl_gmx_txx_stat4_s cn52xx;
932 struct cvmx_agl_gmx_txx_stat4_s cn52xxp1;
933 struct cvmx_agl_gmx_txx_stat4_s cn56xx;
934 struct cvmx_agl_gmx_txx_stat4_s cn56xxp1;
935};
936
937union cvmx_agl_gmx_txx_stat5 {
938 uint64_t u64;
939 struct cvmx_agl_gmx_txx_stat5_s {
940 uint64_t hist3:32;
941 uint64_t hist2:32;
942 } s;
943 struct cvmx_agl_gmx_txx_stat5_s cn52xx;
944 struct cvmx_agl_gmx_txx_stat5_s cn52xxp1;
945 struct cvmx_agl_gmx_txx_stat5_s cn56xx;
946 struct cvmx_agl_gmx_txx_stat5_s cn56xxp1;
947};
948
949union cvmx_agl_gmx_txx_stat6 {
950 uint64_t u64;
951 struct cvmx_agl_gmx_txx_stat6_s {
952 uint64_t hist5:32;
953 uint64_t hist4:32;
954 } s;
955 struct cvmx_agl_gmx_txx_stat6_s cn52xx;
956 struct cvmx_agl_gmx_txx_stat6_s cn52xxp1;
957 struct cvmx_agl_gmx_txx_stat6_s cn56xx;
958 struct cvmx_agl_gmx_txx_stat6_s cn56xxp1;
959};
960
961union cvmx_agl_gmx_txx_stat7 {
962 uint64_t u64;
963 struct cvmx_agl_gmx_txx_stat7_s {
964 uint64_t hist7:32;
965 uint64_t hist6:32;
966 } s;
967 struct cvmx_agl_gmx_txx_stat7_s cn52xx;
968 struct cvmx_agl_gmx_txx_stat7_s cn52xxp1;
969 struct cvmx_agl_gmx_txx_stat7_s cn56xx;
970 struct cvmx_agl_gmx_txx_stat7_s cn56xxp1;
971};
972
973union cvmx_agl_gmx_txx_stat8 {
974 uint64_t u64;
975 struct cvmx_agl_gmx_txx_stat8_s {
976 uint64_t mcst:32;
977 uint64_t bcst:32;
978 } s;
979 struct cvmx_agl_gmx_txx_stat8_s cn52xx;
980 struct cvmx_agl_gmx_txx_stat8_s cn52xxp1;
981 struct cvmx_agl_gmx_txx_stat8_s cn56xx;
982 struct cvmx_agl_gmx_txx_stat8_s cn56xxp1;
983};
984
985union cvmx_agl_gmx_txx_stat9 {
986 uint64_t u64;
987 struct cvmx_agl_gmx_txx_stat9_s {
988 uint64_t undflw:32;
989 uint64_t ctl:32;
990 } s;
991 struct cvmx_agl_gmx_txx_stat9_s cn52xx;
992 struct cvmx_agl_gmx_txx_stat9_s cn52xxp1;
993 struct cvmx_agl_gmx_txx_stat9_s cn56xx;
994 struct cvmx_agl_gmx_txx_stat9_s cn56xxp1;
995};
996
997union cvmx_agl_gmx_txx_stats_ctl {
998 uint64_t u64;
999 struct cvmx_agl_gmx_txx_stats_ctl_s {
1000 uint64_t reserved_1_63:63;
1001 uint64_t rd_clr:1;
1002 } s;
1003 struct cvmx_agl_gmx_txx_stats_ctl_s cn52xx;
1004 struct cvmx_agl_gmx_txx_stats_ctl_s cn52xxp1;
1005 struct cvmx_agl_gmx_txx_stats_ctl_s cn56xx;
1006 struct cvmx_agl_gmx_txx_stats_ctl_s cn56xxp1;
1007};
1008
1009union cvmx_agl_gmx_txx_thresh {
1010 uint64_t u64;
1011 struct cvmx_agl_gmx_txx_thresh_s {
1012 uint64_t reserved_6_63:58;
1013 uint64_t cnt:6;
1014 } s;
1015 struct cvmx_agl_gmx_txx_thresh_s cn52xx;
1016 struct cvmx_agl_gmx_txx_thresh_s cn52xxp1;
1017 struct cvmx_agl_gmx_txx_thresh_s cn56xx;
1018 struct cvmx_agl_gmx_txx_thresh_s cn56xxp1;
1019};
1020
1021union cvmx_agl_gmx_tx_bp {
1022 uint64_t u64;
1023 struct cvmx_agl_gmx_tx_bp_s {
1024 uint64_t reserved_2_63:62;
1025 uint64_t bp:2;
1026 } s;
1027 struct cvmx_agl_gmx_tx_bp_s cn52xx;
1028 struct cvmx_agl_gmx_tx_bp_s cn52xxp1;
1029 struct cvmx_agl_gmx_tx_bp_cn56xx {
1030 uint64_t reserved_1_63:63;
1031 uint64_t bp:1;
1032 } cn56xx;
1033 struct cvmx_agl_gmx_tx_bp_cn56xx cn56xxp1;
1034};
1035
1036union cvmx_agl_gmx_tx_col_attempt {
1037 uint64_t u64;
1038 struct cvmx_agl_gmx_tx_col_attempt_s {
1039 uint64_t reserved_5_63:59;
1040 uint64_t limit:5;
1041 } s;
1042 struct cvmx_agl_gmx_tx_col_attempt_s cn52xx;
1043 struct cvmx_agl_gmx_tx_col_attempt_s cn52xxp1;
1044 struct cvmx_agl_gmx_tx_col_attempt_s cn56xx;
1045 struct cvmx_agl_gmx_tx_col_attempt_s cn56xxp1;
1046};
1047
1048union cvmx_agl_gmx_tx_ifg {
1049 uint64_t u64;
1050 struct cvmx_agl_gmx_tx_ifg_s {
1051 uint64_t reserved_8_63:56;
1052 uint64_t ifg2:4;
1053 uint64_t ifg1:4;
1054 } s;
1055 struct cvmx_agl_gmx_tx_ifg_s cn52xx;
1056 struct cvmx_agl_gmx_tx_ifg_s cn52xxp1;
1057 struct cvmx_agl_gmx_tx_ifg_s cn56xx;
1058 struct cvmx_agl_gmx_tx_ifg_s cn56xxp1;
1059};
1060
1061union cvmx_agl_gmx_tx_int_en {
1062 uint64_t u64;
1063 struct cvmx_agl_gmx_tx_int_en_s {
1064 uint64_t reserved_18_63:46;
1065 uint64_t late_col:2;
1066 uint64_t reserved_14_15:2;
1067 uint64_t xsdef:2;
1068 uint64_t reserved_10_11:2;
1069 uint64_t xscol:2;
1070 uint64_t reserved_4_7:4;
1071 uint64_t undflw:2;
1072 uint64_t reserved_1_1:1;
1073 uint64_t pko_nxa:1;
1074 } s;
1075 struct cvmx_agl_gmx_tx_int_en_s cn52xx;
1076 struct cvmx_agl_gmx_tx_int_en_s cn52xxp1;
1077 struct cvmx_agl_gmx_tx_int_en_cn56xx {
1078 uint64_t reserved_17_63:47;
1079 uint64_t late_col:1;
1080 uint64_t reserved_13_15:3;
1081 uint64_t xsdef:1;
1082 uint64_t reserved_9_11:3;
1083 uint64_t xscol:1;
1084 uint64_t reserved_3_7:5;
1085 uint64_t undflw:1;
1086 uint64_t reserved_1_1:1;
1087 uint64_t pko_nxa:1;
1088 } cn56xx;
1089 struct cvmx_agl_gmx_tx_int_en_cn56xx cn56xxp1;
1090};
1091
1092union cvmx_agl_gmx_tx_int_reg {
1093 uint64_t u64;
1094 struct cvmx_agl_gmx_tx_int_reg_s {
1095 uint64_t reserved_18_63:46;
1096 uint64_t late_col:2;
1097 uint64_t reserved_14_15:2;
1098 uint64_t xsdef:2;
1099 uint64_t reserved_10_11:2;
1100 uint64_t xscol:2;
1101 uint64_t reserved_4_7:4;
1102 uint64_t undflw:2;
1103 uint64_t reserved_1_1:1;
1104 uint64_t pko_nxa:1;
1105 } s;
1106 struct cvmx_agl_gmx_tx_int_reg_s cn52xx;
1107 struct cvmx_agl_gmx_tx_int_reg_s cn52xxp1;
1108 struct cvmx_agl_gmx_tx_int_reg_cn56xx {
1109 uint64_t reserved_17_63:47;
1110 uint64_t late_col:1;
1111 uint64_t reserved_13_15:3;
1112 uint64_t xsdef:1;
1113 uint64_t reserved_9_11:3;
1114 uint64_t xscol:1;
1115 uint64_t reserved_3_7:5;
1116 uint64_t undflw:1;
1117 uint64_t reserved_1_1:1;
1118 uint64_t pko_nxa:1;
1119 } cn56xx;
1120 struct cvmx_agl_gmx_tx_int_reg_cn56xx cn56xxp1;
1121};
1122
1123union cvmx_agl_gmx_tx_jam {
1124 uint64_t u64;
1125 struct cvmx_agl_gmx_tx_jam_s {
1126 uint64_t reserved_8_63:56;
1127 uint64_t jam:8;
1128 } s;
1129 struct cvmx_agl_gmx_tx_jam_s cn52xx;
1130 struct cvmx_agl_gmx_tx_jam_s cn52xxp1;
1131 struct cvmx_agl_gmx_tx_jam_s cn56xx;
1132 struct cvmx_agl_gmx_tx_jam_s cn56xxp1;
1133};
1134
1135union cvmx_agl_gmx_tx_lfsr {
1136 uint64_t u64;
1137 struct cvmx_agl_gmx_tx_lfsr_s {
1138 uint64_t reserved_16_63:48;
1139 uint64_t lfsr:16;
1140 } s;
1141 struct cvmx_agl_gmx_tx_lfsr_s cn52xx;
1142 struct cvmx_agl_gmx_tx_lfsr_s cn52xxp1;
1143 struct cvmx_agl_gmx_tx_lfsr_s cn56xx;
1144 struct cvmx_agl_gmx_tx_lfsr_s cn56xxp1;
1145};
1146
1147union cvmx_agl_gmx_tx_ovr_bp {
1148 uint64_t u64;
1149 struct cvmx_agl_gmx_tx_ovr_bp_s {
1150 uint64_t reserved_10_63:54;
1151 uint64_t en:2;
1152 uint64_t reserved_6_7:2;
1153 uint64_t bp:2;
1154 uint64_t reserved_2_3:2;
1155 uint64_t ign_full:2;
1156 } s;
1157 struct cvmx_agl_gmx_tx_ovr_bp_s cn52xx;
1158 struct cvmx_agl_gmx_tx_ovr_bp_s cn52xxp1;
1159 struct cvmx_agl_gmx_tx_ovr_bp_cn56xx {
1160 uint64_t reserved_9_63:55;
1161 uint64_t en:1;
1162 uint64_t reserved_5_7:3;
1163 uint64_t bp:1;
1164 uint64_t reserved_1_3:3;
1165 uint64_t ign_full:1;
1166 } cn56xx;
1167 struct cvmx_agl_gmx_tx_ovr_bp_cn56xx cn56xxp1;
1168};
1169
1170union cvmx_agl_gmx_tx_pause_pkt_dmac {
1171 uint64_t u64;
1172 struct cvmx_agl_gmx_tx_pause_pkt_dmac_s {
1173 uint64_t reserved_48_63:16;
1174 uint64_t dmac:48;
1175 } s;
1176 struct cvmx_agl_gmx_tx_pause_pkt_dmac_s cn52xx;
1177 struct cvmx_agl_gmx_tx_pause_pkt_dmac_s cn52xxp1;
1178 struct cvmx_agl_gmx_tx_pause_pkt_dmac_s cn56xx;
1179 struct cvmx_agl_gmx_tx_pause_pkt_dmac_s cn56xxp1;
1180};
1181
1182union cvmx_agl_gmx_tx_pause_pkt_type {
1183 uint64_t u64;
1184 struct cvmx_agl_gmx_tx_pause_pkt_type_s {
1185 uint64_t reserved_16_63:48;
1186 uint64_t type:16;
1187 } s;
1188 struct cvmx_agl_gmx_tx_pause_pkt_type_s cn52xx;
1189 struct cvmx_agl_gmx_tx_pause_pkt_type_s cn52xxp1;
1190 struct cvmx_agl_gmx_tx_pause_pkt_type_s cn56xx;
1191 struct cvmx_agl_gmx_tx_pause_pkt_type_s cn56xxp1;
1192};
1193
1194#endif
diff --git a/arch/mips/include/asm/octeon/cvmx-mixx-defs.h b/arch/mips/include/asm/octeon/cvmx-mixx-defs.h
new file mode 100644
index 000000000000..dab6dca492f9
--- /dev/null
+++ b/arch/mips/include/asm/octeon/cvmx-mixx-defs.h
@@ -0,0 +1,248 @@
1/***********************license start***************
2 * Author: Cavium Networks
3 *
4 * Contact: support@caviumnetworks.com
5 * This file is part of the OCTEON SDK
6 *
7 * Copyright (c) 2003-2008 Cavium Networks
8 *
9 * This file is free software; you can redistribute it and/or modify
10 * it under the terms of the GNU General Public License, Version 2, as
11 * published by the Free Software Foundation.
12 *
13 * This file is distributed in the hope that it will be useful, but
14 * AS-IS and WITHOUT ANY WARRANTY; without even the implied warranty
15 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, TITLE, or
16 * NONINFRINGEMENT. See the GNU General Public License for more
17 * details.
18 *
19 * You should have received a copy of the GNU General Public License
20 * along with this file; if not, write to the Free Software
21 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
22 * or visit http://www.gnu.org/licenses/.
23 *
24 * This file may also be available under a different license from Cavium.
25 * Contact Cavium Networks for more information
26 ***********************license end**************************************/
27
28#ifndef __CVMX_MIXX_DEFS_H__
29#define __CVMX_MIXX_DEFS_H__
30
31#define CVMX_MIXX_BIST(offset) \
32 CVMX_ADD_IO_SEG(0x0001070000100078ull + (((offset) & 1) * 2048))
33#define CVMX_MIXX_CTL(offset) \
34 CVMX_ADD_IO_SEG(0x0001070000100020ull + (((offset) & 1) * 2048))
35#define CVMX_MIXX_INTENA(offset) \
36 CVMX_ADD_IO_SEG(0x0001070000100050ull + (((offset) & 1) * 2048))
37#define CVMX_MIXX_IRCNT(offset) \
38 CVMX_ADD_IO_SEG(0x0001070000100030ull + (((offset) & 1) * 2048))
39#define CVMX_MIXX_IRHWM(offset) \
40 CVMX_ADD_IO_SEG(0x0001070000100028ull + (((offset) & 1) * 2048))
41#define CVMX_MIXX_IRING1(offset) \
42 CVMX_ADD_IO_SEG(0x0001070000100010ull + (((offset) & 1) * 2048))
43#define CVMX_MIXX_IRING2(offset) \
44 CVMX_ADD_IO_SEG(0x0001070000100018ull + (((offset) & 1) * 2048))
45#define CVMX_MIXX_ISR(offset) \
46 CVMX_ADD_IO_SEG(0x0001070000100048ull + (((offset) & 1) * 2048))
47#define CVMX_MIXX_ORCNT(offset) \
48 CVMX_ADD_IO_SEG(0x0001070000100040ull + (((offset) & 1) * 2048))
49#define CVMX_MIXX_ORHWM(offset) \
50 CVMX_ADD_IO_SEG(0x0001070000100038ull + (((offset) & 1) * 2048))
51#define CVMX_MIXX_ORING1(offset) \
52 CVMX_ADD_IO_SEG(0x0001070000100000ull + (((offset) & 1) * 2048))
53#define CVMX_MIXX_ORING2(offset) \
54 CVMX_ADD_IO_SEG(0x0001070000100008ull + (((offset) & 1) * 2048))
55#define CVMX_MIXX_REMCNT(offset) \
56 CVMX_ADD_IO_SEG(0x0001070000100058ull + (((offset) & 1) * 2048))
57
58union cvmx_mixx_bist {
59 uint64_t u64;
60 struct cvmx_mixx_bist_s {
61 uint64_t reserved_4_63:60;
62 uint64_t mrqdat:1;
63 uint64_t ipfdat:1;
64 uint64_t irfdat:1;
65 uint64_t orfdat:1;
66 } s;
67 struct cvmx_mixx_bist_s cn52xx;
68 struct cvmx_mixx_bist_s cn52xxp1;
69 struct cvmx_mixx_bist_s cn56xx;
70 struct cvmx_mixx_bist_s cn56xxp1;
71};
72
73union cvmx_mixx_ctl {
74 uint64_t u64;
75 struct cvmx_mixx_ctl_s {
76 uint64_t reserved_8_63:56;
77 uint64_t crc_strip:1;
78 uint64_t busy:1;
79 uint64_t en:1;
80 uint64_t reset:1;
81 uint64_t lendian:1;
82 uint64_t nbtarb:1;
83 uint64_t mrq_hwm:2;
84 } s;
85 struct cvmx_mixx_ctl_s cn52xx;
86 struct cvmx_mixx_ctl_s cn52xxp1;
87 struct cvmx_mixx_ctl_s cn56xx;
88 struct cvmx_mixx_ctl_s cn56xxp1;
89};
90
91union cvmx_mixx_intena {
92 uint64_t u64;
93 struct cvmx_mixx_intena_s {
94 uint64_t reserved_7_63:57;
95 uint64_t orunena:1;
96 uint64_t irunena:1;
97 uint64_t data_drpena:1;
98 uint64_t ithena:1;
99 uint64_t othena:1;
100 uint64_t ivfena:1;
101 uint64_t ovfena:1;
102 } s;
103 struct cvmx_mixx_intena_s cn52xx;
104 struct cvmx_mixx_intena_s cn52xxp1;
105 struct cvmx_mixx_intena_s cn56xx;
106 struct cvmx_mixx_intena_s cn56xxp1;
107};
108
109union cvmx_mixx_ircnt {
110 uint64_t u64;
111 struct cvmx_mixx_ircnt_s {
112 uint64_t reserved_20_63:44;
113 uint64_t ircnt:20;
114 } s;
115 struct cvmx_mixx_ircnt_s cn52xx;
116 struct cvmx_mixx_ircnt_s cn52xxp1;
117 struct cvmx_mixx_ircnt_s cn56xx;
118 struct cvmx_mixx_ircnt_s cn56xxp1;
119};
120
121union cvmx_mixx_irhwm {
122 uint64_t u64;
123 struct cvmx_mixx_irhwm_s {
124 uint64_t reserved_40_63:24;
125 uint64_t ibplwm:20;
126 uint64_t irhwm:20;
127 } s;
128 struct cvmx_mixx_irhwm_s cn52xx;
129 struct cvmx_mixx_irhwm_s cn52xxp1;
130 struct cvmx_mixx_irhwm_s cn56xx;
131 struct cvmx_mixx_irhwm_s cn56xxp1;
132};
133
134union cvmx_mixx_iring1 {
135 uint64_t u64;
136 struct cvmx_mixx_iring1_s {
137 uint64_t reserved_60_63:4;
138 uint64_t isize:20;
139 uint64_t reserved_36_39:4;
140 uint64_t ibase:33;
141 uint64_t reserved_0_2:3;
142 } s;
143 struct cvmx_mixx_iring1_s cn52xx;
144 struct cvmx_mixx_iring1_s cn52xxp1;
145 struct cvmx_mixx_iring1_s cn56xx;
146 struct cvmx_mixx_iring1_s cn56xxp1;
147};
148
149union cvmx_mixx_iring2 {
150 uint64_t u64;
151 struct cvmx_mixx_iring2_s {
152 uint64_t reserved_52_63:12;
153 uint64_t itlptr:20;
154 uint64_t reserved_20_31:12;
155 uint64_t idbell:20;
156 } s;
157 struct cvmx_mixx_iring2_s cn52xx;
158 struct cvmx_mixx_iring2_s cn52xxp1;
159 struct cvmx_mixx_iring2_s cn56xx;
160 struct cvmx_mixx_iring2_s cn56xxp1;
161};
162
163union cvmx_mixx_isr {
164 uint64_t u64;
165 struct cvmx_mixx_isr_s {
166 uint64_t reserved_7_63:57;
167 uint64_t orun:1;
168 uint64_t irun:1;
169 uint64_t data_drp:1;
170 uint64_t irthresh:1;
171 uint64_t orthresh:1;
172 uint64_t idblovf:1;
173 uint64_t odblovf:1;
174 } s;
175 struct cvmx_mixx_isr_s cn52xx;
176 struct cvmx_mixx_isr_s cn52xxp1;
177 struct cvmx_mixx_isr_s cn56xx;
178 struct cvmx_mixx_isr_s cn56xxp1;
179};
180
181union cvmx_mixx_orcnt {
182 uint64_t u64;
183 struct cvmx_mixx_orcnt_s {
184 uint64_t reserved_20_63:44;
185 uint64_t orcnt:20;
186 } s;
187 struct cvmx_mixx_orcnt_s cn52xx;
188 struct cvmx_mixx_orcnt_s cn52xxp1;
189 struct cvmx_mixx_orcnt_s cn56xx;
190 struct cvmx_mixx_orcnt_s cn56xxp1;
191};
192
193union cvmx_mixx_orhwm {
194 uint64_t u64;
195 struct cvmx_mixx_orhwm_s {
196 uint64_t reserved_20_63:44;
197 uint64_t orhwm:20;
198 } s;
199 struct cvmx_mixx_orhwm_s cn52xx;
200 struct cvmx_mixx_orhwm_s cn52xxp1;
201 struct cvmx_mixx_orhwm_s cn56xx;
202 struct cvmx_mixx_orhwm_s cn56xxp1;
203};
204
205union cvmx_mixx_oring1 {
206 uint64_t u64;
207 struct cvmx_mixx_oring1_s {
208 uint64_t reserved_60_63:4;
209 uint64_t osize:20;
210 uint64_t reserved_36_39:4;
211 uint64_t obase:33;
212 uint64_t reserved_0_2:3;
213 } s;
214 struct cvmx_mixx_oring1_s cn52xx;
215 struct cvmx_mixx_oring1_s cn52xxp1;
216 struct cvmx_mixx_oring1_s cn56xx;
217 struct cvmx_mixx_oring1_s cn56xxp1;
218};
219
220union cvmx_mixx_oring2 {
221 uint64_t u64;
222 struct cvmx_mixx_oring2_s {
223 uint64_t reserved_52_63:12;
224 uint64_t otlptr:20;
225 uint64_t reserved_20_31:12;
226 uint64_t odbell:20;
227 } s;
228 struct cvmx_mixx_oring2_s cn52xx;
229 struct cvmx_mixx_oring2_s cn52xxp1;
230 struct cvmx_mixx_oring2_s cn56xx;
231 struct cvmx_mixx_oring2_s cn56xxp1;
232};
233
234union cvmx_mixx_remcnt {
235 uint64_t u64;
236 struct cvmx_mixx_remcnt_s {
237 uint64_t reserved_52_63:12;
238 uint64_t iremcnt:20;
239 uint64_t reserved_20_31:12;
240 uint64_t oremcnt:20;
241 } s;
242 struct cvmx_mixx_remcnt_s cn52xx;
243 struct cvmx_mixx_remcnt_s cn52xxp1;
244 struct cvmx_mixx_remcnt_s cn56xx;
245 struct cvmx_mixx_remcnt_s cn56xxp1;
246};
247
248#endif
diff --git a/arch/mips/include/asm/octeon/cvmx-smix-defs.h b/arch/mips/include/asm/octeon/cvmx-smix-defs.h
new file mode 100644
index 000000000000..9ae45fcbe3e3
--- /dev/null
+++ b/arch/mips/include/asm/octeon/cvmx-smix-defs.h
@@ -0,0 +1,178 @@
1/***********************license start***************
2 * Author: Cavium Networks
3 *
4 * Contact: support@caviumnetworks.com
5 * This file is part of the OCTEON SDK
6 *
7 * Copyright (c) 2003-2008 Cavium Networks
8 *
9 * This file is free software; you can redistribute it and/or modify
10 * it under the terms of the GNU General Public License, Version 2, as
11 * published by the Free Software Foundation.
12 *
13 * This file is distributed in the hope that it will be useful, but
14 * AS-IS and WITHOUT ANY WARRANTY; without even the implied warranty
15 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, TITLE, or
16 * NONINFRINGEMENT. See the GNU General Public License for more
17 * details.
18 *
19 * You should have received a copy of the GNU General Public License
20 * along with this file; if not, write to the Free Software
21 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
22 * or visit http://www.gnu.org/licenses/.
23 *
24 * This file may also be available under a different license from Cavium.
25 * Contact Cavium Networks for more information
26 ***********************license end**************************************/
27
28#ifndef __CVMX_SMIX_DEFS_H__
29#define __CVMX_SMIX_DEFS_H__
30
31#define CVMX_SMIX_CLK(offset) \
32 CVMX_ADD_IO_SEG(0x0001180000001818ull + (((offset) & 1) * 256))
33#define CVMX_SMIX_CMD(offset) \
34 CVMX_ADD_IO_SEG(0x0001180000001800ull + (((offset) & 1) * 256))
35#define CVMX_SMIX_EN(offset) \
36 CVMX_ADD_IO_SEG(0x0001180000001820ull + (((offset) & 1) * 256))
37#define CVMX_SMIX_RD_DAT(offset) \
38 CVMX_ADD_IO_SEG(0x0001180000001810ull + (((offset) & 1) * 256))
39#define CVMX_SMIX_WR_DAT(offset) \
40 CVMX_ADD_IO_SEG(0x0001180000001808ull + (((offset) & 1) * 256))
41
42union cvmx_smix_clk {
43 uint64_t u64;
44 struct cvmx_smix_clk_s {
45 uint64_t reserved_25_63:39;
46 uint64_t mode:1;
47 uint64_t reserved_21_23:3;
48 uint64_t sample_hi:5;
49 uint64_t sample_mode:1;
50 uint64_t reserved_14_14:1;
51 uint64_t clk_idle:1;
52 uint64_t preamble:1;
53 uint64_t sample:4;
54 uint64_t phase:8;
55 } s;
56 struct cvmx_smix_clk_cn30xx {
57 uint64_t reserved_21_63:43;
58 uint64_t sample_hi:5;
59 uint64_t reserved_14_15:2;
60 uint64_t clk_idle:1;
61 uint64_t preamble:1;
62 uint64_t sample:4;
63 uint64_t phase:8;
64 } cn30xx;
65 struct cvmx_smix_clk_cn30xx cn31xx;
66 struct cvmx_smix_clk_cn30xx cn38xx;
67 struct cvmx_smix_clk_cn30xx cn38xxp2;
68 struct cvmx_smix_clk_cn50xx {
69 uint64_t reserved_25_63:39;
70 uint64_t mode:1;
71 uint64_t reserved_21_23:3;
72 uint64_t sample_hi:5;
73 uint64_t reserved_14_15:2;
74 uint64_t clk_idle:1;
75 uint64_t preamble:1;
76 uint64_t sample:4;
77 uint64_t phase:8;
78 } cn50xx;
79 struct cvmx_smix_clk_s cn52xx;
80 struct cvmx_smix_clk_cn50xx cn52xxp1;
81 struct cvmx_smix_clk_s cn56xx;
82 struct cvmx_smix_clk_cn50xx cn56xxp1;
83 struct cvmx_smix_clk_cn30xx cn58xx;
84 struct cvmx_smix_clk_cn30xx cn58xxp1;
85};
86
87union cvmx_smix_cmd {
88 uint64_t u64;
89 struct cvmx_smix_cmd_s {
90 uint64_t reserved_18_63:46;
91 uint64_t phy_op:2;
92 uint64_t reserved_13_15:3;
93 uint64_t phy_adr:5;
94 uint64_t reserved_5_7:3;
95 uint64_t reg_adr:5;
96 } s;
97 struct cvmx_smix_cmd_cn30xx {
98 uint64_t reserved_17_63:47;
99 uint64_t phy_op:1;
100 uint64_t reserved_13_15:3;
101 uint64_t phy_adr:5;
102 uint64_t reserved_5_7:3;
103 uint64_t reg_adr:5;
104 } cn30xx;
105 struct cvmx_smix_cmd_cn30xx cn31xx;
106 struct cvmx_smix_cmd_cn30xx cn38xx;
107 struct cvmx_smix_cmd_cn30xx cn38xxp2;
108 struct cvmx_smix_cmd_s cn50xx;
109 struct cvmx_smix_cmd_s cn52xx;
110 struct cvmx_smix_cmd_s cn52xxp1;
111 struct cvmx_smix_cmd_s cn56xx;
112 struct cvmx_smix_cmd_s cn56xxp1;
113 struct cvmx_smix_cmd_cn30xx cn58xx;
114 struct cvmx_smix_cmd_cn30xx cn58xxp1;
115};
116
117union cvmx_smix_en {
118 uint64_t u64;
119 struct cvmx_smix_en_s {
120 uint64_t reserved_1_63:63;
121 uint64_t en:1;
122 } s;
123 struct cvmx_smix_en_s cn30xx;
124 struct cvmx_smix_en_s cn31xx;
125 struct cvmx_smix_en_s cn38xx;
126 struct cvmx_smix_en_s cn38xxp2;
127 struct cvmx_smix_en_s cn50xx;
128 struct cvmx_smix_en_s cn52xx;
129 struct cvmx_smix_en_s cn52xxp1;
130 struct cvmx_smix_en_s cn56xx;
131 struct cvmx_smix_en_s cn56xxp1;
132 struct cvmx_smix_en_s cn58xx;
133 struct cvmx_smix_en_s cn58xxp1;
134};
135
136union cvmx_smix_rd_dat {
137 uint64_t u64;
138 struct cvmx_smix_rd_dat_s {
139 uint64_t reserved_18_63:46;
140 uint64_t pending:1;
141 uint64_t val:1;
142 uint64_t dat:16;
143 } s;
144 struct cvmx_smix_rd_dat_s cn30xx;
145 struct cvmx_smix_rd_dat_s cn31xx;
146 struct cvmx_smix_rd_dat_s cn38xx;
147 struct cvmx_smix_rd_dat_s cn38xxp2;
148 struct cvmx_smix_rd_dat_s cn50xx;
149 struct cvmx_smix_rd_dat_s cn52xx;
150 struct cvmx_smix_rd_dat_s cn52xxp1;
151 struct cvmx_smix_rd_dat_s cn56xx;
152 struct cvmx_smix_rd_dat_s cn56xxp1;
153 struct cvmx_smix_rd_dat_s cn58xx;
154 struct cvmx_smix_rd_dat_s cn58xxp1;
155};
156
157union cvmx_smix_wr_dat {
158 uint64_t u64;
159 struct cvmx_smix_wr_dat_s {
160 uint64_t reserved_18_63:46;
161 uint64_t pending:1;
162 uint64_t val:1;
163 uint64_t dat:16;
164 } s;
165 struct cvmx_smix_wr_dat_s cn30xx;
166 struct cvmx_smix_wr_dat_s cn31xx;
167 struct cvmx_smix_wr_dat_s cn38xx;
168 struct cvmx_smix_wr_dat_s cn38xxp2;
169 struct cvmx_smix_wr_dat_s cn50xx;
170 struct cvmx_smix_wr_dat_s cn52xx;
171 struct cvmx_smix_wr_dat_s cn52xxp1;
172 struct cvmx_smix_wr_dat_s cn56xx;
173 struct cvmx_smix_wr_dat_s cn56xxp1;
174 struct cvmx_smix_wr_dat_s cn58xx;
175 struct cvmx_smix_wr_dat_s cn58xxp1;
176};
177
178#endif
diff --git a/arch/mips/include/asm/octeon/octeon-feature.h b/arch/mips/include/asm/octeon/octeon-feature.h
index ef24a7b4ea57..cba6fbed9f43 100644
--- a/arch/mips/include/asm/octeon/octeon-feature.h
+++ b/arch/mips/include/asm/octeon/octeon-feature.h
@@ -99,6 +99,8 @@ static inline int octeon_has_feature(enum octeon_feature feature)
99 return !cvmx_fuse_read(90); 99 return !cvmx_fuse_read(90);
100 100
101 case OCTEON_FEATURE_PCIE: 101 case OCTEON_FEATURE_PCIE:
102 case OCTEON_FEATURE_MGMT_PORT:
103 case OCTEON_FEATURE_RAID:
102 return OCTEON_IS_MODEL(OCTEON_CN56XX) 104 return OCTEON_IS_MODEL(OCTEON_CN56XX)
103 || OCTEON_IS_MODEL(OCTEON_CN52XX); 105 || OCTEON_IS_MODEL(OCTEON_CN52XX);
104 106
@@ -110,12 +112,6 @@ static inline int octeon_has_feature(enum octeon_feature feature)
110 case OCTEON_FEATURE_TRA: 112 case OCTEON_FEATURE_TRA:
111 return !(OCTEON_IS_MODEL(OCTEON_CN30XX) 113 return !(OCTEON_IS_MODEL(OCTEON_CN30XX)
112 || OCTEON_IS_MODEL(OCTEON_CN50XX)); 114 || OCTEON_IS_MODEL(OCTEON_CN50XX));
113 case OCTEON_FEATURE_MGMT_PORT:
114 return OCTEON_IS_MODEL(OCTEON_CN56XX)
115 || OCTEON_IS_MODEL(OCTEON_CN52XX);
116 case OCTEON_FEATURE_RAID:
117 return OCTEON_IS_MODEL(OCTEON_CN56XX)
118 || OCTEON_IS_MODEL(OCTEON_CN52XX);
119 case OCTEON_FEATURE_USB: 115 case OCTEON_FEATURE_USB:
120 return !(OCTEON_IS_MODEL(OCTEON_CN38XX) 116 return !(OCTEON_IS_MODEL(OCTEON_CN38XX)
121 || OCTEON_IS_MODEL(OCTEON_CN58XX)); 117 || OCTEON_IS_MODEL(OCTEON_CN58XX));
diff --git a/arch/mips/include/asm/octeon/octeon.h b/arch/mips/include/asm/octeon/octeon.h
index cac9b1a206fc..ca6214b5ccb9 100644
--- a/arch/mips/include/asm/octeon/octeon.h
+++ b/arch/mips/include/asm/octeon/octeon.h
@@ -47,6 +47,7 @@ struct octeon_cop2_state;
47extern unsigned long octeon_crypto_enable(struct octeon_cop2_state *state); 47extern unsigned long octeon_crypto_enable(struct octeon_cop2_state *state);
48extern void octeon_crypto_disable(struct octeon_cop2_state *state, 48extern void octeon_crypto_disable(struct octeon_cop2_state *state,
49 unsigned long flags); 49 unsigned long flags);
50extern asmlinkage void octeon_cop2_restore(struct octeon_cop2_state *task);
50 51
51extern void octeon_init_cvmcount(void); 52extern void octeon_init_cvmcount(void);
52 53
@@ -212,6 +213,11 @@ struct octeon_cf_data {
212 int dma_engine; /* -1 for no DMA */ 213 int dma_engine; /* -1 for no DMA */
213}; 214};
214 215
216struct octeon_i2c_data {
217 unsigned int sys_freq;
218 unsigned int i2c_freq;
219};
220
215extern void octeon_write_lcd(const char *s); 221extern void octeon_write_lcd(const char *s);
216extern void octeon_check_cpu_bist(void); 222extern void octeon_check_cpu_bist(void);
217extern int octeon_get_boot_debug_flag(void); 223extern int octeon_get_boot_debug_flag(void);
diff --git a/arch/mips/include/asm/page.h b/arch/mips/include/asm/page.h
index f266295cce51..a16beafcea91 100644
--- a/arch/mips/include/asm/page.h
+++ b/arch/mips/include/asm/page.h
@@ -107,18 +107,6 @@ typedef struct { unsigned long pte; } pte_t;
107typedef struct page *pgtable_t; 107typedef struct page *pgtable_t;
108 108
109/* 109/*
110 * For 3-level pagetables we defines these ourselves, for 2-level the
111 * definitions are supplied by <asm-generic/pgtable-nopmd.h>.
112 */
113#ifdef CONFIG_64BIT
114
115typedef struct { unsigned long pmd; } pmd_t;
116#define pmd_val(x) ((x).pmd)
117#define __pmd(x) ((pmd_t) { (x) } )
118
119#endif
120
121/*
122 * Right now we don't support 4-level pagetables, so all pud-related 110 * Right now we don't support 4-level pagetables, so all pud-related
123 * definitions come from <asm-generic/pgtable-nopud.h>. 111 * definitions come from <asm-generic/pgtable-nopud.h>.
124 */ 112 */
@@ -200,8 +188,10 @@ typedef struct { unsigned long pgprot; } pgprot_t;
200#define VM_DATA_DEFAULT_FLAGS (VM_READ | VM_WRITE | VM_EXEC | \ 188#define VM_DATA_DEFAULT_FLAGS (VM_READ | VM_WRITE | VM_EXEC | \
201 VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC) 189 VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC)
202 190
203#define UNCAC_ADDR(addr) ((addr) - PAGE_OFFSET + UNCAC_BASE) 191#define UNCAC_ADDR(addr) ((addr) - PAGE_OFFSET + UNCAC_BASE + \
204#define CAC_ADDR(addr) ((addr) - UNCAC_BASE + PAGE_OFFSET) 192 PHYS_OFFSET)
193#define CAC_ADDR(addr) ((addr) - UNCAC_BASE + PAGE_OFFSET - \
194 PHYS_OFFSET)
205 195
206#include <asm-generic/memory_model.h> 196#include <asm-generic/memory_model.h>
207#include <asm-generic/getorder.h> 197#include <asm-generic/getorder.h>
diff --git a/arch/mips/include/asm/param.h b/arch/mips/include/asm/param.h
index 1d9bb8c5ab24..da3920fce9ad 100644
--- a/arch/mips/include/asm/param.h
+++ b/arch/mips/include/asm/param.h
@@ -9,23 +9,8 @@
9#ifndef _ASM_PARAM_H 9#ifndef _ASM_PARAM_H
10#define _ASM_PARAM_H 10#define _ASM_PARAM_H
11 11
12#ifdef __KERNEL__
13
14# define HZ CONFIG_HZ /* Internal kernel timer frequency */
15# define USER_HZ 100 /* .. some user interfaces are in "ticks" */
16# define CLOCKS_PER_SEC (USER_HZ) /* like times() */
17#endif
18
19#ifndef HZ
20#define HZ 100
21#endif
22
23#define EXEC_PAGESIZE 65536 12#define EXEC_PAGESIZE 65536
24 13
25#ifndef NOGROUP 14#include <asm-generic/param.h>
26#define NOGROUP (-1)
27#endif
28
29#define MAXHOSTNAMELEN 64 /* max length of hostname */
30 15
31#endif /* _ASM_PARAM_H */ 16#endif /* _ASM_PARAM_H */
diff --git a/arch/mips/include/asm/parport.h b/arch/mips/include/asm/parport.h
index f52656826cce..cf252af64590 100644
--- a/arch/mips/include/asm/parport.h
+++ b/arch/mips/include/asm/parport.h
@@ -1,15 +1 @@
1/* #include <asm-generic/parport.h>
2 * Copyright (C) 1999, 2000 Tim Waugh <tim@cyberelk.demon.co.uk>
3 *
4 * This file should only be included by drivers/parport/parport_pc.c.
5 */
6#ifndef _ASM_PARPORT_H
7#define _ASM_PARPORT_H
8
9static int __devinit parport_pc_find_isa_ports(int autoirq, int autodma);
10static int __devinit parport_pc_find_nonpci_ports(int autoirq, int autodma)
11{
12 return parport_pc_find_isa_ports(autoirq, autodma);
13}
14
15#endif /* _ASM_PARPORT_H */
diff --git a/arch/mips/include/asm/pci.h b/arch/mips/include/asm/pci.h
index 5ebf82572ec0..3beea1479b43 100644
--- a/arch/mips/include/asm/pci.h
+++ b/arch/mips/include/asm/pci.h
@@ -102,28 +102,6 @@ struct pci_dev;
102 */ 102 */
103extern unsigned int PCI_DMA_BUS_IS_PHYS; 103extern unsigned int PCI_DMA_BUS_IS_PHYS;
104 104
105#ifdef CONFIG_DMA_NEED_PCI_MAP_STATE
106
107/* pci_unmap_{single,page} is not a nop, thus... */
108#define DECLARE_PCI_UNMAP_ADDR(ADDR_NAME) dma_addr_t ADDR_NAME;
109#define DECLARE_PCI_UNMAP_LEN(LEN_NAME) __u32 LEN_NAME;
110#define pci_unmap_addr(PTR, ADDR_NAME) ((PTR)->ADDR_NAME)
111#define pci_unmap_addr_set(PTR, ADDR_NAME, VAL) (((PTR)->ADDR_NAME) = (VAL))
112#define pci_unmap_len(PTR, LEN_NAME) ((PTR)->LEN_NAME)
113#define pci_unmap_len_set(PTR, LEN_NAME, VAL) (((PTR)->LEN_NAME) = (VAL))
114
115#else /* CONFIG_DMA_NEED_PCI_MAP_STATE */
116
117/* pci_unmap_{page,single} is a nop so... */
118#define DECLARE_PCI_UNMAP_ADDR(ADDR_NAME)
119#define DECLARE_PCI_UNMAP_LEN(LEN_NAME)
120#define pci_unmap_addr(PTR, ADDR_NAME) (0)
121#define pci_unmap_addr_set(PTR, ADDR_NAME, VAL) do { } while (0)
122#define pci_unmap_len(PTR, LEN_NAME) (0)
123#define pci_unmap_len_set(PTR, LEN_NAME, VAL) do { } while (0)
124
125#endif /* CONFIG_DMA_NEED_PCI_MAP_STATE */
126
127#ifdef CONFIG_PCI 105#ifdef CONFIG_PCI
128static inline void pci_dma_burst_advice(struct pci_dev *pdev, 106static inline void pci_dma_burst_advice(struct pci_dev *pdev,
129 enum pci_dma_burst_strategy *strat, 107 enum pci_dma_burst_strategy *strat,
diff --git a/arch/mips/include/asm/pgalloc.h b/arch/mips/include/asm/pgalloc.h
index 3738f4b48cbd..881d18b4e298 100644
--- a/arch/mips/include/asm/pgalloc.h
+++ b/arch/mips/include/asm/pgalloc.h
@@ -31,7 +31,7 @@ static inline void pmd_populate(struct mm_struct *mm, pmd_t *pmd,
31 */ 31 */
32extern void pmd_init(unsigned long page, unsigned long pagetable); 32extern void pmd_init(unsigned long page, unsigned long pagetable);
33 33
34#ifdef CONFIG_64BIT 34#ifndef __PAGETABLE_PMD_FOLDED
35 35
36static inline void pud_populate(struct mm_struct *mm, pud_t *pud, pmd_t *pmd) 36static inline void pud_populate(struct mm_struct *mm, pud_t *pud, pmd_t *pmd)
37{ 37{
@@ -104,7 +104,7 @@ do { \
104 tlb_remove_page((tlb), pte); \ 104 tlb_remove_page((tlb), pte); \
105} while (0) 105} while (0)
106 106
107#ifdef CONFIG_64BIT 107#ifndef __PAGETABLE_PMD_FOLDED
108 108
109static inline pmd_t *pmd_alloc_one(struct mm_struct *mm, unsigned long address) 109static inline pmd_t *pmd_alloc_one(struct mm_struct *mm, unsigned long address)
110{ 110{
diff --git a/arch/mips/include/asm/pgtable-32.h b/arch/mips/include/asm/pgtable-32.h
index 55813d6150c7..ae90412556d0 100644
--- a/arch/mips/include/asm/pgtable-32.h
+++ b/arch/mips/include/asm/pgtable-32.h
@@ -127,8 +127,8 @@ pfn_pte(unsigned long pfn, pgprot_t prot)
127#define pte_pfn(x) ((unsigned long)((x).pte >> (PAGE_SHIFT + 2))) 127#define pte_pfn(x) ((unsigned long)((x).pte >> (PAGE_SHIFT + 2)))
128#define pfn_pte(pfn, prot) __pte(((pfn) << (PAGE_SHIFT + 2)) | pgprot_val(prot)) 128#define pfn_pte(pfn, prot) __pte(((pfn) << (PAGE_SHIFT + 2)) | pgprot_val(prot))
129#else 129#else
130#define pte_pfn(x) ((unsigned long)((x).pte >> PAGE_SHIFT)) 130#define pte_pfn(x) ((unsigned long)((x).pte >> _PFN_SHIFT))
131#define pfn_pte(pfn, prot) __pte(((unsigned long long)(pfn) << PAGE_SHIFT) | pgprot_val(prot)) 131#define pfn_pte(pfn, prot) __pte(((unsigned long long)(pfn) << _PFN_SHIFT) | pgprot_val(prot))
132#endif 132#endif
133#endif /* defined(CONFIG_64BIT_PHYS_ADDR) && defined(CONFIG_CPU_MIPS32) */ 133#endif /* defined(CONFIG_64BIT_PHYS_ADDR) && defined(CONFIG_CPU_MIPS32) */
134 134
diff --git a/arch/mips/include/asm/pgtable-64.h b/arch/mips/include/asm/pgtable-64.h
index 9cd508993956..1be4b0fa30da 100644
--- a/arch/mips/include/asm/pgtable-64.h
+++ b/arch/mips/include/asm/pgtable-64.h
@@ -16,7 +16,11 @@
16#include <asm/cachectl.h> 16#include <asm/cachectl.h>
17#include <asm/fixmap.h> 17#include <asm/fixmap.h>
18 18
19#ifdef CONFIG_PAGE_SIZE_64KB
20#include <asm-generic/pgtable-nopmd.h>
21#else
19#include <asm-generic/pgtable-nopud.h> 22#include <asm-generic/pgtable-nopud.h>
23#endif
20 24
21/* 25/*
22 * Each address space has 2 4K pages as its page directory, giving 1024 26 * Each address space has 2 4K pages as its page directory, giving 1024
@@ -37,13 +41,20 @@
37 * fault address - VMALLOC_START. 41 * fault address - VMALLOC_START.
38 */ 42 */
39 43
44
45/* PGDIR_SHIFT determines what a third-level page table entry can map */
46#ifdef __PAGETABLE_PMD_FOLDED
47#define PGDIR_SHIFT (PAGE_SHIFT + PAGE_SHIFT + PTE_ORDER - 3)
48#else
49
40/* PMD_SHIFT determines the size of the area a second-level page table can map */ 50/* PMD_SHIFT determines the size of the area a second-level page table can map */
41#define PMD_SHIFT (PAGE_SHIFT + (PAGE_SHIFT + PTE_ORDER - 3)) 51#define PMD_SHIFT (PAGE_SHIFT + (PAGE_SHIFT + PTE_ORDER - 3))
42#define PMD_SIZE (1UL << PMD_SHIFT) 52#define PMD_SIZE (1UL << PMD_SHIFT)
43#define PMD_MASK (~(PMD_SIZE-1)) 53#define PMD_MASK (~(PMD_SIZE-1))
44 54
45/* PGDIR_SHIFT determines what a third-level page table entry can map */ 55
46#define PGDIR_SHIFT (PMD_SHIFT + (PAGE_SHIFT + PMD_ORDER - 3)) 56#define PGDIR_SHIFT (PMD_SHIFT + (PAGE_SHIFT + PMD_ORDER - 3))
57#endif
47#define PGDIR_SIZE (1UL << PGDIR_SHIFT) 58#define PGDIR_SIZE (1UL << PGDIR_SHIFT)
48#define PGDIR_MASK (~(PGDIR_SIZE-1)) 59#define PGDIR_MASK (~(PGDIR_SIZE-1))
49 60
@@ -92,12 +103,14 @@
92#ifdef CONFIG_PAGE_SIZE_64KB 103#ifdef CONFIG_PAGE_SIZE_64KB
93#define PGD_ORDER 0 104#define PGD_ORDER 0
94#define PUD_ORDER aieeee_attempt_to_allocate_pud 105#define PUD_ORDER aieeee_attempt_to_allocate_pud
95#define PMD_ORDER 0 106#define PMD_ORDER aieeee_attempt_to_allocate_pmd
96#define PTE_ORDER 0 107#define PTE_ORDER 0
97#endif 108#endif
98 109
99#define PTRS_PER_PGD ((PAGE_SIZE << PGD_ORDER) / sizeof(pgd_t)) 110#define PTRS_PER_PGD ((PAGE_SIZE << PGD_ORDER) / sizeof(pgd_t))
111#ifndef __PAGETABLE_PMD_FOLDED
100#define PTRS_PER_PMD ((PAGE_SIZE << PMD_ORDER) / sizeof(pmd_t)) 112#define PTRS_PER_PMD ((PAGE_SIZE << PMD_ORDER) / sizeof(pmd_t))
113#endif
101#define PTRS_PER_PTE ((PAGE_SIZE << PTE_ORDER) / sizeof(pte_t)) 114#define PTRS_PER_PTE ((PAGE_SIZE << PTE_ORDER) / sizeof(pte_t))
102 115
103#if PGDIR_SIZE >= TASK_SIZE 116#if PGDIR_SIZE >= TASK_SIZE
@@ -107,10 +120,17 @@
107#endif 120#endif
108#define FIRST_USER_ADDRESS 0UL 121#define FIRST_USER_ADDRESS 0UL
109 122
110#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))
111#define VMALLOC_END \ 129#define VMALLOC_END \
112 (VMALLOC_START + \ 130 (MAP_BASE + \
113 PTRS_PER_PGD * PTRS_PER_PMD * PTRS_PER_PTE * PAGE_SIZE - (1UL << 32)) 131 min(PTRS_PER_PGD * PTRS_PER_PMD * PTRS_PER_PTE * PAGE_SIZE, \
132 (1UL << cpu_vmbits)) - (1UL << 32))
133
114#if defined(CONFIG_MODULES) && defined(KBUILD_64BIT_SYM32) && \ 134#if defined(CONFIG_MODULES) && defined(KBUILD_64BIT_SYM32) && \
115 VMALLOC_START != CKSSEG 135 VMALLOC_START != CKSSEG
116/* Load modules into 32bit-compatible segment. */ 136/* Load modules into 32bit-compatible segment. */
@@ -120,15 +140,30 @@
120 140
121#define pte_ERROR(e) \ 141#define pte_ERROR(e) \
122 printk("%s:%d: bad pte %016lx.\n", __FILE__, __LINE__, pte_val(e)) 142 printk("%s:%d: bad pte %016lx.\n", __FILE__, __LINE__, pte_val(e))
143#ifndef __PAGETABLE_PMD_FOLDED
123#define pmd_ERROR(e) \ 144#define pmd_ERROR(e) \
124 printk("%s:%d: bad pmd %016lx.\n", __FILE__, __LINE__, pmd_val(e)) 145 printk("%s:%d: bad pmd %016lx.\n", __FILE__, __LINE__, pmd_val(e))
146#endif
125#define pgd_ERROR(e) \ 147#define pgd_ERROR(e) \
126 printk("%s:%d: bad pgd %016lx.\n", __FILE__, __LINE__, pgd_val(e)) 148 printk("%s:%d: bad pgd %016lx.\n", __FILE__, __LINE__, pgd_val(e))
127 149
128extern pte_t invalid_pte_table[PTRS_PER_PTE]; 150extern pte_t invalid_pte_table[PTRS_PER_PTE];
129extern pte_t empty_bad_page_table[PTRS_PER_PTE]; 151extern pte_t empty_bad_page_table[PTRS_PER_PTE];
152
153
154#ifndef __PAGETABLE_PMD_FOLDED
155/*
156 * For 3-level pagetables we defines these ourselves, for 2-level the
157 * definitions are supplied by <asm-generic/pgtable-nopmd.h>.
158 */
159typedef struct { unsigned long pmd; } pmd_t;
160#define pmd_val(x) ((x).pmd)
161#define __pmd(x) ((pmd_t) { (x) } )
162
163
130extern pmd_t invalid_pmd_table[PTRS_PER_PMD]; 164extern pmd_t invalid_pmd_table[PTRS_PER_PMD];
131extern pmd_t empty_bad_pmd_table[PTRS_PER_PMD]; 165extern pmd_t empty_bad_pmd_table[PTRS_PER_PMD];
166#endif
132 167
133/* 168/*
134 * Empty pgd/pmd entries point to the invalid_pte_table. 169 * Empty pgd/pmd entries point to the invalid_pte_table.
@@ -149,6 +184,7 @@ static inline void pmd_clear(pmd_t *pmdp)
149{ 184{
150 pmd_val(*pmdp) = ((unsigned long) invalid_pte_table); 185 pmd_val(*pmdp) = ((unsigned long) invalid_pte_table);
151} 186}
187#ifndef __PAGETABLE_PMD_FOLDED
152 188
153/* 189/*
154 * Empty pud entries point to the invalid_pmd_table. 190 * Empty pud entries point to the invalid_pmd_table.
@@ -172,6 +208,7 @@ static inline void pud_clear(pud_t *pudp)
172{ 208{
173 pud_val(*pudp) = ((unsigned long) invalid_pmd_table); 209 pud_val(*pudp) = ((unsigned long) invalid_pmd_table);
174} 210}
211#endif
175 212
176#define pte_page(x) pfn_to_page(pte_pfn(x)) 213#define pte_page(x) pfn_to_page(pte_pfn(x))
177 214
@@ -179,8 +216,8 @@ static inline void pud_clear(pud_t *pudp)
179#define pte_pfn(x) ((unsigned long)((x).pte >> (PAGE_SHIFT + 2))) 216#define pte_pfn(x) ((unsigned long)((x).pte >> (PAGE_SHIFT + 2)))
180#define pfn_pte(pfn, prot) __pte(((pfn) << (PAGE_SHIFT + 2)) | pgprot_val(prot)) 217#define pfn_pte(pfn, prot) __pte(((pfn) << (PAGE_SHIFT + 2)) | pgprot_val(prot))
181#else 218#else
182#define pte_pfn(x) ((unsigned long)((x).pte >> PAGE_SHIFT)) 219#define pte_pfn(x) ((unsigned long)((x).pte >> _PFN_SHIFT))
183#define pfn_pte(pfn, prot) __pte(((pfn) << PAGE_SHIFT) | pgprot_val(prot)) 220#define pfn_pte(pfn, prot) __pte(((pfn) << _PFN_SHIFT) | pgprot_val(prot))
184#endif 221#endif
185 222
186#define __pgd_offset(address) pgd_index(address) 223#define __pgd_offset(address) pgd_index(address)
@@ -196,6 +233,7 @@ static inline void pud_clear(pud_t *pudp)
196/* to find an entry in a page-table-directory */ 233/* to find an entry in a page-table-directory */
197#define pgd_offset(mm, addr) ((mm)->pgd + pgd_index(addr)) 234#define pgd_offset(mm, addr) ((mm)->pgd + pgd_index(addr))
198 235
236#ifndef __PAGETABLE_PMD_FOLDED
199static inline unsigned long pud_page_vaddr(pud_t pud) 237static inline unsigned long pud_page_vaddr(pud_t pud)
200{ 238{
201 return pud_val(pud); 239 return pud_val(pud);
@@ -208,6 +246,7 @@ static inline pmd_t *pmd_offset(pud_t * pud, unsigned long address)
208{ 246{
209 return (pmd_t *) pud_page_vaddr(*pud) + pmd_index(address); 247 return (pmd_t *) pud_page_vaddr(*pud) + pmd_index(address);
210} 248}
249#endif
211 250
212/* Find an entry in the third-level page table.. */ 251/* Find an entry in the third-level page table.. */
213#define __pte_offset(address) \ 252#define __pte_offset(address) \
diff --git a/arch/mips/include/asm/pgtable-bits.h b/arch/mips/include/asm/pgtable-bits.h
index 1073e6df8621..e9fe7e97ce4c 100644
--- a/arch/mips/include/asm/pgtable-bits.h
+++ b/arch/mips/include/asm/pgtable-bits.h
@@ -50,7 +50,7 @@
50#define _CACHE_SHIFT 3 50#define _CACHE_SHIFT 3
51#define _CACHE_MASK (7<<3) 51#define _CACHE_MASK (7<<3)
52 52
53#else 53#elif defined(CONFIG_CPU_R3000) || defined(CONFIG_CPU_TX39XX)
54 54
55#define _PAGE_PRESENT (1<<0) /* implemented in software */ 55#define _PAGE_PRESENT (1<<0) /* implemented in software */
56#define _PAGE_READ (1<<1) /* implemented in software */ 56#define _PAGE_READ (1<<1) /* implemented in software */
@@ -59,8 +59,6 @@
59#define _PAGE_MODIFIED (1<<4) /* implemented in software */ 59#define _PAGE_MODIFIED (1<<4) /* implemented in software */
60#define _PAGE_FILE (1<<4) /* set:pagecache unset:swap */ 60#define _PAGE_FILE (1<<4) /* set:pagecache unset:swap */
61 61
62#if defined(CONFIG_CPU_R3000) || defined(CONFIG_CPU_TX39XX)
63
64#define _PAGE_GLOBAL (1<<8) 62#define _PAGE_GLOBAL (1<<8)
65#define _PAGE_VALID (1<<9) 63#define _PAGE_VALID (1<<9)
66#define _PAGE_SILENT_READ (1<<9) /* synonym */ 64#define _PAGE_SILENT_READ (1<<9) /* synonym */
@@ -69,21 +67,113 @@
69#define _CACHE_UNCACHED (1<<11) 67#define _CACHE_UNCACHED (1<<11)
70#define _CACHE_MASK (1<<11) 68#define _CACHE_MASK (1<<11)
71 69
70#else /* 'Normal' r4K case */
71/*
72 * When using the RI/XI bit support, we have 13 bits of flags below
73 * the physical address. The RI/XI bits are placed such that a SRL 5
74 * can strip off the software bits, then a ROTR 2 can move the RI/XI
75 * into bits [63:62]. This also limits physical address to 56 bits,
76 * which is more than we need right now.
77 */
78
79/* implemented in software */
80#define _PAGE_PRESENT_SHIFT (0)
81#define _PAGE_PRESENT (1 << _PAGE_PRESENT_SHIFT)
82/* implemented in software, should be unused if kernel_uses_smartmips_rixi. */
83#define _PAGE_READ_SHIFT (kernel_uses_smartmips_rixi ? _PAGE_PRESENT_SHIFT : _PAGE_PRESENT_SHIFT + 1)
84#define _PAGE_READ ({if (kernel_uses_smartmips_rixi) BUG(); 1 << _PAGE_READ_SHIFT; })
85/* implemented in software */
86#define _PAGE_WRITE_SHIFT (_PAGE_READ_SHIFT + 1)
87#define _PAGE_WRITE (1 << _PAGE_WRITE_SHIFT)
88/* implemented in software */
89#define _PAGE_ACCESSED_SHIFT (_PAGE_WRITE_SHIFT + 1)
90#define _PAGE_ACCESSED (1 << _PAGE_ACCESSED_SHIFT)
91/* implemented in software */
92#define _PAGE_MODIFIED_SHIFT (_PAGE_ACCESSED_SHIFT + 1)
93#define _PAGE_MODIFIED (1 << _PAGE_MODIFIED_SHIFT)
94/* set:pagecache unset:swap */
95#define _PAGE_FILE (_PAGE_MODIFIED)
96
97#ifdef CONFIG_HUGETLB_PAGE
98/* huge tlb page */
99#define _PAGE_HUGE_SHIFT (_PAGE_MODIFIED_SHIFT + 1)
100#define _PAGE_HUGE (1 << _PAGE_HUGE_SHIFT)
72#else 101#else
102#define _PAGE_HUGE_SHIFT (_PAGE_MODIFIED_SHIFT)
103#define _PAGE_HUGE ({BUG(); 1; }) /* Dummy value */
104#endif
73 105
74#define _PAGE_R4KBUG (1<<5) /* workaround for r4k bug */ 106/* Page cannot be executed */
75#define _PAGE_HUGE (1<<5) /* huge tlb page */ 107#define _PAGE_NO_EXEC_SHIFT (kernel_uses_smartmips_rixi ? _PAGE_HUGE_SHIFT + 1 : _PAGE_HUGE_SHIFT)
76#define _PAGE_GLOBAL (1<<6) 108#define _PAGE_NO_EXEC ({if (!kernel_uses_smartmips_rixi) BUG(); 1 << _PAGE_NO_EXEC_SHIFT; })
77#define _PAGE_VALID (1<<7) 109
78#define _PAGE_SILENT_READ (1<<7) /* synonym */ 110/* Page cannot be read */
79#define _PAGE_DIRTY (1<<8) /* The MIPS dirty bit */ 111#define _PAGE_NO_READ_SHIFT (kernel_uses_smartmips_rixi ? _PAGE_NO_EXEC_SHIFT + 1 : _PAGE_NO_EXEC_SHIFT)
80#define _PAGE_SILENT_WRITE (1<<8) 112#define _PAGE_NO_READ ({if (!kernel_uses_smartmips_rixi) BUG(); 1 << _PAGE_NO_READ_SHIFT; })
81#define _CACHE_SHIFT 9 113
82#define _CACHE_MASK (7<<9) 114#define _PAGE_GLOBAL_SHIFT (_PAGE_NO_READ_SHIFT + 1)
115#define _PAGE_GLOBAL (1 << _PAGE_GLOBAL_SHIFT)
116
117#define _PAGE_VALID_SHIFT (_PAGE_GLOBAL_SHIFT + 1)
118#define _PAGE_VALID (1 << _PAGE_VALID_SHIFT)
119/* synonym */
120#define _PAGE_SILENT_READ (_PAGE_VALID)
121
122/* The MIPS dirty bit */
123#define _PAGE_DIRTY_SHIFT (_PAGE_VALID_SHIFT + 1)
124#define _PAGE_DIRTY (1 << _PAGE_DIRTY_SHIFT)
125#define _PAGE_SILENT_WRITE (_PAGE_DIRTY)
126
127#define _CACHE_SHIFT (_PAGE_DIRTY_SHIFT + 1)
128#define _CACHE_MASK (7 << _CACHE_SHIFT)
129
130#define _PFN_SHIFT (PAGE_SHIFT - 12 + _CACHE_SHIFT + 3)
83 131
84#endif
85#endif /* defined(CONFIG_64BIT_PHYS_ADDR && defined(CONFIG_CPU_MIPS32) */ 132#endif /* defined(CONFIG_64BIT_PHYS_ADDR && defined(CONFIG_CPU_MIPS32) */
86 133
134#ifndef _PFN_SHIFT
135#define _PFN_SHIFT PAGE_SHIFT
136#endif
137#define _PFN_MASK (~((1 << (_PFN_SHIFT)) - 1))
138
139#ifndef _PAGE_NO_READ
140#define _PAGE_NO_READ ({BUG(); 0; })
141#define _PAGE_NO_READ_SHIFT ({BUG(); 0; })
142#endif
143#ifndef _PAGE_NO_EXEC
144#define _PAGE_NO_EXEC ({BUG(); 0; })
145#endif
146#ifndef _PAGE_GLOBAL_SHIFT
147#define _PAGE_GLOBAL_SHIFT ilog2(_PAGE_GLOBAL)
148#endif
149
150
151#ifndef __ASSEMBLY__
152/*
153 * pte_to_entrylo converts a page table entry (PTE) into a Mips
154 * entrylo0/1 value.
155 */
156static inline uint64_t pte_to_entrylo(unsigned long pte_val)
157{
158 if (kernel_uses_smartmips_rixi) {
159 int sa;
160#ifdef CONFIG_32BIT
161 sa = 31 - _PAGE_NO_READ_SHIFT;
162#else
163 sa = 63 - _PAGE_NO_READ_SHIFT;
164#endif
165 /*
166 * C has no way to express that this is a DSRL
167 * _PAGE_NO_EXEC_SHIFT followed by a ROTR 2. Luckily
168 * in the fast path this is done in assembly
169 */
170 return (pte_val >> _PAGE_GLOBAL_SHIFT) |
171 ((pte_val & (_PAGE_NO_EXEC | _PAGE_NO_READ)) << sa);
172 }
173
174 return pte_val >> _PAGE_GLOBAL_SHIFT;
175}
176#endif
87 177
88/* 178/*
89 * Cache attributes 179 * Cache attributes
@@ -130,9 +220,9 @@
130 220
131#endif 221#endif
132 222
133#define __READABLE (_PAGE_READ | _PAGE_SILENT_READ | _PAGE_ACCESSED) 223#define __READABLE (_PAGE_SILENT_READ | _PAGE_ACCESSED | (kernel_uses_smartmips_rixi ? 0 : _PAGE_READ))
134#define __WRITEABLE (_PAGE_WRITE | _PAGE_SILENT_WRITE | _PAGE_MODIFIED) 224#define __WRITEABLE (_PAGE_WRITE | _PAGE_SILENT_WRITE | _PAGE_MODIFIED)
135 225
136#define _PAGE_CHG_MASK (PAGE_MASK | _PAGE_ACCESSED | _PAGE_MODIFIED | _CACHE_MASK) 226#define _PAGE_CHG_MASK (_PFN_MASK | _PAGE_ACCESSED | _PAGE_MODIFIED | _CACHE_MASK)
137 227
138#endif /* _ASM_PGTABLE_BITS_H */ 228#endif /* _ASM_PGTABLE_BITS_H */
diff --git a/arch/mips/include/asm/pgtable.h b/arch/mips/include/asm/pgtable.h
index d6eb6134abec..7e40f3778179 100644
--- a/arch/mips/include/asm/pgtable.h
+++ b/arch/mips/include/asm/pgtable.h
@@ -22,23 +22,24 @@ struct mm_struct;
22struct vm_area_struct; 22struct vm_area_struct;
23 23
24#define PAGE_NONE __pgprot(_PAGE_PRESENT | _CACHE_CACHABLE_NONCOHERENT) 24#define PAGE_NONE __pgprot(_PAGE_PRESENT | _CACHE_CACHABLE_NONCOHERENT)
25#define PAGE_SHARED __pgprot(_PAGE_PRESENT | _PAGE_READ | _PAGE_WRITE | \ 25#define PAGE_SHARED __pgprot(_PAGE_PRESENT | _PAGE_WRITE | (kernel_uses_smartmips_rixi ? 0 : _PAGE_READ) | \
26 _page_cachable_default) 26 _page_cachable_default)
27#define PAGE_COPY __pgprot(_PAGE_PRESENT | _PAGE_READ | \ 27#define PAGE_COPY __pgprot(_PAGE_PRESENT | (kernel_uses_smartmips_rixi ? 0 : _PAGE_READ) | \
28 _page_cachable_default) 28 (kernel_uses_smartmips_rixi ? _PAGE_NO_EXEC : 0) | _page_cachable_default)
29#define PAGE_READONLY __pgprot(_PAGE_PRESENT | _PAGE_READ | \ 29#define PAGE_READONLY __pgprot(_PAGE_PRESENT | (kernel_uses_smartmips_rixi ? 0 : _PAGE_READ) | \
30 _page_cachable_default) 30 _page_cachable_default)
31#define PAGE_KERNEL __pgprot(_PAGE_PRESENT | __READABLE | __WRITEABLE | \ 31#define PAGE_KERNEL __pgprot(_PAGE_PRESENT | __READABLE | __WRITEABLE | \
32 _PAGE_GLOBAL | _page_cachable_default) 32 _PAGE_GLOBAL | _page_cachable_default)
33#define PAGE_USERIO __pgprot(_PAGE_PRESENT | _PAGE_READ | _PAGE_WRITE | \ 33#define PAGE_USERIO __pgprot(_PAGE_PRESENT | (kernel_uses_smartmips_rixi ? 0 : _PAGE_READ) | _PAGE_WRITE | \
34 _page_cachable_default) 34 _page_cachable_default)
35#define PAGE_KERNEL_UNCACHED __pgprot(_PAGE_PRESENT | __READABLE | \ 35#define PAGE_KERNEL_UNCACHED __pgprot(_PAGE_PRESENT | __READABLE | \
36 __WRITEABLE | _PAGE_GLOBAL | _CACHE_UNCACHED) 36 __WRITEABLE | _PAGE_GLOBAL | _CACHE_UNCACHED)
37 37
38/* 38/*
39 * MIPS can't do page protection for execute, and considers that the same like 39 * If _PAGE_NO_EXEC is not defined, we can't do page protection for
40 * read. Also, write permissions imply read permissions. This is the closest 40 * execute, and consider it to be the same as read. Also, write
41 * we can get by reasonable means.. 41 * permissions imply read permissions. This is the closest we can get
42 * by reasonable means..
42 */ 43 */
43 44
44/* 45/*
@@ -177,7 +178,7 @@ static inline void pte_clear(struct mm_struct *mm, unsigned long addr, pte_t *pt
177 */ 178 */
178#define set_pmd(pmdptr, pmdval) do { *(pmdptr) = (pmdval); } while(0) 179#define set_pmd(pmdptr, pmdval) do { *(pmdptr) = (pmdval); } while(0)
179 180
180#ifdef CONFIG_64BIT 181#ifndef __PAGETABLE_PMD_FOLDED
181/* 182/*
182 * (puds are folded into pgds so this doesn't get actually called, 183 * (puds are folded into pgds so this doesn't get actually called,
183 * but the define is needed for a generic inline function.) 184 * but the define is needed for a generic inline function.)
@@ -298,8 +299,13 @@ static inline pte_t pte_mkdirty(pte_t pte)
298static inline pte_t pte_mkyoung(pte_t pte) 299static inline pte_t pte_mkyoung(pte_t pte)
299{ 300{
300 pte_val(pte) |= _PAGE_ACCESSED; 301 pte_val(pte) |= _PAGE_ACCESSED;
301 if (pte_val(pte) & _PAGE_READ) 302 if (kernel_uses_smartmips_rixi) {
302 pte_val(pte) |= _PAGE_SILENT_READ; 303 if (!(pte_val(pte) & _PAGE_NO_READ))
304 pte_val(pte) |= _PAGE_SILENT_READ;
305 } else {
306 if (pte_val(pte) & _PAGE_READ)
307 pte_val(pte) |= _PAGE_SILENT_READ;
308 }
303 return pte; 309 return pte;
304} 310}
305 311
@@ -362,8 +368,9 @@ extern void __update_cache(struct vm_area_struct *vma, unsigned long address,
362 pte_t pte); 368 pte_t pte);
363 369
364static inline void update_mmu_cache(struct vm_area_struct *vma, 370static inline void update_mmu_cache(struct vm_area_struct *vma,
365 unsigned long address, pte_t pte) 371 unsigned long address, pte_t *ptep)
366{ 372{
373 pte_t pte = *ptep;
367 __update_tlb(vma, address, pte); 374 __update_tlb(vma, address, pte);
368 __update_cache(vma, address, pte); 375 __update_cache(vma, address, pte);
369} 376}
@@ -390,6 +397,19 @@ static inline int io_remap_pfn_range(struct vm_area_struct *vma,
390#include <asm-generic/pgtable.h> 397#include <asm-generic/pgtable.h>
391 398
392/* 399/*
400 * uncached accelerated TLB map for video memory access
401 */
402#ifdef CONFIG_CPU_SUPPORTS_UNCACHED_ACCELERATED
403#define __HAVE_PHYS_MEM_ACCESS_PROT
404
405struct file;
406pgprot_t phys_mem_access_prot(struct file *file, unsigned long pfn,
407 unsigned long size, pgprot_t vma_prot);
408int phys_mem_access_prot_allowed(struct file *file, unsigned long pfn,
409 unsigned long size, pgprot_t *vma_prot);
410#endif
411
412/*
393 * We provide our own get_unmapped area to cope with the virtual aliasing 413 * We provide our own get_unmapped area to cope with the virtual aliasing
394 * constraints placed on us by the cache architecture. 414 * constraints placed on us by the cache architecture.
395 */ 415 */
diff --git a/arch/mips/include/asm/pmc-sierra/msp71xx/msp_prom.h b/arch/mips/include/asm/pmc-sierra/msp71xx/msp_prom.h
index 14ca7dc382a8..54ef1a96d7ce 100644
--- a/arch/mips/include/asm/pmc-sierra/msp71xx/msp_prom.h
+++ b/arch/mips/include/asm/pmc-sierra/msp71xx/msp_prom.h
@@ -118,7 +118,6 @@
118#define ZSP_DUET 'D' /* one DUET zsp engine */ 118#define ZSP_DUET 'D' /* one DUET zsp engine */
119#define ZSP_TRIAD 'T' /* two TRIAD zsp engines */ 119#define ZSP_TRIAD 'T' /* two TRIAD zsp engines */
120 120
121extern char *prom_getcmdline(void);
122extern char *prom_getenv(char *name); 121extern char *prom_getenv(char *name);
123extern void prom_init_cmdline(void); 122extern void prom_init_cmdline(void);
124extern void prom_meminit(void); 123extern void prom_meminit(void);
diff --git a/arch/mips/include/asm/processor.h b/arch/mips/include/asm/processor.h
index 087a8884ef06..ab387910009a 100644
--- a/arch/mips/include/asm/processor.h
+++ b/arch/mips/include/asm/processor.h
@@ -33,13 +33,19 @@ extern void (*cpu_wait)(void);
33 33
34extern unsigned int vced_count, vcei_count; 34extern unsigned int vced_count, vcei_count;
35 35
36/*
37 * A special page (the vdso) is mapped into all processes at the very
38 * top of the virtual memory space.
39 */
40#define SPECIAL_PAGES_SIZE PAGE_SIZE
41
36#ifdef CONFIG_32BIT 42#ifdef CONFIG_32BIT
37/* 43/*
38 * User space process size: 2GB. This is hardcoded into a few places, 44 * User space process size: 2GB. This is hardcoded into a few places,
39 * so don't change it unless you know what you are doing. 45 * so don't change it unless you know what you are doing.
40 */ 46 */
41#define TASK_SIZE 0x7fff8000UL 47#define TASK_SIZE 0x7fff8000UL
42#define STACK_TOP TASK_SIZE 48#define STACK_TOP ((TASK_SIZE & PAGE_MASK) - SPECIAL_PAGES_SIZE)
43 49
44/* 50/*
45 * This decides where the kernel will search for a free chunk of vm 51 * This decides where the kernel will search for a free chunk of vm
@@ -59,7 +65,8 @@ extern unsigned int vced_count, vcei_count;
59#define TASK_SIZE32 0x7fff8000UL 65#define TASK_SIZE32 0x7fff8000UL
60#define TASK_SIZE 0x10000000000UL 66#define TASK_SIZE 0x10000000000UL
61#define STACK_TOP \ 67#define STACK_TOP \
62 (test_thread_flag(TIF_32BIT_ADDR) ? TASK_SIZE32 : TASK_SIZE) 68 (((test_thread_flag(TIF_32BIT_ADDR) ? \
69 TASK_SIZE32 : TASK_SIZE) & PAGE_MASK) - SPECIAL_PAGES_SIZE)
63 70
64/* 71/*
65 * This decides where the kernel will search for a free chunk of vm 72 * This decides where the kernel will search for a free chunk of vm
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
143extern asmlinkage void do_syscall_trace(struct pt_regs *regs, int entryexit); 143extern asmlinkage void do_syscall_trace(struct pt_regs *regs, int entryexit);
144 144
145extern NORET_TYPE void die(const char *, const struct pt_regs *) ATTRIB_NORET; 145extern NORET_TYPE void die(const char *, struct pt_regs *) ATTRIB_NORET;
146 146
147static inline void die_if_kernel(const char *str, const struct pt_regs *regs) 147static 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/serial.h b/arch/mips/include/asm/serial.h
index c07ebd8eb9e7..a0cb0caff152 100644
--- a/arch/mips/include/asm/serial.h
+++ b/arch/mips/include/asm/serial.h
@@ -1,22 +1 @@
1/* #include <asm-generic/serial.h>
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) 1999 by Ralf Baechle
7 * Copyright (C) 1999, 2000 Silicon Graphics, Inc.
8 */
9#ifndef _ASM_SERIAL_H
10#define _ASM_SERIAL_H
11
12
13/*
14 * This assumes you have a 1.8432 MHz clock for your UART.
15 *
16 * It'd be nice if someone built a serial card with a 24.576 MHz
17 * clock, since the 16550A is capable of handling a top speed of 1.5
18 * megabits/second; but this requires the faster clock.
19 */
20#define BASE_BAUD (1843200 / 16)
21
22#endif /* _ASM_SERIAL_H */
diff --git a/arch/mips/include/asm/sgi/ioc.h b/arch/mips/include/asm/sgi/ioc.h
index 343ed15f8dc4..57a971904cfe 100644
--- a/arch/mips/include/asm/sgi/ioc.h
+++ b/arch/mips/include/asm/sgi/ioc.h
@@ -164,7 +164,7 @@ struct sgioc_regs {
164 u32 _unused5; 164 u32 _unused5;
165 u8 _write[3]; 165 u8 _write[3];
166 volatile u8 write; 166 volatile u8 write;
167#define SGIOC_WRITE_NTHRESH 0x01 /* use 4.5db threshhold */ 167#define SGIOC_WRITE_NTHRESH 0x01 /* use 4.5db threshold */
168#define SGIOC_WRITE_TPSPEED 0x02 /* use 100ohm TP speed */ 168#define SGIOC_WRITE_TPSPEED 0x02 /* use 100ohm TP speed */
169#define SGIOC_WRITE_EPSEL 0x04 /* force cable mode: 1=AUI 0=TP */ 169#define SGIOC_WRITE_EPSEL 0x04 /* force cable mode: 1=AUI 0=TP */
170#define SGIOC_WRITE_EASEL 0x08 /* 1=autoselect 0=manual cable selection */ 170#define SGIOC_WRITE_EASEL 0x08 /* 1=autoselect 0=manual cable selection */
diff --git a/arch/mips/include/asm/sgialib.h b/arch/mips/include/asm/sgialib.h
index bfce5c786f1c..2a2f1bddc276 100644
--- a/arch/mips/include/asm/sgialib.h
+++ b/arch/mips/include/asm/sgialib.h
@@ -33,14 +33,6 @@ extern int prom_flags;
33extern void prom_putchar(char c); 33extern void prom_putchar(char c);
34extern char prom_getchar(void); 34extern char prom_getchar(void);
35 35
36/* Memory descriptor management. */
37#define PROM_MAX_PMEMBLOCKS 32
38struct prom_pmemblock {
39 LONG base; /* Within KSEG0 or XKPHYS. */
40 ULONG size; /* In bytes. */
41 ULONG type; /* free or prom memory */
42};
43
44/* Get next memory descriptor after CURR, returns first descriptor 36/* Get next memory descriptor after CURR, returns first descriptor
45 * in chain is CURR is NULL. 37 * in chain is CURR is NULL.
46 */ 38 */
@@ -51,7 +43,6 @@ extern struct linux_mdesc *prom_getmdesc(struct linux_mdesc *curr);
51 * array. 43 * array.
52 */ 44 */
53extern void prom_meminit(void); 45extern void prom_meminit(void);
54extern void prom_fixup_mem_map(unsigned long start_mem, unsigned long end_mem);
55 46
56/* PROM device tree library routines. */ 47/* PROM device tree library routines. */
57#define PROM_NULL_COMPONENT ((pcomponent *) 0) 48#define PROM_NULL_COMPONENT ((pcomponent *) 0)
@@ -62,20 +53,6 @@ extern pcomponent *ArcGetPeer(pcomponent *this);
62/* Get child component of THIS. */ 53/* Get child component of THIS. */
63extern pcomponent *ArcGetChild(pcomponent *this); 54extern pcomponent *ArcGetChild(pcomponent *this);
64 55
65/* Get parent component of CHILD. */
66extern pcomponent *prom_getparent(pcomponent *child);
67
68/* Copy component opaque data of component THIS into BUFFER
69 * if component THIS has opaque data. Returns success or
70 * failure status.
71 */
72extern long prom_getcdata(void *buffer, pcomponent *this);
73
74/* Other misc. component routines. */
75extern pcomponent *prom_childadd(pcomponent *this, pcomponent *tmp, void *data);
76extern long prom_delcomponent(pcomponent *this);
77extern pcomponent *prom_componentbypath(char *path);
78
79/* This is called at prom_init time to identify the 56/* This is called at prom_init time to identify the
80 * ARC architecture we are running on 57 * ARC architecture we are running on
81 */ 58 */
@@ -85,39 +62,16 @@ extern void prom_identify_arch(void);
85extern PCHAR ArcGetEnvironmentVariable(PCHAR name); 62extern PCHAR ArcGetEnvironmentVariable(PCHAR name);
86extern LONG ArcSetEnvironmentVariable(PCHAR name, PCHAR value); 63extern LONG ArcSetEnvironmentVariable(PCHAR name, PCHAR value);
87 64
88/* ARCS command line acquisition and parsing. */ 65/* ARCS command line parsing. */
89extern char *prom_getcmdline(void);
90extern void prom_init_cmdline(void); 66extern void prom_init_cmdline(void);
91 67
92/* Acquiring info about the current time, etc. */
93extern struct linux_tinfo *prom_gettinfo(void);
94extern unsigned long prom_getrtime(void);
95
96/* File operations. */ 68/* File operations. */
97extern long prom_getvdirent(unsigned long fd, struct linux_vdirent *ent, unsigned long num, unsigned long *cnt);
98extern long prom_open(char *name, enum linux_omode md, unsigned long *fd);
99extern long prom_close(unsigned long fd);
100extern LONG ArcRead(ULONG fd, PVOID buf, ULONG num, PULONG cnt); 69extern LONG ArcRead(ULONG fd, PVOID buf, ULONG num, PULONG cnt);
101extern long prom_getrstatus(unsigned long fd);
102extern LONG ArcWrite(ULONG fd, PVOID buf, ULONG num, PULONG cnt); 70extern LONG ArcWrite(ULONG fd, PVOID buf, ULONG num, PULONG cnt);
103extern long prom_seek(unsigned long fd, struct linux_bigint *off, enum linux_seekmode sm);
104extern long prom_mount(char *name, enum linux_mountops op);
105extern long prom_getfinfo(unsigned long fd, struct linux_finfo *buf);
106extern long prom_setfinfo(unsigned long fd, unsigned long flags, unsigned long msk);
107
108/* Running stand-along programs. */
109extern long prom_load(char *name, unsigned long end, unsigned long *pc, unsigned long *eaddr);
110extern long prom_invoke(unsigned long pc, unsigned long sp, long argc, char **argv, char **envp);
111extern long prom_exec(char *name, long argc, char **argv, char **envp);
112 71
113/* Misc. routines. */ 72/* Misc. routines. */
114extern VOID prom_halt(VOID) __attribute__((noreturn));
115extern VOID prom_powerdown(VOID) __attribute__((noreturn));
116extern VOID prom_restart(VOID) __attribute__((noreturn));
117extern VOID ArcReboot(VOID) __attribute__((noreturn)); 73extern VOID ArcReboot(VOID) __attribute__((noreturn));
118extern VOID ArcEnterInteractiveMode(VOID) __attribute__((noreturn)); 74extern VOID ArcEnterInteractiveMode(VOID) __attribute__((noreturn));
119extern long prom_cfgsave(VOID);
120extern struct linux_sysid *prom_getsysid(VOID);
121extern VOID ArcFlushAllCaches(VOID); 75extern VOID ArcFlushAllCaches(VOID);
122extern DISPLAY_STATUS *ArcGetDisplayStatus(ULONG FileID); 76extern DISPLAY_STATUS *ArcGetDisplayStatus(ULONG FileID);
123 77
diff --git a/arch/mips/include/asm/sibyte/bigsur.h b/arch/mips/include/asm/sibyte/bigsur.h
index ebefe797fc1d..2d1a26d3436a 100644
--- a/arch/mips/include/asm/sibyte/bigsur.h
+++ b/arch/mips/include/asm/sibyte/bigsur.h
@@ -46,4 +46,3 @@
46#endif 46#endif
47 47
48#endif /* __ASM_SIBYTE_BIGSUR_H */ 48#endif /* __ASM_SIBYTE_BIGSUR_H */
49
diff --git a/arch/mips/include/asm/sibyte/sb1250_ldt.h b/arch/mips/include/asm/sibyte/sb1250_ldt.h
index 081e8b1c4ad0..1e76cf137995 100644
--- a/arch/mips/include/asm/sibyte/sb1250_ldt.h
+++ b/arch/mips/include/asm/sibyte/sb1250_ldt.h
@@ -420,4 +420,3 @@
420#endif /* 1250 PASS2 || 112x PASS1 */ 420#endif /* 1250 PASS2 || 112x PASS1 */
421 421
422#endif 422#endif
423
diff --git a/arch/mips/include/asm/sibyte/sb1250_mac.h b/arch/mips/include/asm/sibyte/sb1250_mac.h
index b6faf08ca81d..591b9061fd8e 100644
--- a/arch/mips/include/asm/sibyte/sb1250_mac.h
+++ b/arch/mips/include/asm/sibyte/sb1250_mac.h
@@ -212,7 +212,7 @@
212#define G_MAC_TXD_WEIGHT1(x) _SB_GETVALUE(x, S_MAC_TXD_WEIGHT1, M_MAC_TXD_WEIGHT1) 212#define G_MAC_TXD_WEIGHT1(x) _SB_GETVALUE(x, S_MAC_TXD_WEIGHT1, M_MAC_TXD_WEIGHT1)
213 213
214/* 214/*
215 * MAC Fifo Threshhold registers (Table 9-14) 215 * MAC Fifo Threshold registers (Table 9-14)
216 * Register: MAC_THRSH_CFG_0 216 * Register: MAC_THRSH_CFG_0
217 * Register: MAC_THRSH_CFG_1 217 * Register: MAC_THRSH_CFG_1
218 * Register: MAC_THRSH_CFG_2 218 * Register: MAC_THRSH_CFG_2
diff --git a/arch/mips/include/asm/sn/klkernvars.h b/arch/mips/include/asm/sn/klkernvars.h
index 5de4c5e8ab30..6af25ba41ade 100644
--- a/arch/mips/include/asm/sn/klkernvars.h
+++ b/arch/mips/include/asm/sn/klkernvars.h
@@ -26,4 +26,3 @@ typedef struct kern_vars_s {
26#endif /* !__ASSEMBLY__ */ 26#endif /* !__ASSEMBLY__ */
27 27
28#endif /* __ASM_SN_KLKERNVARS_H */ 28#endif /* __ASM_SN_KLKERNVARS_H */
29
diff --git a/arch/mips/include/asm/sn/sn0/hubio.h b/arch/mips/include/asm/sn/sn0/hubio.h
index d0c29d4de084..31c76c021bb6 100644
--- a/arch/mips/include/asm/sn/sn0/hubio.h
+++ b/arch/mips/include/asm/sn/sn0/hubio.h
@@ -825,7 +825,7 @@ typedef union iprb_u {
825 struct { 825 struct {
826 u64 rsvd1: 15, 826 u64 rsvd1: 15,
827 error: 1, /* Widget rcvd wr resp pkt w/ error */ 827 error: 1, /* Widget rcvd wr resp pkt w/ error */
828 ovflow: 5, /* Over flow count. perf measurement */ 828 ovflow: 5, /* Overflow count. perf measurement */
829 fire_and_forget: 1, /* Launch Write without response */ 829 fire_and_forget: 1, /* Launch Write without response */
830 mode: 2, /* Widget operation Mode */ 830 mode: 2, /* Widget operation Mode */
831 rsvd2: 2, 831 rsvd2: 2,
diff --git a/arch/mips/include/asm/socket.h b/arch/mips/include/asm/socket.h
index ae05accd9fe4..9de5190f2487 100644
--- a/arch/mips/include/asm/socket.h
+++ b/arch/mips/include/asm/socket.h
@@ -80,6 +80,8 @@ To add: #define SO_REUSEPORT 0x0200 /* Allow local address and port reuse. */
80#define SO_TIMESTAMPING 37 80#define SO_TIMESTAMPING 37
81#define SCM_TIMESTAMPING SO_TIMESTAMPING 81#define SCM_TIMESTAMPING SO_TIMESTAMPING
82 82
83#define SO_RXQ_OVFL 40
84
83#ifdef __KERNEL__ 85#ifdef __KERNEL__
84 86
85/** sock_type - Socket types 87/** sock_type - Socket types
diff --git a/arch/mips/include/asm/sparsemem.h b/arch/mips/include/asm/sparsemem.h
index 795ac6c23203..7165333ad043 100644
--- a/arch/mips/include/asm/sparsemem.h
+++ b/arch/mips/include/asm/sparsemem.h
@@ -11,4 +11,3 @@
11 11
12#endif /* CONFIG_SPARSEMEM */ 12#endif /* CONFIG_SPARSEMEM */
13#endif /* _MIPS_SPARSEMEM_H */ 13#endif /* _MIPS_SPARSEMEM_H */
14
diff --git a/arch/mips/include/asm/spinlock.h b/arch/mips/include/asm/spinlock.h
index 5b60a09a0f08..396e402fbe2c 100644
--- a/arch/mips/include/asm/spinlock.h
+++ b/arch/mips/include/asm/spinlock.h
@@ -34,55 +34,55 @@
34 * becomes equal to the the initial value of the tail. 34 * becomes equal to the the initial value of the tail.
35 */ 35 */
36 36
37static inline int __raw_spin_is_locked(raw_spinlock_t *lock) 37static inline int arch_spin_is_locked(arch_spinlock_t *lock)
38{ 38{
39 unsigned int counters = ACCESS_ONCE(lock->lock); 39 u32 counters = ACCESS_ONCE(lock->lock);
40 40
41 return ((counters >> 14) ^ counters) & 0x1fff; 41 return ((counters >> 16) ^ counters) & 0xffff;
42} 42}
43 43
44#define __raw_spin_lock_flags(lock, flags) __raw_spin_lock(lock) 44#define arch_spin_lock_flags(lock, flags) arch_spin_lock(lock)
45#define __raw_spin_unlock_wait(x) \ 45#define arch_spin_unlock_wait(x) \
46 while (__raw_spin_is_locked(x)) { cpu_relax(); } 46 while (arch_spin_is_locked(x)) { cpu_relax(); }
47 47
48static inline int __raw_spin_is_contended(raw_spinlock_t *lock) 48static inline int arch_spin_is_contended(arch_spinlock_t *lock)
49{ 49{
50 unsigned int counters = ACCESS_ONCE(lock->lock); 50 u32 counters = ACCESS_ONCE(lock->lock);
51 51
52 return (((counters >> 14) - counters) & 0x1fff) > 1; 52 return (((counters >> 16) - counters) & 0xffff) > 1;
53} 53}
54#define __raw_spin_is_contended __raw_spin_is_contended 54#define arch_spin_is_contended arch_spin_is_contended
55 55
56static inline void __raw_spin_lock(raw_spinlock_t *lock) 56static inline void arch_spin_lock(arch_spinlock_t *lock)
57{ 57{
58 int my_ticket; 58 int my_ticket;
59 int tmp; 59 int tmp;
60 int inc = 0x10000;
60 61
61 if (R10000_LLSC_WAR) { 62 if (R10000_LLSC_WAR) {
62 __asm__ __volatile__ ( 63 __asm__ __volatile__ (
63 " .set push # __raw_spin_lock \n" 64 " .set push # arch_spin_lock \n"
64 " .set noreorder \n" 65 " .set noreorder \n"
65 " \n" 66 " \n"
66 "1: ll %[ticket], %[ticket_ptr] \n" 67 "1: ll %[ticket], %[ticket_ptr] \n"
67 " addiu %[my_ticket], %[ticket], 0x4000 \n" 68 " addu %[my_ticket], %[ticket], %[inc] \n"
68 " sc %[my_ticket], %[ticket_ptr] \n" 69 " sc %[my_ticket], %[ticket_ptr] \n"
69 " beqzl %[my_ticket], 1b \n" 70 " beqzl %[my_ticket], 1b \n"
70 " nop \n" 71 " nop \n"
71 " srl %[my_ticket], %[ticket], 14 \n" 72 " srl %[my_ticket], %[ticket], 16 \n"
72 " andi %[my_ticket], %[my_ticket], 0x1fff \n" 73 " andi %[ticket], %[ticket], 0xffff \n"
73 " andi %[ticket], %[ticket], 0x1fff \n" 74 " andi %[my_ticket], %[my_ticket], 0xffff \n"
74 " bne %[ticket], %[my_ticket], 4f \n" 75 " bne %[ticket], %[my_ticket], 4f \n"
75 " subu %[ticket], %[my_ticket], %[ticket] \n" 76 " subu %[ticket], %[my_ticket], %[ticket] \n"
76 "2: \n" 77 "2: \n"
77 " .subsection 2 \n" 78 " .subsection 2 \n"
78 "4: andi %[ticket], %[ticket], 0x1fff \n" 79 "4: andi %[ticket], %[ticket], 0xffff \n"
79 " sll %[ticket], 5 \n" 80 " sll %[ticket], 5 \n"
80 " \n" 81 " \n"
81 "6: bnez %[ticket], 6b \n" 82 "6: bnez %[ticket], 6b \n"
82 " subu %[ticket], 1 \n" 83 " subu %[ticket], 1 \n"
83 " \n" 84 " \n"
84 " lw %[ticket], %[ticket_ptr] \n" 85 " lhu %[ticket], %[serving_now_ptr] \n"
85 " andi %[ticket], %[ticket], 0x1fff \n"
86 " beq %[ticket], %[my_ticket], 2b \n" 86 " beq %[ticket], %[my_ticket], 2b \n"
87 " subu %[ticket], %[my_ticket], %[ticket] \n" 87 " subu %[ticket], %[my_ticket], %[ticket] \n"
88 " b 4b \n" 88 " b 4b \n"
@@ -90,36 +90,33 @@ static inline void __raw_spin_lock(raw_spinlock_t *lock)
90 " .previous \n" 90 " .previous \n"
91 " .set pop \n" 91 " .set pop \n"
92 : [ticket_ptr] "+m" (lock->lock), 92 : [ticket_ptr] "+m" (lock->lock),
93 [serving_now_ptr] "+m" (lock->h.serving_now),
93 [ticket] "=&r" (tmp), 94 [ticket] "=&r" (tmp),
94 [my_ticket] "=&r" (my_ticket)); 95 [my_ticket] "=&r" (my_ticket)
96 : [inc] "r" (inc));
95 } else { 97 } else {
96 __asm__ __volatile__ ( 98 __asm__ __volatile__ (
97 " .set push # __raw_spin_lock \n" 99 " .set push # arch_spin_lock \n"
98 " .set noreorder \n" 100 " .set noreorder \n"
99 " \n" 101 " \n"
100 " ll %[ticket], %[ticket_ptr] \n" 102 "1: ll %[ticket], %[ticket_ptr] \n"
101 "1: addiu %[my_ticket], %[ticket], 0x4000 \n" 103 " addu %[my_ticket], %[ticket], %[inc] \n"
102 " sc %[my_ticket], %[ticket_ptr] \n" 104 " sc %[my_ticket], %[ticket_ptr] \n"
103 " beqz %[my_ticket], 3f \n" 105 " beqz %[my_ticket], 1b \n"
104 " nop \n" 106 " srl %[my_ticket], %[ticket], 16 \n"
105 " srl %[my_ticket], %[ticket], 14 \n" 107 " andi %[ticket], %[ticket], 0xffff \n"
106 " andi %[my_ticket], %[my_ticket], 0x1fff \n" 108 " andi %[my_ticket], %[my_ticket], 0xffff \n"
107 " andi %[ticket], %[ticket], 0x1fff \n"
108 " bne %[ticket], %[my_ticket], 4f \n" 109 " bne %[ticket], %[my_ticket], 4f \n"
109 " subu %[ticket], %[my_ticket], %[ticket] \n" 110 " subu %[ticket], %[my_ticket], %[ticket] \n"
110 "2: \n" 111 "2: \n"
111 " .subsection 2 \n" 112 " .subsection 2 \n"
112 "3: b 1b \n"
113 " ll %[ticket], %[ticket_ptr] \n"
114 " \n"
115 "4: andi %[ticket], %[ticket], 0x1fff \n" 113 "4: andi %[ticket], %[ticket], 0x1fff \n"
116 " sll %[ticket], 5 \n" 114 " sll %[ticket], 5 \n"
117 " \n" 115 " \n"
118 "6: bnez %[ticket], 6b \n" 116 "6: bnez %[ticket], 6b \n"
119 " subu %[ticket], 1 \n" 117 " subu %[ticket], 1 \n"
120 " \n" 118 " \n"
121 " lw %[ticket], %[ticket_ptr] \n" 119 " lhu %[ticket], %[serving_now_ptr] \n"
122 " andi %[ticket], %[ticket], 0x1fff \n"
123 " beq %[ticket], %[my_ticket], 2b \n" 120 " beq %[ticket], %[my_ticket], 2b \n"
124 " subu %[ticket], %[my_ticket], %[ticket] \n" 121 " subu %[ticket], %[my_ticket], %[ticket] \n"
125 " b 4b \n" 122 " b 4b \n"
@@ -127,68 +124,39 @@ static inline void __raw_spin_lock(raw_spinlock_t *lock)
127 " .previous \n" 124 " .previous \n"
128 " .set pop \n" 125 " .set pop \n"
129 : [ticket_ptr] "+m" (lock->lock), 126 : [ticket_ptr] "+m" (lock->lock),
127 [serving_now_ptr] "+m" (lock->h.serving_now),
130 [ticket] "=&r" (tmp), 128 [ticket] "=&r" (tmp),
131 [my_ticket] "=&r" (my_ticket)); 129 [my_ticket] "=&r" (my_ticket)
130 : [inc] "r" (inc));
132 } 131 }
133 132
134 smp_llsc_mb(); 133 smp_llsc_mb();
135} 134}
136 135
137static inline void __raw_spin_unlock(raw_spinlock_t *lock) 136static inline void arch_spin_unlock(arch_spinlock_t *lock)
138{ 137{
139 int tmp; 138 unsigned int serving_now = lock->h.serving_now + 1;
140 139 wmb();
141 smp_llsc_mb(); 140 lock->h.serving_now = (u16)serving_now;
142 141 nudge_writes();
143 if (R10000_LLSC_WAR) {
144 __asm__ __volatile__ (
145 " # __raw_spin_unlock \n"
146 "1: ll %[ticket], %[ticket_ptr] \n"
147 " addiu %[ticket], %[ticket], 1 \n"
148 " ori %[ticket], %[ticket], 0x2000 \n"
149 " xori %[ticket], %[ticket], 0x2000 \n"
150 " sc %[ticket], %[ticket_ptr] \n"
151 " beqzl %[ticket], 1b \n"
152 : [ticket_ptr] "+m" (lock->lock),
153 [ticket] "=&r" (tmp));
154 } else {
155 __asm__ __volatile__ (
156 " .set push # __raw_spin_unlock \n"
157 " .set noreorder \n"
158 " \n"
159 " ll %[ticket], %[ticket_ptr] \n"
160 "1: addiu %[ticket], %[ticket], 1 \n"
161 " ori %[ticket], %[ticket], 0x2000 \n"
162 " xori %[ticket], %[ticket], 0x2000 \n"
163 " sc %[ticket], %[ticket_ptr] \n"
164 " beqz %[ticket], 2f \n"
165 " nop \n"
166 " \n"
167 " .subsection 2 \n"
168 "2: b 1b \n"
169 " ll %[ticket], %[ticket_ptr] \n"
170 " .previous \n"
171 " .set pop \n"
172 : [ticket_ptr] "+m" (lock->lock),
173 [ticket] "=&r" (tmp));
174 }
175} 142}
176 143
177static inline unsigned int __raw_spin_trylock(raw_spinlock_t *lock) 144static inline unsigned int arch_spin_trylock(arch_spinlock_t *lock)
178{ 145{
179 int tmp, tmp2, tmp3; 146 int tmp, tmp2, tmp3;
147 int inc = 0x10000;
180 148
181 if (R10000_LLSC_WAR) { 149 if (R10000_LLSC_WAR) {
182 __asm__ __volatile__ ( 150 __asm__ __volatile__ (
183 " .set push # __raw_spin_trylock \n" 151 " .set push # arch_spin_trylock \n"
184 " .set noreorder \n" 152 " .set noreorder \n"
185 " \n" 153 " \n"
186 "1: ll %[ticket], %[ticket_ptr] \n" 154 "1: ll %[ticket], %[ticket_ptr] \n"
187 " srl %[my_ticket], %[ticket], 14 \n" 155 " srl %[my_ticket], %[ticket], 16 \n"
188 " andi %[my_ticket], %[my_ticket], 0x1fff \n" 156 " andi %[my_ticket], %[my_ticket], 0xffff \n"
189 " andi %[now_serving], %[ticket], 0x1fff \n" 157 " andi %[now_serving], %[ticket], 0xffff \n"
190 " bne %[my_ticket], %[now_serving], 3f \n" 158 " bne %[my_ticket], %[now_serving], 3f \n"
191 " addiu %[ticket], %[ticket], 0x4000 \n" 159 " addu %[ticket], %[ticket], %[inc] \n"
192 " sc %[ticket], %[ticket_ptr] \n" 160 " sc %[ticket], %[ticket_ptr] \n"
193 " beqzl %[ticket], 1b \n" 161 " beqzl %[ticket], 1b \n"
194 " li %[ticket], 1 \n" 162 " li %[ticket], 1 \n"
@@ -201,33 +169,33 @@ static inline unsigned int __raw_spin_trylock(raw_spinlock_t *lock)
201 : [ticket_ptr] "+m" (lock->lock), 169 : [ticket_ptr] "+m" (lock->lock),
202 [ticket] "=&r" (tmp), 170 [ticket] "=&r" (tmp),
203 [my_ticket] "=&r" (tmp2), 171 [my_ticket] "=&r" (tmp2),
204 [now_serving] "=&r" (tmp3)); 172 [now_serving] "=&r" (tmp3)
173 : [inc] "r" (inc));
205 } else { 174 } else {
206 __asm__ __volatile__ ( 175 __asm__ __volatile__ (
207 " .set push # __raw_spin_trylock \n" 176 " .set push # arch_spin_trylock \n"
208 " .set noreorder \n" 177 " .set noreorder \n"
209 " \n" 178 " \n"
210 " ll %[ticket], %[ticket_ptr] \n" 179 "1: ll %[ticket], %[ticket_ptr] \n"
211 "1: srl %[my_ticket], %[ticket], 14 \n" 180 " srl %[my_ticket], %[ticket], 16 \n"
212 " andi %[my_ticket], %[my_ticket], 0x1fff \n" 181 " andi %[my_ticket], %[my_ticket], 0xffff \n"
213 " andi %[now_serving], %[ticket], 0x1fff \n" 182 " andi %[now_serving], %[ticket], 0xffff \n"
214 " bne %[my_ticket], %[now_serving], 3f \n" 183 " bne %[my_ticket], %[now_serving], 3f \n"
215 " addiu %[ticket], %[ticket], 0x4000 \n" 184 " addu %[ticket], %[ticket], %[inc] \n"
216 " sc %[ticket], %[ticket_ptr] \n" 185 " sc %[ticket], %[ticket_ptr] \n"
217 " beqz %[ticket], 4f \n" 186 " beqz %[ticket], 1b \n"
218 " li %[ticket], 1 \n" 187 " li %[ticket], 1 \n"
219 "2: \n" 188 "2: \n"
220 " .subsection 2 \n" 189 " .subsection 2 \n"
221 "3: b 2b \n" 190 "3: b 2b \n"
222 " li %[ticket], 0 \n" 191 " li %[ticket], 0 \n"
223 "4: b 1b \n"
224 " ll %[ticket], %[ticket_ptr] \n"
225 " .previous \n" 192 " .previous \n"
226 " .set pop \n" 193 " .set pop \n"
227 : [ticket_ptr] "+m" (lock->lock), 194 : [ticket_ptr] "+m" (lock->lock),
228 [ticket] "=&r" (tmp), 195 [ticket] "=&r" (tmp),
229 [my_ticket] "=&r" (tmp2), 196 [my_ticket] "=&r" (tmp2),
230 [now_serving] "=&r" (tmp3)); 197 [now_serving] "=&r" (tmp3)
198 : [inc] "r" (inc));
231 } 199 }
232 200
233 smp_llsc_mb(); 201 smp_llsc_mb();
@@ -248,21 +216,21 @@ static inline unsigned int __raw_spin_trylock(raw_spinlock_t *lock)
248 * read_can_lock - would read_trylock() succeed? 216 * read_can_lock - would read_trylock() succeed?
249 * @lock: the rwlock in question. 217 * @lock: the rwlock in question.
250 */ 218 */
251#define __raw_read_can_lock(rw) ((rw)->lock >= 0) 219#define arch_read_can_lock(rw) ((rw)->lock >= 0)
252 220
253/* 221/*
254 * write_can_lock - would write_trylock() succeed? 222 * write_can_lock - would write_trylock() succeed?
255 * @lock: the rwlock in question. 223 * @lock: the rwlock in question.
256 */ 224 */
257#define __raw_write_can_lock(rw) (!(rw)->lock) 225#define arch_write_can_lock(rw) (!(rw)->lock)
258 226
259static inline void __raw_read_lock(raw_rwlock_t *rw) 227static inline void arch_read_lock(arch_rwlock_t *rw)
260{ 228{
261 unsigned int tmp; 229 unsigned int tmp;
262 230
263 if (R10000_LLSC_WAR) { 231 if (R10000_LLSC_WAR) {
264 __asm__ __volatile__( 232 __asm__ __volatile__(
265 " .set noreorder # __raw_read_lock \n" 233 " .set noreorder # arch_read_lock \n"
266 "1: ll %1, %2 \n" 234 "1: ll %1, %2 \n"
267 " bltz %1, 1b \n" 235 " bltz %1, 1b \n"
268 " addu %1, 1 \n" 236 " addu %1, 1 \n"
@@ -275,7 +243,7 @@ static inline void __raw_read_lock(raw_rwlock_t *rw)
275 : "memory"); 243 : "memory");
276 } else { 244 } else {
277 __asm__ __volatile__( 245 __asm__ __volatile__(
278 " .set noreorder # __raw_read_lock \n" 246 " .set noreorder # arch_read_lock \n"
279 "1: ll %1, %2 \n" 247 "1: ll %1, %2 \n"
280 " bltz %1, 2f \n" 248 " bltz %1, 2f \n"
281 " addu %1, 1 \n" 249 " addu %1, 1 \n"
@@ -301,15 +269,15 @@ static inline void __raw_read_lock(raw_rwlock_t *rw)
301/* Note the use of sub, not subu which will make the kernel die with an 269/* Note the use of sub, not subu which will make the kernel die with an
302 overflow exception if we ever try to unlock an rwlock that is already 270 overflow exception if we ever try to unlock an rwlock that is already
303 unlocked or is being held by a writer. */ 271 unlocked or is being held by a writer. */
304static inline void __raw_read_unlock(raw_rwlock_t *rw) 272static inline void arch_read_unlock(arch_rwlock_t *rw)
305{ 273{
306 unsigned int tmp; 274 unsigned int tmp;
307 275
308 smp_llsc_mb(); 276 smp_mb__before_llsc();
309 277
310 if (R10000_LLSC_WAR) { 278 if (R10000_LLSC_WAR) {
311 __asm__ __volatile__( 279 __asm__ __volatile__(
312 "1: ll %1, %2 # __raw_read_unlock \n" 280 "1: ll %1, %2 # arch_read_unlock \n"
313 " sub %1, 1 \n" 281 " sub %1, 1 \n"
314 " sc %1, %0 \n" 282 " sc %1, %0 \n"
315 " beqzl %1, 1b \n" 283 " beqzl %1, 1b \n"
@@ -318,7 +286,7 @@ static inline void __raw_read_unlock(raw_rwlock_t *rw)
318 : "memory"); 286 : "memory");
319 } else { 287 } else {
320 __asm__ __volatile__( 288 __asm__ __volatile__(
321 " .set noreorder # __raw_read_unlock \n" 289 " .set noreorder # arch_read_unlock \n"
322 "1: ll %1, %2 \n" 290 "1: ll %1, %2 \n"
323 " sub %1, 1 \n" 291 " sub %1, 1 \n"
324 " sc %1, %0 \n" 292 " sc %1, %0 \n"
@@ -335,13 +303,13 @@ static inline void __raw_read_unlock(raw_rwlock_t *rw)
335 } 303 }
336} 304}
337 305
338static inline void __raw_write_lock(raw_rwlock_t *rw) 306static inline void arch_write_lock(arch_rwlock_t *rw)
339{ 307{
340 unsigned int tmp; 308 unsigned int tmp;
341 309
342 if (R10000_LLSC_WAR) { 310 if (R10000_LLSC_WAR) {
343 __asm__ __volatile__( 311 __asm__ __volatile__(
344 " .set noreorder # __raw_write_lock \n" 312 " .set noreorder # arch_write_lock \n"
345 "1: ll %1, %2 \n" 313 "1: ll %1, %2 \n"
346 " bnez %1, 1b \n" 314 " bnez %1, 1b \n"
347 " lui %1, 0x8000 \n" 315 " lui %1, 0x8000 \n"
@@ -354,7 +322,7 @@ static inline void __raw_write_lock(raw_rwlock_t *rw)
354 : "memory"); 322 : "memory");
355 } else { 323 } else {
356 __asm__ __volatile__( 324 __asm__ __volatile__(
357 " .set noreorder # __raw_write_lock \n" 325 " .set noreorder # arch_write_lock \n"
358 "1: ll %1, %2 \n" 326 "1: ll %1, %2 \n"
359 " bnez %1, 2f \n" 327 " bnez %1, 2f \n"
360 " lui %1, 0x8000 \n" 328 " lui %1, 0x8000 \n"
@@ -377,26 +345,26 @@ static inline void __raw_write_lock(raw_rwlock_t *rw)
377 smp_llsc_mb(); 345 smp_llsc_mb();
378} 346}
379 347
380static inline void __raw_write_unlock(raw_rwlock_t *rw) 348static inline void arch_write_unlock(arch_rwlock_t *rw)
381{ 349{
382 smp_mb(); 350 smp_mb();
383 351
384 __asm__ __volatile__( 352 __asm__ __volatile__(
385 " # __raw_write_unlock \n" 353 " # arch_write_unlock \n"
386 " sw $0, %0 \n" 354 " sw $0, %0 \n"
387 : "=m" (rw->lock) 355 : "=m" (rw->lock)
388 : "m" (rw->lock) 356 : "m" (rw->lock)
389 : "memory"); 357 : "memory");
390} 358}
391 359
392static inline int __raw_read_trylock(raw_rwlock_t *rw) 360static inline int arch_read_trylock(arch_rwlock_t *rw)
393{ 361{
394 unsigned int tmp; 362 unsigned int tmp;
395 int ret; 363 int ret;
396 364
397 if (R10000_LLSC_WAR) { 365 if (R10000_LLSC_WAR) {
398 __asm__ __volatile__( 366 __asm__ __volatile__(
399 " .set noreorder # __raw_read_trylock \n" 367 " .set noreorder # arch_read_trylock \n"
400 " li %2, 0 \n" 368 " li %2, 0 \n"
401 "1: ll %1, %3 \n" 369 "1: ll %1, %3 \n"
402 " bltz %1, 2f \n" 370 " bltz %1, 2f \n"
@@ -413,7 +381,7 @@ static inline int __raw_read_trylock(raw_rwlock_t *rw)
413 : "memory"); 381 : "memory");
414 } else { 382 } else {
415 __asm__ __volatile__( 383 __asm__ __volatile__(
416 " .set noreorder # __raw_read_trylock \n" 384 " .set noreorder # arch_read_trylock \n"
417 " li %2, 0 \n" 385 " li %2, 0 \n"
418 "1: ll %1, %3 \n" 386 "1: ll %1, %3 \n"
419 " bltz %1, 2f \n" 387 " bltz %1, 2f \n"
@@ -433,14 +401,14 @@ static inline int __raw_read_trylock(raw_rwlock_t *rw)
433 return ret; 401 return ret;
434} 402}
435 403
436static inline int __raw_write_trylock(raw_rwlock_t *rw) 404static inline int arch_write_trylock(arch_rwlock_t *rw)
437{ 405{
438 unsigned int tmp; 406 unsigned int tmp;
439 int ret; 407 int ret;
440 408
441 if (R10000_LLSC_WAR) { 409 if (R10000_LLSC_WAR) {
442 __asm__ __volatile__( 410 __asm__ __volatile__(
443 " .set noreorder # __raw_write_trylock \n" 411 " .set noreorder # arch_write_trylock \n"
444 " li %2, 0 \n" 412 " li %2, 0 \n"
445 "1: ll %1, %3 \n" 413 "1: ll %1, %3 \n"
446 " bnez %1, 2f \n" 414 " bnez %1, 2f \n"
@@ -457,7 +425,7 @@ static inline int __raw_write_trylock(raw_rwlock_t *rw)
457 : "memory"); 425 : "memory");
458 } else { 426 } else {
459 __asm__ __volatile__( 427 __asm__ __volatile__(
460 " .set noreorder # __raw_write_trylock \n" 428 " .set noreorder # arch_write_trylock \n"
461 " li %2, 0 \n" 429 " li %2, 0 \n"
462 "1: ll %1, %3 \n" 430 "1: ll %1, %3 \n"
463 " bnez %1, 2f \n" 431 " bnez %1, 2f \n"
@@ -480,11 +448,11 @@ static inline int __raw_write_trylock(raw_rwlock_t *rw)
480 return ret; 448 return ret;
481} 449}
482 450
483#define __raw_read_lock_flags(lock, flags) __raw_read_lock(lock) 451#define arch_read_lock_flags(lock, flags) arch_read_lock(lock)
484#define __raw_write_lock_flags(lock, flags) __raw_write_lock(lock) 452#define arch_write_lock_flags(lock, flags) arch_write_lock(lock)
485 453
486#define _raw_spin_relax(lock) cpu_relax() 454#define arch_spin_relax(lock) cpu_relax()
487#define _raw_read_relax(lock) cpu_relax() 455#define arch_read_relax(lock) cpu_relax()
488#define _raw_write_relax(lock) cpu_relax() 456#define arch_write_relax(lock) cpu_relax()
489 457
490#endif /* _ASM_SPINLOCK_H */ 458#endif /* _ASM_SPINLOCK_H */
diff --git a/arch/mips/include/asm/spinlock_types.h b/arch/mips/include/asm/spinlock_types.h
index adeedaa116c1..c52f36013a9d 100644
--- a/arch/mips/include/asm/spinlock_types.h
+++ b/arch/mips/include/asm/spinlock_types.h
@@ -5,21 +5,33 @@
5# error "please don't include this file directly" 5# error "please don't include this file directly"
6#endif 6#endif
7 7
8typedef struct { 8#include <linux/types.h>
9
10#include <asm/byteorder.h>
11
12typedef union {
9 /* 13 /*
10 * bits 0..13: serving_now 14 * bits 0..15 : serving_now
11 * bits 14 : junk data 15 * bits 16..31 : ticket
12 * bits 15..28: ticket
13 */ 16 */
14 unsigned int lock; 17 u32 lock;
15} raw_spinlock_t; 18 struct {
19#ifdef __BIG_ENDIAN
20 u16 ticket;
21 u16 serving_now;
22#else
23 u16 serving_now;
24 u16 ticket;
25#endif
26 } h;
27} arch_spinlock_t;
16 28
17#define __RAW_SPIN_LOCK_UNLOCKED { 0 } 29#define __ARCH_SPIN_LOCK_UNLOCKED { .lock = 0 }
18 30
19typedef struct { 31typedef struct {
20 volatile unsigned int lock; 32 volatile unsigned int lock;
21} raw_rwlock_t; 33} arch_rwlock_t;
22 34
23#define __RAW_RW_LOCK_UNLOCKED { 0 } 35#define __ARCH_RW_LOCK_UNLOCKED { 0 }
24 36
25#endif 37#endif
diff --git a/arch/mips/include/asm/stackframe.h b/arch/mips/include/asm/stackframe.h
index db0fa7b5aeaf..58730c5ce4bf 100644
--- a/arch/mips/include/asm/stackframe.h
+++ b/arch/mips/include/asm/stackframe.h
@@ -51,9 +51,6 @@
51 LONG_S v1, PT_ACX(sp) 51 LONG_S v1, PT_ACX(sp)
52#else 52#else
53 mfhi v1 53 mfhi v1
54 LONG_S v1, PT_HI(sp)
55 mflo v1
56 LONG_S v1, PT_LO(sp)
57#endif 54#endif
58#ifdef CONFIG_32BIT 55#ifdef CONFIG_32BIT
59 LONG_S $8, PT_R8(sp) 56 LONG_S $8, PT_R8(sp)
@@ -62,10 +59,17 @@
62 LONG_S $10, PT_R10(sp) 59 LONG_S $10, PT_R10(sp)
63 LONG_S $11, PT_R11(sp) 60 LONG_S $11, PT_R11(sp)
64 LONG_S $12, PT_R12(sp) 61 LONG_S $12, PT_R12(sp)
62#ifndef CONFIG_CPU_HAS_SMARTMIPS
63 LONG_S v1, PT_HI(sp)
64 mflo v1
65#endif
65 LONG_S $13, PT_R13(sp) 66 LONG_S $13, PT_R13(sp)
66 LONG_S $14, PT_R14(sp) 67 LONG_S $14, PT_R14(sp)
67 LONG_S $15, PT_R15(sp) 68 LONG_S $15, PT_R15(sp)
68 LONG_S $24, PT_R24(sp) 69 LONG_S $24, PT_R24(sp)
70#ifndef CONFIG_CPU_HAS_SMARTMIPS
71 LONG_S v1, PT_LO(sp)
72#endif
69 .endm 73 .endm
70 74
71 .macro SAVE_STATIC 75 .macro SAVE_STATIC
@@ -83,15 +87,19 @@
83#ifdef CONFIG_SMP 87#ifdef CONFIG_SMP
84#ifdef CONFIG_MIPS_MT_SMTC 88#ifdef CONFIG_MIPS_MT_SMTC
85#define PTEBASE_SHIFT 19 /* TCBIND */ 89#define PTEBASE_SHIFT 19 /* TCBIND */
90#define CPU_ID_REG CP0_TCBIND
91#define CPU_ID_MFC0 mfc0
92#elif defined(CONFIG_MIPS_PGD_C0_CONTEXT)
93#define PTEBASE_SHIFT 48 /* XCONTEXT */
94#define CPU_ID_REG CP0_XCONTEXT
95#define CPU_ID_MFC0 MFC0
86#else 96#else
87#define PTEBASE_SHIFT 23 /* CONTEXT */ 97#define PTEBASE_SHIFT 23 /* CONTEXT */
98#define CPU_ID_REG CP0_CONTEXT
99#define CPU_ID_MFC0 MFC0
88#endif 100#endif
89 .macro get_saved_sp /* SMP variation */ 101 .macro get_saved_sp /* SMP variation */
90#ifdef CONFIG_MIPS_MT_SMTC 102 CPU_ID_MFC0 k0, CPU_ID_REG
91 mfc0 k0, CP0_TCBIND
92#else
93 MFC0 k0, CP0_CONTEXT
94#endif
95#if defined(CONFIG_32BIT) || defined(KBUILD_64BIT_SYM32) 103#if defined(CONFIG_32BIT) || defined(KBUILD_64BIT_SYM32)
96 lui k1, %hi(kernelsp) 104 lui k1, %hi(kernelsp)
97#else 105#else
@@ -107,16 +115,31 @@
107 .endm 115 .endm
108 116
109 .macro set_saved_sp stackp temp temp2 117 .macro set_saved_sp stackp temp temp2
110#ifdef CONFIG_MIPS_MT_SMTC 118 CPU_ID_MFC0 \temp, CPU_ID_REG
111 mfc0 \temp, CP0_TCBIND
112#else
113 MFC0 \temp, CP0_CONTEXT
114#endif
115 LONG_SRL \temp, PTEBASE_SHIFT 119 LONG_SRL \temp, PTEBASE_SHIFT
116 LONG_S \stackp, kernelsp(\temp) 120 LONG_S \stackp, kernelsp(\temp)
117 .endm 121 .endm
118#else 122#else
119 .macro get_saved_sp /* Uniprocessor variation */ 123 .macro get_saved_sp /* Uniprocessor variation */
124#ifdef CONFIG_CPU_JUMP_WORKAROUNDS
125 /*
126 * Clear BTB (branch target buffer), forbid RAS (return address
127 * stack) to workaround the Out-of-order Issue in Loongson2F
128 * via its diagnostic register.
129 */
130 move k0, ra
131 jal 1f
132 nop
1331: jal 1f
134 nop
1351: jal 1f
136 nop
1371: jal 1f
138 nop
1391: move ra, k0
140 li k0, 3
141 mtc0 k0, $22
142#endif /* CONFIG_CPU_LOONGSON2F */
120#if defined(CONFIG_32BIT) || defined(KBUILD_64BIT_SYM32) 143#if defined(CONFIG_32BIT) || defined(KBUILD_64BIT_SYM32)
121 lui k1, %hi(kernelsp) 144 lui k1, %hi(kernelsp)
122#else 145#else
@@ -166,7 +189,6 @@
166 LONG_S $0, PT_R0(sp) 189 LONG_S $0, PT_R0(sp)
167 mfc0 v1, CP0_STATUS 190 mfc0 v1, CP0_STATUS
168 LONG_S $2, PT_R2(sp) 191 LONG_S $2, PT_R2(sp)
169 LONG_S v1, PT_STATUS(sp)
170#ifdef CONFIG_MIPS_MT_SMTC 192#ifdef CONFIG_MIPS_MT_SMTC
171 /* 193 /*
172 * Ideally, these instructions would be shuffled in 194 * Ideally, these instructions would be shuffled in
@@ -178,20 +200,21 @@
178 LONG_S v1, PT_TCSTATUS(sp) 200 LONG_S v1, PT_TCSTATUS(sp)
179#endif /* CONFIG_MIPS_MT_SMTC */ 201#endif /* CONFIG_MIPS_MT_SMTC */
180 LONG_S $4, PT_R4(sp) 202 LONG_S $4, PT_R4(sp)
181 mfc0 v1, CP0_CAUSE
182 LONG_S $5, PT_R5(sp) 203 LONG_S $5, PT_R5(sp)
183 LONG_S v1, PT_CAUSE(sp) 204 LONG_S v1, PT_STATUS(sp)
205 mfc0 v1, CP0_CAUSE
184 LONG_S $6, PT_R6(sp) 206 LONG_S $6, PT_R6(sp)
185 MFC0 v1, CP0_EPC
186 LONG_S $7, PT_R7(sp) 207 LONG_S $7, PT_R7(sp)
208 LONG_S v1, PT_CAUSE(sp)
209 MFC0 v1, CP0_EPC
187#ifdef CONFIG_64BIT 210#ifdef CONFIG_64BIT
188 LONG_S $8, PT_R8(sp) 211 LONG_S $8, PT_R8(sp)
189 LONG_S $9, PT_R9(sp) 212 LONG_S $9, PT_R9(sp)
190#endif 213#endif
191 LONG_S v1, PT_EPC(sp)
192 LONG_S $25, PT_R25(sp) 214 LONG_S $25, PT_R25(sp)
193 LONG_S $28, PT_R28(sp) 215 LONG_S $28, PT_R28(sp)
194 LONG_S $31, PT_R31(sp) 216 LONG_S $31, PT_R31(sp)
217 LONG_S v1, PT_EPC(sp)
195 ori $28, sp, _THREAD_MASK 218 ori $28, sp, _THREAD_MASK
196 xori $28, _THREAD_MASK 219 xori $28, _THREAD_MASK
197#ifdef CONFIG_CPU_CAVIUM_OCTEON 220#ifdef CONFIG_CPU_CAVIUM_OCTEON
diff --git a/arch/mips/include/asm/system.h b/arch/mips/include/asm/system.h
index 83b5509e09e8..bb937ccfba1e 100644
--- a/arch/mips/include/asm/system.h
+++ b/arch/mips/include/asm/system.h
@@ -95,6 +95,8 @@ static inline unsigned long __xchg_u32(volatile int * m, unsigned int val)
95{ 95{
96 __u32 retval; 96 __u32 retval;
97 97
98 smp_mb__before_llsc();
99
98 if (kernel_uses_llsc && R10000_LLSC_WAR) { 100 if (kernel_uses_llsc && R10000_LLSC_WAR) {
99 unsigned long dummy; 101 unsigned long dummy;
100 102
@@ -147,6 +149,8 @@ static inline __u64 __xchg_u64(volatile __u64 * m, __u64 val)
147{ 149{
148 __u64 retval; 150 __u64 retval;
149 151
152 smp_mb__before_llsc();
153
150 if (kernel_uses_llsc && R10000_LLSC_WAR) { 154 if (kernel_uses_llsc && R10000_LLSC_WAR) {
151 unsigned long dummy; 155 unsigned long dummy;
152 156
diff --git a/arch/mips/include/asm/time.h b/arch/mips/include/asm/time.h
index df6a430de5eb..c7f1bfef1574 100644
--- a/arch/mips/include/asm/time.h
+++ b/arch/mips/include/asm/time.h
@@ -84,8 +84,16 @@ static inline int init_mips_clocksource(void)
84#endif 84#endif
85} 85}
86 86
87extern void clocksource_set_clock(struct clocksource *cs, unsigned int clock); 87static inline void clocksource_set_clock(struct clocksource *cs,
88extern void clockevent_set_clock(struct clock_event_device *cd, 88 unsigned int clock)
89 unsigned int clock); 89{
90 clocksource_calc_mult_shift(cs, clock, 4);
91}
92
93static inline void clockevent_set_clock(struct clock_event_device *cd,
94 unsigned int clock)
95{
96 clockevents_calc_mult_shift(cd, clock, 4);
97}
90 98
91#endif /* _ASM_TIME_H */ 99#endif /* _ASM_TIME_H */
diff --git a/arch/mips/include/asm/txx9/generic.h b/arch/mips/include/asm/txx9/generic.h
index 827dc22be2ea..64887d3c7ec3 100644
--- a/arch/mips/include/asm/txx9/generic.h
+++ b/arch/mips/include/asm/txx9/generic.h
@@ -42,7 +42,6 @@ struct txx9_board_vec {
42}; 42};
43extern struct txx9_board_vec *txx9_board_vec; 43extern struct txx9_board_vec *txx9_board_vec;
44extern int (*txx9_irq_dispatch)(int pending); 44extern int (*txx9_irq_dispatch)(int pending);
45char *prom_getcmdline(void);
46const char *prom_getenv(const char *name); 45const char *prom_getenv(const char *name);
47void txx9_wdt_init(unsigned long base); 46void txx9_wdt_init(unsigned long base);
48void txx9_wdt_now(unsigned long base); 47void txx9_wdt_now(unsigned long base);
diff --git a/arch/mips/mm/uasm.h b/arch/mips/include/asm/uasm.h
index c6d1e3dd82d4..697e40c06497 100644
--- a/arch/mips/mm/uasm.h
+++ b/arch/mips/include/asm/uasm.h
@@ -34,6 +34,11 @@ uasm_i##op(u32 **buf, unsigned int a, signed int b, unsigned int c)
34void __cpuinit \ 34void __cpuinit \
35uasm_i##op(u32 **buf, unsigned int a, unsigned int b, signed int c) 35uasm_i##op(u32 **buf, unsigned int a, unsigned int b, signed int c)
36 36
37#define Ip_u2u1msbu3(op) \
38void __cpuinit \
39uasm_i##op(u32 **buf, unsigned int a, unsigned int b, unsigned int c, \
40 unsigned int d)
41
37#define Ip_u1u2(op) \ 42#define Ip_u1u2(op) \
38void __cpuinit uasm_i##op(u32 **buf, unsigned int a, unsigned int b) 43void __cpuinit uasm_i##op(u32 **buf, unsigned int a, unsigned int b)
39 44
@@ -65,6 +70,7 @@ Ip_u2u1u3(_dsll32);
65Ip_u2u1u3(_dsra); 70Ip_u2u1u3(_dsra);
66Ip_u2u1u3(_dsrl); 71Ip_u2u1u3(_dsrl);
67Ip_u2u1u3(_dsrl32); 72Ip_u2u1u3(_dsrl32);
73Ip_u2u1u3(_drotr);
68Ip_u3u1u2(_dsubu); 74Ip_u3u1u2(_dsubu);
69Ip_0(_eret); 75Ip_0(_eret);
70Ip_u1(_j); 76Ip_u1(_j);
@@ -78,6 +84,7 @@ Ip_u2s3u1(_lw);
78Ip_u1u2u3(_mfc0); 84Ip_u1u2u3(_mfc0);
79Ip_u1u2u3(_mtc0); 85Ip_u1u2u3(_mtc0);
80Ip_u2u1u3(_ori); 86Ip_u2u1u3(_ori);
87Ip_u3u1u2(_or);
81Ip_u2s3u1(_pref); 88Ip_u2s3u1(_pref);
82Ip_0(_rfe); 89Ip_0(_rfe);
83Ip_u2s3u1(_sc); 90Ip_u2s3u1(_sc);
@@ -86,13 +93,17 @@ Ip_u2s3u1(_sd);
86Ip_u2u1u3(_sll); 93Ip_u2u1u3(_sll);
87Ip_u2u1u3(_sra); 94Ip_u2u1u3(_sra);
88Ip_u2u1u3(_srl); 95Ip_u2u1u3(_srl);
96Ip_u2u1u3(_rotr);
89Ip_u3u1u2(_subu); 97Ip_u3u1u2(_subu);
90Ip_u2s3u1(_sw); 98Ip_u2s3u1(_sw);
91Ip_0(_tlbp); 99Ip_0(_tlbp);
100Ip_0(_tlbr);
92Ip_0(_tlbwi); 101Ip_0(_tlbwi);
93Ip_0(_tlbwr); 102Ip_0(_tlbwr);
94Ip_u3u1u2(_xor); 103Ip_u3u1u2(_xor);
95Ip_u2u1u3(_xori); 104Ip_u2u1u3(_xori);
105Ip_u2u1msbu3(_dins);
106Ip_u1(_syscall);
96 107
97/* Handle labels. */ 108/* Handle labels. */
98struct uasm_label { 109struct uasm_label {
@@ -122,6 +133,7 @@ static inline void __cpuinit uasm_l##lb(struct uasm_label **lab, u32 *addr) \
122# define UASM_i_SLL(buf, rs, rt, sh) uasm_i_dsll(buf, rs, rt, sh) 133# define UASM_i_SLL(buf, rs, rt, sh) uasm_i_dsll(buf, rs, rt, sh)
123# define UASM_i_SRA(buf, rs, rt, sh) uasm_i_dsra(buf, rs, rt, sh) 134# define UASM_i_SRA(buf, rs, rt, sh) uasm_i_dsra(buf, rs, rt, sh)
124# define UASM_i_SRL(buf, rs, rt, sh) uasm_i_dsrl(buf, rs, rt, sh) 135# define UASM_i_SRL(buf, rs, rt, sh) uasm_i_dsrl(buf, rs, rt, sh)
136# define UASM_i_ROTR(buf, rs, rt, sh) uasm_i_drotr(buf, rs, rt, sh)
125# define UASM_i_MFC0(buf, rt, rd...) uasm_i_dmfc0(buf, rt, rd) 137# define UASM_i_MFC0(buf, rt, rd...) uasm_i_dmfc0(buf, rt, rd)
126# define UASM_i_MTC0(buf, rt, rd...) uasm_i_dmtc0(buf, rt, rd) 138# define UASM_i_MTC0(buf, rt, rd...) uasm_i_dmtc0(buf, rt, rd)
127# define UASM_i_ADDIU(buf, rs, rt, val) uasm_i_daddiu(buf, rs, rt, val) 139# define UASM_i_ADDIU(buf, rs, rt, val) uasm_i_daddiu(buf, rs, rt, val)
@@ -135,6 +147,7 @@ static inline void __cpuinit uasm_l##lb(struct uasm_label **lab, u32 *addr) \
135# define UASM_i_SLL(buf, rs, rt, sh) uasm_i_sll(buf, rs, rt, sh) 147# define UASM_i_SLL(buf, rs, rt, sh) uasm_i_sll(buf, rs, rt, sh)
136# define UASM_i_SRA(buf, rs, rt, sh) uasm_i_sra(buf, rs, rt, sh) 148# define UASM_i_SRA(buf, rs, rt, sh) uasm_i_sra(buf, rs, rt, sh)
137# define UASM_i_SRL(buf, rs, rt, sh) uasm_i_srl(buf, rs, rt, sh) 149# define UASM_i_SRL(buf, rs, rt, sh) uasm_i_srl(buf, rs, rt, sh)
150# define UASM_i_ROTR(buf, rs, rt, sh) uasm_i_rotr(buf, rs, rt, sh)
138# define UASM_i_MFC0(buf, rt, rd...) uasm_i_mfc0(buf, rt, rd) 151# define UASM_i_MFC0(buf, rt, rd...) uasm_i_mfc0(buf, rt, rd)
139# define UASM_i_MTC0(buf, rt, rd...) uasm_i_mtc0(buf, rt, rd) 152# define UASM_i_MTC0(buf, rt, rd...) uasm_i_mtc0(buf, rt, rd)
140# define UASM_i_ADDIU(buf, rs, rt, val) uasm_i_addiu(buf, rs, rt, val) 153# define UASM_i_ADDIU(buf, rs, rt, val) uasm_i_addiu(buf, rs, rt, val)
@@ -154,6 +167,24 @@ static inline void __cpuinit uasm_l##lb(struct uasm_label **lab, u32 *addr) \
154#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)
155#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)
156 169
170static 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
179static 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
157/* Handle relocations. */ 188/* Handle relocations. */
158struct uasm_reloc { 189struct uasm_reloc {
159 u32 *addr; 190 u32 *addr;
diff --git a/arch/mips/include/asm/ucontext.h b/arch/mips/include/asm/ucontext.h
index 8a4b20e88b81..9bc07b9f30fb 100644
--- a/arch/mips/include/asm/ucontext.h
+++ b/arch/mips/include/asm/ucontext.h
@@ -1,21 +1 @@
1/* #include <asm-generic/ucontext.h>
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 * Low level exception handling
7 *
8 * Copyright (C) 1998, 1999 by Ralf Baechle
9 */
10#ifndef _ASM_UCONTEXT_H
11#define _ASM_UCONTEXT_H
12
13struct ucontext {
14 unsigned long uc_flags;
15 struct ucontext *uc_link;
16 stack_t uc_stack;
17 struct sigcontext uc_mcontext;
18 sigset_t uc_sigmask; /* mask last for extensibility */
19};
20
21#endif /* _ASM_UCONTEXT_H */
diff --git a/arch/mips/include/asm/unistd.h b/arch/mips/include/asm/unistd.h
index 8c9dfa9e9018..1b5a6648eb86 100644
--- a/arch/mips/include/asm/unistd.h
+++ b/arch/mips/include/asm/unistd.h
@@ -355,16 +355,17 @@
355#define __NR_rt_tgsigqueueinfo (__NR_Linux + 332) 355#define __NR_rt_tgsigqueueinfo (__NR_Linux + 332)
356#define __NR_perf_event_open (__NR_Linux + 333) 356#define __NR_perf_event_open (__NR_Linux + 333)
357#define __NR_accept4 (__NR_Linux + 334) 357#define __NR_accept4 (__NR_Linux + 334)
358#define __NR_recvmmsg (__NR_Linux + 335)
358 359
359/* 360/*
360 * Offset of the last Linux o32 flavoured syscall 361 * Offset of the last Linux o32 flavoured syscall
361 */ 362 */
362#define __NR_Linux_syscalls 334 363#define __NR_Linux_syscalls 335
363 364
364#endif /* _MIPS_SIM == _MIPS_SIM_ABI32 */ 365#endif /* _MIPS_SIM == _MIPS_SIM_ABI32 */
365 366
366#define __NR_O32_Linux 4000 367#define __NR_O32_Linux 4000
367#define __NR_O32_Linux_syscalls 334 368#define __NR_O32_Linux_syscalls 335
368 369
369#if _MIPS_SIM == _MIPS_SIM_ABI64 370#if _MIPS_SIM == _MIPS_SIM_ABI64
370 371
@@ -666,16 +667,17 @@
666#define __NR_rt_tgsigqueueinfo (__NR_Linux + 291) 667#define __NR_rt_tgsigqueueinfo (__NR_Linux + 291)
667#define __NR_perf_event_open (__NR_Linux + 292) 668#define __NR_perf_event_open (__NR_Linux + 292)
668#define __NR_accept4 (__NR_Linux + 293) 669#define __NR_accept4 (__NR_Linux + 293)
670#define __NR_recvmmsg (__NR_Linux + 294)
669 671
670/* 672/*
671 * Offset of the last Linux 64-bit flavoured syscall 673 * Offset of the last Linux 64-bit flavoured syscall
672 */ 674 */
673#define __NR_Linux_syscalls 293 675#define __NR_Linux_syscalls 294
674 676
675#endif /* _MIPS_SIM == _MIPS_SIM_ABI64 */ 677#endif /* _MIPS_SIM == _MIPS_SIM_ABI64 */
676 678
677#define __NR_64_Linux 5000 679#define __NR_64_Linux 5000
678#define __NR_64_Linux_syscalls 293 680#define __NR_64_Linux_syscalls 294
679 681
680#if _MIPS_SIM == _MIPS_SIM_NABI32 682#if _MIPS_SIM == _MIPS_SIM_NABI32
681 683
@@ -981,16 +983,17 @@
981#define __NR_rt_tgsigqueueinfo (__NR_Linux + 295) 983#define __NR_rt_tgsigqueueinfo (__NR_Linux + 295)
982#define __NR_perf_event_open (__NR_Linux + 296) 984#define __NR_perf_event_open (__NR_Linux + 296)
983#define __NR_accept4 (__NR_Linux + 297) 985#define __NR_accept4 (__NR_Linux + 297)
986#define __NR_recvmmsg (__NR_Linux + 298)
984 987
985/* 988/*
986 * Offset of the last N32 flavoured syscall 989 * Offset of the last N32 flavoured syscall
987 */ 990 */
988#define __NR_Linux_syscalls 297 991#define __NR_Linux_syscalls 298
989 992
990#endif /* _MIPS_SIM == _MIPS_SIM_NABI32 */ 993#endif /* _MIPS_SIM == _MIPS_SIM_NABI32 */
991 994
992#define __NR_N32_Linux 6000 995#define __NR_N32_Linux 6000
993#define __NR_N32_Linux_syscalls 297 996#define __NR_N32_Linux_syscalls 298
994 997
995#ifdef __KERNEL__ 998#ifdef __KERNEL__
996 999
@@ -1001,6 +1004,7 @@
1001#define __ARCH_WANT_OLD_READDIR 1004#define __ARCH_WANT_OLD_READDIR
1002#define __ARCH_WANT_SYS_ALARM 1005#define __ARCH_WANT_SYS_ALARM
1003#define __ARCH_WANT_SYS_GETHOSTNAME 1006#define __ARCH_WANT_SYS_GETHOSTNAME
1007#define __ARCH_WANT_SYS_IPC
1004#define __ARCH_WANT_SYS_PAUSE 1008#define __ARCH_WANT_SYS_PAUSE
1005#define __ARCH_WANT_SYS_SGETMASK 1009#define __ARCH_WANT_SYS_SGETMASK
1006#define __ARCH_WANT_SYS_UTIME 1010#define __ARCH_WANT_SYS_UTIME
@@ -1010,6 +1014,7 @@
1010#define __ARCH_WANT_SYS_LLSEEK 1014#define __ARCH_WANT_SYS_LLSEEK
1011#define __ARCH_WANT_SYS_NICE 1015#define __ARCH_WANT_SYS_NICE
1012#define __ARCH_WANT_SYS_OLD_GETRLIMIT 1016#define __ARCH_WANT_SYS_OLD_GETRLIMIT
1017#define __ARCH_WANT_SYS_OLD_UNAME
1013#define __ARCH_WANT_SYS_OLDUMOUNT 1018#define __ARCH_WANT_SYS_OLDUMOUNT
1014#define __ARCH_WANT_SYS_SIGPENDING 1019#define __ARCH_WANT_SYS_SIGPENDING
1015#define __ARCH_WANT_SYS_SIGPROCMASK 1020#define __ARCH_WANT_SYS_SIGPROCMASK
diff --git a/arch/mips/include/asm/vdso.h b/arch/mips/include/asm/vdso.h
new file mode 100644
index 000000000000..cca56aa40ff4
--- /dev/null
+++ b/arch/mips/include/asm/vdso.h
@@ -0,0 +1,29 @@
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) 2009 Cavium Networks
7 */
8
9#ifndef __ASM_VDSO_H
10#define __ASM_VDSO_H
11
12#include <linux/types.h>
13
14
15#ifdef CONFIG_32BIT
16struct mips_vdso {
17 u32 signal_trampoline[2];
18 u32 rt_signal_trampoline[2];
19};
20#else /* !CONFIG_32BIT */
21struct mips_vdso {
22 u32 o32_signal_trampoline[2];
23 u32 o32_rt_signal_trampoline[2];
24 u32 rt_signal_trampoline[2];
25 u32 n32_rt_signal_trampoline[2];
26};
27#endif /* CONFIG_32BIT */
28
29#endif /* __ASM_VDSO_H */
diff --git a/arch/mips/jazz/irq.c b/arch/mips/jazz/irq.c
index 7bd32d04c2cc..ee18028efe92 100644
--- a/arch/mips/jazz/irq.c
+++ b/arch/mips/jazz/irq.c
@@ -20,17 +20,17 @@
20#include <asm/jazz.h> 20#include <asm/jazz.h>
21#include <asm/pgtable.h> 21#include <asm/pgtable.h>
22 22
23static DEFINE_SPINLOCK(r4030_lock); 23static DEFINE_RAW_SPINLOCK(r4030_lock);
24 24
25static void enable_r4030_irq(unsigned int irq) 25static void enable_r4030_irq(unsigned int irq)
26{ 26{
27 unsigned int mask = 1 << (irq - JAZZ_IRQ_START); 27 unsigned int mask = 1 << (irq - JAZZ_IRQ_START);
28 unsigned long flags; 28 unsigned long flags;
29 29
30 spin_lock_irqsave(&r4030_lock, flags); 30 raw_spin_lock_irqsave(&r4030_lock, flags);
31 mask |= r4030_read_reg16(JAZZ_IO_IRQ_ENABLE); 31 mask |= r4030_read_reg16(JAZZ_IO_IRQ_ENABLE);
32 r4030_write_reg16(JAZZ_IO_IRQ_ENABLE, mask); 32 r4030_write_reg16(JAZZ_IO_IRQ_ENABLE, mask);
33 spin_unlock_irqrestore(&r4030_lock, flags); 33 raw_spin_unlock_irqrestore(&r4030_lock, flags);
34} 34}
35 35
36void disable_r4030_irq(unsigned int irq) 36void disable_r4030_irq(unsigned int irq)
@@ -38,10 +38,10 @@ void disable_r4030_irq(unsigned int irq)
38 unsigned int mask = ~(1 << (irq - JAZZ_IRQ_START)); 38 unsigned int mask = ~(1 << (irq - JAZZ_IRQ_START));
39 unsigned long flags; 39 unsigned long flags;
40 40
41 spin_lock_irqsave(&r4030_lock, flags); 41 raw_spin_lock_irqsave(&r4030_lock, flags);
42 mask &= r4030_read_reg16(JAZZ_IO_IRQ_ENABLE); 42 mask &= r4030_read_reg16(JAZZ_IO_IRQ_ENABLE);
43 r4030_write_reg16(JAZZ_IO_IRQ_ENABLE, mask); 43 r4030_write_reg16(JAZZ_IO_IRQ_ENABLE, mask);
44 spin_unlock_irqrestore(&r4030_lock, flags); 44 raw_spin_unlock_irqrestore(&r4030_lock, flags);
45} 45}
46 46
47static struct irq_chip r4030_irq_type = { 47static struct irq_chip r4030_irq_type = {
diff --git a/arch/mips/jazz/jazzdma.c b/arch/mips/jazz/jazzdma.c
index 0d64d0f46418..9ce9f64cb76f 100644
--- a/arch/mips/jazz/jazzdma.c
+++ b/arch/mips/jazz/jazzdma.c
@@ -14,6 +14,7 @@
14#include <linux/mm.h> 14#include <linux/mm.h>
15#include <linux/bootmem.h> 15#include <linux/bootmem.h>
16#include <linux/spinlock.h> 16#include <linux/spinlock.h>
17#include <linux/gfp.h>
17#include <asm/mipsregs.h> 18#include <asm/mipsregs.h>
18#include <asm/jazz.h> 19#include <asm/jazz.h>
19#include <asm/io.h> 20#include <asm/io.h>
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/Makefile b/arch/mips/kernel/Makefile
index eecd2a9f155c..7a6ac501cbb5 100644
--- a/arch/mips/kernel/Makefile
+++ b/arch/mips/kernel/Makefile
@@ -2,13 +2,16 @@
2# Makefile for the Linux/MIPS kernel. 2# Makefile for the Linux/MIPS kernel.
3# 3#
4 4
5CPPFLAGS_vmlinux.lds := $(KBUILD_CFLAGS)
6
7extra-y := head.o init_task.o vmlinux.lds 5extra-y := head.o init_task.o vmlinux.lds
8 6
9obj-y += cpu-probe.o branch.o entry.o genex.o irq.o process.o \ 7obj-y += cpu-probe.o branch.o entry.o genex.o irq.o process.o \
10 ptrace.o reset.o setup.o signal.o syscall.o \ 8 ptrace.o reset.o setup.o signal.o syscall.o \
11 time.o topology.o traps.o unaligned.o watch.o 9 time.o topology.o traps.o unaligned.o watch.o vdso.o
10
11ifdef CONFIG_FUNCTION_TRACER
12CFLAGS_REMOVE_ftrace.o = -pg
13CFLAGS_REMOVE_early_printk.o = -pg
14endif
12 15
13obj-$(CONFIG_CEVT_BCM1480) += cevt-bcm1480.o 16obj-$(CONFIG_CEVT_BCM1480) += cevt-bcm1480.o
14obj-$(CONFIG_CEVT_R4K_LIB) += cevt-r4k.o 17obj-$(CONFIG_CEVT_R4K_LIB) += cevt-r4k.o
@@ -19,6 +22,7 @@ obj-$(CONFIG_CEVT_SB1250) += cevt-sb1250.o
19obj-$(CONFIG_CEVT_TXX9) += cevt-txx9.o 22obj-$(CONFIG_CEVT_TXX9) += cevt-txx9.o
20obj-$(CONFIG_CSRC_BCM1480) += csrc-bcm1480.o 23obj-$(CONFIG_CSRC_BCM1480) += csrc-bcm1480.o
21obj-$(CONFIG_CSRC_IOASIC) += csrc-ioasic.o 24obj-$(CONFIG_CSRC_IOASIC) += csrc-ioasic.o
25obj-$(CONFIG_CSRC_POWERTV) += csrc-powertv.o
22obj-$(CONFIG_CSRC_R4K_LIB) += csrc-r4k.o 26obj-$(CONFIG_CSRC_R4K_LIB) += csrc-r4k.o
23obj-$(CONFIG_CSRC_SB1250) += csrc-sb1250.o 27obj-$(CONFIG_CSRC_SB1250) += csrc-sb1250.o
24obj-$(CONFIG_SYNC_R4K) += sync-r4k.o 28obj-$(CONFIG_SYNC_R4K) += sync-r4k.o
@@ -26,6 +30,8 @@ obj-$(CONFIG_SYNC_R4K) += sync-r4k.o
26obj-$(CONFIG_STACKTRACE) += stacktrace.o 30obj-$(CONFIG_STACKTRACE) += stacktrace.o
27obj-$(CONFIG_MODULES) += mips_ksyms.o module.o 31obj-$(CONFIG_MODULES) += mips_ksyms.o module.o
28 32
33obj-$(CONFIG_FUNCTION_TRACER) += mcount.o ftrace.o
34
29obj-$(CONFIG_CPU_LOONGSON2) += r4k_fpu.o r4k_switch.o 35obj-$(CONFIG_CPU_LOONGSON2) += r4k_fpu.o r4k_switch.o
30obj-$(CONFIG_CPU_MIPS32) += r4k_fpu.o r4k_switch.o 36obj-$(CONFIG_CPU_MIPS32) += r4k_fpu.o r4k_switch.o
31obj-$(CONFIG_CPU_MIPS64) += r4k_fpu.o r4k_switch.o 37obj-$(CONFIG_CPU_MIPS64) += r4k_fpu.o r4k_switch.o
@@ -87,9 +93,14 @@ obj-$(CONFIG_GPIO_TXX9) += gpio_txx9.o
87 93
88obj-$(CONFIG_KEXEC) += machine_kexec.o relocate_kernel.o 94obj-$(CONFIG_KEXEC) += machine_kexec.o relocate_kernel.o
89obj-$(CONFIG_EARLY_PRINTK) += early_printk.o 95obj-$(CONFIG_EARLY_PRINTK) += early_printk.o
96obj-$(CONFIG_SPINLOCK_TEST) += spinlock_test.o
90 97
91CFLAGS_cpu-bugs64.o = $(shell if $(CC) $(KBUILD_CFLAGS) -Wa,-mdaddi -c -o /dev/null -xc /dev/null >/dev/null 2>&1; then echo "-DHAVE_AS_SET_DADDI"; fi) 98CFLAGS_cpu-bugs64.o = $(shell if $(CC) $(KBUILD_CFLAGS) -Wa,-mdaddi -c -o /dev/null -xc /dev/null >/dev/null 2>&1; then echo "-DHAVE_AS_SET_DADDI"; fi)
92 99
93obj-$(CONFIG_HAVE_STD_PC_SERIAL_PORT) += 8250-platform.o 100obj-$(CONFIG_HAVE_STD_PC_SERIAL_PORT) += 8250-platform.o
94 101
102obj-$(CONFIG_MIPS_CPUFREQ) += cpufreq/
103
95EXTRA_CFLAGS += -Werror 104EXTRA_CFLAGS += -Werror
105
106CPPFLAGS_vmlinux.lds := $(KBUILD_CFLAGS)
diff --git a/arch/mips/kernel/asm-offsets.c b/arch/mips/kernel/asm-offsets.c
index 2c1e1d02338b..ca6c83218caa 100644
--- a/arch/mips/kernel/asm-offsets.c
+++ b/arch/mips/kernel/asm-offsets.c
@@ -188,11 +188,15 @@ void output_mm_defines(void)
188 DEFINE(_PTE_T_SIZE, sizeof(pte_t)); 188 DEFINE(_PTE_T_SIZE, sizeof(pte_t));
189 BLANK(); 189 BLANK();
190 DEFINE(_PGD_T_LOG2, PGD_T_LOG2); 190 DEFINE(_PGD_T_LOG2, PGD_T_LOG2);
191#ifndef __PAGETABLE_PMD_FOLDED
191 DEFINE(_PMD_T_LOG2, PMD_T_LOG2); 192 DEFINE(_PMD_T_LOG2, PMD_T_LOG2);
193#endif
192 DEFINE(_PTE_T_LOG2, PTE_T_LOG2); 194 DEFINE(_PTE_T_LOG2, PTE_T_LOG2);
193 BLANK(); 195 BLANK();
194 DEFINE(_PGD_ORDER, PGD_ORDER); 196 DEFINE(_PGD_ORDER, PGD_ORDER);
197#ifndef __PAGETABLE_PMD_FOLDED
195 DEFINE(_PMD_ORDER, PMD_ORDER); 198 DEFINE(_PMD_ORDER, PMD_ORDER);
199#endif
196 DEFINE(_PTE_ORDER, PTE_ORDER); 200 DEFINE(_PTE_ORDER, PTE_ORDER);
197 BLANK(); 201 BLANK();
198 DEFINE(_PMD_SHIFT, PMD_SHIFT); 202 DEFINE(_PMD_SHIFT, PMD_SHIFT);
diff --git a/arch/mips/kernel/cevt-gt641xx.c b/arch/mips/kernel/cevt-gt641xx.c
index f5d265eb6eae..392ef3756c56 100644
--- a/arch/mips/kernel/cevt-gt641xx.c
+++ b/arch/mips/kernel/cevt-gt641xx.c
@@ -25,7 +25,7 @@
25#include <asm/gt64120.h> 25#include <asm/gt64120.h>
26#include <asm/time.h> 26#include <asm/time.h>
27 27
28static DEFINE_SPINLOCK(gt641xx_timer_lock); 28static DEFINE_RAW_SPINLOCK(gt641xx_timer_lock);
29static unsigned int gt641xx_base_clock; 29static unsigned int gt641xx_base_clock;
30 30
31void gt641xx_set_base_clock(unsigned int clock) 31void gt641xx_set_base_clock(unsigned int clock)
@@ -49,7 +49,7 @@ static int gt641xx_timer0_set_next_event(unsigned long delta,
49{ 49{
50 u32 ctrl; 50 u32 ctrl;
51 51
52 spin_lock(&gt641xx_timer_lock); 52 raw_spin_lock(&gt641xx_timer_lock);
53 53
54 ctrl = GT_READ(GT_TC_CONTROL_OFS); 54 ctrl = GT_READ(GT_TC_CONTROL_OFS);
55 ctrl &= ~(GT_TC_CONTROL_ENTC0_MSK | GT_TC_CONTROL_SELTC0_MSK); 55 ctrl &= ~(GT_TC_CONTROL_ENTC0_MSK | GT_TC_CONTROL_SELTC0_MSK);
@@ -58,7 +58,7 @@ static int gt641xx_timer0_set_next_event(unsigned long delta,
58 GT_WRITE(GT_TC0_OFS, delta); 58 GT_WRITE(GT_TC0_OFS, delta);
59 GT_WRITE(GT_TC_CONTROL_OFS, ctrl); 59 GT_WRITE(GT_TC_CONTROL_OFS, ctrl);
60 60
61 spin_unlock(&gt641xx_timer_lock); 61 raw_spin_unlock(&gt641xx_timer_lock);
62 62
63 return 0; 63 return 0;
64} 64}
@@ -68,7 +68,7 @@ static void gt641xx_timer0_set_mode(enum clock_event_mode mode,
68{ 68{
69 u32 ctrl; 69 u32 ctrl;
70 70
71 spin_lock(&gt641xx_timer_lock); 71 raw_spin_lock(&gt641xx_timer_lock);
72 72
73 ctrl = GT_READ(GT_TC_CONTROL_OFS); 73 ctrl = GT_READ(GT_TC_CONTROL_OFS);
74 ctrl &= ~(GT_TC_CONTROL_ENTC0_MSK | GT_TC_CONTROL_SELTC0_MSK); 74 ctrl &= ~(GT_TC_CONTROL_ENTC0_MSK | GT_TC_CONTROL_SELTC0_MSK);
@@ -86,7 +86,7 @@ static void gt641xx_timer0_set_mode(enum clock_event_mode mode,
86 86
87 GT_WRITE(GT_TC_CONTROL_OFS, ctrl); 87 GT_WRITE(GT_TC_CONTROL_OFS, ctrl);
88 88
89 spin_unlock(&gt641xx_timer_lock); 89 raw_spin_unlock(&gt641xx_timer_lock);
90} 90}
91 91
92static void gt641xx_timer0_event_handler(struct clock_event_device *dev) 92static void gt641xx_timer0_event_handler(struct clock_event_device *dev)
diff --git a/arch/mips/kernel/cevt-r4k.c b/arch/mips/kernel/cevt-r4k.c
index b469ad05d520..0b2450ceb13f 100644
--- a/arch/mips/kernel/cevt-r4k.c
+++ b/arch/mips/kernel/cevt-r4k.c
@@ -97,7 +97,7 @@ void mips_event_handler(struct clock_event_device *dev)
97 */ 97 */
98static int c0_compare_int_pending(void) 98static int c0_compare_int_pending(void)
99{ 99{
100 return (read_c0_cause() >> cp0_compare_irq) & 0x100; 100 return (read_c0_cause() >> cp0_compare_irq_shift) & (1ul << CAUSEB_IP);
101} 101}
102 102
103/* 103/*
diff --git a/arch/mips/kernel/cpu-probe.c b/arch/mips/kernel/cpu-probe.c
index 7a51866068a4..be5bb16be4e0 100644
--- a/arch/mips/kernel/cpu-probe.c
+++ b/arch/mips/kernel/cpu-probe.c
@@ -16,6 +16,7 @@
16#include <linux/ptrace.h> 16#include <linux/ptrace.h>
17#include <linux/smp.h> 17#include <linux/smp.h>
18#include <linux/stddef.h> 18#include <linux/stddef.h>
19#include <linux/module.h>
19 20
20#include <asm/bugs.h> 21#include <asm/bugs.h>
21#include <asm/cpu.h> 22#include <asm/cpu.h>
@@ -32,6 +33,7 @@
32 * the CPU very much. 33 * the CPU very much.
33 */ 34 */
34void (*cpu_wait)(void); 35void (*cpu_wait)(void);
36EXPORT_SYMBOL(cpu_wait);
35 37
36static void r3081_wait(void) 38static void r3081_wait(void)
37{ 39{
@@ -160,6 +162,7 @@ void __init check_wait(void)
160 case CPU_BCM6348: 162 case CPU_BCM6348:
161 case CPU_BCM6358: 163 case CPU_BCM6358:
162 case CPU_CAVIUM_OCTEON: 164 case CPU_CAVIUM_OCTEON:
165 case CPU_CAVIUM_OCTEON_PLUS:
163 cpu_wait = r4k_wait; 166 cpu_wait = r4k_wait;
164 break; 167 break;
165 168
@@ -282,6 +285,15 @@ static inline int __cpu_has_fpu(void)
282 return ((cpu_get_fpu_id() & 0xff00) != FPIR_IMP_NONE); 285 return ((cpu_get_fpu_id() & 0xff00) != FPIR_IMP_NONE);
283} 286}
284 287
288static inline void cpu_probe_vmbits(struct cpuinfo_mips *c)
289{
290#ifdef __NEED_VMBITS_PROBE
291 write_c0_entryhi(0x3fffffffffffe000ULL);
292 back_to_back_c0_hazard();
293 c->vmbits = fls64(read_c0_entryhi() & 0x3fffffffffffe000ULL);
294#endif
295}
296
285#define R4K_OPTS (MIPS_CPU_TLB | MIPS_CPU_4KEX | MIPS_CPU_4K_CACHE \ 297#define R4K_OPTS (MIPS_CPU_TLB | MIPS_CPU_4KEX | MIPS_CPU_4K_CACHE \
286 | MIPS_CPU_COUNTER) 298 | MIPS_CPU_COUNTER)
287 299
@@ -689,6 +701,19 @@ static inline unsigned int decode_config3(struct cpuinfo_mips *c)
689 return config3 & MIPS_CONF_M; 701 return config3 & MIPS_CONF_M;
690} 702}
691 703
704static inline unsigned int decode_config4(struct cpuinfo_mips *c)
705{
706 unsigned int config4;
707
708 config4 = read_c0_config4();
709
710 if ((config4 & MIPS_CONF4_MMUEXTDEF) == MIPS_CONF4_MMUEXTDEF_MMUSIZEEXT
711 && cpu_has_tlb)
712 c->tlbsize += (config4 & MIPS_CONF4_MMUSIZEEXT) * 0x40;
713
714 return config4 & MIPS_CONF_M;
715}
716
692static void __cpuinit decode_configs(struct cpuinfo_mips *c) 717static void __cpuinit decode_configs(struct cpuinfo_mips *c)
693{ 718{
694 int ok; 719 int ok;
@@ -707,6 +732,8 @@ static void __cpuinit decode_configs(struct cpuinfo_mips *c)
707 ok = decode_config2(c); 732 ok = decode_config2(c);
708 if (ok) 733 if (ok)
709 ok = decode_config3(c); 734 ok = decode_config3(c);
735 if (ok)
736 ok = decode_config4(c);
710 737
711 mips_probe_watch_registers(c); 738 mips_probe_watch_registers(c);
712} 739}
@@ -720,9 +747,6 @@ static inline void cpu_probe_mips(struct cpuinfo_mips *c, unsigned int cpu)
720 __cpu_name[cpu] = "MIPS 4Kc"; 747 __cpu_name[cpu] = "MIPS 4Kc";
721 break; 748 break;
722 case PRID_IMP_4KEC: 749 case PRID_IMP_4KEC:
723 c->cputype = CPU_4KEC;
724 __cpu_name[cpu] = "MIPS 4KEc";
725 break;
726 case PRID_IMP_4KECR2: 750 case PRID_IMP_4KECR2:
727 c->cputype = CPU_4KEC; 751 c->cputype = CPU_4KEC;
728 __cpu_name[cpu] = "MIPS 4KEc"; 752 __cpu_name[cpu] = "MIPS 4KEc";
@@ -888,12 +912,18 @@ static inline void cpu_probe_cavium(struct cpuinfo_mips *c, unsigned int cpu)
888 case PRID_IMP_CAVIUM_CN38XX: 912 case PRID_IMP_CAVIUM_CN38XX:
889 case PRID_IMP_CAVIUM_CN31XX: 913 case PRID_IMP_CAVIUM_CN31XX:
890 case PRID_IMP_CAVIUM_CN30XX: 914 case PRID_IMP_CAVIUM_CN30XX:
915 c->cputype = CPU_CAVIUM_OCTEON;
916 __cpu_name[cpu] = "Cavium Octeon";
917 goto platform;
891 case PRID_IMP_CAVIUM_CN58XX: 918 case PRID_IMP_CAVIUM_CN58XX:
892 case PRID_IMP_CAVIUM_CN56XX: 919 case PRID_IMP_CAVIUM_CN56XX:
893 case PRID_IMP_CAVIUM_CN50XX: 920 case PRID_IMP_CAVIUM_CN50XX:
894 case PRID_IMP_CAVIUM_CN52XX: 921 case PRID_IMP_CAVIUM_CN52XX:
895 c->cputype = CPU_CAVIUM_OCTEON; 922 c->cputype = CPU_CAVIUM_OCTEON_PLUS;
896 __cpu_name[cpu] = "Cavium Octeon"; 923 __cpu_name[cpu] = "Cavium Octeon+";
924platform:
925 if (cpu == 0)
926 __elf_platform = "octeon";
897 break; 927 break;
898 default: 928 default:
899 printk(KERN_INFO "Unknown Octeon chip!\n"); 929 printk(KERN_INFO "Unknown Octeon chip!\n");
@@ -903,6 +933,7 @@ static inline void cpu_probe_cavium(struct cpuinfo_mips *c, unsigned int cpu)
903} 933}
904 934
905const char *__cpu_name[NR_CPUS]; 935const char *__cpu_name[NR_CPUS];
936const char *__elf_platform;
906 937
907__cpuinit void cpu_probe(void) 938__cpuinit void cpu_probe(void)
908{ 939{
@@ -967,6 +998,8 @@ __cpuinit void cpu_probe(void)
967 c->srsets = ((read_c0_srsctl() >> 26) & 0x0f) + 1; 998 c->srsets = ((read_c0_srsctl() >> 26) & 0x0f) + 1;
968 else 999 else
969 c->srsets = 1; 1000 c->srsets = 1;
1001
1002 cpu_probe_vmbits(c);
970} 1003}
971 1004
972__cpuinit void cpu_report(void) 1005__cpuinit void cpu_report(void)
diff --git a/arch/mips/kernel/cpufreq/Kconfig b/arch/mips/kernel/cpufreq/Kconfig
new file mode 100644
index 000000000000..58c601eee6fd
--- /dev/null
+++ b/arch/mips/kernel/cpufreq/Kconfig
@@ -0,0 +1,41 @@
1#
2# CPU Frequency scaling
3#
4
5config MIPS_EXTERNAL_TIMER
6 bool
7
8config MIPS_CPUFREQ
9 bool
10 default y
11 depends on CPU_SUPPORTS_CPUFREQ && MIPS_EXTERNAL_TIMER
12
13if MIPS_CPUFREQ
14
15menu "CPU Frequency scaling"
16
17source "drivers/cpufreq/Kconfig"
18
19if CPU_FREQ
20
21comment "CPUFreq processor drivers"
22
23config LOONGSON2_CPUFREQ
24 tristate "Loongson2 CPUFreq Driver"
25 select CPU_FREQ_TABLE
26 depends on MIPS_CPUFREQ
27 help
28 This option adds a CPUFreq driver for loongson processors which
29 support software configurable cpu frequency.
30
31 Loongson2F and it's successors support this feature.
32
33 For details, take a look at <file:Documentation/cpu-freq/>.
34
35 If in doubt, say N.
36
37endif # CPU_FREQ
38
39endmenu
40
41endif # MIPS_CPUFREQ
diff --git a/arch/mips/kernel/cpufreq/Makefile b/arch/mips/kernel/cpufreq/Makefile
new file mode 100644
index 000000000000..c3479a432efe
--- /dev/null
+++ b/arch/mips/kernel/cpufreq/Makefile
@@ -0,0 +1,5 @@
1#
2# Makefile for the Linux/MIPS cpufreq.
3#
4
5obj-$(CONFIG_LOONGSON2_CPUFREQ) += loongson2_cpufreq.o loongson2_clock.o
diff --git a/arch/mips/kernel/cpufreq/loongson2_clock.c b/arch/mips/kernel/cpufreq/loongson2_clock.c
new file mode 100644
index 000000000000..cefc6e259baf
--- /dev/null
+++ b/arch/mips/kernel/cpufreq/loongson2_clock.c
@@ -0,0 +1,170 @@
1/*
2 * Copyright (C) 2006 - 2008 Lemote Inc. & Insititute of Computing Technology
3 * Author: Yanhua, yanh@lemote.com
4 *
5 * This file is subject to the terms and conditions of the GNU General Public
6 * License. See the file "COPYING" in the main directory of this archive
7 * for more details.
8 */
9
10#include <linux/cpufreq.h>
11#include <linux/platform_device.h>
12
13#include <asm/clock.h>
14
15#include <loongson.h>
16
17static LIST_HEAD(clock_list);
18static DEFINE_SPINLOCK(clock_lock);
19static DEFINE_MUTEX(clock_list_sem);
20
21/* Minimum CLK support */
22enum {
23 DC_ZERO, DC_25PT = 2, DC_37PT, DC_50PT, DC_62PT, DC_75PT,
24 DC_87PT, DC_DISABLE, DC_RESV
25};
26
27struct cpufreq_frequency_table loongson2_clockmod_table[] = {
28 {DC_RESV, CPUFREQ_ENTRY_INVALID},
29 {DC_ZERO, CPUFREQ_ENTRY_INVALID},
30 {DC_25PT, 0},
31 {DC_37PT, 0},
32 {DC_50PT, 0},
33 {DC_62PT, 0},
34 {DC_75PT, 0},
35 {DC_87PT, 0},
36 {DC_DISABLE, 0},
37 {DC_RESV, CPUFREQ_TABLE_END},
38};
39EXPORT_SYMBOL_GPL(loongson2_clockmod_table);
40
41static struct clk cpu_clk = {
42 .name = "cpu_clk",
43 .flags = CLK_ALWAYS_ENABLED | CLK_RATE_PROPAGATES,
44 .rate = 800000000,
45};
46
47struct clk *clk_get(struct device *dev, const char *id)
48{
49 return &cpu_clk;
50}
51EXPORT_SYMBOL(clk_get);
52
53static void propagate_rate(struct clk *clk)
54{
55 struct clk *clkp;
56
57 list_for_each_entry(clkp, &clock_list, node) {
58 if (likely(clkp->parent != clk))
59 continue;
60 if (likely(clkp->ops && clkp->ops->recalc))
61 clkp->ops->recalc(clkp);
62 if (unlikely(clkp->flags & CLK_RATE_PROPAGATES))
63 propagate_rate(clkp);
64 }
65}
66
67int clk_enable(struct clk *clk)
68{
69 return 0;
70}
71EXPORT_SYMBOL(clk_enable);
72
73void clk_disable(struct clk *clk)
74{
75}
76EXPORT_SYMBOL(clk_disable);
77
78unsigned long clk_get_rate(struct clk *clk)
79{
80 return (unsigned long)clk->rate;
81}
82EXPORT_SYMBOL(clk_get_rate);
83
84void clk_put(struct clk *clk)
85{
86}
87EXPORT_SYMBOL(clk_put);
88
89int clk_set_rate(struct clk *clk, unsigned long rate)
90{
91 return clk_set_rate_ex(clk, rate, 0);
92}
93EXPORT_SYMBOL_GPL(clk_set_rate);
94
95int clk_set_rate_ex(struct clk *clk, unsigned long rate, int algo_id)
96{
97 int ret = 0;
98 int regval;
99 int i;
100
101 if (likely(clk->ops && clk->ops->set_rate)) {
102 unsigned long flags;
103
104 spin_lock_irqsave(&clock_lock, flags);
105 ret = clk->ops->set_rate(clk, rate, algo_id);
106 spin_unlock_irqrestore(&clock_lock, flags);
107 }
108
109 if (unlikely(clk->flags & CLK_RATE_PROPAGATES))
110 propagate_rate(clk);
111
112 for (i = 0; loongson2_clockmod_table[i].frequency != CPUFREQ_TABLE_END;
113 i++) {
114 if (loongson2_clockmod_table[i].frequency ==
115 CPUFREQ_ENTRY_INVALID)
116 continue;
117 if (rate == loongson2_clockmod_table[i].frequency)
118 break;
119 }
120 if (rate != loongson2_clockmod_table[i].frequency)
121 return -ENOTSUPP;
122
123 clk->rate = rate;
124
125 regval = LOONGSON_CHIPCFG0;
126 regval = (regval & ~0x7) | (loongson2_clockmod_table[i].index - 1);
127 LOONGSON_CHIPCFG0 = regval;
128
129 return ret;
130}
131EXPORT_SYMBOL_GPL(clk_set_rate_ex);
132
133long clk_round_rate(struct clk *clk, unsigned long rate)
134{
135 if (likely(clk->ops && clk->ops->round_rate)) {
136 unsigned long flags, rounded;
137
138 spin_lock_irqsave(&clock_lock, flags);
139 rounded = clk->ops->round_rate(clk, rate);
140 spin_unlock_irqrestore(&clock_lock, flags);
141
142 return rounded;
143 }
144
145 return rate;
146}
147EXPORT_SYMBOL_GPL(clk_round_rate);
148
149/*
150 * This is the simple version of Loongson-2 wait, Maybe we need do this in
151 * interrupt disabled content
152 */
153
154DEFINE_SPINLOCK(loongson2_wait_lock);
155void loongson2_cpu_wait(void)
156{
157 u32 cpu_freq;
158 unsigned long flags;
159
160 spin_lock_irqsave(&loongson2_wait_lock, flags);
161 cpu_freq = LOONGSON_CHIPCFG0;
162 LOONGSON_CHIPCFG0 &= ~0x7; /* Put CPU into wait mode */
163 LOONGSON_CHIPCFG0 = cpu_freq; /* Restore CPU state */
164 spin_unlock_irqrestore(&loongson2_wait_lock, flags);
165}
166EXPORT_SYMBOL_GPL(loongson2_cpu_wait);
167
168MODULE_AUTHOR("Yanhua <yanh@lemote.com>");
169MODULE_DESCRIPTION("cpufreq driver for Loongson 2F");
170MODULE_LICENSE("GPL");
diff --git a/arch/mips/kernel/cpufreq/loongson2_cpufreq.c b/arch/mips/kernel/cpufreq/loongson2_cpufreq.c
new file mode 100644
index 000000000000..2f6a0b147ab8
--- /dev/null
+++ b/arch/mips/kernel/cpufreq/loongson2_cpufreq.c
@@ -0,0 +1,227 @@
1/*
2 * Cpufreq driver for the loongson-2 processors
3 *
4 * The 2E revision of loongson processor not support this feature.
5 *
6 * Copyright (C) 2006 - 2008 Lemote Inc. & Insititute of Computing Technology
7 * Author: Yanhua, yanh@lemote.com
8 *
9 * This file is subject to the terms and conditions of the GNU General Public
10 * License. See the file "COPYING" in the main directory of this archive
11 * for more details.
12 */
13#include <linux/cpufreq.h>
14#include <linux/module.h>
15#include <linux/err.h>
16#include <linux/sched.h> /* set_cpus_allowed() */
17#include <linux/delay.h>
18#include <linux/platform_device.h>
19
20#include <asm/clock.h>
21
22#include <loongson.h>
23
24static uint nowait;
25
26static struct clk *cpuclk;
27
28static void (*saved_cpu_wait) (void);
29
30static int loongson2_cpu_freq_notifier(struct notifier_block *nb,
31 unsigned long val, void *data);
32
33static struct notifier_block loongson2_cpufreq_notifier_block = {
34 .notifier_call = loongson2_cpu_freq_notifier
35};
36
37static int loongson2_cpu_freq_notifier(struct notifier_block *nb,
38 unsigned long val, void *data)
39{
40 if (val == CPUFREQ_POSTCHANGE)
41 current_cpu_data.udelay_val = loops_per_jiffy;
42
43 return 0;
44}
45
46static unsigned int loongson2_cpufreq_get(unsigned int cpu)
47{
48 return clk_get_rate(cpuclk);
49}
50
51/*
52 * Here we notify other drivers of the proposed change and the final change.
53 */
54static int loongson2_cpufreq_target(struct cpufreq_policy *policy,
55 unsigned int target_freq,
56 unsigned int relation)
57{
58 unsigned int cpu = policy->cpu;
59 unsigned int newstate = 0;
60 cpumask_t cpus_allowed;
61 struct cpufreq_freqs freqs;
62 unsigned int freq;
63
64 if (!cpu_online(cpu))
65 return -ENODEV;
66
67 cpus_allowed = current->cpus_allowed;
68 set_cpus_allowed(current, cpumask_of_cpu(cpu));
69
70 if (cpufreq_frequency_table_target
71 (policy, &loongson2_clockmod_table[0], target_freq, relation,
72 &newstate))
73 return -EINVAL;
74
75 freq =
76 ((cpu_clock_freq / 1000) *
77 loongson2_clockmod_table[newstate].index) / 8;
78 if (freq < policy->min || freq > policy->max)
79 return -EINVAL;
80
81 pr_debug("cpufreq: requested frequency %u Hz\n", target_freq * 1000);
82
83 freqs.cpu = cpu;
84 freqs.old = loongson2_cpufreq_get(cpu);
85 freqs.new = freq;
86 freqs.flags = 0;
87
88 if (freqs.new == freqs.old)
89 return 0;
90
91 /* notifiers */
92 cpufreq_notify_transition(&freqs, CPUFREQ_PRECHANGE);
93
94 set_cpus_allowed(current, cpus_allowed);
95
96 /* setting the cpu frequency */
97 clk_set_rate(cpuclk, freq);
98
99 /* notifiers */
100 cpufreq_notify_transition(&freqs, CPUFREQ_POSTCHANGE);
101
102 pr_debug("cpufreq: set frequency %u kHz\n", freq);
103
104 return 0;
105}
106
107static int loongson2_cpufreq_cpu_init(struct cpufreq_policy *policy)
108{
109 int i;
110
111 if (!cpu_online(policy->cpu))
112 return -ENODEV;
113
114 cpuclk = clk_get(NULL, "cpu_clk");
115 if (IS_ERR(cpuclk)) {
116 printk(KERN_ERR "cpufreq: couldn't get CPU clk\n");
117 return PTR_ERR(cpuclk);
118 }
119
120 cpuclk->rate = cpu_clock_freq / 1000;
121 if (!cpuclk->rate)
122 return -EINVAL;
123
124 /* clock table init */
125 for (i = 2;
126 (loongson2_clockmod_table[i].frequency != CPUFREQ_TABLE_END);
127 i++)
128 loongson2_clockmod_table[i].frequency = (cpuclk->rate * i) / 8;
129
130 policy->cur = loongson2_cpufreq_get(policy->cpu);
131
132 cpufreq_frequency_table_get_attr(&loongson2_clockmod_table[0],
133 policy->cpu);
134
135 return cpufreq_frequency_table_cpuinfo(policy,
136 &loongson2_clockmod_table[0]);
137}
138
139static int loongson2_cpufreq_verify(struct cpufreq_policy *policy)
140{
141 return cpufreq_frequency_table_verify(policy,
142 &loongson2_clockmod_table[0]);
143}
144
145static int loongson2_cpufreq_exit(struct cpufreq_policy *policy)
146{
147 clk_put(cpuclk);
148 return 0;
149}
150
151static struct freq_attr *loongson2_table_attr[] = {
152 &cpufreq_freq_attr_scaling_available_freqs,
153 NULL,
154};
155
156static struct cpufreq_driver loongson2_cpufreq_driver = {
157 .owner = THIS_MODULE,
158 .name = "loongson2",
159 .init = loongson2_cpufreq_cpu_init,
160 .verify = loongson2_cpufreq_verify,
161 .target = loongson2_cpufreq_target,
162 .get = loongson2_cpufreq_get,
163 .exit = loongson2_cpufreq_exit,
164 .attr = loongson2_table_attr,
165};
166
167static struct platform_device_id platform_device_ids[] = {
168 {
169 .name = "loongson2_cpufreq",
170 },
171 {}
172};
173
174MODULE_DEVICE_TABLE(platform, platform_device_ids);
175
176static struct platform_driver platform_driver = {
177 .driver = {
178 .name = "loongson2_cpufreq",
179 .owner = THIS_MODULE,
180 },
181 .id_table = platform_device_ids,
182};
183
184static int __init cpufreq_init(void)
185{
186 int ret;
187
188 /* Register platform stuff */
189 ret = platform_driver_register(&platform_driver);
190 if (ret)
191 return ret;
192
193 pr_info("cpufreq: Loongson-2F CPU frequency driver.\n");
194
195 cpufreq_register_notifier(&loongson2_cpufreq_notifier_block,
196 CPUFREQ_TRANSITION_NOTIFIER);
197
198 ret = cpufreq_register_driver(&loongson2_cpufreq_driver);
199
200 if (!ret && !nowait) {
201 saved_cpu_wait = cpu_wait;
202 cpu_wait = loongson2_cpu_wait;
203 }
204
205 return ret;
206}
207
208static void __exit cpufreq_exit(void)
209{
210 if (!nowait && saved_cpu_wait)
211 cpu_wait = saved_cpu_wait;
212 cpufreq_unregister_driver(&loongson2_cpufreq_driver);
213 cpufreq_unregister_notifier(&loongson2_cpufreq_notifier_block,
214 CPUFREQ_TRANSITION_NOTIFIER);
215
216 platform_driver_unregister(&platform_driver);
217}
218
219module_init(cpufreq_init);
220module_exit(cpufreq_exit);
221
222module_param(nowait, uint, 0644);
223MODULE_PARM_DESC(nowait, "Disable Loongson-2F specific wait");
224
225MODULE_AUTHOR("Yanhua <yanh@lemote.com>");
226MODULE_DESCRIPTION("cpufreq driver for Loongson2F");
227MODULE_LICENSE("GPL");
diff --git a/arch/mips/kernel/csrc-powertv.c b/arch/mips/kernel/csrc-powertv.c
new file mode 100644
index 000000000000..a27c16c8690e
--- /dev/null
+++ b/arch/mips/kernel/csrc-powertv.c
@@ -0,0 +1,180 @@
1/*
2 * Copyright (C) 2008 Scientific-Atlanta, Inc.
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 2
7 * of the License, or (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
17 */
18/*
19 * The file comes from kernel/csrc-r4k.c
20 */
21#include <linux/clocksource.h>
22#include <linux/init.h>
23
24#include <asm/time.h> /* Not included in linux/time.h */
25
26#include <asm/mach-powertv/asic_regs.h>
27#include "powertv-clock.h"
28
29/* MIPS PLL Register Definitions */
30#define PLL_GET_M(x) (((x) >> 8) & 0x000000FF)
31#define PLL_GET_N(x) (((x) >> 16) & 0x000000FF)
32#define PLL_GET_P(x) (((x) >> 24) & 0x00000007)
33
34/*
35 * returns: Clock frequency in kHz
36 */
37unsigned int __init mips_get_pll_freq(void)
38{
39 unsigned int pll_reg, m, n, p;
40 unsigned int fin = 54000; /* Base frequency in kHz */
41 unsigned int fout;
42
43 /* Read PLL register setting */
44 pll_reg = asic_read(mips_pll_setup);
45 m = PLL_GET_M(pll_reg);
46 n = PLL_GET_N(pll_reg);
47 p = PLL_GET_P(pll_reg);
48 pr_info("MIPS PLL Register:0x%x M=%d N=%d P=%d\n", pll_reg, m, n, p);
49
50 /* Calculate clock frequency = (2 * N * 54MHz) / (M * (2**P)) */
51 fout = ((2 * n * fin) / (m * (0x01 << p)));
52
53 pr_info("MIPS Clock Freq=%d kHz\n", fout);
54
55 return fout;
56}
57
58static cycle_t c0_hpt_read(struct clocksource *cs)
59{
60 return read_c0_count();
61}
62
63static struct clocksource clocksource_mips = {
64 .name = "powertv-counter",
65 .read = c0_hpt_read,
66 .mask = CLOCKSOURCE_MASK(32),
67 .flags = CLOCK_SOURCE_IS_CONTINUOUS,
68};
69
70static void __init powertv_c0_hpt_clocksource_init(void)
71{
72 unsigned int pll_freq = mips_get_pll_freq();
73
74 pr_info("CPU frequency %d.%02d MHz\n", pll_freq / 1000,
75 (pll_freq % 1000) * 100 / 1000);
76
77 mips_hpt_frequency = pll_freq / 2 * 1000;
78
79 clocksource_mips.rating = 200 + mips_hpt_frequency / 10000000;
80
81 clocksource_set_clock(&clocksource_mips, mips_hpt_frequency);
82
83 clocksource_register(&clocksource_mips);
84}
85
86/**
87 * struct tim_c - free running counter
88 * @hi: High 16 bits of the counter
89 * @lo: Low 32 bits of the counter
90 *
91 * Lays out the structure of the free running counter in memory. This counter
92 * increments at a rate of 27 MHz/8 on all platforms.
93 */
94struct tim_c {
95 unsigned int hi;
96 unsigned int lo;
97};
98
99static struct tim_c *tim_c;
100
101static cycle_t tim_c_read(struct clocksource *cs)
102{
103 unsigned int hi;
104 unsigned int next_hi;
105 unsigned int lo;
106
107 hi = readl(&tim_c->hi);
108
109 for (;;) {
110 lo = readl(&tim_c->lo);
111 next_hi = readl(&tim_c->hi);
112 if (next_hi == hi)
113 break;
114 hi = next_hi;
115 }
116
117pr_crit("%s: read %llx\n", __func__, ((u64) hi << 32) | lo);
118 return ((u64) hi << 32) | lo;
119}
120
121#define TIM_C_SIZE 48 /* # bits in the timer */
122
123static struct clocksource clocksource_tim_c = {
124 .name = "powertv-tim_c",
125 .read = tim_c_read,
126 .mask = CLOCKSOURCE_MASK(TIM_C_SIZE),
127 .flags = CLOCK_SOURCE_IS_CONTINUOUS,
128};
129
130/**
131 * powertv_tim_c_clocksource_init - set up a clock source for the TIM_C clock
132 *
133 * The hard part here is coming up with a constant k and shift s such that
134 * the 48-bit TIM_C value multiplied by k doesn't overflow and that value,
135 * when shifted right by s, yields the corresponding number of nanoseconds.
136 * We know that TIM_C counts at 27 MHz/8, so each cycle corresponds to
137 * 1 / (27,000,000/8) seconds. Multiply that by a billion and you get the
138 * number of nanoseconds. Since the TIM_C value has 48 bits and the math is
139 * done in 64 bits, avoiding an overflow means that k must be less than
140 * 64 - 48 = 16 bits.
141 */
142static void __init powertv_tim_c_clocksource_init(void)
143{
144 int prescale;
145 unsigned long dividend;
146 unsigned long k;
147 int s;
148 const int max_k_bits = (64 - 48) - 1;
149 const unsigned long billion = 1000000000;
150 const unsigned long counts_per_second = 27000000 / 8;
151
152 prescale = BITS_PER_LONG - ilog2(billion) - 1;
153 dividend = billion << prescale;
154 k = dividend / counts_per_second;
155 s = ilog2(k) - max_k_bits;
156
157 if (s < 0)
158 s = prescale;
159
160 else {
161 k >>= s;
162 s += prescale;
163 }
164
165 clocksource_tim_c.mult = k;
166 clocksource_tim_c.shift = s;
167 clocksource_tim_c.rating = 200;
168
169 clocksource_register(&clocksource_tim_c);
170 tim_c = (struct tim_c *) asic_reg_addr(tim_ch);
171}
172
173/**
174 powertv_clocksource_init - initialize all clocksources
175 */
176void __init powertv_clocksource_init(void)
177{
178 powertv_c0_hpt_clocksource_init();
179 powertv_tim_c_clocksource_init();
180}
diff --git a/arch/mips/kernel/ftrace.c b/arch/mips/kernel/ftrace.c
new file mode 100644
index 000000000000..e9e64e0ff7aa
--- /dev/null
+++ b/arch/mips/kernel/ftrace.c
@@ -0,0 +1,275 @@
1/*
2 * Code for replacing ftrace calls with jumps.
3 *
4 * Copyright (C) 2007-2008 Steven Rostedt <srostedt@redhat.com>
5 * Copyright (C) 2009 DSLab, Lanzhou University, China
6 * Author: Wu Zhangjin <wuzhangjin@gmail.com>
7 *
8 * Thanks goes to Steven Rostedt for writing the original x86 version.
9 */
10
11#include <linux/uaccess.h>
12#include <linux/init.h>
13#include <linux/ftrace.h>
14
15#include <asm/cacheflush.h>
16#include <asm/asm.h>
17#include <asm/asm-offsets.h>
18
19#ifdef CONFIG_DYNAMIC_FTRACE
20
21#define JAL 0x0c000000 /* jump & link: ip --> ra, jump to target */
22#define ADDR_MASK 0x03ffffff /* op_code|addr : 31...26|25 ....0 */
23#define jump_insn_encode(op_code, addr) \
24 ((unsigned int)((op_code) | (((addr) >> 2) & ADDR_MASK)))
25
26static unsigned int ftrace_nop = 0x00000000;
27
28static int ftrace_modify_code(unsigned long ip, unsigned int new_code)
29{
30 int faulted;
31
32 /* *(unsigned int *)ip = new_code; */
33 safe_store_code(new_code, ip, faulted);
34
35 if (unlikely(faulted))
36 return -EFAULT;
37
38 flush_icache_range(ip, ip + 8);
39
40 return 0;
41}
42
43static int lui_v1;
44static int jal_mcount;
45
46int ftrace_make_nop(struct module *mod,
47 struct dyn_ftrace *rec, unsigned long addr)
48{
49 unsigned int new;
50 int faulted;
51 unsigned long ip = rec->ip;
52
53 /* We have compiled module with -mlong-calls, but compiled the kernel
54 * without it, we need to cope with them respectively. */
55 if (ip & 0x40000000) {
56 /* record it for ftrace_make_call */
57 if (lui_v1 == 0) {
58 /* lui_v1 = *(unsigned int *)ip; */
59 safe_load_code(lui_v1, ip, faulted);
60
61 if (unlikely(faulted))
62 return -EFAULT;
63 }
64
65 /* lui v1, hi_16bit_of_mcount --> b 1f (0x10000004)
66 * addiu v1, v1, low_16bit_of_mcount
67 * move at, ra
68 * jalr v1
69 * nop
70 * 1f: (ip + 12)
71 */
72 new = 0x10000004;
73 } else {
74 /* record/calculate it for ftrace_make_call */
75 if (jal_mcount == 0) {
76 /* We can record it directly like this:
77 * jal_mcount = *(unsigned int *)ip;
78 * Herein, jump over the first two nop instructions */
79 jal_mcount = jump_insn_encode(JAL, (MCOUNT_ADDR + 8));
80 }
81
82 /* move at, ra
83 * jalr v1 --> nop
84 */
85 new = ftrace_nop;
86 }
87 return ftrace_modify_code(ip, new);
88}
89
90static int modified; /* initialized as 0 by default */
91
92int ftrace_make_call(struct dyn_ftrace *rec, unsigned long addr)
93{
94 unsigned int new;
95 unsigned long ip = rec->ip;
96
97 /* We just need to remove the "b ftrace_stub" at the fist time! */
98 if (modified == 0) {
99 modified = 1;
100 ftrace_modify_code(addr, ftrace_nop);
101 }
102 /* ip, module: 0xc0000000, kernel: 0x80000000 */
103 new = (ip & 0x40000000) ? lui_v1 : jal_mcount;
104
105 return ftrace_modify_code(ip, new);
106}
107
108#define FTRACE_CALL_IP ((unsigned long)(&ftrace_call))
109
110int ftrace_update_ftrace_func(ftrace_func_t func)
111{
112 unsigned int new;
113
114 new = jump_insn_encode(JAL, (unsigned long)func);
115
116 return ftrace_modify_code(FTRACE_CALL_IP, new);
117}
118
119int __init ftrace_dyn_arch_init(void *data)
120{
121 /* The return code is retured via data */
122 *(unsigned long *)data = 0;
123
124 return 0;
125}
126#endif /* CONFIG_DYNAMIC_FTRACE */
127
128#ifdef CONFIG_FUNCTION_GRAPH_TRACER
129
130#ifdef CONFIG_DYNAMIC_FTRACE
131
132extern void ftrace_graph_call(void);
133#define JMP 0x08000000 /* jump to target directly */
134#define CALL_FTRACE_GRAPH_CALLER \
135 jump_insn_encode(JMP, (unsigned long)(&ftrace_graph_caller))
136#define FTRACE_GRAPH_CALL_IP ((unsigned long)(&ftrace_graph_call))
137
138int ftrace_enable_ftrace_graph_caller(void)
139{
140 return ftrace_modify_code(FTRACE_GRAPH_CALL_IP,
141 CALL_FTRACE_GRAPH_CALLER);
142}
143
144int ftrace_disable_ftrace_graph_caller(void)
145{
146 return ftrace_modify_code(FTRACE_GRAPH_CALL_IP, ftrace_nop);
147}
148
149#endif /* !CONFIG_DYNAMIC_FTRACE */
150
151#ifndef KBUILD_MCOUNT_RA_ADDRESS
152#define S_RA_SP (0xafbf << 16) /* s{d,w} ra, offset(sp) */
153#define S_R_SP (0xafb0 << 16) /* s{d,w} R, offset(sp) */
154#define OFFSET_MASK 0xffff /* stack offset range: 0 ~ PT_SIZE */
155
156unsigned long ftrace_get_parent_addr(unsigned long self_addr,
157 unsigned long parent,
158 unsigned long parent_addr,
159 unsigned long fp)
160{
161 unsigned long sp, ip, ra;
162 unsigned int code;
163 int faulted;
164
165 /* in module or kernel? */
166 if (self_addr & 0x40000000) {
167 /* module: move to the instruction "lui v1, HI_16BIT_OF_MCOUNT" */
168 ip = self_addr - 20;
169 } else {
170 /* kernel: move to the instruction "move ra, at" */
171 ip = self_addr - 12;
172 }
173
174 /* search the text until finding the non-store instruction or "s{d,w}
175 * ra, offset(sp)" instruction */
176 do {
177 ip -= 4;
178
179 /* get the code at "ip": code = *(unsigned int *)ip; */
180 safe_load_code(code, ip, faulted);
181
182 if (unlikely(faulted))
183 return 0;
184
185 /* If we hit the non-store instruction before finding where the
186 * ra is stored, then this is a leaf function and it does not
187 * store the ra on the stack. */
188 if ((code & S_R_SP) != S_R_SP)
189 return parent_addr;
190
191 } while (((code & S_RA_SP) != S_RA_SP));
192
193 sp = fp + (code & OFFSET_MASK);
194
195 /* ra = *(unsigned long *)sp; */
196 safe_load_stack(ra, sp, faulted);
197 if (unlikely(faulted))
198 return 0;
199
200 if (ra == parent)
201 return sp;
202 return 0;
203}
204
205#endif
206
207/*
208 * Hook the return address and push it in the stack of return addrs
209 * in current thread info.
210 */
211void prepare_ftrace_return(unsigned long *parent, unsigned long self_addr,
212 unsigned long fp)
213{
214 unsigned long old;
215 struct ftrace_graph_ent trace;
216 unsigned long return_hooker = (unsigned long)
217 &return_to_handler;
218 int faulted;
219
220 if (unlikely(atomic_read(&current->tracing_graph_pause)))
221 return;
222
223 /* "parent" is the stack address saved the return address of the caller
224 * of _mcount.
225 *
226 * if the gcc < 4.5, a leaf function does not save the return address
227 * in the stack address, so, we "emulate" one in _mcount's stack space,
228 * and hijack it directly, but for a non-leaf function, it save the
229 * return address to the its own stack space, we can not hijack it
230 * directly, but need to find the real stack address,
231 * ftrace_get_parent_addr() does it!
232 *
233 * if gcc>= 4.5, with the new -mmcount-ra-address option, for a
234 * non-leaf function, the location of the return address will be saved
235 * to $12 for us, and for a leaf function, only put a zero into $12. we
236 * do it in ftrace_graph_caller of mcount.S.
237 */
238
239 /* old = *parent; */
240 safe_load_stack(old, parent, faulted);
241 if (unlikely(faulted))
242 goto out;
243#ifndef KBUILD_MCOUNT_RA_ADDRESS
244 parent = (unsigned long *)ftrace_get_parent_addr(self_addr, old,
245 (unsigned long)parent,
246 fp);
247 /* If fails when getting the stack address of the non-leaf function's
248 * ra, stop function graph tracer and return */
249 if (parent == 0)
250 goto out;
251#endif
252 /* *parent = return_hooker; */
253 safe_store_stack(return_hooker, parent, faulted);
254 if (unlikely(faulted))
255 goto out;
256
257 if (ftrace_push_return_trace(old, self_addr, &trace.depth, fp) ==
258 -EBUSY) {
259 *parent = old;
260 return;
261 }
262
263 trace.func = self_addr;
264
265 /* Only trace if the calling function expects to */
266 if (!ftrace_graph_entry(&trace)) {
267 current->curr_ret_stack--;
268 *parent = old;
269 }
270 return;
271out:
272 ftrace_graph_stop();
273 WARN_ON(1);
274}
275#endif /* CONFIG_FUNCTION_GRAPH_TRACER */
diff --git a/arch/mips/kernel/i8259.c b/arch/mips/kernel/i8259.c
index 01c0885a8061..27799113332c 100644
--- a/arch/mips/kernel/i8259.c
+++ b/arch/mips/kernel/i8259.c
@@ -29,7 +29,7 @@
29 */ 29 */
30 30
31static int i8259A_auto_eoi = -1; 31static int i8259A_auto_eoi = -1;
32DEFINE_SPINLOCK(i8259A_lock); 32DEFINE_RAW_SPINLOCK(i8259A_lock);
33static void disable_8259A_irq(unsigned int irq); 33static void disable_8259A_irq(unsigned int irq);
34static void enable_8259A_irq(unsigned int irq); 34static void enable_8259A_irq(unsigned int irq);
35static void mask_and_ack_8259A(unsigned int irq); 35static void mask_and_ack_8259A(unsigned int irq);
@@ -65,13 +65,13 @@ static void disable_8259A_irq(unsigned int irq)
65 65
66 irq -= I8259A_IRQ_BASE; 66 irq -= I8259A_IRQ_BASE;
67 mask = 1 << irq; 67 mask = 1 << irq;
68 spin_lock_irqsave(&i8259A_lock, flags); 68 raw_spin_lock_irqsave(&i8259A_lock, flags);
69 cached_irq_mask |= mask; 69 cached_irq_mask |= mask;
70 if (irq & 8) 70 if (irq & 8)
71 outb(cached_slave_mask, PIC_SLAVE_IMR); 71 outb(cached_slave_mask, PIC_SLAVE_IMR);
72 else 72 else
73 outb(cached_master_mask, PIC_MASTER_IMR); 73 outb(cached_master_mask, PIC_MASTER_IMR);
74 spin_unlock_irqrestore(&i8259A_lock, flags); 74 raw_spin_unlock_irqrestore(&i8259A_lock, flags);
75} 75}
76 76
77static void enable_8259A_irq(unsigned int irq) 77static void enable_8259A_irq(unsigned int irq)
@@ -81,13 +81,13 @@ static void enable_8259A_irq(unsigned int irq)
81 81
82 irq -= I8259A_IRQ_BASE; 82 irq -= I8259A_IRQ_BASE;
83 mask = ~(1 << irq); 83 mask = ~(1 << irq);
84 spin_lock_irqsave(&i8259A_lock, flags); 84 raw_spin_lock_irqsave(&i8259A_lock, flags);
85 cached_irq_mask &= mask; 85 cached_irq_mask &= mask;
86 if (irq & 8) 86 if (irq & 8)
87 outb(cached_slave_mask, PIC_SLAVE_IMR); 87 outb(cached_slave_mask, PIC_SLAVE_IMR);
88 else 88 else
89 outb(cached_master_mask, PIC_MASTER_IMR); 89 outb(cached_master_mask, PIC_MASTER_IMR);
90 spin_unlock_irqrestore(&i8259A_lock, flags); 90 raw_spin_unlock_irqrestore(&i8259A_lock, flags);
91} 91}
92 92
93int i8259A_irq_pending(unsigned int irq) 93int i8259A_irq_pending(unsigned int irq)
@@ -98,12 +98,12 @@ int i8259A_irq_pending(unsigned int irq)
98 98
99 irq -= I8259A_IRQ_BASE; 99 irq -= I8259A_IRQ_BASE;
100 mask = 1 << irq; 100 mask = 1 << irq;
101 spin_lock_irqsave(&i8259A_lock, flags); 101 raw_spin_lock_irqsave(&i8259A_lock, flags);
102 if (irq < 8) 102 if (irq < 8)
103 ret = inb(PIC_MASTER_CMD) & mask; 103 ret = inb(PIC_MASTER_CMD) & mask;
104 else 104 else
105 ret = inb(PIC_SLAVE_CMD) & (mask >> 8); 105 ret = inb(PIC_SLAVE_CMD) & (mask >> 8);
106 spin_unlock_irqrestore(&i8259A_lock, flags); 106 raw_spin_unlock_irqrestore(&i8259A_lock, flags);
107 107
108 return ret; 108 return ret;
109} 109}
@@ -151,7 +151,7 @@ static void mask_and_ack_8259A(unsigned int irq)
151 151
152 irq -= I8259A_IRQ_BASE; 152 irq -= I8259A_IRQ_BASE;
153 irqmask = 1 << irq; 153 irqmask = 1 << irq;
154 spin_lock_irqsave(&i8259A_lock, flags); 154 raw_spin_lock_irqsave(&i8259A_lock, flags);
155 /* 155 /*
156 * Lightweight spurious IRQ detection. We do not want 156 * Lightweight spurious IRQ detection. We do not want
157 * to overdo spurious IRQ handling - it's usually a sign 157 * to overdo spurious IRQ handling - it's usually a sign
@@ -183,7 +183,7 @@ handle_real_irq:
183 outb(0x60+irq, PIC_MASTER_CMD); /* 'Specific EOI to master */ 183 outb(0x60+irq, PIC_MASTER_CMD); /* 'Specific EOI to master */
184 } 184 }
185 smtc_im_ack_irq(irq); 185 smtc_im_ack_irq(irq);
186 spin_unlock_irqrestore(&i8259A_lock, flags); 186 raw_spin_unlock_irqrestore(&i8259A_lock, flags);
187 return; 187 return;
188 188
189spurious_8259A_irq: 189spurious_8259A_irq:
@@ -264,7 +264,7 @@ static void init_8259A(int auto_eoi)
264 264
265 i8259A_auto_eoi = auto_eoi; 265 i8259A_auto_eoi = auto_eoi;
266 266
267 spin_lock_irqsave(&i8259A_lock, flags); 267 raw_spin_lock_irqsave(&i8259A_lock, flags);
268 268
269 outb(0xff, PIC_MASTER_IMR); /* mask all of 8259A-1 */ 269 outb(0xff, PIC_MASTER_IMR); /* mask all of 8259A-1 */
270 outb(0xff, PIC_SLAVE_IMR); /* mask all of 8259A-2 */ 270 outb(0xff, PIC_SLAVE_IMR); /* mask all of 8259A-2 */
@@ -298,7 +298,7 @@ static void init_8259A(int auto_eoi)
298 outb(cached_master_mask, PIC_MASTER_IMR); /* restore master IRQ mask */ 298 outb(cached_master_mask, PIC_MASTER_IMR); /* restore master IRQ mask */
299 outb(cached_slave_mask, PIC_SLAVE_IMR); /* restore slave IRQ mask */ 299 outb(cached_slave_mask, PIC_SLAVE_IMR); /* restore slave IRQ mask */
300 300
301 spin_unlock_irqrestore(&i8259A_lock, flags); 301 raw_spin_unlock_irqrestore(&i8259A_lock, flags);
302} 302}
303 303
304/* 304/*
diff --git a/arch/mips/kernel/irq-gt641xx.c b/arch/mips/kernel/irq-gt641xx.c
index ebcc5f7ad9c2..42ef81461bfc 100644
--- a/arch/mips/kernel/irq-gt641xx.c
+++ b/arch/mips/kernel/irq-gt641xx.c
@@ -27,18 +27,18 @@
27 27
28#define GT641XX_IRQ_TO_BIT(irq) (1U << (irq - GT641XX_IRQ_BASE)) 28#define GT641XX_IRQ_TO_BIT(irq) (1U << (irq - GT641XX_IRQ_BASE))
29 29
30static DEFINE_SPINLOCK(gt641xx_irq_lock); 30static DEFINE_RAW_SPINLOCK(gt641xx_irq_lock);
31 31
32static void ack_gt641xx_irq(unsigned int irq) 32static void ack_gt641xx_irq(unsigned int irq)
33{ 33{
34 unsigned long flags; 34 unsigned long flags;
35 u32 cause; 35 u32 cause;
36 36
37 spin_lock_irqsave(&gt641xx_irq_lock, flags); 37 raw_spin_lock_irqsave(&gt641xx_irq_lock, flags);
38 cause = GT_READ(GT_INTRCAUSE_OFS); 38 cause = GT_READ(GT_INTRCAUSE_OFS);
39 cause &= ~GT641XX_IRQ_TO_BIT(irq); 39 cause &= ~GT641XX_IRQ_TO_BIT(irq);
40 GT_WRITE(GT_INTRCAUSE_OFS, cause); 40 GT_WRITE(GT_INTRCAUSE_OFS, cause);
41 spin_unlock_irqrestore(&gt641xx_irq_lock, flags); 41 raw_spin_unlock_irqrestore(&gt641xx_irq_lock, flags);
42} 42}
43 43
44static void mask_gt641xx_irq(unsigned int irq) 44static void mask_gt641xx_irq(unsigned int irq)
@@ -46,11 +46,11 @@ static void mask_gt641xx_irq(unsigned int irq)
46 unsigned long flags; 46 unsigned long flags;
47 u32 mask; 47 u32 mask;
48 48
49 spin_lock_irqsave(&gt641xx_irq_lock, flags); 49 raw_spin_lock_irqsave(&gt641xx_irq_lock, flags);
50 mask = GT_READ(GT_INTRMASK_OFS); 50 mask = GT_READ(GT_INTRMASK_OFS);
51 mask &= ~GT641XX_IRQ_TO_BIT(irq); 51 mask &= ~GT641XX_IRQ_TO_BIT(irq);
52 GT_WRITE(GT_INTRMASK_OFS, mask); 52 GT_WRITE(GT_INTRMASK_OFS, mask);
53 spin_unlock_irqrestore(&gt641xx_irq_lock, flags); 53 raw_spin_unlock_irqrestore(&gt641xx_irq_lock, flags);
54} 54}
55 55
56static void mask_ack_gt641xx_irq(unsigned int irq) 56static void mask_ack_gt641xx_irq(unsigned int irq)
@@ -58,7 +58,7 @@ static void mask_ack_gt641xx_irq(unsigned int irq)
58 unsigned long flags; 58 unsigned long flags;
59 u32 cause, mask; 59 u32 cause, mask;
60 60
61 spin_lock_irqsave(&gt641xx_irq_lock, flags); 61 raw_spin_lock_irqsave(&gt641xx_irq_lock, flags);
62 mask = GT_READ(GT_INTRMASK_OFS); 62 mask = GT_READ(GT_INTRMASK_OFS);
63 mask &= ~GT641XX_IRQ_TO_BIT(irq); 63 mask &= ~GT641XX_IRQ_TO_BIT(irq);
64 GT_WRITE(GT_INTRMASK_OFS, mask); 64 GT_WRITE(GT_INTRMASK_OFS, mask);
@@ -66,7 +66,7 @@ static void mask_ack_gt641xx_irq(unsigned int irq)
66 cause = GT_READ(GT_INTRCAUSE_OFS); 66 cause = GT_READ(GT_INTRCAUSE_OFS);
67 cause &= ~GT641XX_IRQ_TO_BIT(irq); 67 cause &= ~GT641XX_IRQ_TO_BIT(irq);
68 GT_WRITE(GT_INTRCAUSE_OFS, cause); 68 GT_WRITE(GT_INTRCAUSE_OFS, cause);
69 spin_unlock_irqrestore(&gt641xx_irq_lock, flags); 69 raw_spin_unlock_irqrestore(&gt641xx_irq_lock, flags);
70} 70}
71 71
72static void unmask_gt641xx_irq(unsigned int irq) 72static void unmask_gt641xx_irq(unsigned int irq)
@@ -74,11 +74,11 @@ static void unmask_gt641xx_irq(unsigned int irq)
74 unsigned long flags; 74 unsigned long flags;
75 u32 mask; 75 u32 mask;
76 76
77 spin_lock_irqsave(&gt641xx_irq_lock, flags); 77 raw_spin_lock_irqsave(&gt641xx_irq_lock, flags);
78 mask = GT_READ(GT_INTRMASK_OFS); 78 mask = GT_READ(GT_INTRMASK_OFS);
79 mask |= GT641XX_IRQ_TO_BIT(irq); 79 mask |= GT641XX_IRQ_TO_BIT(irq);
80 GT_WRITE(GT_INTRMASK_OFS, mask); 80 GT_WRITE(GT_INTRMASK_OFS, mask);
81 spin_unlock_irqrestore(&gt641xx_irq_lock, flags); 81 raw_spin_unlock_irqrestore(&gt641xx_irq_lock, flags);
82} 82}
83 83
84static struct irq_chip gt641xx_irq_chip = { 84static struct irq_chip gt641xx_irq_chip = {
diff --git a/arch/mips/kernel/irq.c b/arch/mips/kernel/irq.c
index 7b845ba9dff4..c6345f579a8a 100644
--- a/arch/mips/kernel/irq.c
+++ b/arch/mips/kernel/irq.c
@@ -15,13 +15,13 @@
15#include <linux/kernel_stat.h> 15#include <linux/kernel_stat.h>
16#include <linux/module.h> 16#include <linux/module.h>
17#include <linux/proc_fs.h> 17#include <linux/proc_fs.h>
18#include <linux/slab.h>
19#include <linux/mm.h> 18#include <linux/mm.h>
20#include <linux/random.h> 19#include <linux/random.h>
21#include <linux/sched.h> 20#include <linux/sched.h>
22#include <linux/seq_file.h> 21#include <linux/seq_file.h>
23#include <linux/kallsyms.h> 22#include <linux/kallsyms.h>
24#include <linux/kgdb.h> 23#include <linux/kgdb.h>
24#include <linux/ftrace.h>
25 25
26#include <asm/atomic.h> 26#include <asm/atomic.h>
27#include <asm/system.h> 27#include <asm/system.h>
@@ -99,7 +99,7 @@ int show_interrupts(struct seq_file *p, void *v)
99 } 99 }
100 100
101 if (i < NR_IRQS) { 101 if (i < NR_IRQS) {
102 spin_lock_irqsave(&irq_desc[i].lock, flags); 102 raw_spin_lock_irqsave(&irq_desc[i].lock, flags);
103 action = irq_desc[i].action; 103 action = irq_desc[i].action;
104 if (!action) 104 if (!action)
105 goto skip; 105 goto skip;
@@ -118,7 +118,7 @@ int show_interrupts(struct seq_file *p, void *v)
118 118
119 seq_putc(p, '\n'); 119 seq_putc(p, '\n');
120skip: 120skip:
121 spin_unlock_irqrestore(&irq_desc[i].lock, flags); 121 raw_spin_unlock_irqrestore(&irq_desc[i].lock, flags);
122 } else if (i == NR_IRQS) { 122 } else if (i == NR_IRQS) {
123 seq_putc(p, '\n'); 123 seq_putc(p, '\n');
124 seq_printf(p, "ERR: %10u\n", atomic_read(&irq_err_count)); 124 seq_printf(p, "ERR: %10u\n", atomic_read(&irq_err_count));
@@ -150,3 +150,32 @@ void __init init_IRQ(void)
150 kgdb_early_setup = 1; 150 kgdb_early_setup = 1;
151#endif 151#endif
152} 152}
153
154/*
155 * do_IRQ handles all normal device IRQ's (the special
156 * SMP cross-CPU interrupts have their own specific
157 * handlers).
158 */
159void __irq_entry do_IRQ(unsigned int irq)
160{
161 irq_enter();
162 __DO_IRQ_SMTC_HOOK(irq);
163 generic_handle_irq(irq);
164 irq_exit();
165}
166
167#ifdef CONFIG_MIPS_MT_SMTC_IRQAFF
168/*
169 * To avoid inefficient and in some cases pathological re-checking of
170 * IRQ affinity, we have this variant that skips the affinity check.
171 */
172
173void __irq_entry do_IRQ_no_affinity(unsigned int irq)
174{
175 irq_enter();
176 __NO_AFFINITY_IRQ_SMTC_HOOK(irq);
177 generic_handle_irq(irq);
178 irq_exit();
179}
180
181#endif /* CONFIG_MIPS_MT_SMTC_IRQAFF */
diff --git a/arch/mips/kernel/kspd.c b/arch/mips/kernel/kspd.c
index ad4e017ed2f3..80e2ba694bab 100644
--- a/arch/mips/kernel/kspd.c
+++ b/arch/mips/kernel/kspd.c
@@ -82,6 +82,7 @@ static int sp_stopping;
82#define MTSP_O_SHLOCK 0x0010 82#define MTSP_O_SHLOCK 0x0010
83#define MTSP_O_EXLOCK 0x0020 83#define MTSP_O_EXLOCK 0x0020
84#define MTSP_O_ASYNC 0x0040 84#define MTSP_O_ASYNC 0x0040
85/* XXX: check which of these is actually O_SYNC vs O_DSYNC */
85#define MTSP_O_FSYNC O_SYNC 86#define MTSP_O_FSYNC O_SYNC
86#define MTSP_O_NOFOLLOW 0x0100 87#define MTSP_O_NOFOLLOW 0x0100
87#define MTSP_O_SYNC 0x0080 88#define MTSP_O_SYNC 0x0080
diff --git a/arch/mips/kernel/linux32.c b/arch/mips/kernel/linux32.c
index b77fefaff9da..c2dab140dc98 100644
--- a/arch/mips/kernel/linux32.c
+++ b/arch/mips/kernel/linux32.c
@@ -9,14 +9,12 @@
9#include <linux/mm.h> 9#include <linux/mm.h>
10#include <linux/errno.h> 10#include <linux/errno.h>
11#include <linux/file.h> 11#include <linux/file.h>
12#include <linux/smp_lock.h>
13#include <linux/highuid.h> 12#include <linux/highuid.h>
14#include <linux/resource.h> 13#include <linux/resource.h>
15#include <linux/highmem.h> 14#include <linux/highmem.h>
16#include <linux/time.h> 15#include <linux/time.h>
17#include <linux/times.h> 16#include <linux/times.h>
18#include <linux/poll.h> 17#include <linux/poll.h>
19#include <linux/slab.h>
20#include <linux/skbuff.h> 18#include <linux/skbuff.h>
21#include <linux/filter.h> 19#include <linux/filter.h>
22#include <linux/shm.h> 20#include <linux/shm.h>
@@ -35,6 +33,7 @@
35#include <linux/compat.h> 33#include <linux/compat.h>
36#include <linux/vfs.h> 34#include <linux/vfs.h>
37#include <linux/ipc.h> 35#include <linux/ipc.h>
36#include <linux/slab.h>
38 37
39#include <net/sock.h> 38#include <net/sock.h>
40#include <net/scm.h> 39#include <net/scm.h>
@@ -67,28 +66,13 @@ SYSCALL_DEFINE6(32_mmap2, unsigned long, addr, unsigned long, len,
67 unsigned long, prot, unsigned long, flags, unsigned long, fd, 66 unsigned long, prot, unsigned long, flags, unsigned long, fd,
68 unsigned long, pgoff) 67 unsigned long, pgoff)
69{ 68{
70 struct file * file = NULL;
71 unsigned long error; 69 unsigned long error;
72 70
73 error = -EINVAL; 71 error = -EINVAL;
74 if (pgoff & (~PAGE_MASK >> 12)) 72 if (pgoff & (~PAGE_MASK >> 12))
75 goto out; 73 goto out;
76 pgoff >>= PAGE_SHIFT-12; 74 error = sys_mmap_pgoff(addr, len, prot, flags, fd,
77 75 pgoff >> (PAGE_SHIFT-12));
78 if (!(flags & MAP_ANONYMOUS)) {
79 error = -EBADF;
80 file = fget(fd);
81 if (!file)
82 goto out;
83 }
84 flags &= ~(MAP_EXECUTABLE | MAP_DENYWRITE);
85
86 down_write(&current->mm->mmap_sem);
87 error = do_mmap_pgoff(file, addr, len, prot, flags, pgoff);
88 up_write(&current->mm->mmap_sem);
89 if (file)
90 fput(file);
91
92out: 76out:
93 return error; 77 return error;
94} 78}
@@ -265,83 +249,6 @@ SYSCALL_DEFINE5(n32_msgrcv, int, msqid, u32, msgp, size_t, msgsz,
265} 249}
266#endif 250#endif
267 251
268struct sysctl_args32
269{
270 compat_caddr_t name;
271 int nlen;
272 compat_caddr_t oldval;
273 compat_caddr_t oldlenp;
274 compat_caddr_t newval;
275 compat_size_t newlen;
276 unsigned int __unused[4];
277};
278
279#ifdef CONFIG_SYSCTL_SYSCALL
280
281SYSCALL_DEFINE1(32_sysctl, struct sysctl_args32 __user *, args)
282{
283 struct sysctl_args32 tmp;
284 int error;
285 size_t oldlen;
286 size_t __user *oldlenp = NULL;
287 unsigned long addr = (((unsigned long)&args->__unused[0]) + 7) & ~7;
288
289 if (copy_from_user(&tmp, args, sizeof(tmp)))
290 return -EFAULT;
291
292 if (tmp.oldval && tmp.oldlenp) {
293 /* Duh, this is ugly and might not work if sysctl_args
294 is in read-only memory, but do_sysctl does indirectly
295 a lot of uaccess in both directions and we'd have to
296 basically copy the whole sysctl.c here, and
297 glibc's __sysctl uses rw memory for the structure
298 anyway. */
299 if (get_user(oldlen, (u32 __user *)A(tmp.oldlenp)) ||
300 put_user(oldlen, (size_t __user *)addr))
301 return -EFAULT;
302 oldlenp = (size_t __user *)addr;
303 }
304
305 lock_kernel();
306 error = do_sysctl((int __user *)A(tmp.name), tmp.nlen, (void __user *)A(tmp.oldval),
307 oldlenp, (void __user *)A(tmp.newval), tmp.newlen);
308 unlock_kernel();
309 if (oldlenp) {
310 if (!error) {
311 if (get_user(oldlen, (size_t __user *)addr) ||
312 put_user(oldlen, (u32 __user *)A(tmp.oldlenp)))
313 error = -EFAULT;
314 }
315 copy_to_user(args->__unused, tmp.__unused, sizeof(tmp.__unused));
316 }
317 return error;
318}
319
320#else
321
322SYSCALL_DEFINE1(32_sysctl, struct sysctl_args32 __user *, args)
323{
324 return -ENOSYS;
325}
326
327#endif /* CONFIG_SYSCTL_SYSCALL */
328
329SYSCALL_DEFINE1(32_newuname, struct new_utsname __user *, name)
330{
331 int ret = 0;
332
333 down_read(&uts_sem);
334 if (copy_to_user(name, utsname(), sizeof *name))
335 ret = -EFAULT;
336 up_read(&uts_sem);
337
338 if (current->personality == PER_LINUX32 && !ret)
339 if (copy_to_user(name->machine, "mips\0\0\0", 8))
340 ret = -EFAULT;
341
342 return ret;
343}
344
345SYSCALL_DEFINE1(32_personality, unsigned long, personality) 252SYSCALL_DEFINE1(32_personality, unsigned long, personality)
346{ 253{
347 int ret; 254 int ret;
diff --git a/arch/mips/kernel/mcount.S b/arch/mips/kernel/mcount.S
new file mode 100644
index 000000000000..6851fc97a511
--- /dev/null
+++ b/arch/mips/kernel/mcount.S
@@ -0,0 +1,189 @@
1/*
2 * MIPS specific _mcount support
3 *
4 * This file is subject to the terms and conditions of the GNU General Public
5 * License. See the file "COPYING" in the main directory of this archive for
6 * more details.
7 *
8 * Copyright (C) 2009 Lemote Inc. & DSLab, Lanzhou University, China
9 * Author: Wu Zhangjin <wuzhangjin@gmail.com>
10 */
11
12#include <asm/regdef.h>
13#include <asm/stackframe.h>
14#include <asm/ftrace.h>
15
16 .text
17 .set noreorder
18 .set noat
19
20 .macro MCOUNT_SAVE_REGS
21 PTR_SUBU sp, PT_SIZE
22 PTR_S ra, PT_R31(sp)
23 PTR_S AT, PT_R1(sp)
24 PTR_S a0, PT_R4(sp)
25 PTR_S a1, PT_R5(sp)
26 PTR_S a2, PT_R6(sp)
27 PTR_S a3, PT_R7(sp)
28#ifdef CONFIG_64BIT
29 PTR_S a4, PT_R8(sp)
30 PTR_S a5, PT_R9(sp)
31 PTR_S a6, PT_R10(sp)
32 PTR_S a7, PT_R11(sp)
33#endif
34 .endm
35
36 .macro MCOUNT_RESTORE_REGS
37 PTR_L ra, PT_R31(sp)
38 PTR_L AT, PT_R1(sp)
39 PTR_L a0, PT_R4(sp)
40 PTR_L a1, PT_R5(sp)
41 PTR_L a2, PT_R6(sp)
42 PTR_L a3, PT_R7(sp)
43#ifdef CONFIG_64BIT
44 PTR_L a4, PT_R8(sp)
45 PTR_L a5, PT_R9(sp)
46 PTR_L a6, PT_R10(sp)
47 PTR_L a7, PT_R11(sp)
48#endif
49#ifdef CONFIG_64BIT
50 PTR_ADDIU sp, PT_SIZE
51#else
52 PTR_ADDIU sp, (PT_SIZE + 8)
53#endif
54.endm
55
56 .macro RETURN_BACK
57 jr ra
58 move ra, AT
59 .endm
60
61#ifdef CONFIG_DYNAMIC_FTRACE
62
63NESTED(ftrace_caller, PT_SIZE, ra)
64 .globl _mcount
65_mcount:
66 b ftrace_stub
67 nop
68 lw t1, function_trace_stop
69 bnez t1, ftrace_stub
70 nop
71
72 MCOUNT_SAVE_REGS
73#ifdef KBUILD_MCOUNT_RA_ADDRESS
74 PTR_S t0, PT_R12(sp) /* t0 saved the location of the return address(at) by -mmcount-ra-address */
75#endif
76
77 move a0, ra /* arg1: next ip, selfaddr */
78 .globl ftrace_call
79ftrace_call:
80 nop /* a placeholder for the call to a real tracing function */
81 move a1, AT /* arg2: the caller's next ip, parent */
82
83#ifdef CONFIG_FUNCTION_GRAPH_TRACER
84 .globl ftrace_graph_call
85ftrace_graph_call:
86 nop
87 nop
88#endif
89
90 MCOUNT_RESTORE_REGS
91 .globl ftrace_stub
92ftrace_stub:
93 RETURN_BACK
94 END(ftrace_caller)
95
96#else /* ! CONFIG_DYNAMIC_FTRACE */
97
98NESTED(_mcount, PT_SIZE, ra)
99 lw t1, function_trace_stop
100 bnez t1, ftrace_stub
101 nop
102 PTR_LA t1, ftrace_stub
103 PTR_L t2, ftrace_trace_function /* Prepare t2 for (1) */
104 bne t1, t2, static_trace
105 nop
106
107#ifdef CONFIG_FUNCTION_GRAPH_TRACER
108 PTR_L t3, ftrace_graph_return
109 bne t1, t3, ftrace_graph_caller
110 nop
111 PTR_LA t1, ftrace_graph_entry_stub
112 PTR_L t3, ftrace_graph_entry
113 bne t1, t3, ftrace_graph_caller
114 nop
115#endif
116 b ftrace_stub
117 nop
118
119static_trace:
120 MCOUNT_SAVE_REGS
121
122 move a0, ra /* arg1: next ip, selfaddr */
123 jalr t2 /* (1) call *ftrace_trace_function */
124 move a1, AT /* arg2: the caller's next ip, parent */
125
126 MCOUNT_RESTORE_REGS
127 .globl ftrace_stub
128ftrace_stub:
129 RETURN_BACK
130 END(_mcount)
131
132#endif /* ! CONFIG_DYNAMIC_FTRACE */
133
134#ifdef CONFIG_FUNCTION_GRAPH_TRACER
135
136NESTED(ftrace_graph_caller, PT_SIZE, ra)
137#ifdef CONFIG_DYNAMIC_FTRACE
138 PTR_L a1, PT_R31(sp) /* load the original ra from the stack */
139#ifdef KBUILD_MCOUNT_RA_ADDRESS
140 PTR_L t0, PT_R12(sp) /* load the original t0 from the stack */
141#endif
142#else
143 MCOUNT_SAVE_REGS
144 move a1, ra /* arg2: next ip, selfaddr */
145#endif
146
147#ifdef KBUILD_MCOUNT_RA_ADDRESS
148 bnez t0, 1f /* non-leaf func: t0 saved the location of the return address */
149 nop
150 PTR_LA t0, PT_R1(sp) /* leaf func: get the location of at(old ra) from our own stack */
1511: move a0, t0 /* arg1: the location of the return address */
152#else
153 PTR_LA a0, PT_R1(sp) /* arg1: &AT -> a0 */
154#endif
155 jal prepare_ftrace_return
156#ifdef CONFIG_FRAME_POINTER
157 move a2, fp /* arg3: frame pointer */
158#else
159#ifdef CONFIG_64BIT
160 PTR_LA a2, PT_SIZE(sp)
161#else
162 PTR_LA a2, (PT_SIZE+8)(sp)
163#endif
164#endif
165
166 MCOUNT_RESTORE_REGS
167 RETURN_BACK
168 END(ftrace_graph_caller)
169
170 .align 2
171 .globl return_to_handler
172return_to_handler:
173 PTR_SUBU sp, PT_SIZE
174 PTR_S v0, PT_R2(sp)
175
176 jal ftrace_return_to_handler
177 PTR_S v1, PT_R3(sp)
178
179 /* restore the real parent address: v0 -> ra */
180 move ra, v0
181
182 PTR_L v0, PT_R2(sp)
183 PTR_L v1, PT_R3(sp)
184 jr ra
185 PTR_ADDIU sp, PT_SIZE
186#endif /* CONFIG_FUNCTION_GRAPH_TRACER */
187
188 .set at
189 .set reorder
diff --git a/arch/mips/kernel/mips_ksyms.c b/arch/mips/kernel/mips_ksyms.c
index 225755d0c1f6..1d04807874db 100644
--- a/arch/mips/kernel/mips_ksyms.c
+++ b/arch/mips/kernel/mips_ksyms.c
@@ -13,6 +13,7 @@
13#include <asm/checksum.h> 13#include <asm/checksum.h>
14#include <asm/pgtable.h> 14#include <asm/pgtable.h>
15#include <asm/uaccess.h> 15#include <asm/uaccess.h>
16#include <asm/ftrace.h>
16 17
17extern void *__bzero(void *__s, size_t __count); 18extern void *__bzero(void *__s, size_t __count);
18extern long __strncpy_from_user_nocheck_asm(char *__to, 19extern long __strncpy_from_user_nocheck_asm(char *__to,
@@ -51,3 +52,7 @@ EXPORT_SYMBOL(csum_partial_copy_nocheck);
51EXPORT_SYMBOL(__csum_partial_copy_user); 52EXPORT_SYMBOL(__csum_partial_copy_user);
52 53
53EXPORT_SYMBOL(invalid_pte_table); 54EXPORT_SYMBOL(invalid_pte_table);
55#ifdef CONFIG_FUNCTION_TRACER
56/* _mcount is defined in arch/mips/kernel/mcount.S */
57EXPORT_SYMBOL(_mcount);
58#endif
diff --git a/arch/mips/kernel/octeon_switch.S b/arch/mips/kernel/octeon_switch.S
index 3952b8323efa..dd18b26a358a 100644
--- a/arch/mips/kernel/octeon_switch.S
+++ b/arch/mips/kernel/octeon_switch.S
@@ -500,4 +500,3 @@ done_restore:
500 nop 500 nop
501 END(octeon_mult_restore) 501 END(octeon_mult_restore)
502 .set pop 502 .set pop
503
diff --git a/arch/mips/kernel/process.c b/arch/mips/kernel/process.c
index f3d73e1831c1..99960940d4a4 100644
--- a/arch/mips/kernel/process.c
+++ b/arch/mips/kernel/process.c
@@ -17,7 +17,6 @@
17#include <linux/stddef.h> 17#include <linux/stddef.h>
18#include <linux/unistd.h> 18#include <linux/unistd.h>
19#include <linux/ptrace.h> 19#include <linux/ptrace.h>
20#include <linux/slab.h>
21#include <linux/mman.h> 20#include <linux/mman.h>
22#include <linux/personality.h> 21#include <linux/personality.h>
23#include <linux/sys.h> 22#include <linux/sys.h>
@@ -64,8 +63,13 @@ void __noreturn cpu_idle(void)
64 63
65 smtc_idle_loop_hook(); 64 smtc_idle_loop_hook();
66#endif 65#endif
67 if (cpu_wait) 66
67 if (cpu_wait) {
68 /* Don't trace irqs off for idle */
69 stop_critical_timings();
68 (*cpu_wait)(); 70 (*cpu_wait)();
71 start_critical_timings();
72 }
69 } 73 }
70#ifdef CONFIG_HOTPLUG_CPU 74#ifdef CONFIG_HOTPLUG_CPU
71 if (!cpu_online(cpu) && !cpu_isset(cpu, cpu_callin_map) && 75 if (!cpu_online(cpu) && !cpu_isset(cpu, cpu_callin_map) &&
diff --git a/arch/mips/kernel/ptrace.c b/arch/mips/kernel/ptrace.c
index 054861ccb4dd..c51b95ff8644 100644
--- a/arch/mips/kernel/ptrace.c
+++ b/arch/mips/kernel/ptrace.c
@@ -493,36 +493,6 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data)
493 ret = ptrace_setfpregs(child, (__u32 __user *) data); 493 ret = ptrace_setfpregs(child, (__u32 __user *) data);
494 break; 494 break;
495 495
496 case PTRACE_SYSCALL: /* continue and stop at next (return from) syscall */
497 case PTRACE_CONT: { /* restart after signal. */
498 ret = -EIO;
499 if (!valid_signal(data))
500 break;
501 if (request == PTRACE_SYSCALL) {
502 set_tsk_thread_flag(child, TIF_SYSCALL_TRACE);
503 }
504 else {
505 clear_tsk_thread_flag(child, TIF_SYSCALL_TRACE);
506 }
507 child->exit_code = data;
508 wake_up_process(child);
509 ret = 0;
510 break;
511 }
512
513 /*
514 * make the child exit. Best I can do is send it a sigkill.
515 * perhaps it should be put in the status that it wants to
516 * exit.
517 */
518 case PTRACE_KILL:
519 ret = 0;
520 if (child->exit_state == EXIT_ZOMBIE) /* already dead */
521 break;
522 child->exit_code = SIGKILL;
523 wake_up_process(child);
524 break;
525
526 case PTRACE_GET_THREAD_AREA: 496 case PTRACE_GET_THREAD_AREA:
527 ret = put_user(task_thread_info(child)->tp_value, 497 ret = put_user(task_thread_info(child)->tp_value,
528 (unsigned long __user *) data); 498 (unsigned long __user *) data);
diff --git a/arch/mips/kernel/rtlx.c b/arch/mips/kernel/rtlx.c
index 364f066cb497..26f9b9ab19cc 100644
--- a/arch/mips/kernel/rtlx.c
+++ b/arch/mips/kernel/rtlx.c
@@ -23,12 +23,10 @@
23#include <linux/fs.h> 23#include <linux/fs.h>
24#include <linux/init.h> 24#include <linux/init.h>
25#include <asm/uaccess.h> 25#include <asm/uaccess.h>
26#include <linux/slab.h>
27#include <linux/list.h> 26#include <linux/list.h>
28#include <linux/vmalloc.h> 27#include <linux/vmalloc.h>
29#include <linux/elf.h> 28#include <linux/elf.h>
30#include <linux/seq_file.h> 29#include <linux/seq_file.h>
31#include <linux/smp_lock.h>
32#include <linux/syscalls.h> 30#include <linux/syscalls.h>
33#include <linux/moduleloader.h> 31#include <linux/moduleloader.h>
34#include <linux/interrupt.h> 32#include <linux/interrupt.h>
diff --git a/arch/mips/kernel/scall32-o32.S b/arch/mips/kernel/scall32-o32.S
index fd2a9bb620d6..17202bbe843f 100644
--- a/arch/mips/kernel/scall32-o32.S
+++ b/arch/mips/kernel/scall32-o32.S
@@ -583,6 +583,7 @@ einval: li v0, -ENOSYS
583 sys sys_rt_tgsigqueueinfo 4 583 sys sys_rt_tgsigqueueinfo 4
584 sys sys_perf_event_open 5 584 sys sys_perf_event_open 5
585 sys sys_accept4 4 585 sys sys_accept4 4
586 sys sys_recvmmsg 5
586 .endm 587 .endm
587 588
588 /* We pre-compute the number of _instruction_ bytes needed to 589 /* We pre-compute the number of _instruction_ bytes needed to
diff --git a/arch/mips/kernel/scall64-64.S b/arch/mips/kernel/scall64-64.S
index 18bf7f32c5e4..a8a6c596eb04 100644
--- a/arch/mips/kernel/scall64-64.S
+++ b/arch/mips/kernel/scall64-64.S
@@ -420,4 +420,5 @@ sys_call_table:
420 PTR sys_rt_tgsigqueueinfo 420 PTR sys_rt_tgsigqueueinfo
421 PTR sys_perf_event_open 421 PTR sys_perf_event_open
422 PTR sys_accept4 422 PTR sys_accept4
423 PTR sys_recvmmsg
423 .size sys_call_table,.-sys_call_table 424 .size sys_call_table,.-sys_call_table
diff --git a/arch/mips/kernel/scall64-n32.S b/arch/mips/kernel/scall64-n32.S
index 6ebc07976694..a5297e2a353a 100644
--- a/arch/mips/kernel/scall64-n32.S
+++ b/arch/mips/kernel/scall64-n32.S
@@ -181,7 +181,7 @@ EXPORT(sysn32_call_table)
181 PTR sys_exit 181 PTR sys_exit
182 PTR compat_sys_wait4 182 PTR compat_sys_wait4
183 PTR sys_kill /* 6060 */ 183 PTR sys_kill /* 6060 */
184 PTR sys_32_newuname 184 PTR sys_newuname
185 PTR sys_semget 185 PTR sys_semget
186 PTR sys_semop 186 PTR sys_semop
187 PTR sys_n32_semctl 187 PTR sys_n32_semctl
@@ -272,7 +272,7 @@ EXPORT(sysn32_call_table)
272 PTR sys_munlockall 272 PTR sys_munlockall
273 PTR sys_vhangup /* 6150 */ 273 PTR sys_vhangup /* 6150 */
274 PTR sys_pivot_root 274 PTR sys_pivot_root
275 PTR sys_32_sysctl 275 PTR compat_sys_sysctl
276 PTR sys_prctl 276 PTR sys_prctl
277 PTR compat_sys_adjtimex 277 PTR compat_sys_adjtimex
278 PTR compat_sys_setrlimit /* 6155 */ 278 PTR compat_sys_setrlimit /* 6155 */
@@ -385,7 +385,7 @@ EXPORT(sysn32_call_table)
385 PTR sys_fchmodat 385 PTR sys_fchmodat
386 PTR sys_faccessat 386 PTR sys_faccessat
387 PTR compat_sys_pselect6 387 PTR compat_sys_pselect6
388 PTR sys_ppoll /* 6265 */ 388 PTR compat_sys_ppoll /* 6265 */
389 PTR sys_unshare 389 PTR sys_unshare
390 PTR sys_splice 390 PTR sys_splice
391 PTR sys_sync_file_range 391 PTR sys_sync_file_range
@@ -418,4 +418,5 @@ EXPORT(sysn32_call_table)
418 PTR compat_sys_rt_tgsigqueueinfo /* 5295 */ 418 PTR compat_sys_rt_tgsigqueueinfo /* 5295 */
419 PTR sys_perf_event_open 419 PTR sys_perf_event_open
420 PTR sys_accept4 420 PTR sys_accept4
421 PTR compat_sys_recvmmsg
421 .size sysn32_call_table,.-sysn32_call_table 422 .size sysn32_call_table,.-sysn32_call_table
diff --git a/arch/mips/kernel/scall64-o32.S b/arch/mips/kernel/scall64-o32.S
index 14dde4ca932e..813689ef2384 100644
--- a/arch/mips/kernel/scall64-o32.S
+++ b/arch/mips/kernel/scall64-o32.S
@@ -325,7 +325,7 @@ sys_call_table:
325 PTR sys32_sigreturn 325 PTR sys32_sigreturn
326 PTR sys32_clone /* 4120 */ 326 PTR sys32_clone /* 4120 */
327 PTR sys_setdomainname 327 PTR sys_setdomainname
328 PTR sys_32_newuname 328 PTR sys_newuname
329 PTR sys_ni_syscall /* sys_modify_ldt */ 329 PTR sys_ni_syscall /* sys_modify_ldt */
330 PTR compat_sys_adjtimex 330 PTR compat_sys_adjtimex
331 PTR sys_mprotect /* 4125 */ 331 PTR sys_mprotect /* 4125 */
@@ -356,7 +356,7 @@ sys_call_table:
356 PTR sys_ni_syscall /* 4150 */ 356 PTR sys_ni_syscall /* 4150 */
357 PTR sys_getsid 357 PTR sys_getsid
358 PTR sys_fdatasync 358 PTR sys_fdatasync
359 PTR sys_32_sysctl 359 PTR compat_sys_sysctl
360 PTR sys_mlock 360 PTR sys_mlock
361 PTR sys_munlock /* 4155 */ 361 PTR sys_munlock /* 4155 */
362 PTR sys_mlockall 362 PTR sys_mlockall
@@ -538,4 +538,5 @@ sys_call_table:
538 PTR compat_sys_rt_tgsigqueueinfo 538 PTR compat_sys_rt_tgsigqueueinfo
539 PTR sys_perf_event_open 539 PTR sys_perf_event_open
540 PTR sys_accept4 540 PTR sys_accept4
541 PTR compat_sys_recvmmsg
541 .size sys_call_table,.-sys_call_table 542 .size sys_call_table,.-sys_call_table
diff --git a/arch/mips/kernel/setup.c b/arch/mips/kernel/setup.c
index 2b290d70083e..f9513f9e61d3 100644
--- a/arch/mips/kernel/setup.c
+++ b/arch/mips/kernel/setup.c
@@ -58,8 +58,12 @@ EXPORT_SYMBOL(mips_machtype);
58 58
59struct boot_mem_map boot_mem_map; 59struct boot_mem_map boot_mem_map;
60 60
61static char command_line[CL_SIZE]; 61static char __initdata command_line[COMMAND_LINE_SIZE];
62 char arcs_cmdline[CL_SIZE]=CONFIG_CMDLINE; 62char __initdata arcs_cmdline[COMMAND_LINE_SIZE];
63
64#ifdef CONFIG_CMDLINE_BOOL
65static char __initdata builtin_cmdline[COMMAND_LINE_SIZE] = CONFIG_CMDLINE;
66#endif
63 67
64/* 68/*
65 * mips_io_port_base is the begin of the address space to which x86 style 69 * mips_io_port_base is the begin of the address space to which x86 style
@@ -166,26 +170,8 @@ static unsigned long __init init_initrd(void)
166 * already set up initrd_start and initrd_end. In these cases 170 * already set up initrd_start and initrd_end. In these cases
167 * perfom sanity checks and use them if all looks good. 171 * perfom sanity checks and use them if all looks good.
168 */ 172 */
169 if (!initrd_start || initrd_end <= initrd_start) { 173 if (!initrd_start || initrd_end <= initrd_start)
170#ifdef CONFIG_PROBE_INITRD_HEADER
171 u32 *initrd_header;
172
173 /*
174 * See if initrd has been added to the kernel image by
175 * arch/mips/boot/addinitrd.c. In that case a header is
176 * prepended to initrd and is made up by 8 bytes. The first
177 * word is a magic number and the second one is the size of
178 * initrd. Initrd start must be page aligned in any cases.
179 */
180 initrd_header = __va(PAGE_ALIGN(__pa_symbol(&_end) + 8)) - 8;
181 if (initrd_header[0] != 0x494E5244)
182 goto disable;
183 initrd_start = (unsigned long)(initrd_header + 2);
184 initrd_end = initrd_start + initrd_header[1];
185#else
186 goto disable; 174 goto disable;
187#endif
188 }
189 175
190 if (initrd_start & ~PAGE_MASK) { 176 if (initrd_start & ~PAGE_MASK) {
191 pr_err("initrd start must be page aligned\n"); 177 pr_err("initrd start must be page aligned\n");
@@ -476,8 +462,20 @@ static void __init arch_mem_init(char **cmdline_p)
476 pr_info("Determined physical RAM map:\n"); 462 pr_info("Determined physical RAM map:\n");
477 print_memory_map(); 463 print_memory_map();
478 464
479 strlcpy(command_line, arcs_cmdline, sizeof(command_line)); 465#ifdef CONFIG_CMDLINE_BOOL
480 strlcpy(boot_command_line, command_line, COMMAND_LINE_SIZE); 466#ifdef CONFIG_CMDLINE_OVERRIDE
467 strlcpy(boot_command_line, builtin_cmdline, COMMAND_LINE_SIZE);
468#else
469 if (builtin_cmdline[0]) {
470 strlcat(arcs_cmdline, " ", COMMAND_LINE_SIZE);
471 strlcat(arcs_cmdline, builtin_cmdline, COMMAND_LINE_SIZE);
472 }
473 strlcpy(boot_command_line, arcs_cmdline, COMMAND_LINE_SIZE);
474#endif
475#else
476 strlcpy(boot_command_line, arcs_cmdline, COMMAND_LINE_SIZE);
477#endif
478 strlcpy(command_line, boot_command_line, COMMAND_LINE_SIZE);
481 479
482 *cmdline_p = command_line; 480 *cmdline_p = command_line;
483 481
diff --git a/arch/mips/kernel/signal-common.h b/arch/mips/kernel/signal-common.h
index 6c8e8c4246f7..10263b405981 100644
--- a/arch/mips/kernel/signal-common.h
+++ b/arch/mips/kernel/signal-common.h
@@ -26,11 +26,6 @@
26 */ 26 */
27extern void __user *get_sigframe(struct k_sigaction *ka, struct pt_regs *regs, 27extern void __user *get_sigframe(struct k_sigaction *ka, struct pt_regs *regs,
28 size_t frame_size); 28 size_t frame_size);
29/*
30 * install trampoline code to get back from the sig handler
31 */
32extern int install_sigtramp(unsigned int __user *tramp, unsigned int syscall);
33
34/* Check and clear pending FPU exceptions in saved CSR */ 29/* Check and clear pending FPU exceptions in saved CSR */
35extern int fpcsr_pending(unsigned int __user *fpcsr); 30extern int fpcsr_pending(unsigned int __user *fpcsr);
36 31
diff --git a/arch/mips/kernel/signal.c b/arch/mips/kernel/signal.c
index 6254041b942f..2099d5a4c4b7 100644
--- a/arch/mips/kernel/signal.c
+++ b/arch/mips/kernel/signal.c
@@ -32,50 +32,33 @@
32#include <asm/ucontext.h> 32#include <asm/ucontext.h>
33#include <asm/cpu-features.h> 33#include <asm/cpu-features.h>
34#include <asm/war.h> 34#include <asm/war.h>
35#include <asm/vdso.h>
35 36
36#include "signal-common.h" 37#include "signal-common.h"
37 38
38/* 39static int (*save_fp_context)(struct sigcontext __user *sc);
39 * Horribly complicated - with the bloody RM9000 workarounds enabled 40static int (*restore_fp_context)(struct sigcontext __user *sc);
40 * the signal trampolines is moving to the end of the structure so we can 41
41 * increase the alignment without breaking software compatibility. 42extern asmlinkage int _save_fp_context(struct sigcontext __user *sc);
42 */ 43extern asmlinkage int _restore_fp_context(struct sigcontext __user *sc);
43#if ICACHE_REFILLS_WORKAROUND_WAR == 0 44
45extern asmlinkage int fpu_emulator_save_context(struct sigcontext __user *sc);
46extern asmlinkage int fpu_emulator_restore_context(struct sigcontext __user *sc);
44 47
45struct sigframe { 48struct sigframe {
46 u32 sf_ass[4]; /* argument save space for o32 */ 49 u32 sf_ass[4]; /* argument save space for o32 */
47 u32 sf_code[2]; /* signal trampoline */ 50 u32 sf_pad[2]; /* Was: signal trampoline */
48 struct sigcontext sf_sc; 51 struct sigcontext sf_sc;
49 sigset_t sf_mask; 52 sigset_t sf_mask;
50}; 53};
51 54
52struct rt_sigframe { 55struct rt_sigframe {
53 u32 rs_ass[4]; /* argument save space for o32 */ 56 u32 rs_ass[4]; /* argument save space for o32 */
54 u32 rs_code[2]; /* signal trampoline */ 57 u32 rs_pad[2]; /* Was: signal trampoline */
55 struct siginfo rs_info;
56 struct ucontext rs_uc;
57};
58
59#else
60
61struct sigframe {
62 u32 sf_ass[4]; /* argument save space for o32 */
63 u32 sf_pad[2];
64 struct sigcontext sf_sc; /* hw context */
65 sigset_t sf_mask;
66 u32 sf_code[8] ____cacheline_aligned; /* signal trampoline */
67};
68
69struct rt_sigframe {
70 u32 rs_ass[4]; /* argument save space for o32 */
71 u32 rs_pad[2];
72 struct siginfo rs_info; 58 struct siginfo rs_info;
73 struct ucontext rs_uc; 59 struct ucontext rs_uc;
74 u32 rs_code[8] ____cacheline_aligned; /* signal trampoline */
75}; 60};
76 61
77#endif
78
79/* 62/*
80 * Helper routines 63 * Helper routines
81 */ 64 */
@@ -257,32 +240,6 @@ void __user *get_sigframe(struct k_sigaction *ka, struct pt_regs *regs,
257 return (void __user *)((sp - frame_size) & (ICACHE_REFILLS_WORKAROUND_WAR ? ~(cpu_icache_line_size()-1) : ALMASK)); 240 return (void __user *)((sp - frame_size) & (ICACHE_REFILLS_WORKAROUND_WAR ? ~(cpu_icache_line_size()-1) : ALMASK));
258} 241}
259 242
260int install_sigtramp(unsigned int __user *tramp, unsigned int syscall)
261{
262 int err;
263
264 /*
265 * Set up the return code ...
266 *
267 * li v0, __NR__foo_sigreturn
268 * syscall
269 */
270
271 err = __put_user(0x24020000 + syscall, tramp + 0);
272 err |= __put_user(0x0000000c , tramp + 1);
273 if (ICACHE_REFILLS_WORKAROUND_WAR) {
274 err |= __put_user(0, tramp + 2);
275 err |= __put_user(0, tramp + 3);
276 err |= __put_user(0, tramp + 4);
277 err |= __put_user(0, tramp + 5);
278 err |= __put_user(0, tramp + 6);
279 err |= __put_user(0, tramp + 7);
280 }
281 flush_cache_sigtramp((unsigned long) tramp);
282
283 return err;
284}
285
286/* 243/*
287 * Atomically swap in the new signal mask, and wait for a signal. 244 * Atomically swap in the new signal mask, and wait for a signal.
288 */ 245 */
@@ -475,8 +432,8 @@ badframe:
475} 432}
476 433
477#ifdef CONFIG_TRAD_SIGNALS 434#ifdef CONFIG_TRAD_SIGNALS
478static int setup_frame(struct k_sigaction * ka, struct pt_regs *regs, 435static int setup_frame(void *sig_return, struct k_sigaction *ka,
479 int signr, sigset_t *set) 436 struct pt_regs *regs, int signr, sigset_t *set)
480{ 437{
481 struct sigframe __user *frame; 438 struct sigframe __user *frame;
482 int err = 0; 439 int err = 0;
@@ -485,8 +442,6 @@ static int setup_frame(struct k_sigaction * ka, struct pt_regs *regs,
485 if (!access_ok(VERIFY_WRITE, frame, sizeof (*frame))) 442 if (!access_ok(VERIFY_WRITE, frame, sizeof (*frame)))
486 goto give_sigsegv; 443 goto give_sigsegv;
487 444
488 err |= install_sigtramp(frame->sf_code, __NR_sigreturn);
489
490 err |= setup_sigcontext(regs, &frame->sf_sc); 445 err |= setup_sigcontext(regs, &frame->sf_sc);
491 err |= __copy_to_user(&frame->sf_mask, set, sizeof(*set)); 446 err |= __copy_to_user(&frame->sf_mask, set, sizeof(*set));
492 if (err) 447 if (err)
@@ -506,7 +461,7 @@ static int setup_frame(struct k_sigaction * ka, struct pt_regs *regs,
506 regs->regs[ 5] = 0; 461 regs->regs[ 5] = 0;
507 regs->regs[ 6] = (unsigned long) &frame->sf_sc; 462 regs->regs[ 6] = (unsigned long) &frame->sf_sc;
508 regs->regs[29] = (unsigned long) frame; 463 regs->regs[29] = (unsigned long) frame;
509 regs->regs[31] = (unsigned long) frame->sf_code; 464 regs->regs[31] = (unsigned long) sig_return;
510 regs->cp0_epc = regs->regs[25] = (unsigned long) ka->sa.sa_handler; 465 regs->cp0_epc = regs->regs[25] = (unsigned long) ka->sa.sa_handler;
511 466
512 DEBUGP("SIG deliver (%s:%d): sp=0x%p pc=0x%lx ra=0x%lx\n", 467 DEBUGP("SIG deliver (%s:%d): sp=0x%p pc=0x%lx ra=0x%lx\n",
@@ -520,8 +475,9 @@ give_sigsegv:
520} 475}
521#endif 476#endif
522 477
523static int setup_rt_frame(struct k_sigaction * ka, struct pt_regs *regs, 478static int setup_rt_frame(void *sig_return, struct k_sigaction *ka,
524 int signr, sigset_t *set, siginfo_t *info) 479 struct pt_regs *regs, int signr, sigset_t *set,
480 siginfo_t *info)
525{ 481{
526 struct rt_sigframe __user *frame; 482 struct rt_sigframe __user *frame;
527 int err = 0; 483 int err = 0;
@@ -530,8 +486,6 @@ static int setup_rt_frame(struct k_sigaction * ka, struct pt_regs *regs,
530 if (!access_ok(VERIFY_WRITE, frame, sizeof (*frame))) 486 if (!access_ok(VERIFY_WRITE, frame, sizeof (*frame)))
531 goto give_sigsegv; 487 goto give_sigsegv;
532 488
533 err |= install_sigtramp(frame->rs_code, __NR_rt_sigreturn);
534
535 /* Create siginfo. */ 489 /* Create siginfo. */
536 err |= copy_siginfo_to_user(&frame->rs_info, info); 490 err |= copy_siginfo_to_user(&frame->rs_info, info);
537 491
@@ -564,7 +518,7 @@ static int setup_rt_frame(struct k_sigaction * ka, struct pt_regs *regs,
564 regs->regs[ 5] = (unsigned long) &frame->rs_info; 518 regs->regs[ 5] = (unsigned long) &frame->rs_info;
565 regs->regs[ 6] = (unsigned long) &frame->rs_uc; 519 regs->regs[ 6] = (unsigned long) &frame->rs_uc;
566 regs->regs[29] = (unsigned long) frame; 520 regs->regs[29] = (unsigned long) frame;
567 regs->regs[31] = (unsigned long) frame->rs_code; 521 regs->regs[31] = (unsigned long) sig_return;
568 regs->cp0_epc = regs->regs[25] = (unsigned long) ka->sa.sa_handler; 522 regs->cp0_epc = regs->regs[25] = (unsigned long) ka->sa.sa_handler;
569 523
570 DEBUGP("SIG deliver (%s:%d): sp=0x%p pc=0x%lx ra=0x%lx\n", 524 DEBUGP("SIG deliver (%s:%d): sp=0x%p pc=0x%lx ra=0x%lx\n",
@@ -581,8 +535,11 @@ give_sigsegv:
581struct mips_abi mips_abi = { 535struct mips_abi mips_abi = {
582#ifdef CONFIG_TRAD_SIGNALS 536#ifdef CONFIG_TRAD_SIGNALS
583 .setup_frame = setup_frame, 537 .setup_frame = setup_frame,
538 .signal_return_offset = offsetof(struct mips_vdso, signal_trampoline),
584#endif 539#endif
585 .setup_rt_frame = setup_rt_frame, 540 .setup_rt_frame = setup_rt_frame,
541 .rt_signal_return_offset =
542 offsetof(struct mips_vdso, rt_signal_trampoline),
586 .restart = __NR_restart_syscall 543 .restart = __NR_restart_syscall
587}; 544};
588 545
@@ -590,6 +547,8 @@ static int handle_signal(unsigned long sig, siginfo_t *info,
590 struct k_sigaction *ka, sigset_t *oldset, struct pt_regs *regs) 547 struct k_sigaction *ka, sigset_t *oldset, struct pt_regs *regs)
591{ 548{
592 int ret; 549 int ret;
550 struct mips_abi *abi = current->thread.abi;
551 void *vdso = current->mm->context.vdso;
593 552
594 switch(regs->regs[0]) { 553 switch(regs->regs[0]) {
595 case ERESTART_RESTARTBLOCK: 554 case ERESTART_RESTARTBLOCK:
@@ -610,9 +569,11 @@ static int handle_signal(unsigned long sig, siginfo_t *info,
610 regs->regs[0] = 0; /* Don't deal with this again. */ 569 regs->regs[0] = 0; /* Don't deal with this again. */
611 570
612 if (sig_uses_siginfo(ka)) 571 if (sig_uses_siginfo(ka))
613 ret = current->thread.abi->setup_rt_frame(ka, regs, sig, oldset, info); 572 ret = abi->setup_rt_frame(vdso + abi->rt_signal_return_offset,
573 ka, regs, sig, oldset, info);
614 else 574 else
615 ret = current->thread.abi->setup_frame(ka, regs, sig, oldset); 575 ret = abi->setup_frame(vdso + abi->signal_return_offset,
576 ka, regs, sig, oldset);
616 577
617 spin_lock_irq(&current->sighand->siglock); 578 spin_lock_irq(&current->sighand->siglock);
618 sigorsets(&current->blocked, &current->blocked, &ka->sa.sa_mask); 579 sigorsets(&current->blocked, &current->blocked, &ka->sa.sa_mask);
@@ -709,3 +670,40 @@ asmlinkage void do_notify_resume(struct pt_regs *regs, void *unused,
709 key_replace_session_keyring(); 670 key_replace_session_keyring();
710 } 671 }
711} 672}
673
674#ifdef CONFIG_SMP
675static int smp_save_fp_context(struct sigcontext __user *sc)
676{
677 return raw_cpu_has_fpu
678 ? _save_fp_context(sc)
679 : fpu_emulator_save_context(sc);
680}
681
682static int smp_restore_fp_context(struct sigcontext __user *sc)
683{
684 return raw_cpu_has_fpu
685 ? _restore_fp_context(sc)
686 : fpu_emulator_restore_context(sc);
687}
688#endif
689
690static int signal_setup(void)
691{
692#ifdef CONFIG_SMP
693 /* For now just do the cpu_has_fpu check when the functions are invoked */
694 save_fp_context = smp_save_fp_context;
695 restore_fp_context = smp_restore_fp_context;
696#else
697 if (cpu_has_fpu) {
698 save_fp_context = _save_fp_context;
699 restore_fp_context = _restore_fp_context;
700 } else {
701 save_fp_context = fpu_emulator_save_context;
702 restore_fp_context = fpu_emulator_restore_context;
703 }
704#endif
705
706 return 0;
707}
708
709arch_initcall(signal_setup);
diff --git a/arch/mips/kernel/signal32.c b/arch/mips/kernel/signal32.c
index 2e74075ac0ca..a0ed0e052b2e 100644
--- a/arch/mips/kernel/signal32.c
+++ b/arch/mips/kernel/signal32.c
@@ -32,14 +32,22 @@
32#include <asm/system.h> 32#include <asm/system.h>
33#include <asm/fpu.h> 33#include <asm/fpu.h>
34#include <asm/war.h> 34#include <asm/war.h>
35#include <asm/vdso.h>
35 36
36#include "signal-common.h" 37#include "signal-common.h"
37 38
39static int (*save_fp_context32)(struct sigcontext32 __user *sc);
40static int (*restore_fp_context32)(struct sigcontext32 __user *sc);
41
42extern asmlinkage int _save_fp_context32(struct sigcontext32 __user *sc);
43extern asmlinkage int _restore_fp_context32(struct sigcontext32 __user *sc);
44
45extern asmlinkage int fpu_emulator_save_context32(struct sigcontext32 __user *sc);
46extern asmlinkage int fpu_emulator_restore_context32(struct sigcontext32 __user *sc);
47
38/* 48/*
39 * Including <asm/unistd.h> would give use the 64-bit syscall numbers ... 49 * Including <asm/unistd.h> would give use the 64-bit syscall numbers ...
40 */ 50 */
41#define __NR_O32_sigreturn 4119
42#define __NR_O32_rt_sigreturn 4193
43#define __NR_O32_restart_syscall 4253 51#define __NR_O32_restart_syscall 4253
44 52
45/* 32-bit compatibility types */ 53/* 32-bit compatibility types */
@@ -68,47 +76,20 @@ struct ucontext32 {
68 compat_sigset_t uc_sigmask; /* mask last for extensibility */ 76 compat_sigset_t uc_sigmask; /* mask last for extensibility */
69}; 77};
70 78
71/*
72 * Horribly complicated - with the bloody RM9000 workarounds enabled
73 * the signal trampolines is moving to the end of the structure so we can
74 * increase the alignment without breaking software compatibility.
75 */
76#if ICACHE_REFILLS_WORKAROUND_WAR == 0
77
78struct sigframe32 { 79struct sigframe32 {
79 u32 sf_ass[4]; /* argument save space for o32 */ 80 u32 sf_ass[4]; /* argument save space for o32 */
80 u32 sf_code[2]; /* signal trampoline */ 81 u32 sf_pad[2]; /* Was: signal trampoline */
81 struct sigcontext32 sf_sc; 82 struct sigcontext32 sf_sc;
82 compat_sigset_t sf_mask; 83 compat_sigset_t sf_mask;
83}; 84};
84 85
85struct rt_sigframe32 { 86struct rt_sigframe32 {
86 u32 rs_ass[4]; /* argument save space for o32 */ 87 u32 rs_ass[4]; /* argument save space for o32 */
87 u32 rs_code[2]; /* signal trampoline */ 88 u32 rs_pad[2]; /* Was: signal trampoline */
88 compat_siginfo_t rs_info;
89 struct ucontext32 rs_uc;
90};
91
92#else /* ICACHE_REFILLS_WORKAROUND_WAR */
93
94struct sigframe32 {
95 u32 sf_ass[4]; /* argument save space for o32 */
96 u32 sf_pad[2];
97 struct sigcontext32 sf_sc; /* hw context */
98 compat_sigset_t sf_mask;
99 u32 sf_code[8] ____cacheline_aligned; /* signal trampoline */
100};
101
102struct rt_sigframe32 {
103 u32 rs_ass[4]; /* argument save space for o32 */
104 u32 rs_pad[2];
105 compat_siginfo_t rs_info; 89 compat_siginfo_t rs_info;
106 struct ucontext32 rs_uc; 90 struct ucontext32 rs_uc;
107 u32 rs_code[8] __attribute__((aligned(32))); /* signal trampoline */
108}; 91};
109 92
110#endif /* !ICACHE_REFILLS_WORKAROUND_WAR */
111
112/* 93/*
113 * sigcontext handlers 94 * sigcontext handlers
114 */ 95 */
@@ -589,8 +570,8 @@ badframe:
589 force_sig(SIGSEGV, current); 570 force_sig(SIGSEGV, current);
590} 571}
591 572
592static int setup_frame_32(struct k_sigaction * ka, struct pt_regs *regs, 573static int setup_frame_32(void *sig_return, struct k_sigaction *ka,
593 int signr, sigset_t *set) 574 struct pt_regs *regs, int signr, sigset_t *set)
594{ 575{
595 struct sigframe32 __user *frame; 576 struct sigframe32 __user *frame;
596 int err = 0; 577 int err = 0;
@@ -599,8 +580,6 @@ static int setup_frame_32(struct k_sigaction * ka, struct pt_regs *regs,
599 if (!access_ok(VERIFY_WRITE, frame, sizeof (*frame))) 580 if (!access_ok(VERIFY_WRITE, frame, sizeof (*frame)))
600 goto give_sigsegv; 581 goto give_sigsegv;
601 582
602 err |= install_sigtramp(frame->sf_code, __NR_O32_sigreturn);
603
604 err |= setup_sigcontext32(regs, &frame->sf_sc); 583 err |= setup_sigcontext32(regs, &frame->sf_sc);
605 err |= __copy_conv_sigset_to_user(&frame->sf_mask, set); 584 err |= __copy_conv_sigset_to_user(&frame->sf_mask, set);
606 585
@@ -621,7 +600,7 @@ static int setup_frame_32(struct k_sigaction * ka, struct pt_regs *regs,
621 regs->regs[ 5] = 0; 600 regs->regs[ 5] = 0;
622 regs->regs[ 6] = (unsigned long) &frame->sf_sc; 601 regs->regs[ 6] = (unsigned long) &frame->sf_sc;
623 regs->regs[29] = (unsigned long) frame; 602 regs->regs[29] = (unsigned long) frame;
624 regs->regs[31] = (unsigned long) frame->sf_code; 603 regs->regs[31] = (unsigned long) sig_return;
625 regs->cp0_epc = regs->regs[25] = (unsigned long) ka->sa.sa_handler; 604 regs->cp0_epc = regs->regs[25] = (unsigned long) ka->sa.sa_handler;
626 605
627 DEBUGP("SIG deliver (%s:%d): sp=0x%p pc=0x%lx ra=0x%lx\n", 606 DEBUGP("SIG deliver (%s:%d): sp=0x%p pc=0x%lx ra=0x%lx\n",
@@ -635,8 +614,9 @@ give_sigsegv:
635 return -EFAULT; 614 return -EFAULT;
636} 615}
637 616
638static int setup_rt_frame_32(struct k_sigaction * ka, struct pt_regs *regs, 617static int setup_rt_frame_32(void *sig_return, struct k_sigaction *ka,
639 int signr, sigset_t *set, siginfo_t *info) 618 struct pt_regs *regs, int signr, sigset_t *set,
619 siginfo_t *info)
640{ 620{
641 struct rt_sigframe32 __user *frame; 621 struct rt_sigframe32 __user *frame;
642 int err = 0; 622 int err = 0;
@@ -646,8 +626,6 @@ static int setup_rt_frame_32(struct k_sigaction * ka, struct pt_regs *regs,
646 if (!access_ok(VERIFY_WRITE, frame, sizeof (*frame))) 626 if (!access_ok(VERIFY_WRITE, frame, sizeof (*frame)))
647 goto give_sigsegv; 627 goto give_sigsegv;
648 628
649 err |= install_sigtramp(frame->rs_code, __NR_O32_rt_sigreturn);
650
651 /* Convert (siginfo_t -> compat_siginfo_t) and copy to user. */ 629 /* Convert (siginfo_t -> compat_siginfo_t) and copy to user. */
652 err |= copy_siginfo_to_user32(&frame->rs_info, info); 630 err |= copy_siginfo_to_user32(&frame->rs_info, info);
653 631
@@ -681,7 +659,7 @@ static int setup_rt_frame_32(struct k_sigaction * ka, struct pt_regs *regs,
681 regs->regs[ 5] = (unsigned long) &frame->rs_info; 659 regs->regs[ 5] = (unsigned long) &frame->rs_info;
682 regs->regs[ 6] = (unsigned long) &frame->rs_uc; 660 regs->regs[ 6] = (unsigned long) &frame->rs_uc;
683 regs->regs[29] = (unsigned long) frame; 661 regs->regs[29] = (unsigned long) frame;
684 regs->regs[31] = (unsigned long) frame->rs_code; 662 regs->regs[31] = (unsigned long) sig_return;
685 regs->cp0_epc = regs->regs[25] = (unsigned long) ka->sa.sa_handler; 663 regs->cp0_epc = regs->regs[25] = (unsigned long) ka->sa.sa_handler;
686 664
687 DEBUGP("SIG deliver (%s:%d): sp=0x%p pc=0x%lx ra=0x%lx\n", 665 DEBUGP("SIG deliver (%s:%d): sp=0x%p pc=0x%lx ra=0x%lx\n",
@@ -700,7 +678,11 @@ give_sigsegv:
700 */ 678 */
701struct mips_abi mips_abi_32 = { 679struct mips_abi mips_abi_32 = {
702 .setup_frame = setup_frame_32, 680 .setup_frame = setup_frame_32,
681 .signal_return_offset =
682 offsetof(struct mips_vdso, o32_signal_trampoline),
703 .setup_rt_frame = setup_rt_frame_32, 683 .setup_rt_frame = setup_rt_frame_32,
684 .rt_signal_return_offset =
685 offsetof(struct mips_vdso, o32_rt_signal_trampoline),
704 .restart = __NR_O32_restart_syscall 686 .restart = __NR_O32_restart_syscall
705}; 687};
706 688
@@ -828,3 +810,18 @@ SYSCALL_DEFINE5(32_waitid, int, which, compat_pid_t, pid,
828 info.si_code |= __SI_CHLD; 810 info.si_code |= __SI_CHLD;
829 return copy_siginfo_to_user32(uinfo, &info); 811 return copy_siginfo_to_user32(uinfo, &info);
830} 812}
813
814static int signal32_init(void)
815{
816 if (cpu_has_fpu) {
817 save_fp_context32 = _save_fp_context32;
818 restore_fp_context32 = _restore_fp_context32;
819 } else {
820 save_fp_context32 = fpu_emulator_save_context32;
821 restore_fp_context32 = fpu_emulator_restore_context32;
822 }
823
824 return 0;
825}
826
827arch_initcall(signal32_init);
diff --git a/arch/mips/kernel/signal_n32.c b/arch/mips/kernel/signal_n32.c
index bb277e82d421..2c5df818c65a 100644
--- a/arch/mips/kernel/signal_n32.c
+++ b/arch/mips/kernel/signal_n32.c
@@ -39,13 +39,13 @@
39#include <asm/fpu.h> 39#include <asm/fpu.h>
40#include <asm/cpu-features.h> 40#include <asm/cpu-features.h>
41#include <asm/war.h> 41#include <asm/war.h>
42#include <asm/vdso.h>
42 43
43#include "signal-common.h" 44#include "signal-common.h"
44 45
45/* 46/*
46 * Including <asm/unistd.h> would give use the 64-bit syscall numbers ... 47 * Including <asm/unistd.h> would give use the 64-bit syscall numbers ...
47 */ 48 */
48#define __NR_N32_rt_sigreturn 6211
49#define __NR_N32_restart_syscall 6214 49#define __NR_N32_restart_syscall 6214
50 50
51extern int setup_sigcontext(struct pt_regs *, struct sigcontext __user *); 51extern int setup_sigcontext(struct pt_regs *, struct sigcontext __user *);
@@ -67,27 +67,13 @@ struct ucontextn32 {
67 compat_sigset_t uc_sigmask; /* mask last for extensibility */ 67 compat_sigset_t uc_sigmask; /* mask last for extensibility */
68}; 68};
69 69
70#if ICACHE_REFILLS_WORKAROUND_WAR == 0
71
72struct rt_sigframe_n32 {
73 u32 rs_ass[4]; /* argument save space for o32 */
74 u32 rs_code[2]; /* signal trampoline */
75 struct compat_siginfo rs_info;
76 struct ucontextn32 rs_uc;
77};
78
79#else /* ICACHE_REFILLS_WORKAROUND_WAR */
80
81struct rt_sigframe_n32 { 70struct rt_sigframe_n32 {
82 u32 rs_ass[4]; /* argument save space for o32 */ 71 u32 rs_ass[4]; /* argument save space for o32 */
83 u32 rs_pad[2]; 72 u32 rs_pad[2]; /* Was: signal trampoline */
84 struct compat_siginfo rs_info; 73 struct compat_siginfo rs_info;
85 struct ucontextn32 rs_uc; 74 struct ucontextn32 rs_uc;
86 u32 rs_code[8] ____cacheline_aligned; /* signal trampoline */
87}; 75};
88 76
89#endif /* !ICACHE_REFILLS_WORKAROUND_WAR */
90
91extern void sigset_from_compat(sigset_t *set, compat_sigset_t *compat); 77extern void sigset_from_compat(sigset_t *set, compat_sigset_t *compat);
92 78
93asmlinkage int sysn32_rt_sigsuspend(nabi_no_regargs struct pt_regs regs) 79asmlinkage int sysn32_rt_sigsuspend(nabi_no_regargs struct pt_regs regs)
@@ -173,7 +159,7 @@ badframe:
173 force_sig(SIGSEGV, current); 159 force_sig(SIGSEGV, current);
174} 160}
175 161
176static int setup_rt_frame_n32(struct k_sigaction * ka, 162static int setup_rt_frame_n32(void *sig_return, struct k_sigaction *ka,
177 struct pt_regs *regs, int signr, sigset_t *set, siginfo_t *info) 163 struct pt_regs *regs, int signr, sigset_t *set, siginfo_t *info)
178{ 164{
179 struct rt_sigframe_n32 __user *frame; 165 struct rt_sigframe_n32 __user *frame;
@@ -184,8 +170,6 @@ static int setup_rt_frame_n32(struct k_sigaction * ka,
184 if (!access_ok(VERIFY_WRITE, frame, sizeof (*frame))) 170 if (!access_ok(VERIFY_WRITE, frame, sizeof (*frame)))
185 goto give_sigsegv; 171 goto give_sigsegv;
186 172
187 install_sigtramp(frame->rs_code, __NR_N32_rt_sigreturn);
188
189 /* Create siginfo. */ 173 /* Create siginfo. */
190 err |= copy_siginfo_to_user32(&frame->rs_info, info); 174 err |= copy_siginfo_to_user32(&frame->rs_info, info);
191 175
@@ -219,7 +203,7 @@ static int setup_rt_frame_n32(struct k_sigaction * ka,
219 regs->regs[ 5] = (unsigned long) &frame->rs_info; 203 regs->regs[ 5] = (unsigned long) &frame->rs_info;
220 regs->regs[ 6] = (unsigned long) &frame->rs_uc; 204 regs->regs[ 6] = (unsigned long) &frame->rs_uc;
221 regs->regs[29] = (unsigned long) frame; 205 regs->regs[29] = (unsigned long) frame;
222 regs->regs[31] = (unsigned long) frame->rs_code; 206 regs->regs[31] = (unsigned long) sig_return;
223 regs->cp0_epc = regs->regs[25] = (unsigned long) ka->sa.sa_handler; 207 regs->cp0_epc = regs->regs[25] = (unsigned long) ka->sa.sa_handler;
224 208
225 DEBUGP("SIG deliver (%s:%d): sp=0x%p pc=0x%lx ra=0x%lx\n", 209 DEBUGP("SIG deliver (%s:%d): sp=0x%p pc=0x%lx ra=0x%lx\n",
@@ -235,5 +219,7 @@ give_sigsegv:
235 219
236struct mips_abi mips_abi_n32 = { 220struct mips_abi mips_abi_n32 = {
237 .setup_rt_frame = setup_rt_frame_n32, 221 .setup_rt_frame = setup_rt_frame_n32,
222 .rt_signal_return_offset =
223 offsetof(struct mips_vdso, n32_rt_signal_trampoline),
238 .restart = __NR_N32_restart_syscall 224 .restart = __NR_N32_restart_syscall
239}; 225};
diff --git a/arch/mips/kernel/smp.c b/arch/mips/kernel/smp.c
index e72e6844d134..6cdca1956b77 100644
--- a/arch/mips/kernel/smp.c
+++ b/arch/mips/kernel/smp.c
@@ -32,6 +32,7 @@
32#include <linux/cpumask.h> 32#include <linux/cpumask.h>
33#include <linux/cpu.h> 33#include <linux/cpu.h>
34#include <linux/err.h> 34#include <linux/err.h>
35#include <linux/ftrace.h>
35 36
36#include <asm/atomic.h> 37#include <asm/atomic.h>
37#include <asm/cpu.h> 38#include <asm/cpu.h>
@@ -130,7 +131,7 @@ asmlinkage __cpuinit void start_secondary(void)
130/* 131/*
131 * Call into both interrupt handlers, as we share the IPI for them 132 * Call into both interrupt handlers, as we share the IPI for them
132 */ 133 */
133void smp_call_function_interrupt(void) 134void __irq_entry smp_call_function_interrupt(void)
134{ 135{
135 irq_enter(); 136 irq_enter();
136 generic_smp_call_function_single_interrupt(); 137 generic_smp_call_function_single_interrupt();
diff --git a/arch/mips/kernel/smtc.c b/arch/mips/kernel/smtc.c
index 24630fd8ef60..a95dea5459c4 100644
--- a/arch/mips/kernel/smtc.c
+++ b/arch/mips/kernel/smtc.c
@@ -25,6 +25,8 @@
25#include <linux/interrupt.h> 25#include <linux/interrupt.h>
26#include <linux/kernel_stat.h> 26#include <linux/kernel_stat.h>
27#include <linux/module.h> 27#include <linux/module.h>
28#include <linux/ftrace.h>
29#include <linux/slab.h>
28 30
29#include <asm/cpu.h> 31#include <asm/cpu.h>
30#include <asm/processor.h> 32#include <asm/processor.h>
@@ -180,7 +182,7 @@ static int vpemask[2][8] = {
180 {0, 0, 0, 0, 0, 0, 0, 1} 182 {0, 0, 0, 0, 0, 0, 0, 1}
181}; 183};
182int tcnoprog[NR_CPUS]; 184int tcnoprog[NR_CPUS];
183static atomic_t idle_hook_initialized = {0}; 185static atomic_t idle_hook_initialized = ATOMIC_INIT(0);
184static int clock_hang_reported[NR_CPUS]; 186static int clock_hang_reported[NR_CPUS];
185 187
186#endif /* CONFIG_SMTC_IDLE_HOOK_DEBUG */ 188#endif /* CONFIG_SMTC_IDLE_HOOK_DEBUG */
@@ -939,23 +941,29 @@ static void ipi_call_interrupt(void)
939 941
940DECLARE_PER_CPU(struct clock_event_device, mips_clockevent_device); 942DECLARE_PER_CPU(struct clock_event_device, mips_clockevent_device);
941 943
942void ipi_decode(struct smtc_ipi *pipi) 944static void __irq_entry smtc_clock_tick_interrupt(void)
943{ 945{
944 unsigned int cpu = smp_processor_id(); 946 unsigned int cpu = smp_processor_id();
945 struct clock_event_device *cd; 947 struct clock_event_device *cd;
948 int irq = MIPS_CPU_IRQ_BASE + 1;
949
950 irq_enter();
951 kstat_incr_irqs_this_cpu(irq, irq_to_desc(irq));
952 cd = &per_cpu(mips_clockevent_device, cpu);
953 cd->event_handler(cd);
954 irq_exit();
955}
956
957void ipi_decode(struct smtc_ipi *pipi)
958{
946 void *arg_copy = pipi->arg; 959 void *arg_copy = pipi->arg;
947 int type_copy = pipi->type; 960 int type_copy = pipi->type;
948 int irq = MIPS_CPU_IRQ_BASE + 1;
949 961
950 smtc_ipi_nq(&freeIPIq, pipi); 962 smtc_ipi_nq(&freeIPIq, pipi);
951 963
952 switch (type_copy) { 964 switch (type_copy) {
953 case SMTC_CLOCK_TICK: 965 case SMTC_CLOCK_TICK:
954 irq_enter(); 966 smtc_clock_tick_interrupt();
955 kstat_incr_irqs_this_cpu(irq, irq_to_desc(irq));
956 cd = &per_cpu(mips_clockevent_device, cpu);
957 cd->event_handler(cd);
958 irq_exit();
959 break; 967 break;
960 968
961 case LINUX_SMP_IPI: 969 case LINUX_SMP_IPI:
@@ -1331,7 +1339,7 @@ void smtc_get_new_mmu_context(struct mm_struct *mm, unsigned long cpu)
1331 if (!((asid += ASID_INC) & ASID_MASK) ) { 1339 if (!((asid += ASID_INC) & ASID_MASK) ) {
1332 if (cpu_has_vtag_icache) 1340 if (cpu_has_vtag_icache)
1333 flush_icache_all(); 1341 flush_icache_all();
1334 /* Traverse all online CPUs (hack requires contigous range) */ 1342 /* Traverse all online CPUs (hack requires contiguous range) */
1335 for_each_online_cpu(i) { 1343 for_each_online_cpu(i) {
1336 /* 1344 /*
1337 * We don't need to worry about our own CPU, nor those of 1345 * We don't need to worry about our own CPU, nor those of
diff --git a/arch/mips/kernel/spinlock_test.c b/arch/mips/kernel/spinlock_test.c
new file mode 100644
index 000000000000..da61134dfc53
--- /dev/null
+++ b/arch/mips/kernel/spinlock_test.c
@@ -0,0 +1,141 @@
1#include <linux/init.h>
2#include <linux/kthread.h>
3#include <linux/hrtimer.h>
4#include <linux/fs.h>
5#include <linux/debugfs.h>
6#include <linux/module.h>
7#include <linux/spinlock.h>
8
9
10static int ss_get(void *data, u64 *val)
11{
12 ktime_t start, finish;
13 int loops;
14 int cont;
15 DEFINE_RAW_SPINLOCK(ss_spin);
16
17 loops = 1000000;
18 cont = 1;
19
20 start = ktime_get();
21
22 while (cont) {
23 raw_spin_lock(&ss_spin);
24 loops--;
25 if (loops == 0)
26 cont = 0;
27 raw_spin_unlock(&ss_spin);
28 }
29
30 finish = ktime_get();
31
32 *val = ktime_us_delta(finish, start);
33
34 return 0;
35}
36
37DEFINE_SIMPLE_ATTRIBUTE(fops_ss, ss_get, NULL, "%llu\n");
38
39
40
41struct spin_multi_state {
42 raw_spinlock_t lock;
43 atomic_t start_wait;
44 atomic_t enter_wait;
45 atomic_t exit_wait;
46 int loops;
47};
48
49struct spin_multi_per_thread {
50 struct spin_multi_state *state;
51 ktime_t start;
52};
53
54static int multi_other(void *data)
55{
56 int loops;
57 int cont;
58 struct spin_multi_per_thread *pt = data;
59 struct spin_multi_state *s = pt->state;
60
61 loops = s->loops;
62 cont = 1;
63
64 atomic_dec(&s->enter_wait);
65
66 while (atomic_read(&s->enter_wait))
67 ; /* spin */
68
69 pt->start = ktime_get();
70
71 atomic_dec(&s->start_wait);
72
73 while (atomic_read(&s->start_wait))
74 ; /* spin */
75
76 while (cont) {
77 raw_spin_lock(&s->lock);
78 loops--;
79 if (loops == 0)
80 cont = 0;
81 raw_spin_unlock(&s->lock);
82 }
83
84 atomic_dec(&s->exit_wait);
85 while (atomic_read(&s->exit_wait))
86 ; /* spin */
87 return 0;
88}
89
90static int multi_get(void *data, u64 *val)
91{
92 ktime_t finish;
93 struct spin_multi_state ms;
94 struct spin_multi_per_thread t1, t2;
95
96 ms.lock = __RAW_SPIN_LOCK_UNLOCKED("multi_get");
97 ms.loops = 1000000;
98
99 atomic_set(&ms.start_wait, 2);
100 atomic_set(&ms.enter_wait, 2);
101 atomic_set(&ms.exit_wait, 2);
102 t1.state = &ms;
103 t2.state = &ms;
104
105 kthread_run(multi_other, &t2, "multi_get");
106
107 multi_other(&t1);
108
109 finish = ktime_get();
110
111 *val = ktime_us_delta(finish, t1.start);
112
113 return 0;
114}
115
116DEFINE_SIMPLE_ATTRIBUTE(fops_multi, multi_get, NULL, "%llu\n");
117
118
119extern struct dentry *mips_debugfs_dir;
120static int __init spinlock_test(void)
121{
122 struct dentry *d;
123
124 if (!mips_debugfs_dir)
125 return -ENODEV;
126
127 d = debugfs_create_file("spin_single", S_IRUGO,
128 mips_debugfs_dir, NULL,
129 &fops_ss);
130 if (!d)
131 return -ENOMEM;
132
133 d = debugfs_create_file("spin_multi", S_IRUGO,
134 mips_debugfs_dir, NULL,
135 &fops_multi);
136 if (!d)
137 return -ENOMEM;
138
139 return 0;
140}
141device_initcall(spinlock_test);
diff --git a/arch/mips/kernel/syscall.c b/arch/mips/kernel/syscall.c
index fe0d79805603..dd81b0f87518 100644
--- a/arch/mips/kernel/syscall.c
+++ b/arch/mips/kernel/syscall.c
@@ -19,7 +19,6 @@
19#include <linux/string.h> 19#include <linux/string.h>
20#include <linux/syscalls.h> 20#include <linux/syscalls.h>
21#include <linux/file.h> 21#include <linux/file.h>
22#include <linux/slab.h>
23#include <linux/utsname.h> 22#include <linux/utsname.h>
24#include <linux/unistd.h> 23#include <linux/unistd.h>
25#include <linux/sem.h> 24#include <linux/sem.h>
@@ -29,6 +28,7 @@
29#include <linux/module.h> 28#include <linux/module.h>
30#include <linux/ipc.h> 29#include <linux/ipc.h>
31#include <linux/uaccess.h> 30#include <linux/uaccess.h>
31#include <linux/slab.h>
32 32
33#include <asm/asm.h> 33#include <asm/asm.h>
34#include <asm/branch.h> 34#include <asm/branch.h>
@@ -79,7 +79,11 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr,
79 int do_color_align; 79 int do_color_align;
80 unsigned long task_size; 80 unsigned long task_size;
81 81
82 task_size = STACK_TOP; 82#ifdef CONFIG_32BIT
83 task_size = TASK_SIZE;
84#else /* Must be CONFIG_64BIT*/
85 task_size = test_thread_flag(TIF_32BIT_ADDR) ? TASK_SIZE32 : TASK_SIZE;
86#endif
83 87
84 if (len > task_size) 88 if (len > task_size)
85 return -ENOMEM; 89 return -ENOMEM;
@@ -93,7 +97,8 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr,
93 * We do not accept a shared mapping if it would violate 97 * We do not accept a shared mapping if it would violate
94 * cache aliasing constraints. 98 * cache aliasing constraints.
95 */ 99 */
96 if ((flags & MAP_SHARED) && (addr & shm_align_mask)) 100 if ((flags & MAP_SHARED) &&
101 ((addr - (pgoff << PAGE_SHIFT)) & shm_align_mask))
97 return -EINVAL; 102 return -EINVAL;
98 return addr; 103 return addr;
99 } 104 }
@@ -129,31 +134,6 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr,
129 } 134 }
130} 135}
131 136
132/* common code for old and new mmaps */
133static inline unsigned long
134do_mmap2(unsigned long addr, unsigned long len, unsigned long prot,
135 unsigned long flags, unsigned long fd, unsigned long pgoff)
136{
137 unsigned long error = -EBADF;
138 struct file * file = NULL;
139
140 flags &= ~(MAP_EXECUTABLE | MAP_DENYWRITE);
141 if (!(flags & MAP_ANONYMOUS)) {
142 file = fget(fd);
143 if (!file)
144 goto out;
145 }
146
147 down_write(&current->mm->mmap_sem);
148 error = do_mmap_pgoff(file, addr, len, prot, flags, pgoff);
149 up_write(&current->mm->mmap_sem);
150
151 if (file)
152 fput(file);
153out:
154 return error;
155}
156
157SYSCALL_DEFINE6(mips_mmap, unsigned long, addr, unsigned long, len, 137SYSCALL_DEFINE6(mips_mmap, unsigned long, addr, unsigned long, len,
158 unsigned long, prot, unsigned long, flags, unsigned long, 138 unsigned long, prot, unsigned long, flags, unsigned long,
159 fd, off_t, offset) 139 fd, off_t, offset)
@@ -164,7 +144,7 @@ SYSCALL_DEFINE6(mips_mmap, unsigned long, addr, unsigned long, len,
164 if (offset & ~PAGE_MASK) 144 if (offset & ~PAGE_MASK)
165 goto out; 145 goto out;
166 146
167 result = do_mmap2(addr, len, prot, flags, fd, offset >> PAGE_SHIFT); 147 result = sys_mmap_pgoff(addr, len, prot, flags, fd, offset >> PAGE_SHIFT);
168 148
169out: 149out:
170 return result; 150 return result;
@@ -177,7 +157,7 @@ SYSCALL_DEFINE6(mips_mmap2, unsigned long, addr, unsigned long, len,
177 if (pgoff & (~PAGE_MASK >> 12)) 157 if (pgoff & (~PAGE_MASK >> 12))
178 return -EINVAL; 158 return -EINVAL;
179 159
180 return do_mmap2(addr, len, prot, flags, fd, pgoff >> (PAGE_SHIFT-12)); 160 return sys_mmap_pgoff(addr, len, prot, flags, fd, pgoff >> (PAGE_SHIFT-12));
181} 161}
182 162
183save_static_function(sys_fork); 163save_static_function(sys_fork);
@@ -239,48 +219,6 @@ out:
239 return error; 219 return error;
240} 220}
241 221
242/*
243 * Compacrapability ...
244 */
245SYSCALL_DEFINE1(uname, struct old_utsname __user *, name)
246{
247 if (name && !copy_to_user(name, utsname(), sizeof (*name)))
248 return 0;
249 return -EFAULT;
250}
251
252/*
253 * Compacrapability ...
254 */
255SYSCALL_DEFINE1(olduname, struct oldold_utsname __user *, name)
256{
257 int error;
258
259 if (!name)
260 return -EFAULT;
261 if (!access_ok(VERIFY_WRITE, name, sizeof(struct oldold_utsname)))
262 return -EFAULT;
263
264 error = __copy_to_user(&name->sysname, &utsname()->sysname,
265 __OLD_UTS_LEN);
266 error -= __put_user(0, name->sysname + __OLD_UTS_LEN);
267 error -= __copy_to_user(&name->nodename, &utsname()->nodename,
268 __OLD_UTS_LEN);
269 error -= __put_user(0, name->nodename + __OLD_UTS_LEN);
270 error -= __copy_to_user(&name->release, &utsname()->release,
271 __OLD_UTS_LEN);
272 error -= __put_user(0, name->release + __OLD_UTS_LEN);
273 error -= __copy_to_user(&name->version, &utsname()->version,
274 __OLD_UTS_LEN);
275 error -= __put_user(0, name->version + __OLD_UTS_LEN);
276 error -= __copy_to_user(&name->machine, &utsname()->machine,
277 __OLD_UTS_LEN);
278 error = __put_user(0, name->machine + __OLD_UTS_LEN);
279 error = error ? -EFAULT : 0;
280
281 return error;
282}
283
284SYSCALL_DEFINE1(set_thread_area, unsigned long, addr) 222SYSCALL_DEFINE1(set_thread_area, unsigned long, addr)
285{ 223{
286 struct thread_info *ti = task_thread_info(current); 224 struct thread_info *ti = task_thread_info(current);
@@ -431,94 +369,6 @@ _sys_sysmips(nabi_no_regargs struct pt_regs regs)
431} 369}
432 370
433/* 371/*
434 * sys_ipc() is the de-multiplexer for the SysV IPC calls..
435 *
436 * This is really horribly ugly.
437 */
438SYSCALL_DEFINE6(ipc, unsigned int, call, int, first, int, second,
439 unsigned long, third, void __user *, ptr, long, fifth)
440{
441 int version, ret;
442
443 version = call >> 16; /* hack for backward compatibility */
444 call &= 0xffff;
445
446 switch (call) {
447 case SEMOP:
448 return sys_semtimedop(first, (struct sembuf __user *)ptr,
449 second, NULL);
450 case SEMTIMEDOP:
451 return sys_semtimedop(first, (struct sembuf __user *)ptr,
452 second,
453 (const struct timespec __user *)fifth);
454 case SEMGET:
455 return sys_semget(first, second, third);
456 case SEMCTL: {
457 union semun fourth;
458 if (!ptr)
459 return -EINVAL;
460 if (get_user(fourth.__pad, (void __user *__user *) ptr))
461 return -EFAULT;
462 return sys_semctl(first, second, third, fourth);
463 }
464
465 case MSGSND:
466 return sys_msgsnd(first, (struct msgbuf __user *) ptr,
467 second, third);
468 case MSGRCV:
469 switch (version) {
470 case 0: {
471 struct ipc_kludge tmp;
472 if (!ptr)
473 return -EINVAL;
474
475 if (copy_from_user(&tmp,
476 (struct ipc_kludge __user *) ptr,
477 sizeof(tmp)))
478 return -EFAULT;
479 return sys_msgrcv(first, tmp.msgp, second,
480 tmp.msgtyp, third);
481 }
482 default:
483 return sys_msgrcv(first,
484 (struct msgbuf __user *) ptr,
485 second, fifth, third);
486 }
487 case MSGGET:
488 return sys_msgget((key_t) first, second);
489 case MSGCTL:
490 return sys_msgctl(first, second,
491 (struct msqid_ds __user *) ptr);
492
493 case SHMAT:
494 switch (version) {
495 default: {
496 unsigned long raddr;
497 ret = do_shmat(first, (char __user *) ptr, second,
498 &raddr);
499 if (ret)
500 return ret;
501 return put_user(raddr, (unsigned long __user *) third);
502 }
503 case 1: /* iBCS2 emulator entry point */
504 if (!segment_eq(get_fs(), get_ds()))
505 return -EINVAL;
506 return do_shmat(first, (char __user *) ptr, second,
507 (unsigned long *) third);
508 }
509 case SHMDT:
510 return sys_shmdt((char __user *)ptr);
511 case SHMGET:
512 return sys_shmget(first, second, third);
513 case SHMCTL:
514 return sys_shmctl(first, second,
515 (struct shmid_ds __user *) ptr);
516 default:
517 return -ENOSYS;
518 }
519}
520
521/*
522 * No implemented yet ... 372 * No implemented yet ...
523 */ 373 */
524SYSCALL_DEFINE3(cachectl, char *, addr, int, nbytes, int, op) 374SYSCALL_DEFINE3(cachectl, char *, addr, int, nbytes, int, op)
diff --git a/arch/mips/kernel/time.c b/arch/mips/kernel/time.c
index 1f467d534642..fb7497405510 100644
--- a/arch/mips/kernel/time.c
+++ b/arch/mips/kernel/time.c
@@ -71,39 +71,6 @@ EXPORT_SYMBOL(perf_irq);
71 71
72unsigned int mips_hpt_frequency; 72unsigned int mips_hpt_frequency;
73 73
74void __init clocksource_set_clock(struct clocksource *cs, unsigned int clock)
75{
76 u64 temp;
77 u32 shift;
78
79 /* Find a shift value */
80 for (shift = 32; shift > 0; shift--) {
81 temp = (u64) NSEC_PER_SEC << shift;
82 do_div(temp, clock);
83 if ((temp >> 32) == 0)
84 break;
85 }
86 cs->shift = shift;
87 cs->mult = (u32) temp;
88}
89
90void __cpuinit clockevent_set_clock(struct clock_event_device *cd,
91 unsigned int clock)
92{
93 u64 temp;
94 u32 shift;
95
96 /* Find a shift value */
97 for (shift = 32; shift > 0; shift--) {
98 temp = (u64) clock << shift;
99 do_div(temp, NSEC_PER_SEC);
100 if ((temp >> 32) == 0)
101 break;
102 }
103 cd->shift = shift;
104 cd->mult = (u32) temp;
105}
106
107/* 74/*
108 * This function exists in order to cause an error due to a duplicate 75 * This function exists in order to cause an error due to a duplicate
109 * definition if platform code should have its own implementation. The hook 76 * definition if platform code should have its own implementation. The hook
diff --git a/arch/mips/kernel/traps.c b/arch/mips/kernel/traps.c
index 0a18b4c62afb..d612c6dcb746 100644
--- a/arch/mips/kernel/traps.c
+++ b/arch/mips/kernel/traps.c
@@ -25,10 +25,12 @@
25#include <linux/ptrace.h> 25#include <linux/ptrace.h>
26#include <linux/kgdb.h> 26#include <linux/kgdb.h>
27#include <linux/kdebug.h> 27#include <linux/kdebug.h>
28#include <linux/notifier.h>
28 29
29#include <asm/bootinfo.h> 30#include <asm/bootinfo.h>
30#include <asm/branch.h> 31#include <asm/branch.h>
31#include <asm/break.h> 32#include <asm/break.h>
33#include <asm/cop2.h>
32#include <asm/cpu.h> 34#include <asm/cpu.h>
33#include <asm/dsp.h> 35#include <asm/dsp.h>
34#include <asm/fpu.h> 36#include <asm/fpu.h>
@@ -48,6 +50,7 @@
48#include <asm/types.h> 50#include <asm/types.h>
49#include <asm/stacktrace.h> 51#include <asm/stacktrace.h>
50#include <asm/irq.h> 52#include <asm/irq.h>
53#include <asm/uasm.h>
51 54
52extern void check_wait(void); 55extern void check_wait(void);
53extern asmlinkage void r4k_wait(void); 56extern asmlinkage void r4k_wait(void);
@@ -79,10 +82,6 @@ extern asmlinkage void handle_reserved(void);
79extern int fpu_emulator_cop1Handler(struct pt_regs *xcp, 82extern int fpu_emulator_cop1Handler(struct pt_regs *xcp,
80 struct mips_fpu_struct *ctx, int has_fpu); 83 struct mips_fpu_struct *ctx, int has_fpu);
81 84
82#ifdef CONFIG_CPU_CAVIUM_OCTEON
83extern asmlinkage void octeon_cop2_restore(struct octeon_cop2_state *task);
84#endif
85
86void (*board_be_init)(void); 85void (*board_be_init)(void);
87int (*board_be_handler)(struct pt_regs *regs, int is_fixup); 86int (*board_be_handler)(struct pt_regs *regs, int is_fixup);
88void (*board_nmi_handler_setup)(void); 87void (*board_nmi_handler_setup)(void);
@@ -353,9 +352,10 @@ void show_registers(const struct pt_regs *regs)
353 352
354static DEFINE_SPINLOCK(die_lock); 353static DEFINE_SPINLOCK(die_lock);
355 354
356void __noreturn die(const char * str, const struct pt_regs * regs) 355void __noreturn die(const char * str, struct pt_regs * regs)
357{ 356{
358 static int die_counter; 357 static int die_counter;
358 int sig = SIGSEGV;
359#ifdef CONFIG_MIPS_MT_SMTC 359#ifdef CONFIG_MIPS_MT_SMTC
360 unsigned long dvpret = dvpe(); 360 unsigned long dvpret = dvpe();
361#endif /* CONFIG_MIPS_MT_SMTC */ 361#endif /* CONFIG_MIPS_MT_SMTC */
@@ -366,6 +366,10 @@ void __noreturn die(const char * str, const struct pt_regs * regs)
366#ifdef CONFIG_MIPS_MT_SMTC 366#ifdef CONFIG_MIPS_MT_SMTC
367 mips_mt_regdump(dvpret); 367 mips_mt_regdump(dvpret);
368#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
369 printk("%s[#%d]:\n", str, ++die_counter); 373 printk("%s[#%d]:\n", str, ++die_counter);
370 show_registers(regs); 374 show_registers(regs);
371 add_taint(TAINT_DIE); 375 add_taint(TAINT_DIE);
@@ -380,7 +384,7 @@ void __noreturn die(const char * str, const struct pt_regs * regs)
380 panic("Fatal exception"); 384 panic("Fatal exception");
381 } 385 }
382 386
383 do_exit(SIGSEGV); 387 do_exit(sig);
384} 388}
385 389
386extern struct exception_table_entry __start___dbe_table[]; 390extern struct exception_table_entry __start___dbe_table[];
@@ -857,6 +861,44 @@ static void mt_ase_fp_affinity(void)
857#endif /* CONFIG_MIPS_MT_FPAFF */ 861#endif /* CONFIG_MIPS_MT_FPAFF */
858} 862}
859 863
864/*
865 * No lock; only written during early bootup by CPU 0.
866 */
867static RAW_NOTIFIER_HEAD(cu2_chain);
868
869int __ref register_cu2_notifier(struct notifier_block *nb)
870{
871 return raw_notifier_chain_register(&cu2_chain, nb);
872}
873
874int cu2_notifier_call_chain(unsigned long val, void *v)
875{
876 return raw_notifier_call_chain(&cu2_chain, val, v);
877}
878
879static int default_cu2_call(struct notifier_block *nfb, unsigned long action,
880 void *data)
881{
882 struct pt_regs *regs = data;
883
884 switch (action) {
885 default:
886 die_if_kernel("Unhandled kernel unaligned access or invalid "
887 "instruction", regs);
888 /* Fall through */
889
890 case CU2_EXCEPTION:
891 force_sig(SIGILL, current);
892 }
893
894 return NOTIFY_OK;
895}
896
897static struct notifier_block default_cu2_notifier = {
898 .notifier_call = default_cu2_call,
899 .priority = 0x80000000, /* Run last */
900};
901
860asmlinkage void do_cpu(struct pt_regs *regs) 902asmlinkage void do_cpu(struct pt_regs *regs)
861{ 903{
862 unsigned int __user *epc; 904 unsigned int __user *epc;
@@ -920,17 +962,9 @@ asmlinkage void do_cpu(struct pt_regs *regs)
920 return; 962 return;
921 963
922 case 2: 964 case 2:
923#ifdef CONFIG_CPU_CAVIUM_OCTEON 965 raw_notifier_call_chain(&cu2_chain, CU2_EXCEPTION, regs);
924 prefetch(&current->thread.cp2); 966 break;
925 local_irq_save(flags); 967
926 KSTK_STATUS(current) |= ST0_CU2;
927 status = read_c0_status();
928 write_c0_status(status | ST0_CU2);
929 octeon_cop2_restore(&(current->thread.cp2));
930 write_c0_status(status & ~ST0_CU2);
931 local_irq_restore(flags);
932 return;
933#endif
934 case 3: 968 case 3:
935 break; 969 break;
936 } 970 }
@@ -1243,21 +1277,25 @@ unsigned long ebase;
1243unsigned long exception_handlers[32]; 1277unsigned long exception_handlers[32];
1244unsigned long vi_handlers[64]; 1278unsigned long vi_handlers[64];
1245 1279
1246/* 1280void __init *set_except_vector(int n, void *addr)
1247 * As a side effect of the way this is implemented we're limited
1248 * to interrupt handlers in the address range from
1249 * KSEG0 <= x < KSEG0 + 256mb on the Nevada. Oh well ...
1250 */
1251void *set_except_vector(int n, void *addr)
1252{ 1281{
1253 unsigned long handler = (unsigned long) addr; 1282 unsigned long handler = (unsigned long) addr;
1254 unsigned long old_handler = exception_handlers[n]; 1283 unsigned long old_handler = exception_handlers[n];
1255 1284
1256 exception_handlers[n] = handler; 1285 exception_handlers[n] = handler;
1257 if (n == 0 && cpu_has_divec) { 1286 if (n == 0 && cpu_has_divec) {
1258 *(u32 *)(ebase + 0x200) = 0x08000000 | 1287 unsigned long jump_mask = ~((1 << 28) - 1);
1259 (0x03ffffff & (handler >> 2)); 1288 u32 *buf = (u32 *)(ebase + 0x200);
1260 local_flush_icache_range(ebase + 0x200, ebase + 0x204); 1289 unsigned int k0 = 26;
1290 if ((handler & jump_mask) == ((ebase + 0x200) & jump_mask)) {
1291 uasm_i_j(&buf, handler & ~jump_mask);
1292 uasm_i_nop(&buf);
1293 } else {
1294 UASM_i_LA(&buf, k0, handler);
1295 uasm_i_jr(&buf, k0);
1296 uasm_i_nop(&buf);
1297 }
1298 local_flush_icache_range(ebase + 0x200, (unsigned long)buf);
1261 } 1299 }
1262 return (void *)old_handler; 1300 return (void *)old_handler;
1263} 1301}
@@ -1367,77 +1405,6 @@ void *set_vi_handler(int n, vi_handler_t addr)
1367 return set_vi_srs_handler(n, addr, 0); 1405 return set_vi_srs_handler(n, addr, 0);
1368} 1406}
1369 1407
1370/*
1371 * This is used by native signal handling
1372 */
1373asmlinkage int (*save_fp_context)(struct sigcontext __user *sc);
1374asmlinkage int (*restore_fp_context)(struct sigcontext __user *sc);
1375
1376extern asmlinkage int _save_fp_context(struct sigcontext __user *sc);
1377extern asmlinkage int _restore_fp_context(struct sigcontext __user *sc);
1378
1379extern asmlinkage int fpu_emulator_save_context(struct sigcontext __user *sc);
1380extern asmlinkage int fpu_emulator_restore_context(struct sigcontext __user *sc);
1381
1382#ifdef CONFIG_SMP
1383static int smp_save_fp_context(struct sigcontext __user *sc)
1384{
1385 return raw_cpu_has_fpu
1386 ? _save_fp_context(sc)
1387 : fpu_emulator_save_context(sc);
1388}
1389
1390static int smp_restore_fp_context(struct sigcontext __user *sc)
1391{
1392 return raw_cpu_has_fpu
1393 ? _restore_fp_context(sc)
1394 : fpu_emulator_restore_context(sc);
1395}
1396#endif
1397
1398static inline void signal_init(void)
1399{
1400#ifdef CONFIG_SMP
1401 /* For now just do the cpu_has_fpu check when the functions are invoked */
1402 save_fp_context = smp_save_fp_context;
1403 restore_fp_context = smp_restore_fp_context;
1404#else
1405 if (cpu_has_fpu) {
1406 save_fp_context = _save_fp_context;
1407 restore_fp_context = _restore_fp_context;
1408 } else {
1409 save_fp_context = fpu_emulator_save_context;
1410 restore_fp_context = fpu_emulator_restore_context;
1411 }
1412#endif
1413}
1414
1415#ifdef CONFIG_MIPS32_COMPAT
1416
1417/*
1418 * This is used by 32-bit signal stuff on the 64-bit kernel
1419 */
1420asmlinkage int (*save_fp_context32)(struct sigcontext32 __user *sc);
1421asmlinkage int (*restore_fp_context32)(struct sigcontext32 __user *sc);
1422
1423extern asmlinkage int _save_fp_context32(struct sigcontext32 __user *sc);
1424extern asmlinkage int _restore_fp_context32(struct sigcontext32 __user *sc);
1425
1426extern asmlinkage int fpu_emulator_save_context32(struct sigcontext32 __user *sc);
1427extern asmlinkage int fpu_emulator_restore_context32(struct sigcontext32 __user *sc);
1428
1429static inline void signal32_init(void)
1430{
1431 if (cpu_has_fpu) {
1432 save_fp_context32 = _save_fp_context32;
1433 restore_fp_context32 = _restore_fp_context32;
1434 } else {
1435 save_fp_context32 = fpu_emulator_save_context32;
1436 restore_fp_context32 = fpu_emulator_restore_context32;
1437 }
1438}
1439#endif
1440
1441extern void cpu_cache_init(void); 1408extern void cpu_cache_init(void);
1442extern void tlb_init(void); 1409extern void tlb_init(void);
1443extern void flush_tlb_handlers(void); 1410extern void flush_tlb_handlers(void);
@@ -1446,6 +1413,7 @@ extern void flush_tlb_handlers(void);
1446 * Timer interrupt 1413 * Timer interrupt
1447 */ 1414 */
1448int cp0_compare_irq; 1415int cp0_compare_irq;
1416int cp0_compare_irq_shift;
1449 1417
1450/* 1418/*
1451 * Performance counter IRQ or -1 if shared with timer 1419 * Performance counter IRQ or -1 if shared with timer
@@ -1536,12 +1504,14 @@ void __cpuinit per_cpu_trap_init(void)
1536 * o read IntCtl.IPPCI to determine the performance counter interrupt 1504 * o read IntCtl.IPPCI to determine the performance counter interrupt
1537 */ 1505 */
1538 if (cpu_has_mips_r2) { 1506 if (cpu_has_mips_r2) {
1539 cp0_compare_irq = (read_c0_intctl() >> 29) & 7; 1507 cp0_compare_irq_shift = CAUSEB_TI - CAUSEB_IP;
1540 cp0_perfcount_irq = (read_c0_intctl() >> 26) & 7; 1508 cp0_compare_irq = (read_c0_intctl() >> INTCTLB_IPTI) & 7;
1509 cp0_perfcount_irq = (read_c0_intctl() >> INTCTLB_IPPCI) & 7;
1541 if (cp0_perfcount_irq == cp0_compare_irq) 1510 if (cp0_perfcount_irq == cp0_compare_irq)
1542 cp0_perfcount_irq = -1; 1511 cp0_perfcount_irq = -1;
1543 } else { 1512 } else {
1544 cp0_compare_irq = CP0_LEGACY_COMPARE_IRQ; 1513 cp0_compare_irq = CP0_LEGACY_COMPARE_IRQ;
1514 cp0_compare_irq_shift = cp0_compare_irq;
1545 cp0_perfcount_irq = -1; 1515 cp0_perfcount_irq = -1;
1546 } 1516 }
1547 1517
@@ -1592,12 +1562,7 @@ static char panic_null_cerr[] __cpuinitdata =
1592void __cpuinit set_uncached_handler(unsigned long offset, void *addr, 1562void __cpuinit set_uncached_handler(unsigned long offset, void *addr,
1593 unsigned long size) 1563 unsigned long size)
1594{ 1564{
1595#ifdef CONFIG_32BIT 1565 unsigned long uncached_ebase = CKSEG1ADDR(ebase);
1596 unsigned long uncached_ebase = KSEG1ADDR(ebase);
1597#endif
1598#ifdef CONFIG_64BIT
1599 unsigned long uncached_ebase = TO_UNCAC(ebase);
1600#endif
1601 1566
1602 if (!addr) 1567 if (!addr)
1603 panic(panic_null_cerr); 1568 panic(panic_null_cerr);
@@ -1634,7 +1599,7 @@ void __init trap_init(void)
1634 ebase = (unsigned long) 1599 ebase = (unsigned long)
1635 __alloc_bootmem(size, 1 << fls(size), 0); 1600 __alloc_bootmem(size, 1 << fls(size), 0);
1636 } else { 1601 } else {
1637 ebase = CAC_BASE; 1602 ebase = CKSEG0;
1638 if (cpu_has_mips_r2) 1603 if (cpu_has_mips_r2)
1639 ebase += (read_c0_ebase() & 0x3ffff000); 1604 ebase += (read_c0_ebase() & 0x3ffff000);
1640 } 1605 }
@@ -1751,13 +1716,10 @@ void __init trap_init(void)
1751 else 1716 else
1752 memcpy((void *)(ebase + 0x080), &except_vec3_generic, 0x80); 1717 memcpy((void *)(ebase + 0x080), &except_vec3_generic, 0x80);
1753 1718
1754 signal_init();
1755#ifdef CONFIG_MIPS32_COMPAT
1756 signal32_init();
1757#endif
1758
1759 local_flush_icache_range(ebase, ebase + 0x400); 1719 local_flush_icache_range(ebase, ebase + 0x400);
1760 flush_tlb_handlers(); 1720 flush_tlb_handlers();
1761 1721
1762 sort_extable(__start___dbe_table, __stop___dbe_table); 1722 sort_extable(__start___dbe_table, __stop___dbe_table);
1723
1724 register_cu2_notifier(&default_cu2_notifier);
1763} 1725}
diff --git a/arch/mips/kernel/unaligned.c b/arch/mips/kernel/unaligned.c
index 67bd626942ab..69b039ca8d83 100644
--- a/arch/mips/kernel/unaligned.c
+++ b/arch/mips/kernel/unaligned.c
@@ -81,6 +81,7 @@
81#include <asm/asm.h> 81#include <asm/asm.h>
82#include <asm/branch.h> 82#include <asm/branch.h>
83#include <asm/byteorder.h> 83#include <asm/byteorder.h>
84#include <asm/cop2.h>
84#include <asm/inst.h> 85#include <asm/inst.h>
85#include <asm/uaccess.h> 86#include <asm/uaccess.h>
86#include <asm/system.h> 87#include <asm/system.h>
@@ -451,17 +452,27 @@ static void emulate_load_store_insn(struct pt_regs *regs,
451 */ 452 */
452 goto sigbus; 453 goto sigbus;
453 454
455 /*
456 * COP2 is available to implementor for application specific use.
457 * It's up to applications to register a notifier chain and do
458 * whatever they have to do, including possible sending of signals.
459 */
454 case lwc2_op: 460 case lwc2_op:
461 cu2_notifier_call_chain(CU2_LWC2_OP, regs);
462 break;
463
455 case ldc2_op: 464 case ldc2_op:
465 cu2_notifier_call_chain(CU2_LDC2_OP, regs);
466 break;
467
456 case swc2_op: 468 case swc2_op:
469 cu2_notifier_call_chain(CU2_SWC2_OP, regs);
470 break;
471
457 case sdc2_op: 472 case sdc2_op:
458 /* 473 cu2_notifier_call_chain(CU2_SDC2_OP, regs);
459 * These are the coprocessor 2 load/stores. The current 474 break;
460 * implementations don't use cp2 and cp2 should always be 475
461 * disabled in c0_status. So send SIGILL.
462 * (No longer true: The Sony Praystation uses cp2 for
463 * 3D matrix operations. Dunno if that thingy has a MMU ...)
464 */
465 default: 476 default:
466 /* 477 /*
467 * Pheeee... We encountered an yet unknown instruction or 478 * Pheeee... We encountered an yet unknown instruction or
diff --git a/arch/mips/kernel/vdso.c b/arch/mips/kernel/vdso.c
new file mode 100644
index 000000000000..b773c1112b14
--- /dev/null
+++ b/arch/mips/kernel/vdso.c
@@ -0,0 +1,112 @@
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) 2009, 2010 Cavium Networks, Inc.
7 */
8
9
10#include <linux/kernel.h>
11#include <linux/err.h>
12#include <linux/sched.h>
13#include <linux/mm.h>
14#include <linux/init.h>
15#include <linux/binfmts.h>
16#include <linux/elf.h>
17#include <linux/vmalloc.h>
18#include <linux/unistd.h>
19
20#include <asm/vdso.h>
21#include <asm/uasm.h>
22
23/*
24 * Including <asm/unistd.h> would give use the 64-bit syscall numbers ...
25 */
26#define __NR_O32_sigreturn 4119
27#define __NR_O32_rt_sigreturn 4193
28#define __NR_N32_rt_sigreturn 6211
29
30static struct page *vdso_page;
31
32static void __init install_trampoline(u32 *tramp, unsigned int sigreturn)
33{
34 uasm_i_addiu(&tramp, 2, 0, sigreturn); /* li v0, sigreturn */
35 uasm_i_syscall(&tramp, 0);
36}
37
38static int __init init_vdso(void)
39{
40 struct mips_vdso *vdso;
41
42 vdso_page = alloc_page(GFP_KERNEL);
43 if (!vdso_page)
44 panic("Cannot allocate vdso");
45
46 vdso = vmap(&vdso_page, 1, 0, PAGE_KERNEL);
47 if (!vdso)
48 panic("Cannot map vdso");
49 clear_page(vdso);
50
51 install_trampoline(vdso->rt_signal_trampoline, __NR_rt_sigreturn);
52#ifdef CONFIG_32BIT
53 install_trampoline(vdso->signal_trampoline, __NR_sigreturn);
54#else
55 install_trampoline(vdso->n32_rt_signal_trampoline,
56 __NR_N32_rt_sigreturn);
57 install_trampoline(vdso->o32_signal_trampoline, __NR_O32_sigreturn);
58 install_trampoline(vdso->o32_rt_signal_trampoline,
59 __NR_O32_rt_sigreturn);
60#endif
61
62 vunmap(vdso);
63
64 pr_notice("init_vdso successfull\n");
65
66 return 0;
67}
68device_initcall(init_vdso);
69
70static unsigned long vdso_addr(unsigned long start)
71{
72 return STACK_TOP;
73}
74
75int arch_setup_additional_pages(struct linux_binprm *bprm, int uses_interp)
76{
77 int ret;
78 unsigned long addr;
79 struct mm_struct *mm = current->mm;
80
81 down_write(&mm->mmap_sem);
82
83 addr = vdso_addr(mm->start_stack);
84
85 addr = get_unmapped_area(NULL, addr, PAGE_SIZE, 0, 0);
86 if (IS_ERR_VALUE(addr)) {
87 ret = addr;
88 goto up_fail;
89 }
90
91 ret = install_special_mapping(mm, addr, PAGE_SIZE,
92 VM_READ|VM_EXEC|
93 VM_MAYREAD|VM_MAYWRITE|VM_MAYEXEC|
94 VM_ALWAYSDUMP,
95 &vdso_page);
96
97 if (ret)
98 goto up_fail;
99
100 mm->context.vdso = (void *)addr;
101
102up_fail:
103 up_write(&mm->mmap_sem);
104 return ret;
105}
106
107const char *arch_vma_name(struct vm_area_struct *vma)
108{
109 if (vma->vm_mm && vma->vm_start == (long)vma->vm_mm->context.vdso)
110 return "[vdso]";
111 return NULL;
112}
diff --git a/arch/mips/kernel/vmlinux.lds.S b/arch/mips/kernel/vmlinux.lds.S
index 162b29954baa..f25df73db923 100644
--- a/arch/mips/kernel/vmlinux.lds.S
+++ b/arch/mips/kernel/vmlinux.lds.S
@@ -46,6 +46,7 @@ SECTIONS
46 SCHED_TEXT 46 SCHED_TEXT
47 LOCK_TEXT 47 LOCK_TEXT
48 KPROBES_TEXT 48 KPROBES_TEXT
49 IRQENTRY_TEXT
49 *(.text.*) 50 *(.text.*)
50 *(.fixup) 51 *(.fixup)
51 *(.gnu.warning) 52 *(.gnu.warning)
diff --git a/arch/mips/kernel/vpe.c b/arch/mips/kernel/vpe.c
index 60477529362e..2bd2151c586a 100644
--- a/arch/mips/kernel/vpe.c
+++ b/arch/mips/kernel/vpe.c
@@ -38,7 +38,6 @@
38#include <linux/vmalloc.h> 38#include <linux/vmalloc.h>
39#include <linux/elf.h> 39#include <linux/elf.h>
40#include <linux/seq_file.h> 40#include <linux/seq_file.h>
41#include <linux/smp_lock.h>
42#include <linux/syscalls.h> 41#include <linux/syscalls.h>
43#include <linux/moduleloader.h> 42#include <linux/moduleloader.h>
44#include <linux/interrupt.h> 43#include <linux/interrupt.h>
diff --git a/arch/mips/lasat/picvue.h b/arch/mips/lasat/picvue.h
index 91df55371127..2f0757738fdb 100644
--- a/arch/mips/lasat/picvue.h
+++ b/arch/mips/lasat/picvue.h
@@ -42,4 +42,3 @@ void pvc_move(u8 cmd);
42 42
43void pvc_clear(void); 43void pvc_clear(void);
44void pvc_home(void); 44void pvc_home(void);
45
diff --git a/arch/mips/lasat/picvue_proc.c b/arch/mips/lasat/picvue_proc.c
index 0bb6037afba3..8e388da1926f 100644
--- a/arch/mips/lasat/picvue_proc.c
+++ b/arch/mips/lasat/picvue_proc.c
@@ -4,12 +4,14 @@
4 * Brian Murphy <brian.murphy@eicon.com> 4 * Brian Murphy <brian.murphy@eicon.com>
5 * 5 *
6 */ 6 */
7#include <linux/bug.h>
7#include <linux/kernel.h> 8#include <linux/kernel.h>
8#include <linux/module.h> 9#include <linux/module.h>
9#include <linux/init.h> 10#include <linux/init.h>
10#include <linux/errno.h> 11#include <linux/errno.h>
11 12
12#include <linux/proc_fs.h> 13#include <linux/proc_fs.h>
14#include <linux/seq_file.h>
13#include <linux/interrupt.h> 15#include <linux/interrupt.h>
14 16
15#include <linux/timer.h> 17#include <linux/timer.h>
@@ -38,12 +40,9 @@ static void pvc_display(unsigned long data)
38 40
39static DECLARE_TASKLET(pvc_display_tasklet, &pvc_display, 0); 41static DECLARE_TASKLET(pvc_display_tasklet, &pvc_display, 0);
40 42
41static int pvc_proc_read_line(char *page, char **start, 43static int pvc_line_proc_show(struct seq_file *m, void *v)
42 off_t off, int count,
43 int *eof, void *data)
44{ 44{
45 char *origpage = page; 45 int lineno = *(int *)m->private;
46 int lineno = *(int *)data;
47 46
48 if (lineno < 0 || lineno > PVC_NLINES) { 47 if (lineno < 0 || lineno > PVC_NLINES) {
49 printk(KERN_WARNING "proc_read_line: invalid lineno %d\n", lineno); 48 printk(KERN_WARNING "proc_read_line: invalid lineno %d\n", lineno);
@@ -51,45 +50,66 @@ static int pvc_proc_read_line(char *page, char **start,
51 } 50 }
52 51
53 mutex_lock(&pvc_mutex); 52 mutex_lock(&pvc_mutex);
54 page += sprintf(page, "%s\n", pvc_lines[lineno]); 53 seq_printf(m, "%s\n", pvc_lines[lineno]);
55 mutex_unlock(&pvc_mutex); 54 mutex_unlock(&pvc_mutex);
56 55
57 return page - origpage; 56 return 0;
58} 57}
59 58
60static int pvc_proc_write_line(struct file *file, const char *buffer, 59static int pvc_line_proc_open(struct inode *inode, struct file *file)
61 unsigned long count, void *data)
62{ 60{
63 int origcount = count; 61 return single_open(file, pvc_line_proc_show, PDE(inode)->data);
64 int lineno = *(int *)data; 62}
65 63
66 if (lineno < 0 || lineno > PVC_NLINES) { 64static ssize_t pvc_line_proc_write(struct file *file, const char __user *buf,
67 printk(KERN_WARNING "proc_write_line: invalid lineno %d\n", 65 size_t count, loff_t *pos)
68 lineno); 66{
69 return origcount; 67 int lineno = *(int *)PDE(file->f_path.dentry->d_inode)->data;
70 } 68 char kbuf[PVC_LINELEN];
69 size_t len;
70
71 BUG_ON(lineno < 0 || lineno > PVC_NLINES);
71 72
72 if (count > PVC_LINELEN) 73 len = min(count, sizeof(kbuf) - 1);
73 count = PVC_LINELEN; 74 if (copy_from_user(kbuf, buf, len))
75 return -EFAULT;
76 kbuf[len] = '\0';
74 77
75 if (buffer[count-1] == '\n') 78 if (len > 0 && kbuf[len - 1] == '\n')
76 count--; 79 len--;
77 80
78 mutex_lock(&pvc_mutex); 81 mutex_lock(&pvc_mutex);
79 strncpy(pvc_lines[lineno], buffer, count); 82 strncpy(pvc_lines[lineno], kbuf, len);
80 pvc_lines[lineno][count] = '\0'; 83 pvc_lines[lineno][len] = '\0';
81 mutex_unlock(&pvc_mutex); 84 mutex_unlock(&pvc_mutex);
82 85
83 tasklet_schedule(&pvc_display_tasklet); 86 tasklet_schedule(&pvc_display_tasklet);
84 87
85 return origcount; 88 return count;
86} 89}
87 90
88static int pvc_proc_write_scroll(struct file *file, const char *buffer, 91static const struct file_operations pvc_line_proc_fops = {
89 unsigned long count, void *data) 92 .owner = THIS_MODULE,
93 .open = pvc_line_proc_open,
94 .read = seq_read,
95 .llseek = seq_lseek,
96 .release = single_release,
97 .write = pvc_line_proc_write,
98};
99
100static ssize_t pvc_scroll_proc_write(struct file *file, const char __user *buf,
101 size_t count, loff_t *pos)
90{ 102{
91 int origcount = count; 103 char kbuf[42];
92 int cmd = simple_strtol(buffer, NULL, 10); 104 size_t len;
105 int cmd;
106
107 len = min(count, sizeof(kbuf) - 1);
108 if (copy_from_user(kbuf, buf, len))
109 return -EFAULT;
110 kbuf[len] = '\0';
111
112 cmd = simple_strtol(kbuf, NULL, 10);
93 113
94 mutex_lock(&pvc_mutex); 114 mutex_lock(&pvc_mutex);
95 if (scroll_interval != 0) 115 if (scroll_interval != 0)
@@ -110,22 +130,31 @@ static int pvc_proc_write_scroll(struct file *file, const char *buffer,
110 } 130 }
111 mutex_unlock(&pvc_mutex); 131 mutex_unlock(&pvc_mutex);
112 132
113 return origcount; 133 return count;
114} 134}
115 135
116static int pvc_proc_read_scroll(char *page, char **start, 136static int pvc_scroll_proc_show(struct seq_file *m, void *v)
117 off_t off, int count,
118 int *eof, void *data)
119{ 137{
120 char *origpage = page;
121
122 mutex_lock(&pvc_mutex); 138 mutex_lock(&pvc_mutex);
123 page += sprintf(page, "%d\n", scroll_dir * scroll_interval); 139 seq_printf(m, "%d\n", scroll_dir * scroll_interval);
124 mutex_unlock(&pvc_mutex); 140 mutex_unlock(&pvc_mutex);
125 141
126 return page - origpage; 142 return 0;
127} 143}
128 144
145static int pvc_scroll_proc_open(struct inode *inode, struct file *file)
146{
147 return single_open(file, pvc_scroll_proc_show, NULL);
148}
149
150static const struct file_operations pvc_scroll_proc_fops = {
151 .owner = THIS_MODULE,
152 .open = pvc_scroll_proc_open,
153 .read = seq_read,
154 .llseek = seq_lseek,
155 .release = single_release,
156 .write = pvc_scroll_proc_write,
157};
129 158
130void pvc_proc_timerfunc(unsigned long data) 159void pvc_proc_timerfunc(unsigned long data)
131{ 160{
@@ -163,22 +192,16 @@ static int __init pvc_proc_init(void)
163 pvc_linedata[i] = i; 192 pvc_linedata[i] = i;
164 } 193 }
165 for (i = 0; i < PVC_NLINES; i++) { 194 for (i = 0; i < PVC_NLINES; i++) {
166 proc_entry = create_proc_entry(pvc_linename[i], 0644, 195 proc_entry = proc_create_data(pvc_linename[i], 0644, pvc_display_dir,
167 pvc_display_dir); 196 &pvc_line_proc_fops, &pvc_linedata[i]);
168 if (proc_entry == NULL) 197 if (proc_entry == NULL)
169 goto error; 198 goto error;
170
171 proc_entry->read_proc = pvc_proc_read_line;
172 proc_entry->write_proc = pvc_proc_write_line;
173 proc_entry->data = &pvc_linedata[i];
174 } 199 }
175 proc_entry = create_proc_entry("scroll", 0644, pvc_display_dir); 200 proc_entry = proc_create("scroll", 0644, pvc_display_dir,
201 &pvc_scroll_proc_fops);
176 if (proc_entry == NULL) 202 if (proc_entry == NULL)
177 goto error; 203 goto error;
178 204
179 proc_entry->write_proc = pvc_proc_write_scroll;
180 proc_entry->read_proc = pvc_proc_read_scroll;
181
182 init_timer(&timer); 205 init_timer(&timer);
183 timer.function = pvc_proc_timerfunc; 206 timer.function = pvc_proc_timerfunc;
184 207
diff --git a/arch/mips/lasat/prom.c b/arch/mips/lasat/prom.c
index 6acc6cb85f0a..20fde19a5fbf 100644
--- a/arch/mips/lasat/prom.c
+++ b/arch/mips/lasat/prom.c
@@ -100,8 +100,8 @@ void __init prom_init(void)
100 100
101 /* Get the command line */ 101 /* Get the command line */
102 if (argc > 0) { 102 if (argc > 0) {
103 strncpy(arcs_cmdline, argv[0], CL_SIZE-1); 103 strncpy(arcs_cmdline, argv[0], COMMAND_LINE_SIZE-1);
104 arcs_cmdline[CL_SIZE-1] = '\0'; 104 arcs_cmdline[COMMAND_LINE_SIZE-1] = '\0';
105 } 105 }
106 106
107 /* Set the I/O base address */ 107 /* Set the I/O base address */
diff --git a/arch/mips/lasat/sysctl.c b/arch/mips/lasat/sysctl.c
index b3deed8db619..d87ffd04cb0a 100644
--- a/arch/mips/lasat/sysctl.c
+++ b/arch/mips/lasat/sysctl.c
@@ -37,23 +37,6 @@
37#include "ds1603.h" 37#include "ds1603.h"
38#endif 38#endif
39 39
40/* Strategy function to write EEPROM after changing string entry */
41int sysctl_lasatstring(ctl_table *table,
42 void *oldval, size_t *oldlenp,
43 void *newval, size_t newlen)
44{
45 int r;
46
47 r = sysctl_string(table, oldval, oldlenp, newval, newlen);
48 if (r < 0)
49 return r;
50
51 if (newval && newlen)
52 lasat_write_eeprom_info();
53
54 return 0;
55}
56
57 40
58/* And the same for proc */ 41/* And the same for proc */
59int proc_dolasatstring(ctl_table *table, int write, 42int proc_dolasatstring(ctl_table *table, int write,
@@ -113,46 +96,6 @@ int proc_dolasatrtc(ctl_table *table, int write,
113} 96}
114#endif 97#endif
115 98
116/* Sysctl for setting the IP addresses */
117int sysctl_lasat_intvec(ctl_table *table,
118 void *oldval, size_t *oldlenp,
119 void *newval, size_t newlen)
120{
121 int r;
122
123 r = sysctl_intvec(table, oldval, oldlenp, newval, newlen);
124 if (r < 0)
125 return r;
126
127 if (newval && newlen)
128 lasat_write_eeprom_info();
129
130 return 0;
131}
132
133#ifdef CONFIG_DS1603
134/* Same for RTC */
135int sysctl_lasat_rtc(ctl_table *table,
136 void *oldval, size_t *oldlenp,
137 void *newval, size_t newlen)
138{
139 struct timespec ts;
140 int r;
141
142 read_persistent_clock(&ts);
143 rtctmp = ts.tv_sec;
144 if (rtctmp < 0)
145 rtctmp = 0;
146 r = sysctl_intvec(table, oldval, oldlenp, newval, newlen);
147 if (r < 0)
148 return r;
149 if (newval && newlen)
150 rtc_mips_set_mmss(rtctmp);
151
152 return r;
153}
154#endif
155
156#ifdef CONFIG_INET 99#ifdef CONFIG_INET
157int proc_lasat_ip(ctl_table *table, int write, 100int proc_lasat_ip(ctl_table *table, int write,
158 void *buffer, size_t *lenp, loff_t *ppos) 101 void *buffer, size_t *lenp, loff_t *ppos)
@@ -214,23 +157,6 @@ int proc_lasat_ip(ctl_table *table, int write,
214} 157}
215#endif 158#endif
216 159
217static int sysctl_lasat_prid(ctl_table *table,
218 void *oldval, size_t *oldlenp,
219 void *newval, size_t newlen)
220{
221 int r;
222
223 r = sysctl_intvec(table, oldval, oldlenp, newval, newlen);
224 if (r < 0)
225 return r;
226 if (newval && newlen) {
227 lasat_board_info.li_eeprom_info.prid = *(int *)newval;
228 lasat_write_eeprom_info();
229 lasat_init_board_info();
230 }
231 return 0;
232}
233
234int proc_lasat_prid(ctl_table *table, int write, 160int proc_lasat_prid(ctl_table *table, int write,
235 void *buffer, size_t *lenp, loff_t *ppos) 161 void *buffer, size_t *lenp, loff_t *ppos)
236{ 162{
@@ -252,115 +178,92 @@ extern int lasat_boot_to_service;
252 178
253static ctl_table lasat_table[] = { 179static ctl_table lasat_table[] = {
254 { 180 {
255 .ctl_name = CTL_UNNUMBERED,
256 .procname = "cpu-hz", 181 .procname = "cpu-hz",
257 .data = &lasat_board_info.li_cpu_hz, 182 .data = &lasat_board_info.li_cpu_hz,
258 .maxlen = sizeof(int), 183 .maxlen = sizeof(int),
259 .mode = 0444, 184 .mode = 0444,
260 .proc_handler = &proc_dointvec, 185 .proc_handler = proc_dointvec,
261 .strategy = &sysctl_intvec
262 }, 186 },
263 { 187 {
264 .ctl_name = CTL_UNNUMBERED,
265 .procname = "bus-hz", 188 .procname = "bus-hz",
266 .data = &lasat_board_info.li_bus_hz, 189 .data = &lasat_board_info.li_bus_hz,
267 .maxlen = sizeof(int), 190 .maxlen = sizeof(int),
268 .mode = 0444, 191 .mode = 0444,
269 .proc_handler = &proc_dointvec, 192 .proc_handler = proc_dointvec,
270 .strategy = &sysctl_intvec
271 }, 193 },
272 { 194 {
273 .ctl_name = CTL_UNNUMBERED,
274 .procname = "bmid", 195 .procname = "bmid",
275 .data = &lasat_board_info.li_bmid, 196 .data = &lasat_board_info.li_bmid,
276 .maxlen = sizeof(int), 197 .maxlen = sizeof(int),
277 .mode = 0444, 198 .mode = 0444,
278 .proc_handler = &proc_dointvec, 199 .proc_handler = proc_dointvec,
279 .strategy = &sysctl_intvec
280 }, 200 },
281 { 201 {
282 .ctl_name = CTL_UNNUMBERED,
283 .procname = "prid", 202 .procname = "prid",
284 .data = &lasat_board_info.li_prid, 203 .data = &lasat_board_info.li_prid,
285 .maxlen = sizeof(int), 204 .maxlen = sizeof(int),
286 .mode = 0644, 205 .mode = 0644,
287 .proc_handler = &proc_lasat_prid, 206 .proc_handler = proc_lasat_prid,
288 .strategy = &sysctl_lasat_prid
289 }, 207 },
290#ifdef CONFIG_INET 208#ifdef CONFIG_INET
291 { 209 {
292 .ctl_name = CTL_UNNUMBERED,
293 .procname = "ipaddr", 210 .procname = "ipaddr",
294 .data = &lasat_board_info.li_eeprom_info.ipaddr, 211 .data = &lasat_board_info.li_eeprom_info.ipaddr,
295 .maxlen = sizeof(int), 212 .maxlen = sizeof(int),
296 .mode = 0644, 213 .mode = 0644,
297 .proc_handler = &proc_lasat_ip, 214 .proc_handler = proc_lasat_ip,
298 .strategy = &sysctl_lasat_intvec
299 }, 215 },
300 { 216 {
301 .ctl_name = CTL_UNNUMBERED,
302 .procname = "netmask", 217 .procname = "netmask",
303 .data = &lasat_board_info.li_eeprom_info.netmask, 218 .data = &lasat_board_info.li_eeprom_info.netmask,
304 .maxlen = sizeof(int), 219 .maxlen = sizeof(int),
305 .mode = 0644, 220 .mode = 0644,
306 .proc_handler = &proc_lasat_ip, 221 .proc_handler = proc_lasat_ip,
307 .strategy = &sysctl_lasat_intvec
308 }, 222 },
309#endif 223#endif
310 { 224 {
311 .ctl_name = CTL_UNNUMBERED,
312 .procname = "passwd_hash", 225 .procname = "passwd_hash",
313 .data = &lasat_board_info.li_eeprom_info.passwd_hash, 226 .data = &lasat_board_info.li_eeprom_info.passwd_hash,
314 .maxlen = 227 .maxlen =
315 sizeof(lasat_board_info.li_eeprom_info.passwd_hash), 228 sizeof(lasat_board_info.li_eeprom_info.passwd_hash),
316 .mode = 0600, 229 .mode = 0600,
317 .proc_handler = &proc_dolasatstring, 230 .proc_handler = proc_dolasatstring,
318 .strategy = &sysctl_lasatstring
319 }, 231 },
320 { 232 {
321 .ctl_name = CTL_UNNUMBERED,
322 .procname = "boot-service", 233 .procname = "boot-service",
323 .data = &lasat_boot_to_service, 234 .data = &lasat_boot_to_service,
324 .maxlen = sizeof(int), 235 .maxlen = sizeof(int),
325 .mode = 0644, 236 .mode = 0644,
326 .proc_handler = &proc_dointvec, 237 .proc_handler = proc_dointvec,
327 .strategy = &sysctl_intvec
328 }, 238 },
329#ifdef CONFIG_DS1603 239#ifdef CONFIG_DS1603
330 { 240 {
331 .ctl_name = CTL_UNNUMBERED,
332 .procname = "rtc", 241 .procname = "rtc",
333 .data = &rtctmp, 242 .data = &rtctmp,
334 .maxlen = sizeof(int), 243 .maxlen = sizeof(int),
335 .mode = 0644, 244 .mode = 0644,
336 .proc_handler = &proc_dolasatrtc, 245 .proc_handler = proc_dolasatrtc,
337 .strategy = &sysctl_lasat_rtc
338 }, 246 },
339#endif 247#endif
340 { 248 {
341 .ctl_name = CTL_UNNUMBERED,
342 .procname = "namestr", 249 .procname = "namestr",
343 .data = &lasat_board_info.li_namestr, 250 .data = &lasat_board_info.li_namestr,
344 .maxlen = sizeof(lasat_board_info.li_namestr), 251 .maxlen = sizeof(lasat_board_info.li_namestr),
345 .mode = 0444, 252 .mode = 0444,
346 .proc_handler = &proc_dostring, 253 .proc_handler = proc_dostring,
347 .strategy = &sysctl_string
348 }, 254 },
349 { 255 {
350 .ctl_name = CTL_UNNUMBERED,
351 .procname = "typestr", 256 .procname = "typestr",
352 .data = &lasat_board_info.li_typestr, 257 .data = &lasat_board_info.li_typestr,
353 .maxlen = sizeof(lasat_board_info.li_typestr), 258 .maxlen = sizeof(lasat_board_info.li_typestr),
354 .mode = 0444, 259 .mode = 0444,
355 .proc_handler = &proc_dostring, 260 .proc_handler = proc_dostring,
356 .strategy = &sysctl_string
357 }, 261 },
358 {} 262 {}
359}; 263};
360 264
361static ctl_table lasat_root_table[] = { 265static ctl_table lasat_root_table[] = {
362 { 266 {
363 .ctl_name = CTL_UNNUMBERED,
364 .procname = "lasat", 267 .procname = "lasat",
365 .mode = 0555, 268 .mode = 0555,
366 .child = lasat_table 269 .child = lasat_table
diff --git a/arch/mips/lib/delay.c b/arch/mips/lib/delay.c
index 6b3b1de9dcae..5995969e8c42 100644
--- a/arch/mips/lib/delay.c
+++ b/arch/mips/lib/delay.c
@@ -41,7 +41,7 @@ EXPORT_SYMBOL(__delay);
41 41
42void __udelay(unsigned long us) 42void __udelay(unsigned long us)
43{ 43{
44 unsigned int lpj = current_cpu_data.udelay_val; 44 unsigned int lpj = raw_current_cpu_data.udelay_val;
45 45
46 __delay((us * 0x000010c7ull * HZ * lpj) >> 32); 46 __delay((us * 0x000010c7ull * HZ * lpj) >> 32);
47} 47}
@@ -49,7 +49,7 @@ EXPORT_SYMBOL(__udelay);
49 49
50void __ndelay(unsigned long ns) 50void __ndelay(unsigned long ns)
51{ 51{
52 unsigned int lpj = current_cpu_data.udelay_val; 52 unsigned int lpj = raw_current_cpu_data.udelay_val;
53 53
54 __delay((ns * 0x00000005ull * HZ * lpj) >> 32); 54 __delay((ns * 0x00000005ull * HZ * lpj) >> 32);
55} 55}
diff --git a/arch/mips/lib/libgcc.h b/arch/mips/lib/libgcc.h
index 3f19d1c5d942..05909d58e2fe 100644
--- a/arch/mips/lib/libgcc.h
+++ b/arch/mips/lib/libgcc.h
@@ -17,8 +17,7 @@ struct DWstruct {
17#error I feel sick. 17#error I feel sick.
18#endif 18#endif
19 19
20typedef union 20typedef union {
21{
22 struct DWstruct s; 21 struct DWstruct s;
23 long long ll; 22 long long ll;
24} DWunion; 23} DWunion;
diff --git a/arch/mips/loongson/Kconfig b/arch/mips/loongson/Kconfig
index d45092505fa1..3df1967dea08 100644
--- a/arch/mips/loongson/Kconfig
+++ b/arch/mips/loongson/Kconfig
@@ -1,31 +1,85 @@
1choice 1choice
2 prompt "Machine Type" 2 prompt "Machine Type"
3 depends on MACH_LOONGSON 3 depends on MACH_LOONGSON
4 4
5config LEMOTE_FULOONG2E 5config LEMOTE_FULOONG2E
6 bool "Lemote Fuloong(2e) mini-PC" 6 bool "Lemote Fuloong(2e) mini-PC"
7 select ARCH_SPARSEMEM_ENABLE 7 select ARCH_SPARSEMEM_ENABLE
8 select CEVT_R4K 8 select CEVT_R4K
9 select CSRC_R4K 9 select CSRC_R4K
10 select SYS_HAS_CPU_LOONGSON2E 10 select SYS_HAS_CPU_LOONGSON2E
11 select DMA_NONCOHERENT 11 select DMA_NONCOHERENT
12 select BOOT_ELF32 12 select BOOT_ELF32
13 select BOARD_SCACHE 13 select BOARD_SCACHE
14 select HW_HAS_PCI 14 select HW_HAS_PCI
15 select I8259 15 select I8259
16 select ISA 16 select ISA
17 select IRQ_CPU 17 select IRQ_CPU
18 select SYS_SUPPORTS_32BIT_KERNEL 18 select SYS_SUPPORTS_32BIT_KERNEL
19 select SYS_SUPPORTS_64BIT_KERNEL 19 select SYS_SUPPORTS_64BIT_KERNEL
20 select SYS_SUPPORTS_LITTLE_ENDIAN 20 select SYS_SUPPORTS_LITTLE_ENDIAN
21 select SYS_SUPPORTS_HIGHMEM 21 select SYS_SUPPORTS_HIGHMEM
22 select SYS_HAS_EARLY_PRINTK 22 select SYS_HAS_EARLY_PRINTK
23 select GENERIC_HARDIRQS_NO__DO_IRQ 23 select GENERIC_HARDIRQS_NO__DO_IRQ
24 select GENERIC_ISA_DMA_SUPPORT_BROKEN 24 select GENERIC_ISA_DMA_SUPPORT_BROKEN
25 select CPU_HAS_WB 25 select CPU_HAS_WB
26 help 26 help
27 Lemote Fuloong(2e) mini-PC board based on the Chinese Loongson-2E CPU and 27 Lemote Fuloong(2e) mini-PC board based on the Chinese Loongson-2E CPU and
28 an FPGA northbridge 28 an FPGA northbridge
29 29
30 Lemote Fuloong(2e) mini PC have a VIA686B south bridge. 30 Lemote Fuloong(2e) mini PC have a VIA686B south bridge.
31
32config LEMOTE_MACH2F
33 bool "Lemote Loongson 2F family machines"
34 select ARCH_SPARSEMEM_ENABLE
35 select BOARD_SCACHE
36 select BOOT_ELF32
37 select CEVT_R4K if ! MIPS_EXTERNAL_TIMER
38 select CPU_HAS_WB
39 select CS5536
40 select CSRC_R4K if ! MIPS_EXTERNAL_TIMER
41 select DMA_NONCOHERENT
42 select GENERIC_HARDIRQS_NO__DO_IRQ
43 select GENERIC_ISA_DMA_SUPPORT_BROKEN
44 select HW_HAS_PCI
45 select I8259
46 select IRQ_CPU
47 select ISA
48 select SYS_HAS_CPU_LOONGSON2F
49 select SYS_HAS_EARLY_PRINTK
50 select SYS_SUPPORTS_32BIT_KERNEL
51 select SYS_SUPPORTS_64BIT_KERNEL
52 select SYS_SUPPORTS_HIGHMEM
53 select SYS_SUPPORTS_LITTLE_ENDIAN
54 help
55 Lemote Loongson 2F family machines utilize the 2F revision of
56 Loongson processor and the AMD CS5536 south bridge.
57
58 These family machines include fuloong2f mini PC, yeeloong2f notebook,
59 LingLoong allinone PC and so forth.
31endchoice 60endchoice
61
62config CS5536
63 bool
64
65config CS5536_MFGPT
66 bool "CS5536 MFGPT Timer"
67 depends on CS5536
68 select MIPS_EXTERNAL_TIMER
69 help
70 This option enables the mfgpt0 timer of AMD CS5536.
71
72 If you want to enable the Loongson2 CPUFreq Driver, Please enable
73 this option at first, otherwise, You will get wrong system time.
74
75 If unsure, say Yes.
76
77config LOONGSON_SUSPEND
78 bool
79 default y
80 depends on CPU_SUPPORTS_CPUFREQ && SUSPEND
81
82config LOONGSON_UART_BASE
83 bool
84 default y
85 depends on EARLY_PRINTK || SERIAL_8250
diff --git a/arch/mips/loongson/Makefile b/arch/mips/loongson/Makefile
index 39048c455d7d..2b76cb0fb07d 100644
--- a/arch/mips/loongson/Makefile
+++ b/arch/mips/loongson/Makefile
@@ -9,3 +9,9 @@ obj-$(CONFIG_MACH_LOONGSON) += common/
9# 9#
10 10
11obj-$(CONFIG_LEMOTE_FULOONG2E) += fuloong-2e/ 11obj-$(CONFIG_LEMOTE_FULOONG2E) += fuloong-2e/
12
13#
14# Lemote loongson2f family machines
15#
16
17obj-$(CONFIG_LEMOTE_MACH2F) += lemote-2f/
diff --git a/arch/mips/loongson/common/Makefile b/arch/mips/loongson/common/Makefile
index 656b3cc0a2a6..7668c4de1151 100644
--- a/arch/mips/loongson/common/Makefile
+++ b/arch/mips/loongson/common/Makefile
@@ -3,9 +3,23 @@
3# 3#
4 4
5obj-y += setup.o init.o cmdline.o env.o time.o reset.o irq.o \ 5obj-y += setup.o init.o cmdline.o env.o time.o reset.o irq.o \
6 pci.o bonito-irq.o mem.o machtype.o 6 pci.o bonito-irq.o mem.o machtype.o platform.o
7 7
8# 8#
9# Early printk support 9# Serial port support
10# 10#
11obj-$(CONFIG_EARLY_PRINTK) += early_printk.o 11obj-$(CONFIG_EARLY_PRINTK) += early_printk.o
12obj-$(CONFIG_SERIAL_8250) += serial.o
13obj-$(CONFIG_LOONGSON_UART_BASE) += uart_base.o
14
15#
16# Enable CS5536 Virtual Support Module(VSM) to virtulize the PCI configure
17# space
18#
19obj-$(CONFIG_CS5536) += cs5536/
20
21#
22# Suspend Support
23#
24
25obj-$(CONFIG_LOONGSON_SUSPEND) += pm.o
diff --git a/arch/mips/loongson/common/bonito-irq.c b/arch/mips/loongson/common/bonito-irq.c
index 3e31e7ad713e..2dc2a4cc632a 100644
--- a/arch/mips/loongson/common/bonito-irq.c
+++ b/arch/mips/loongson/common/bonito-irq.c
@@ -12,18 +12,19 @@
12 * option) any later version. 12 * option) any later version.
13 */ 13 */
14#include <linux/interrupt.h> 14#include <linux/interrupt.h>
15#include <linux/compiler.h>
15 16
16#include <loongson.h> 17#include <loongson.h>
17 18
18static inline void bonito_irq_enable(unsigned int irq) 19static inline void bonito_irq_enable(unsigned int irq)
19{ 20{
20 BONITO_INTENSET = (1 << (irq - BONITO_IRQ_BASE)); 21 LOONGSON_INTENSET = (1 << (irq - LOONGSON_IRQ_BASE));
21 mmiowb(); 22 mmiowb();
22} 23}
23 24
24static inline void bonito_irq_disable(unsigned int irq) 25static inline void bonito_irq_disable(unsigned int irq)
25{ 26{
26 BONITO_INTENCLR = (1 << (irq - BONITO_IRQ_BASE)); 27 LOONGSON_INTENCLR = (1 << (irq - LOONGSON_IRQ_BASE));
27 mmiowb(); 28 mmiowb();
28} 29}
29 30
@@ -35,7 +36,7 @@ static struct irq_chip bonito_irq_type = {
35 .unmask = bonito_irq_enable, 36 .unmask = bonito_irq_enable,
36}; 37};
37 38
38static struct irqaction dma_timeout_irqaction = { 39static struct irqaction __maybe_unused dma_timeout_irqaction = {
39 .handler = no_action, 40 .handler = no_action,
40 .name = "dma_timeout", 41 .name = "dma_timeout",
41}; 42};
@@ -44,8 +45,10 @@ void bonito_irq_init(void)
44{ 45{
45 u32 i; 46 u32 i;
46 47
47 for (i = BONITO_IRQ_BASE; i < BONITO_IRQ_BASE + 32; i++) 48 for (i = LOONGSON_IRQ_BASE; i < LOONGSON_IRQ_BASE + 32; i++)
48 set_irq_chip_and_handler(i, &bonito_irq_type, handle_level_irq); 49 set_irq_chip_and_handler(i, &bonito_irq_type, handle_level_irq);
49 50
50 setup_irq(BONITO_IRQ_BASE + 10, &dma_timeout_irqaction); 51#ifdef CONFIG_CPU_LOONGSON2E
52 setup_irq(LOONGSON_IRQ_BASE + 10, &dma_timeout_irqaction);
53#endif
51} 54}
diff --git a/arch/mips/loongson/common/cmdline.c b/arch/mips/loongson/common/cmdline.c
index 75f1b243ee4e..1a06defc4f7f 100644
--- a/arch/mips/loongson/common/cmdline.c
+++ b/arch/mips/loongson/common/cmdline.c
@@ -9,8 +9,8 @@
9 * Copyright (C) 2007 Lemote Inc. & Insititute of Computing Technology 9 * Copyright (C) 2007 Lemote Inc. & Insititute of Computing Technology
10 * Author: Fuxin Zhang, zhangfx@lemote.com 10 * Author: Fuxin Zhang, zhangfx@lemote.com
11 * 11 *
12 * Copyright (C) 2009 Lemote Inc. & Insititute of Computing Technology 12 * Copyright (C) 2009 Lemote Inc.
13 * Author: Wu Zhangjin, wuzj@lemote.com 13 * Author: Wu Zhangjin, wuzhangjin@gmail.com
14 * 14 *
15 * This program is free software; you can redistribute it and/or modify it 15 * This program is free software; you can redistribute it and/or modify it
16 * under the terms of the GNU General Public License as published by the 16 * under the terms of the GNU General Public License as published by the
@@ -21,12 +21,11 @@
21 21
22#include <loongson.h> 22#include <loongson.h>
23 23
24int prom_argc;
25/* pmon passes arguments in 32bit pointers */
26int *_prom_argv;
27
28void __init prom_init_cmdline(void) 24void __init prom_init_cmdline(void)
29{ 25{
26 int prom_argc;
27 /* pmon passes arguments in 32bit pointers */
28 int *_prom_argv;
30 int i; 29 int i;
31 long l; 30 long l;
32 31
@@ -49,4 +48,6 @@ void __init prom_init_cmdline(void)
49 strcat(arcs_cmdline, " console=ttyS0,115200"); 48 strcat(arcs_cmdline, " console=ttyS0,115200");
50 if ((strstr(arcs_cmdline, "root=")) == NULL) 49 if ((strstr(arcs_cmdline, "root=")) == NULL)
51 strcat(arcs_cmdline, " root=/dev/hda1"); 50 strcat(arcs_cmdline, " root=/dev/hda1");
51
52 prom_init_machtype();
52} 53}
diff --git a/arch/mips/loongson/common/cs5536/Makefile b/arch/mips/loongson/common/cs5536/Makefile
new file mode 100644
index 000000000000..510d4cdc2378
--- /dev/null
+++ b/arch/mips/loongson/common/cs5536/Makefile
@@ -0,0 +1,13 @@
1#
2# Makefile for CS5536 support.
3#
4
5obj-$(CONFIG_CS5536) += cs5536_pci.o cs5536_ide.o cs5536_acc.o cs5536_ohci.o \
6 cs5536_isa.o cs5536_ehci.o
7
8#
9# Enable cs5536 mfgpt Timer
10#
11obj-$(CONFIG_CS5536_MFGPT) += cs5536_mfgpt.o
12
13EXTRA_CFLAGS += -Werror
diff --git a/arch/mips/loongson/common/cs5536/cs5536_acc.c b/arch/mips/loongson/common/cs5536/cs5536_acc.c
new file mode 100644
index 000000000000..b3fd5eab6548
--- /dev/null
+++ b/arch/mips/loongson/common/cs5536/cs5536_acc.c
@@ -0,0 +1,140 @@
1/*
2 * the ACC Virtual Support Module of AMD CS5536
3 *
4 * Copyright (C) 2007 Lemote, Inc.
5 * Author : jlliu, liujl@lemote.com
6 *
7 * Copyright (C) 2009 Lemote, Inc.
8 * Author: Wu Zhangjin, wuzhangjin@gmail.com
9 *
10 * This program is free software; you can redistribute it and/or modify it
11 * under the terms of the GNU General Public License as published by the
12 * Free Software Foundation; either version 2 of the License, or (at your
13 * option) any later version.
14 */
15
16#include <cs5536/cs5536.h>
17#include <cs5536/cs5536_pci.h>
18
19void pci_acc_write_reg(int reg, u32 value)
20{
21 u32 hi = 0, lo = value;
22
23 switch (reg) {
24 case PCI_COMMAND:
25 _rdmsr(GLIU_MSR_REG(GLIU_PAE), &hi, &lo);
26 if (value & PCI_COMMAND_MASTER)
27 lo |= (0x03 << 8);
28 else
29 lo &= ~(0x03 << 8);
30 _wrmsr(GLIU_MSR_REG(GLIU_PAE), hi, lo);
31 break;
32 case PCI_STATUS:
33 if (value & PCI_STATUS_PARITY) {
34 _rdmsr(SB_MSR_REG(SB_ERROR), &hi, &lo);
35 if (lo & SB_PARE_ERR_FLAG) {
36 lo = (lo & 0x0000ffff) | SB_PARE_ERR_FLAG;
37 _wrmsr(SB_MSR_REG(SB_ERROR), hi, lo);
38 }
39 }
40 break;
41 case PCI_BAR0_REG:
42 if (value == PCI_BAR_RANGE_MASK) {
43 _rdmsr(GLCP_MSR_REG(GLCP_SOFT_COM), &hi, &lo);
44 lo |= SOFT_BAR_ACC_FLAG;
45 _wrmsr(GLCP_MSR_REG(GLCP_SOFT_COM), hi, lo);
46 } else if (value & 0x01) {
47 value &= 0xfffffffc;
48 hi = 0xA0000000 | ((value & 0x000ff000) >> 12);
49 lo = 0x000fff80 | ((value & 0x00000fff) << 20);
50 _wrmsr(GLIU_MSR_REG(GLIU_IOD_BM1), hi, lo);
51 }
52 break;
53 case PCI_ACC_INT_REG:
54 _rdmsr(DIVIL_MSR_REG(PIC_YSEL_LOW), &hi, &lo);
55 /* disable all the usb interrupt in PIC */
56 lo &= ~(0xf << PIC_YSEL_LOW_ACC_SHIFT);
57 if (value) /* enable all the acc interrupt in PIC */
58 lo |= (CS5536_ACC_INTR << PIC_YSEL_LOW_ACC_SHIFT);
59 _wrmsr(DIVIL_MSR_REG(PIC_YSEL_LOW), hi, lo);
60 break;
61 default:
62 break;
63 }
64}
65
66u32 pci_acc_read_reg(int reg)
67{
68 u32 hi, lo;
69 u32 conf_data = 0;
70
71 switch (reg) {
72 case PCI_VENDOR_ID:
73 conf_data =
74 CFG_PCI_VENDOR_ID(CS5536_ACC_DEVICE_ID, CS5536_VENDOR_ID);
75 break;
76 case PCI_COMMAND:
77 _rdmsr(GLIU_MSR_REG(GLIU_IOD_BM1), &hi, &lo);
78 if (((lo & 0xfff00000) || (hi & 0x000000ff))
79 && ((hi & 0xf0000000) == 0xa0000000))
80 conf_data |= PCI_COMMAND_IO;
81 _rdmsr(GLIU_MSR_REG(GLIU_PAE), &hi, &lo);
82 if ((lo & 0x300) == 0x300)
83 conf_data |= PCI_COMMAND_MASTER;
84 break;
85 case PCI_STATUS:
86 conf_data |= PCI_STATUS_66MHZ;
87 conf_data |= PCI_STATUS_FAST_BACK;
88 _rdmsr(SB_MSR_REG(SB_ERROR), &hi, &lo);
89 if (lo & SB_PARE_ERR_FLAG)
90 conf_data |= PCI_STATUS_PARITY;
91 conf_data |= PCI_STATUS_DEVSEL_MEDIUM;
92 break;
93 case PCI_CLASS_REVISION:
94 _rdmsr(ACC_MSR_REG(ACC_CAP), &hi, &lo);
95 conf_data = lo & 0x000000ff;
96 conf_data |= (CS5536_ACC_CLASS_CODE << 8);
97 break;
98 case PCI_CACHE_LINE_SIZE:
99 conf_data =
100 CFG_PCI_CACHE_LINE_SIZE(PCI_NORMAL_HEADER_TYPE,
101 PCI_NORMAL_LATENCY_TIMER);
102 break;
103 case PCI_BAR0_REG:
104 _rdmsr(GLCP_MSR_REG(GLCP_SOFT_COM), &hi, &lo);
105 if (lo & SOFT_BAR_ACC_FLAG) {
106 conf_data = CS5536_ACC_RANGE |
107 PCI_BASE_ADDRESS_SPACE_IO;
108 lo &= ~SOFT_BAR_ACC_FLAG;
109 _wrmsr(GLCP_MSR_REG(GLCP_SOFT_COM), hi, lo);
110 } else {
111 _rdmsr(GLIU_MSR_REG(GLIU_IOD_BM1), &hi, &lo);
112 conf_data = (hi & 0x000000ff) << 12;
113 conf_data |= (lo & 0xfff00000) >> 20;
114 conf_data |= 0x01;
115 conf_data &= ~0x02;
116 }
117 break;
118 case PCI_CARDBUS_CIS:
119 conf_data = PCI_CARDBUS_CIS_POINTER;
120 break;
121 case PCI_SUBSYSTEM_VENDOR_ID:
122 conf_data =
123 CFG_PCI_VENDOR_ID(CS5536_ACC_SUB_ID, CS5536_SUB_VENDOR_ID);
124 break;
125 case PCI_ROM_ADDRESS:
126 conf_data = PCI_EXPANSION_ROM_BAR;
127 break;
128 case PCI_CAPABILITY_LIST:
129 conf_data = PCI_CAPLIST_USB_POINTER;
130 break;
131 case PCI_INTERRUPT_LINE:
132 conf_data =
133 CFG_PCI_INTERRUPT_LINE(PCI_DEFAULT_PIN, CS5536_ACC_INTR);
134 break;
135 default:
136 break;
137 }
138
139 return conf_data;
140}
diff --git a/arch/mips/loongson/common/cs5536/cs5536_ehci.c b/arch/mips/loongson/common/cs5536/cs5536_ehci.c
new file mode 100644
index 000000000000..eaf8b86e3318
--- /dev/null
+++ b/arch/mips/loongson/common/cs5536/cs5536_ehci.c
@@ -0,0 +1,158 @@
1/*
2 * the EHCI Virtual Support Module of AMD CS5536
3 *
4 * Copyright (C) 2007 Lemote, Inc.
5 * Author : jlliu, liujl@lemote.com
6 *
7 * Copyright (C) 2009 Lemote, Inc.
8 * Author: Wu Zhangjin, wuzhangjin@gmail.com
9 *
10 * This program is free software; you can redistribute it and/or modify it
11 * under the terms of the GNU General Public License as published by the
12 * Free Software Foundation; either version 2 of the License, or (at your
13 * option) any later version.
14 */
15
16#include <cs5536/cs5536.h>
17#include <cs5536/cs5536_pci.h>
18
19void pci_ehci_write_reg(int reg, u32 value)
20{
21 u32 hi = 0, lo = value;
22
23 switch (reg) {
24 case PCI_COMMAND:
25 _rdmsr(USB_MSR_REG(USB_EHCI), &hi, &lo);
26 if (value & PCI_COMMAND_MASTER)
27 hi |= PCI_COMMAND_MASTER;
28 else
29 hi &= ~PCI_COMMAND_MASTER;
30
31 if (value & PCI_COMMAND_MEMORY)
32 hi |= PCI_COMMAND_MEMORY;
33 else
34 hi &= ~PCI_COMMAND_MEMORY;
35 _wrmsr(USB_MSR_REG(USB_EHCI), hi, lo);
36 break;
37 case PCI_STATUS:
38 if (value & PCI_STATUS_PARITY) {
39 _rdmsr(SB_MSR_REG(SB_ERROR), &hi, &lo);
40 if (lo & SB_PARE_ERR_FLAG) {
41 lo = (lo & 0x0000ffff) | SB_PARE_ERR_FLAG;
42 _wrmsr(SB_MSR_REG(SB_ERROR), hi, lo);
43 }
44 }
45 break;
46 case PCI_BAR0_REG:
47 if (value == PCI_BAR_RANGE_MASK) {
48 _rdmsr(GLCP_MSR_REG(GLCP_SOFT_COM), &hi, &lo);
49 lo |= SOFT_BAR_EHCI_FLAG;
50 _wrmsr(GLCP_MSR_REG(GLCP_SOFT_COM), hi, lo);
51 } else if ((value & 0x01) == 0x00) {
52 _wrmsr(USB_MSR_REG(USB_EHCI), hi, lo);
53
54 value &= 0xfffffff0;
55 hi = 0x40000000 | ((value & 0xff000000) >> 24);
56 lo = 0x000fffff | ((value & 0x00fff000) << 8);
57 _wrmsr(GLIU_MSR_REG(GLIU_P2D_BM4), hi, lo);
58 }
59 break;
60 case PCI_EHCI_LEGSMIEN_REG:
61 _rdmsr(USB_MSR_REG(USB_EHCI), &hi, &lo);
62 hi &= 0x003f0000;
63 hi |= (value & 0x3f) << 16;
64 _wrmsr(USB_MSR_REG(USB_EHCI), hi, lo);
65 break;
66 case PCI_EHCI_FLADJ_REG:
67 _rdmsr(USB_MSR_REG(USB_EHCI), &hi, &lo);
68 hi &= ~0x00003f00;
69 hi |= value & 0x00003f00;
70 _wrmsr(USB_MSR_REG(USB_EHCI), hi, lo);
71 break;
72 default:
73 break;
74 }
75}
76
77u32 pci_ehci_read_reg(int reg)
78{
79 u32 conf_data = 0;
80 u32 hi, lo;
81
82 switch (reg) {
83 case PCI_VENDOR_ID:
84 conf_data =
85 CFG_PCI_VENDOR_ID(CS5536_EHCI_DEVICE_ID, CS5536_VENDOR_ID);
86 break;
87 case PCI_COMMAND:
88 _rdmsr(USB_MSR_REG(USB_EHCI), &hi, &lo);
89 if (hi & PCI_COMMAND_MASTER)
90 conf_data |= PCI_COMMAND_MASTER;
91 if (hi & PCI_COMMAND_MEMORY)
92 conf_data |= PCI_COMMAND_MEMORY;
93 break;
94 case PCI_STATUS:
95 conf_data |= PCI_STATUS_66MHZ;
96 conf_data |= PCI_STATUS_FAST_BACK;
97 _rdmsr(SB_MSR_REG(SB_ERROR), &hi, &lo);
98 if (lo & SB_PARE_ERR_FLAG)
99 conf_data |= PCI_STATUS_PARITY;
100 conf_data |= PCI_STATUS_DEVSEL_MEDIUM;
101 break;
102 case PCI_CLASS_REVISION:
103 _rdmsr(USB_MSR_REG(USB_CAP), &hi, &lo);
104 conf_data = lo & 0x000000ff;
105 conf_data |= (CS5536_EHCI_CLASS_CODE << 8);
106 break;
107 case PCI_CACHE_LINE_SIZE:
108 conf_data =
109 CFG_PCI_CACHE_LINE_SIZE(PCI_NORMAL_HEADER_TYPE,
110 PCI_NORMAL_LATENCY_TIMER);
111 break;
112 case PCI_BAR0_REG:
113 _rdmsr(GLCP_MSR_REG(GLCP_SOFT_COM), &hi, &lo);
114 if (lo & SOFT_BAR_EHCI_FLAG) {
115 conf_data = CS5536_EHCI_RANGE |
116 PCI_BASE_ADDRESS_SPACE_MEMORY;
117 lo &= ~SOFT_BAR_EHCI_FLAG;
118 _wrmsr(GLCP_MSR_REG(GLCP_SOFT_COM), hi, lo);
119 } else {
120 _rdmsr(USB_MSR_REG(USB_EHCI), &hi, &lo);
121 conf_data = lo & 0xfffff000;
122 }
123 break;
124 case PCI_CARDBUS_CIS:
125 conf_data = PCI_CARDBUS_CIS_POINTER;
126 break;
127 case PCI_SUBSYSTEM_VENDOR_ID:
128 conf_data =
129 CFG_PCI_VENDOR_ID(CS5536_EHCI_SUB_ID, CS5536_SUB_VENDOR_ID);
130 break;
131 case PCI_ROM_ADDRESS:
132 conf_data = PCI_EXPANSION_ROM_BAR;
133 break;
134 case PCI_CAPABILITY_LIST:
135 conf_data = PCI_CAPLIST_USB_POINTER;
136 break;
137 case PCI_INTERRUPT_LINE:
138 conf_data =
139 CFG_PCI_INTERRUPT_LINE(PCI_DEFAULT_PIN, CS5536_USB_INTR);
140 break;
141 case PCI_EHCI_LEGSMIEN_REG:
142 _rdmsr(USB_MSR_REG(USB_EHCI), &hi, &lo);
143 conf_data = (hi & 0x003f0000) >> 16;
144 break;
145 case PCI_EHCI_LEGSMISTS_REG:
146 _rdmsr(USB_MSR_REG(USB_EHCI), &hi, &lo);
147 conf_data = (hi & 0x3f000000) >> 24;
148 break;
149 case PCI_EHCI_FLADJ_REG:
150 _rdmsr(USB_MSR_REG(USB_EHCI), &hi, &lo);
151 conf_data = hi & 0x00003f00;
152 break;
153 default:
154 break;
155 }
156
157 return conf_data;
158}
diff --git a/arch/mips/loongson/common/cs5536/cs5536_ide.c b/arch/mips/loongson/common/cs5536/cs5536_ide.c
new file mode 100644
index 000000000000..9a96b5664c78
--- /dev/null
+++ b/arch/mips/loongson/common/cs5536/cs5536_ide.c
@@ -0,0 +1,179 @@
1/*
2 * the IDE Virtual Support Module of AMD CS5536
3 *
4 * Copyright (C) 2007 Lemote, Inc.
5 * Author : jlliu, liujl@lemote.com
6 *
7 * Copyright (C) 2009 Lemote, Inc.
8 * Author: Wu Zhangjin, wuzhangjin@gmail.com
9 *
10 * This program is free software; you can redistribute it and/or modify it
11 * under the terms of the GNU General Public License as published by the
12 * Free Software Foundation; either version 2 of the License, or (at your
13 * option) any later version.
14 */
15
16#include <cs5536/cs5536.h>
17#include <cs5536/cs5536_pci.h>
18
19void pci_ide_write_reg(int reg, u32 value)
20{
21 u32 hi = 0, lo = value;
22
23 switch (reg) {
24 case PCI_COMMAND:
25 _rdmsr(GLIU_MSR_REG(GLIU_PAE), &hi, &lo);
26 if (value & PCI_COMMAND_MASTER)
27 lo |= (0x03 << 4);
28 else
29 lo &= ~(0x03 << 4);
30 _wrmsr(GLIU_MSR_REG(GLIU_PAE), hi, lo);
31 break;
32 case PCI_STATUS:
33 if (value & PCI_STATUS_PARITY) {
34 _rdmsr(SB_MSR_REG(SB_ERROR), &hi, &lo);
35 if (lo & SB_PARE_ERR_FLAG) {
36 lo = (lo & 0x0000ffff) | SB_PARE_ERR_FLAG;
37 _wrmsr(SB_MSR_REG(SB_ERROR), hi, lo);
38 }
39 }
40 break;
41 case PCI_CACHE_LINE_SIZE:
42 value &= 0x0000ff00;
43 _rdmsr(SB_MSR_REG(SB_CTRL), &hi, &lo);
44 hi &= 0xffffff00;
45 hi |= (value >> 8);
46 _wrmsr(SB_MSR_REG(SB_CTRL), hi, lo);
47 break;
48 case PCI_BAR4_REG:
49 if (value == PCI_BAR_RANGE_MASK) {
50 _rdmsr(GLCP_MSR_REG(GLCP_SOFT_COM), &hi, &lo);
51 lo |= SOFT_BAR_IDE_FLAG;
52 _wrmsr(GLCP_MSR_REG(GLCP_SOFT_COM), hi, lo);
53 } else if (value & 0x01) {
54 lo = (value & 0xfffffff0) | 0x1;
55 _wrmsr(IDE_MSR_REG(IDE_IO_BAR), hi, lo);
56
57 value &= 0xfffffffc;
58 hi = 0x60000000 | ((value & 0x000ff000) >> 12);
59 lo = 0x000ffff0 | ((value & 0x00000fff) << 20);
60 _wrmsr(GLIU_MSR_REG(GLIU_IOD_BM2), hi, lo);
61 }
62 break;
63 case PCI_IDE_CFG_REG:
64 if (value == CS5536_IDE_FLASH_SIGNATURE) {
65 _rdmsr(DIVIL_MSR_REG(DIVIL_BALL_OPTS), &hi, &lo);
66 lo |= 0x01;
67 _wrmsr(DIVIL_MSR_REG(DIVIL_BALL_OPTS), hi, lo);
68 } else
69 _wrmsr(IDE_MSR_REG(IDE_CFG), hi, lo);
70 break;
71 case PCI_IDE_DTC_REG:
72 _wrmsr(IDE_MSR_REG(IDE_DTC), hi, lo);
73 break;
74 case PCI_IDE_CAST_REG:
75 _wrmsr(IDE_MSR_REG(IDE_CAST), hi, lo);
76 break;
77 case PCI_IDE_ETC_REG:
78 _wrmsr(IDE_MSR_REG(IDE_ETC), hi, lo);
79 break;
80 case PCI_IDE_PM_REG:
81 _wrmsr(IDE_MSR_REG(IDE_INTERNAL_PM), hi, lo);
82 break;
83 default:
84 break;
85 }
86}
87
88u32 pci_ide_read_reg(int reg)
89{
90 u32 conf_data = 0;
91 u32 hi, lo;
92
93 switch (reg) {
94 case PCI_VENDOR_ID:
95 conf_data =
96 CFG_PCI_VENDOR_ID(CS5536_IDE_DEVICE_ID, CS5536_VENDOR_ID);
97 break;
98 case PCI_COMMAND:
99 _rdmsr(IDE_MSR_REG(IDE_IO_BAR), &hi, &lo);
100 if (lo & 0xfffffff0)
101 conf_data |= PCI_COMMAND_IO;
102 _rdmsr(GLIU_MSR_REG(GLIU_PAE), &hi, &lo);
103 if ((lo & 0x30) == 0x30)
104 conf_data |= PCI_COMMAND_MASTER;
105 break;
106 case PCI_STATUS:
107 conf_data |= PCI_STATUS_66MHZ;
108 conf_data |= PCI_STATUS_FAST_BACK;
109 _rdmsr(SB_MSR_REG(SB_ERROR), &hi, &lo);
110 if (lo & SB_PARE_ERR_FLAG)
111 conf_data |= PCI_STATUS_PARITY;
112 conf_data |= PCI_STATUS_DEVSEL_MEDIUM;
113 break;
114 case PCI_CLASS_REVISION:
115 _rdmsr(IDE_MSR_REG(IDE_CAP), &hi, &lo);
116 conf_data = lo & 0x000000ff;
117 conf_data |= (CS5536_IDE_CLASS_CODE << 8);
118 break;
119 case PCI_CACHE_LINE_SIZE:
120 _rdmsr(SB_MSR_REG(SB_CTRL), &hi, &lo);
121 hi &= 0x000000f8;
122 conf_data = CFG_PCI_CACHE_LINE_SIZE(PCI_NORMAL_HEADER_TYPE, hi);
123 break;
124 case PCI_BAR4_REG:
125 _rdmsr(GLCP_MSR_REG(GLCP_SOFT_COM), &hi, &lo);
126 if (lo & SOFT_BAR_IDE_FLAG) {
127 conf_data = CS5536_IDE_RANGE |
128 PCI_BASE_ADDRESS_SPACE_IO;
129 lo &= ~SOFT_BAR_IDE_FLAG;
130 _wrmsr(GLCP_MSR_REG(GLCP_SOFT_COM), hi, lo);
131 } else {
132 _rdmsr(IDE_MSR_REG(IDE_IO_BAR), &hi, &lo);
133 conf_data = lo & 0xfffffff0;
134 conf_data |= 0x01;
135 conf_data &= ~0x02;
136 }
137 break;
138 case PCI_CARDBUS_CIS:
139 conf_data = PCI_CARDBUS_CIS_POINTER;
140 break;
141 case PCI_SUBSYSTEM_VENDOR_ID:
142 conf_data =
143 CFG_PCI_VENDOR_ID(CS5536_IDE_SUB_ID, CS5536_SUB_VENDOR_ID);
144 break;
145 case PCI_ROM_ADDRESS:
146 conf_data = PCI_EXPANSION_ROM_BAR;
147 break;
148 case PCI_CAPABILITY_LIST:
149 conf_data = PCI_CAPLIST_POINTER;
150 break;
151 case PCI_INTERRUPT_LINE:
152 conf_data =
153 CFG_PCI_INTERRUPT_LINE(PCI_DEFAULT_PIN, CS5536_IDE_INTR);
154 break;
155 case PCI_IDE_CFG_REG:
156 _rdmsr(IDE_MSR_REG(IDE_CFG), &hi, &lo);
157 conf_data = lo;
158 break;
159 case PCI_IDE_DTC_REG:
160 _rdmsr(IDE_MSR_REG(IDE_DTC), &hi, &lo);
161 conf_data = lo;
162 break;
163 case PCI_IDE_CAST_REG:
164 _rdmsr(IDE_MSR_REG(IDE_CAST), &hi, &lo);
165 conf_data = lo;
166 break;
167 case PCI_IDE_ETC_REG:
168 _rdmsr(IDE_MSR_REG(IDE_ETC), &hi, &lo);
169 conf_data = lo;
170 case PCI_IDE_PM_REG:
171 _rdmsr(IDE_MSR_REG(IDE_INTERNAL_PM), &hi, &lo);
172 conf_data = lo;
173 break;
174 default:
175 break;
176 }
177
178 return conf_data;
179}
diff --git a/arch/mips/loongson/common/cs5536/cs5536_isa.c b/arch/mips/loongson/common/cs5536/cs5536_isa.c
new file mode 100644
index 000000000000..f5c0818831b2
--- /dev/null
+++ b/arch/mips/loongson/common/cs5536/cs5536_isa.c
@@ -0,0 +1,316 @@
1/*
2 * the ISA Virtual Support Module of AMD CS5536
3 *
4 * Copyright (C) 2007 Lemote, Inc.
5 * Author : jlliu, liujl@lemote.com
6 *
7 * Copyright (C) 2009 Lemote, Inc.
8 * Author: Wu Zhangjin, wuzhangjin@gmail.com
9 *
10 * This program is free software; you can redistribute it and/or modify it
11 * under the terms of the GNU General Public License as published by the
12 * Free Software Foundation; either version 2 of the License, or (at your
13 * option) any later version.
14 */
15
16#include <cs5536/cs5536.h>
17#include <cs5536/cs5536_pci.h>
18
19/* common variables for PCI_ISA_READ/WRITE_BAR */
20static const u32 divil_msr_reg[6] = {
21 DIVIL_MSR_REG(DIVIL_LBAR_SMB), DIVIL_MSR_REG(DIVIL_LBAR_GPIO),
22 DIVIL_MSR_REG(DIVIL_LBAR_MFGPT), DIVIL_MSR_REG(DIVIL_LBAR_IRQ),
23 DIVIL_MSR_REG(DIVIL_LBAR_PMS), DIVIL_MSR_REG(DIVIL_LBAR_ACPI),
24};
25
26static const u32 soft_bar_flag[6] = {
27 SOFT_BAR_SMB_FLAG, SOFT_BAR_GPIO_FLAG, SOFT_BAR_MFGPT_FLAG,
28 SOFT_BAR_IRQ_FLAG, SOFT_BAR_PMS_FLAG, SOFT_BAR_ACPI_FLAG,
29};
30
31static const u32 sb_msr_reg[6] = {
32 SB_MSR_REG(SB_R0), SB_MSR_REG(SB_R1), SB_MSR_REG(SB_R2),
33 SB_MSR_REG(SB_R3), SB_MSR_REG(SB_R4), SB_MSR_REG(SB_R5),
34};
35
36static const u32 bar_space_range[6] = {
37 CS5536_SMB_RANGE, CS5536_GPIO_RANGE, CS5536_MFGPT_RANGE,
38 CS5536_IRQ_RANGE, CS5536_PMS_RANGE, CS5536_ACPI_RANGE,
39};
40
41static const int bar_space_len[6] = {
42 CS5536_SMB_LENGTH, CS5536_GPIO_LENGTH, CS5536_MFGPT_LENGTH,
43 CS5536_IRQ_LENGTH, CS5536_PMS_LENGTH, CS5536_ACPI_LENGTH,
44};
45
46/*
47 * enable the divil module bar space.
48 *
49 * For all the DIVIL module LBAR, you should control the DIVIL LBAR reg
50 * and the RCONFx(0~5) reg to use the modules.
51 */
52static void divil_lbar_enable(void)
53{
54 u32 hi, lo;
55 int offset;
56
57 /*
58 * The DIVIL IRQ is not used yet. and make the RCONF0 reserved.
59 */
60
61 for (offset = DIVIL_LBAR_SMB; offset <= DIVIL_LBAR_PMS; offset++) {
62 _rdmsr(DIVIL_MSR_REG(offset), &hi, &lo);
63 hi |= 0x01;
64 _wrmsr(DIVIL_MSR_REG(DIVIL_LBAR_SMB), hi, lo);
65 }
66}
67
68/*
69 * disable the divil module bar space.
70 */
71static void divil_lbar_disable(void)
72{
73 u32 hi, lo;
74 int offset;
75
76 for (offset = DIVIL_LBAR_SMB; offset <= DIVIL_LBAR_PMS; offset++) {
77 _rdmsr(DIVIL_MSR_REG(offset), &hi, &lo);
78 hi &= ~0x01;
79 _wrmsr(DIVIL_MSR_REG(DIVIL_LBAR_SMB), hi, lo);
80 }
81}
82
83/*
84 * BAR write: write value to the n BAR
85 */
86
87void pci_isa_write_bar(int n, u32 value)
88{
89 u32 hi = 0, lo = value;
90
91 if (value == PCI_BAR_RANGE_MASK) {
92 _rdmsr(GLCP_MSR_REG(GLCP_SOFT_COM), &hi, &lo);
93 lo |= soft_bar_flag[n];
94 _wrmsr(GLCP_MSR_REG(GLCP_SOFT_COM), hi, lo);
95 } else if (value & 0x01) {
96 /* NATIVE reg */
97 hi = 0x0000f001;
98 lo &= bar_space_range[n];
99 _wrmsr(divil_msr_reg[n], hi, lo);
100
101 /* RCONFx is 4bytes in units for I/O space */
102 hi = ((value & 0x000ffffc) << 12) |
103 ((bar_space_len[n] - 4) << 12) | 0x01;
104 lo = ((value & 0x000ffffc) << 12) | 0x01;
105 _wrmsr(sb_msr_reg[n], hi, lo);
106 }
107}
108
109/*
110 * BAR read: read the n BAR
111 */
112
113u32 pci_isa_read_bar(int n)
114{
115 u32 conf_data = 0;
116 u32 hi, lo;
117
118 _rdmsr(GLCP_MSR_REG(GLCP_SOFT_COM), &hi, &lo);
119 if (lo & soft_bar_flag[n]) {
120 conf_data = bar_space_range[n] | PCI_BASE_ADDRESS_SPACE_IO;
121 lo &= ~soft_bar_flag[n];
122 _wrmsr(GLCP_MSR_REG(GLCP_SOFT_COM), hi, lo);
123 } else {
124 _rdmsr(divil_msr_reg[n], &hi, &lo);
125 conf_data = lo & bar_space_range[n];
126 conf_data |= 0x01;
127 conf_data &= ~0x02;
128 }
129 return conf_data;
130}
131
132/*
133 * isa_write: ISA write transfer
134 *
135 * We assume that this is not a bus master transfer.
136 */
137void pci_isa_write_reg(int reg, u32 value)
138{
139 u32 hi = 0, lo = value;
140 u32 temp;
141
142 switch (reg) {
143 case PCI_COMMAND:
144 if (value & PCI_COMMAND_IO)
145 divil_lbar_enable();
146 else
147 divil_lbar_disable();
148 break;
149 case PCI_STATUS:
150 _rdmsr(SB_MSR_REG(SB_ERROR), &hi, &lo);
151 temp = lo & 0x0000ffff;
152 if ((value & PCI_STATUS_SIG_TARGET_ABORT) &&
153 (lo & SB_TAS_ERR_EN))
154 temp |= SB_TAS_ERR_FLAG;
155
156 if ((value & PCI_STATUS_REC_TARGET_ABORT) &&
157 (lo & SB_TAR_ERR_EN))
158 temp |= SB_TAR_ERR_FLAG;
159
160 if ((value & PCI_STATUS_REC_MASTER_ABORT)
161 && (lo & SB_MAR_ERR_EN))
162 temp |= SB_MAR_ERR_FLAG;
163
164 if ((value & PCI_STATUS_DETECTED_PARITY)
165 && (lo & SB_PARE_ERR_EN))
166 temp |= SB_PARE_ERR_FLAG;
167
168 lo = temp;
169 _wrmsr(SB_MSR_REG(SB_ERROR), hi, lo);
170 break;
171 case PCI_CACHE_LINE_SIZE:
172 value &= 0x0000ff00;
173 _rdmsr(SB_MSR_REG(SB_CTRL), &hi, &lo);
174 hi &= 0xffffff00;
175 hi |= (value >> 8);
176 _wrmsr(SB_MSR_REG(SB_CTRL), hi, lo);
177 break;
178 case PCI_BAR0_REG:
179 pci_isa_write_bar(0, value);
180 break;
181 case PCI_BAR1_REG:
182 pci_isa_write_bar(1, value);
183 break;
184 case PCI_BAR2_REG:
185 pci_isa_write_bar(2, value);
186 break;
187 case PCI_BAR3_REG:
188 pci_isa_write_bar(3, value);
189 break;
190 case PCI_BAR4_REG:
191 pci_isa_write_bar(4, value);
192 break;
193 case PCI_BAR5_REG:
194 pci_isa_write_bar(5, value);
195 break;
196 case PCI_UART1_INT_REG:
197 _rdmsr(DIVIL_MSR_REG(PIC_YSEL_HIGH), &hi, &lo);
198 /* disable uart1 interrupt in PIC */
199 lo &= ~(0xf << 24);
200 if (value) /* enable uart1 interrupt in PIC */
201 lo |= (CS5536_UART1_INTR << 24);
202 _wrmsr(DIVIL_MSR_REG(PIC_YSEL_HIGH), hi, lo);
203 break;
204 case PCI_UART2_INT_REG:
205 _rdmsr(DIVIL_MSR_REG(PIC_YSEL_HIGH), &hi, &lo);
206 /* disable uart2 interrupt in PIC */
207 lo &= ~(0xf << 28);
208 if (value) /* enable uart2 interrupt in PIC */
209 lo |= (CS5536_UART2_INTR << 28);
210 _wrmsr(DIVIL_MSR_REG(PIC_YSEL_HIGH), hi, lo);
211 break;
212 case PCI_ISA_FIXUP_REG:
213 if (value) {
214 /* enable the TARGET ABORT/MASTER ABORT etc. */
215 _rdmsr(SB_MSR_REG(SB_ERROR), &hi, &lo);
216 lo |= 0x00000063;
217 _wrmsr(SB_MSR_REG(SB_ERROR), hi, lo);
218 }
219
220 default:
221 /* ALL OTHER PCI CONFIG SPACE HEADER IS NOT IMPLEMENTED. */
222 break;
223 }
224}
225
226/*
227 * isa_read: ISA read transfers
228 *
229 * We assume that this is not a bus master transfer.
230 */
231u32 pci_isa_read_reg(int reg)
232{
233 u32 conf_data = 0;
234 u32 hi, lo;
235
236 switch (reg) {
237 case PCI_VENDOR_ID:
238 conf_data =
239 CFG_PCI_VENDOR_ID(CS5536_ISA_DEVICE_ID, CS5536_VENDOR_ID);
240 break;
241 case PCI_COMMAND:
242 /* we just check the first LBAR for the IO enable bit, */
243 /* maybe we should changed later. */
244 _rdmsr(DIVIL_MSR_REG(DIVIL_LBAR_SMB), &hi, &lo);
245 if (hi & 0x01)
246 conf_data |= PCI_COMMAND_IO;
247 break;
248 case PCI_STATUS:
249 conf_data |= PCI_STATUS_66MHZ;
250 conf_data |= PCI_STATUS_DEVSEL_MEDIUM;
251 conf_data |= PCI_STATUS_FAST_BACK;
252
253 _rdmsr(SB_MSR_REG(SB_ERROR), &hi, &lo);
254 if (lo & SB_TAS_ERR_FLAG)
255 conf_data |= PCI_STATUS_SIG_TARGET_ABORT;
256 if (lo & SB_TAR_ERR_FLAG)
257 conf_data |= PCI_STATUS_REC_TARGET_ABORT;
258 if (lo & SB_MAR_ERR_FLAG)
259 conf_data |= PCI_STATUS_REC_MASTER_ABORT;
260 if (lo & SB_PARE_ERR_FLAG)
261 conf_data |= PCI_STATUS_DETECTED_PARITY;
262 break;
263 case PCI_CLASS_REVISION:
264 _rdmsr(GLCP_MSR_REG(GLCP_CHIP_REV_ID), &hi, &lo);
265 conf_data = lo & 0x000000ff;
266 conf_data |= (CS5536_ISA_CLASS_CODE << 8);
267 break;
268 case PCI_CACHE_LINE_SIZE:
269 _rdmsr(SB_MSR_REG(SB_CTRL), &hi, &lo);
270 hi &= 0x000000f8;
271 conf_data = CFG_PCI_CACHE_LINE_SIZE(PCI_BRIDGE_HEADER_TYPE, hi);
272 break;
273 /*
274 * we only use the LBAR of DIVIL, no RCONF used.
275 * all of them are IO space.
276 */
277 case PCI_BAR0_REG:
278 return pci_isa_read_bar(0);
279 break;
280 case PCI_BAR1_REG:
281 return pci_isa_read_bar(1);
282 break;
283 case PCI_BAR2_REG:
284 return pci_isa_read_bar(2);
285 break;
286 case PCI_BAR3_REG:
287 break;
288 case PCI_BAR4_REG:
289 return pci_isa_read_bar(4);
290 break;
291 case PCI_BAR5_REG:
292 return pci_isa_read_bar(5);
293 break;
294 case PCI_CARDBUS_CIS:
295 conf_data = PCI_CARDBUS_CIS_POINTER;
296 break;
297 case PCI_SUBSYSTEM_VENDOR_ID:
298 conf_data =
299 CFG_PCI_VENDOR_ID(CS5536_ISA_SUB_ID, CS5536_SUB_VENDOR_ID);
300 break;
301 case PCI_ROM_ADDRESS:
302 conf_data = PCI_EXPANSION_ROM_BAR;
303 break;
304 case PCI_CAPABILITY_LIST:
305 conf_data = PCI_CAPLIST_POINTER;
306 break;
307 case PCI_INTERRUPT_LINE:
308 /* no interrupt used here */
309 conf_data = CFG_PCI_INTERRUPT_LINE(0x00, 0x00);
310 break;
311 default:
312 break;
313 }
314
315 return conf_data;
316}
diff --git a/arch/mips/loongson/common/cs5536/cs5536_mfgpt.c b/arch/mips/loongson/common/cs5536/cs5536_mfgpt.c
new file mode 100644
index 000000000000..8c807c965199
--- /dev/null
+++ b/arch/mips/loongson/common/cs5536/cs5536_mfgpt.c
@@ -0,0 +1,217 @@
1/*
2 * CS5536 General timer functions
3 *
4 * Copyright (C) 2007 Lemote Inc. & Insititute of Computing Technology
5 * Author: Yanhua, yanh@lemote.com
6 *
7 * Copyright (C) 2009 Lemote Inc.
8 * Author: Wu zhangjin, wuzhangjin@gmail.com
9 *
10 * Reference: AMD Geode(TM) CS5536 Companion Device Data Book
11 *
12 * This program is free software; you can redistribute it and/or modify it
13 * under the terms of the GNU General Public License as published by the
14 * Free Software Foundation; either version 2 of the License, or (at your
15 * option) any later version.
16 */
17
18#include <linux/io.h>
19#include <linux/init.h>
20#include <linux/module.h>
21#include <linux/jiffies.h>
22#include <linux/spinlock.h>
23#include <linux/interrupt.h>
24#include <linux/clockchips.h>
25
26#include <asm/time.h>
27
28#include <cs5536/cs5536_mfgpt.h>
29
30DEFINE_SPINLOCK(mfgpt_lock);
31EXPORT_SYMBOL(mfgpt_lock);
32
33static u32 mfgpt_base;
34
35/*
36 * Initialize the MFGPT timer.
37 *
38 * This is also called after resume to bring the MFGPT into operation again.
39 */
40
41/* disable counter */
42void disable_mfgpt0_counter(void)
43{
44 outw(inw(MFGPT0_SETUP) & 0x7fff, MFGPT0_SETUP);
45}
46EXPORT_SYMBOL(disable_mfgpt0_counter);
47
48/* enable counter, comparator2 to event mode, 14.318MHz clock */
49void enable_mfgpt0_counter(void)
50{
51 outw(0xe310, MFGPT0_SETUP);
52}
53EXPORT_SYMBOL(enable_mfgpt0_counter);
54
55static void init_mfgpt_timer(enum clock_event_mode mode,
56 struct clock_event_device *evt)
57{
58 spin_lock(&mfgpt_lock);
59
60 switch (mode) {
61 case CLOCK_EVT_MODE_PERIODIC:
62 outw(COMPARE, MFGPT0_CMP2); /* set comparator2 */
63 outw(0, MFGPT0_CNT); /* set counter to 0 */
64 enable_mfgpt0_counter();
65 break;
66
67 case CLOCK_EVT_MODE_SHUTDOWN:
68 case CLOCK_EVT_MODE_UNUSED:
69 if (evt->mode == CLOCK_EVT_MODE_PERIODIC ||
70 evt->mode == CLOCK_EVT_MODE_ONESHOT)
71 disable_mfgpt0_counter();
72 break;
73
74 case CLOCK_EVT_MODE_ONESHOT:
75 /* The oneshot mode have very high deviation, Not use it! */
76 break;
77
78 case CLOCK_EVT_MODE_RESUME:
79 /* Nothing to do here */
80 break;
81 }
82 spin_unlock(&mfgpt_lock);
83}
84
85static struct clock_event_device mfgpt_clockevent = {
86 .name = "mfgpt",
87 .features = CLOCK_EVT_FEAT_PERIODIC,
88 .set_mode = init_mfgpt_timer,
89 .irq = CS5536_MFGPT_INTR,
90};
91
92static irqreturn_t timer_interrupt(int irq, void *dev_id)
93{
94 u32 basehi;
95
96 /*
97 * get MFGPT base address
98 *
99 * NOTE: do not remove me, it's need for the value of mfgpt_base is
100 * variable
101 */
102 _rdmsr(DIVIL_MSR_REG(DIVIL_LBAR_MFGPT), &basehi, &mfgpt_base);
103
104 /* ack */
105 outw(inw(MFGPT0_SETUP) | 0x4000, MFGPT0_SETUP);
106
107 mfgpt_clockevent.event_handler(&mfgpt_clockevent);
108
109 return IRQ_HANDLED;
110}
111
112static struct irqaction irq5 = {
113 .handler = timer_interrupt,
114 .flags = IRQF_DISABLED | IRQF_NOBALANCING | IRQF_TIMER,
115 .name = "timer"
116};
117
118/*
119 * Initialize the conversion factor and the min/max deltas of the clock event
120 * structure and register the clock event source with the framework.
121 */
122void __init setup_mfgpt0_timer(void)
123{
124 u32 basehi;
125 struct clock_event_device *cd = &mfgpt_clockevent;
126 unsigned int cpu = smp_processor_id();
127
128 cd->cpumask = cpumask_of(cpu);
129 clockevent_set_clock(cd, MFGPT_TICK_RATE);
130 cd->max_delta_ns = clockevent_delta2ns(0xffff, cd);
131 cd->min_delta_ns = clockevent_delta2ns(0xf, cd);
132
133 /* Enable MFGPT0 Comparator 2 Output to the Interrupt Mapper */
134 _wrmsr(DIVIL_MSR_REG(MFGPT_IRQ), 0, 0x100);
135
136 /* Enable Interrupt Gate 5 */
137 _wrmsr(DIVIL_MSR_REG(PIC_ZSEL_LOW), 0, 0x50000);
138
139 /* get MFGPT base address */
140 _rdmsr(DIVIL_MSR_REG(DIVIL_LBAR_MFGPT), &basehi, &mfgpt_base);
141
142 clockevents_register_device(cd);
143
144 setup_irq(CS5536_MFGPT_INTR, &irq5);
145}
146
147/*
148 * Since the MFGPT overflows every tick, its not very useful
149 * to just read by itself. So use jiffies to emulate a free
150 * running counter:
151 */
152static cycle_t mfgpt_read(struct clocksource *cs)
153{
154 unsigned long flags;
155 int count;
156 u32 jifs;
157 static int old_count;
158 static u32 old_jifs;
159
160 spin_lock_irqsave(&mfgpt_lock, flags);
161 /*
162 * Although our caller may have the read side of xtime_lock,
163 * this is now a seqlock, and we are cheating in this routine
164 * by having side effects on state that we cannot undo if
165 * there is a collision on the seqlock and our caller has to
166 * retry. (Namely, old_jifs and old_count.) So we must treat
167 * jiffies as volatile despite the lock. We read jiffies
168 * before latching the timer count to guarantee that although
169 * the jiffies value might be older than the count (that is,
170 * the counter may underflow between the last point where
171 * jiffies was incremented and the point where we latch the
172 * count), it cannot be newer.
173 */
174 jifs = jiffies;
175 /* read the count */
176 count = inw(MFGPT0_CNT);
177
178 /*
179 * It's possible for count to appear to go the wrong way for this
180 * reason:
181 *
182 * The timer counter underflows, but we haven't handled the resulting
183 * interrupt and incremented jiffies yet.
184 *
185 * Previous attempts to handle these cases intelligently were buggy, so
186 * we just do the simple thing now.
187 */
188 if (count < old_count && jifs == old_jifs)
189 count = old_count;
190
191 old_count = count;
192 old_jifs = jifs;
193
194 spin_unlock_irqrestore(&mfgpt_lock, flags);
195
196 return (cycle_t) (jifs * COMPARE) + count;
197}
198
199static struct clocksource clocksource_mfgpt = {
200 .name = "mfgpt",
201 .rating = 120, /* Functional for real use, but not desired */
202 .read = mfgpt_read,
203 .mask = CLOCKSOURCE_MASK(32),
204 .mult = 0,
205 .shift = 22,
206};
207
208int __init init_mfgpt_clocksource(void)
209{
210 if (num_possible_cpus() > 1) /* MFGPT does not scale! */
211 return 0;
212
213 clocksource_mfgpt.mult = clocksource_hz2mult(MFGPT_TICK_RATE, 22);
214 return clocksource_register(&clocksource_mfgpt);
215}
216
217arch_initcall(init_mfgpt_clocksource);
diff --git a/arch/mips/loongson/common/cs5536/cs5536_ohci.c b/arch/mips/loongson/common/cs5536/cs5536_ohci.c
new file mode 100644
index 000000000000..db5900aadd6b
--- /dev/null
+++ b/arch/mips/loongson/common/cs5536/cs5536_ohci.c
@@ -0,0 +1,147 @@
1/*
2 * the OHCI Virtual Support Module of AMD CS5536
3 *
4 * Copyright (C) 2007 Lemote, Inc.
5 * Author : jlliu, liujl@lemote.com
6 *
7 * Copyright (C) 2009 Lemote, Inc.
8 * Author: Wu Zhangjin, wuzhangjin@gmail.com
9 *
10 * This program is free software; you can redistribute it and/or modify it
11 * under the terms of the GNU General Public License as published by the
12 * Free Software Foundation; either version 2 of the License, or (at your
13 * option) any later version.
14 */
15
16#include <cs5536/cs5536.h>
17#include <cs5536/cs5536_pci.h>
18
19void pci_ohci_write_reg(int reg, u32 value)
20{
21 u32 hi = 0, lo = value;
22
23 switch (reg) {
24 case PCI_COMMAND:
25 _rdmsr(USB_MSR_REG(USB_OHCI), &hi, &lo);
26 if (value & PCI_COMMAND_MASTER)
27 hi |= PCI_COMMAND_MASTER;
28 else
29 hi &= ~PCI_COMMAND_MASTER;
30
31 if (value & PCI_COMMAND_MEMORY)
32 hi |= PCI_COMMAND_MEMORY;
33 else
34 hi &= ~PCI_COMMAND_MEMORY;
35 _wrmsr(USB_MSR_REG(USB_OHCI), hi, lo);
36 break;
37 case PCI_STATUS:
38 if (value & PCI_STATUS_PARITY) {
39 _rdmsr(SB_MSR_REG(SB_ERROR), &hi, &lo);
40 if (lo & SB_PARE_ERR_FLAG) {
41 lo = (lo & 0x0000ffff) | SB_PARE_ERR_FLAG;
42 _wrmsr(SB_MSR_REG(SB_ERROR), hi, lo);
43 }
44 }
45 break;
46 case PCI_BAR0_REG:
47 if (value == PCI_BAR_RANGE_MASK) {
48 _rdmsr(GLCP_MSR_REG(GLCP_SOFT_COM), &hi, &lo);
49 lo |= SOFT_BAR_OHCI_FLAG;
50 _wrmsr(GLCP_MSR_REG(GLCP_SOFT_COM), hi, lo);
51 } else if ((value & 0x01) == 0x00) {
52 _wrmsr(USB_MSR_REG(USB_OHCI), hi, lo);
53
54 value &= 0xfffffff0;
55 hi = 0x40000000 | ((value & 0xff000000) >> 24);
56 lo = 0x000fffff | ((value & 0x00fff000) << 8);
57 _wrmsr(GLIU_MSR_REG(GLIU_P2D_BM3), hi, lo);
58 }
59 break;
60 case PCI_OHCI_INT_REG:
61 _rdmsr(DIVIL_MSR_REG(PIC_YSEL_LOW), &hi, &lo);
62 lo &= ~(0xf << PIC_YSEL_LOW_USB_SHIFT);
63 if (value) /* enable all the usb interrupt in PIC */
64 lo |= (CS5536_USB_INTR << PIC_YSEL_LOW_USB_SHIFT);
65 _wrmsr(DIVIL_MSR_REG(PIC_YSEL_LOW), hi, lo);
66 break;
67 default:
68 break;
69 }
70}
71
72u32 pci_ohci_read_reg(int reg)
73{
74 u32 conf_data = 0;
75 u32 hi, lo;
76
77 switch (reg) {
78 case PCI_VENDOR_ID:
79 conf_data =
80 CFG_PCI_VENDOR_ID(CS5536_OHCI_DEVICE_ID, CS5536_VENDOR_ID);
81 break;
82 case PCI_COMMAND:
83 _rdmsr(USB_MSR_REG(USB_OHCI), &hi, &lo);
84 if (hi & PCI_COMMAND_MASTER)
85 conf_data |= PCI_COMMAND_MASTER;
86 if (hi & PCI_COMMAND_MEMORY)
87 conf_data |= PCI_COMMAND_MEMORY;
88 break;
89 case PCI_STATUS:
90 conf_data |= PCI_STATUS_66MHZ;
91 conf_data |= PCI_STATUS_FAST_BACK;
92 _rdmsr(SB_MSR_REG(SB_ERROR), &hi, &lo);
93 if (lo & SB_PARE_ERR_FLAG)
94 conf_data |= PCI_STATUS_PARITY;
95 conf_data |= PCI_STATUS_DEVSEL_MEDIUM;
96 break;
97 case PCI_CLASS_REVISION:
98 _rdmsr(USB_MSR_REG(USB_CAP), &hi, &lo);
99 conf_data = lo & 0x000000ff;
100 conf_data |= (CS5536_OHCI_CLASS_CODE << 8);
101 break;
102 case PCI_CACHE_LINE_SIZE:
103 conf_data =
104 CFG_PCI_CACHE_LINE_SIZE(PCI_NORMAL_HEADER_TYPE,
105 PCI_NORMAL_LATENCY_TIMER);
106 break;
107 case PCI_BAR0_REG:
108 _rdmsr(GLCP_MSR_REG(GLCP_SOFT_COM), &hi, &lo);
109 if (lo & SOFT_BAR_OHCI_FLAG) {
110 conf_data = CS5536_OHCI_RANGE |
111 PCI_BASE_ADDRESS_SPACE_MEMORY;
112 lo &= ~SOFT_BAR_OHCI_FLAG;
113 _wrmsr(GLCP_MSR_REG(GLCP_SOFT_COM), hi, lo);
114 } else {
115 _rdmsr(USB_MSR_REG(USB_OHCI), &hi, &lo);
116 conf_data = lo & 0xffffff00;
117 conf_data &= ~0x0000000f; /* 32bit mem */
118 }
119 break;
120 case PCI_CARDBUS_CIS:
121 conf_data = PCI_CARDBUS_CIS_POINTER;
122 break;
123 case PCI_SUBSYSTEM_VENDOR_ID:
124 conf_data =
125 CFG_PCI_VENDOR_ID(CS5536_OHCI_SUB_ID, CS5536_SUB_VENDOR_ID);
126 break;
127 case PCI_ROM_ADDRESS:
128 conf_data = PCI_EXPANSION_ROM_BAR;
129 break;
130 case PCI_CAPABILITY_LIST:
131 conf_data = PCI_CAPLIST_USB_POINTER;
132 break;
133 case PCI_INTERRUPT_LINE:
134 conf_data =
135 CFG_PCI_INTERRUPT_LINE(PCI_DEFAULT_PIN, CS5536_USB_INTR);
136 break;
137 case PCI_OHCI_INT_REG:
138 _rdmsr(DIVIL_MSR_REG(PIC_YSEL_LOW), &hi, &lo);
139 if ((lo & 0x00000f00) == CS5536_USB_INTR)
140 conf_data = 1;
141 break;
142 default:
143 break;
144 }
145
146 return conf_data;
147}
diff --git a/arch/mips/loongson/common/cs5536/cs5536_pci.c b/arch/mips/loongson/common/cs5536/cs5536_pci.c
new file mode 100644
index 000000000000..6dfeab11af08
--- /dev/null
+++ b/arch/mips/loongson/common/cs5536/cs5536_pci.c
@@ -0,0 +1,87 @@
1/*
2 * read/write operation to the PCI config space of CS5536
3 *
4 * Copyright (C) 2007 Lemote, Inc.
5 * Author : jlliu, liujl@lemote.com
6 *
7 * Copyright (C) 2009 Lemote, Inc.
8 * Author: Wu Zhangjin, wuzhangjin@gmail.com
9 *
10 * This program is free software; you can redistribute it and/or modify it
11 * under the terms of the GNU General Public License as published by the
12 * Free Software Foundation; either version 2 of the License, or (at your
13 * option) any later version.
14 *
15 * the Virtual Support Module(VSM) for virtulizing the PCI
16 * configure space are defined in cs5536_modulename.c respectively,
17 *
18 * after this virtulizing, user can access the PCI configure space
19 * directly as a normal multi-function PCI device which follows
20 * the PCI-2.2 spec.
21 */
22
23#include <linux/types.h>
24#include <cs5536/cs5536_vsm.h>
25
26enum {
27 CS5536_FUNC_START = -1,
28 CS5536_ISA_FUNC,
29 reserved_func,
30 CS5536_IDE_FUNC,
31 CS5536_ACC_FUNC,
32 CS5536_OHCI_FUNC,
33 CS5536_EHCI_FUNC,
34 CS5536_FUNC_END,
35};
36
37static const cs5536_pci_vsm_write vsm_conf_write[] = {
38 [CS5536_ISA_FUNC] pci_isa_write_reg,
39 [reserved_func] NULL,
40 [CS5536_IDE_FUNC] pci_ide_write_reg,
41 [CS5536_ACC_FUNC] pci_acc_write_reg,
42 [CS5536_OHCI_FUNC] pci_ohci_write_reg,
43 [CS5536_EHCI_FUNC] pci_ehci_write_reg,
44};
45
46static const cs5536_pci_vsm_read vsm_conf_read[] = {
47 [CS5536_ISA_FUNC] pci_isa_read_reg,
48 [reserved_func] NULL,
49 [CS5536_IDE_FUNC] pci_ide_read_reg,
50 [CS5536_ACC_FUNC] pci_acc_read_reg,
51 [CS5536_OHCI_FUNC] pci_ohci_read_reg,
52 [CS5536_EHCI_FUNC] pci_ehci_read_reg,
53};
54
55/*
56 * write to PCI config space and transfer it to MSR write.
57 */
58void cs5536_pci_conf_write4(int function, int reg, u32 value)
59{
60 if ((function <= CS5536_FUNC_START) || (function >= CS5536_FUNC_END))
61 return;
62 if ((reg < 0) || (reg > 0x100) || ((reg & 0x03) != 0))
63 return;
64
65 if (vsm_conf_write[function] != NULL)
66 vsm_conf_write[function](reg, value);
67}
68
69/*
70 * read PCI config space and transfer it to MSR access.
71 */
72u32 cs5536_pci_conf_read4(int function, int reg)
73{
74 u32 data = 0;
75
76 if ((function <= CS5536_FUNC_START) || (function >= CS5536_FUNC_END))
77 return 0;
78 if ((reg < 0) || ((reg & 0x03) != 0))
79 return 0;
80 if (reg > 0x100)
81 return 0xffffffff;
82
83 if (vsm_conf_read[function] != NULL)
84 data = vsm_conf_read[function](reg);
85
86 return data;
87}
diff --git a/arch/mips/loongson/common/early_printk.c b/arch/mips/loongson/common/early_printk.c
index bc73edc0cfd8..a71736f00443 100644
--- a/arch/mips/loongson/common/early_printk.c
+++ b/arch/mips/loongson/common/early_printk.c
@@ -1,8 +1,8 @@
1/* early printk support 1/* early printk support
2 * 2 *
3 * Copyright (c) 2009 Philippe Vachon <philippe@cowpig.ca> 3 * Copyright (c) 2009 Philippe Vachon <philippe@cowpig.ca>
4 * Copyright (C) 2009 Lemote Inc. & Insititute of Computing Technology 4 * Copyright (c) 2009 Lemote Inc.
5 * Author: Wu Zhangjin, wuzj@lemote.com 5 * Author: Wu Zhangjin, wuzhangjin@gmail.com
6 * 6 *
7 * This program is free software; you can redistribute it and/or modify it 7 * This program is free software; you can redistribute it and/or modify it
8 * under the terms of the GNU General Public License as published by the 8 * under the terms of the GNU General Public License as published by the
@@ -12,26 +12,29 @@
12#include <linux/serial_reg.h> 12#include <linux/serial_reg.h>
13 13
14#include <loongson.h> 14#include <loongson.h>
15#include <machine.h>
16 15
17#define PORT(base, offset) (u8 *)(base + offset) 16#define PORT(base, offset) (u8 *)(base + offset)
18 17
19static inline unsigned int serial_in(phys_addr_t base, int offset) 18static inline unsigned int serial_in(unsigned char *base, int offset)
20{ 19{
21 return readb(PORT(base, offset)); 20 return readb(PORT(base, offset));
22} 21}
23 22
24static inline void serial_out(phys_addr_t base, int offset, int value) 23static inline void serial_out(unsigned char *base, int offset, int value)
25{ 24{
26 writeb(value, PORT(base, offset)); 25 writeb(value, PORT(base, offset));
27} 26}
28 27
29void prom_putchar(char c) 28void prom_putchar(char c)
30{ 29{
31 phys_addr_t uart_base = 30 int timeout;
32 (phys_addr_t) ioremap_nocache(LOONGSON_UART_BASE, 8); 31 unsigned char *uart_base;
33 32
34 while ((serial_in(uart_base, UART_LSR) & UART_LSR_THRE) == 0) 33 uart_base = (unsigned char *)_loongson_uart_base;
34 timeout = 1024;
35
36 while (((serial_in(uart_base, UART_LSR) & UART_LSR_THRE) == 0) &&
37 (timeout-- > 0))
35 ; 38 ;
36 39
37 serial_out(uart_base, UART_TX, c); 40 serial_out(uart_base, UART_TX, c);
diff --git a/arch/mips/loongson/common/env.c b/arch/mips/loongson/common/env.c
index b9ef50385541..ae4cff97a56c 100644
--- a/arch/mips/loongson/common/env.c
+++ b/arch/mips/loongson/common/env.c
@@ -9,24 +9,24 @@
9 * Copyright (C) 2007 Lemote Inc. & Insititute of Computing Technology 9 * Copyright (C) 2007 Lemote Inc. & Insititute of Computing Technology
10 * Author: Fuxin Zhang, zhangfx@lemote.com 10 * Author: Fuxin Zhang, zhangfx@lemote.com
11 * 11 *
12 * Copyright (C) 2009 Lemote Inc. & Insititute of Computing Technology 12 * Copyright (C) 2009 Lemote Inc.
13 * Author: Wu Zhangjin, wuzj@lemote.com 13 * Author: Wu Zhangjin, wuzhangjin@gmail.com
14 * 14 *
15 * This program is free software; you can redistribute it and/or modify it 15 * This program is free software; you can redistribute it and/or modify it
16 * under the terms of the GNU General Public License as published by the 16 * under the terms of the GNU General Public License as published by the
17 * Free Software Foundation; either version 2 of the License, or (at your 17 * Free Software Foundation; either version 2 of the License, or (at your
18 * option) any later version. 18 * option) any later version.
19 */ 19 */
20#include <linux/module.h>
21
20#include <asm/bootinfo.h> 22#include <asm/bootinfo.h>
21 23
22#include <loongson.h> 24#include <loongson.h>
23 25
24unsigned long bus_clock, cpu_clock_freq; 26unsigned long cpu_clock_freq;
27EXPORT_SYMBOL(cpu_clock_freq);
25unsigned long memsize, highmemsize; 28unsigned long memsize, highmemsize;
26 29
27/* pmon passes arguments in 32bit pointers */
28int *_prom_envp;
29
30#define parse_even_earlier(res, option, p) \ 30#define parse_even_earlier(res, option, p) \
31do { \ 31do { \
32 if (strncmp(option, (char *)p, strlen(option)) == 0) \ 32 if (strncmp(option, (char *)p, strlen(option)) == 0) \
@@ -36,6 +36,10 @@ do { \
36 36
37void __init prom_init_env(void) 37void __init prom_init_env(void)
38{ 38{
39 /* pmon passes arguments in 32bit pointers */
40 int *_prom_envp;
41 unsigned long bus_clock;
42 unsigned int processor_id;
39 long l; 43 long l;
40 44
41 /* firmware arguments are initialized in head.S */ 45 /* firmware arguments are initialized in head.S */
@@ -52,6 +56,22 @@ void __init prom_init_env(void)
52 } 56 }
53 if (memsize == 0) 57 if (memsize == 0)
54 memsize = 256; 58 memsize = 256;
59 if (bus_clock == 0)
60 bus_clock = 66000000;
61 if (cpu_clock_freq == 0) {
62 processor_id = (&current_cpu_data)->processor_id;
63 switch (processor_id & PRID_REV_MASK) {
64 case PRID_REV_LOONGSON2E:
65 cpu_clock_freq = 533080000;
66 break;
67 case PRID_REV_LOONGSON2F:
68 cpu_clock_freq = 797000000;
69 break;
70 default:
71 cpu_clock_freq = 100000000;
72 break;
73 }
74 }
55 75
56 pr_info("busclock=%ld, cpuclock=%ld, memsize=%ld, highmemsize=%ld\n", 76 pr_info("busclock=%ld, cpuclock=%ld, memsize=%ld, highmemsize=%ld\n",
57 bus_clock, cpu_clock_freq, memsize, highmemsize); 77 bus_clock, cpu_clock_freq, memsize, highmemsize);
diff --git a/arch/mips/loongson/common/init.c b/arch/mips/loongson/common/init.c
index 3abe927422a3..19d341591254 100644
--- a/arch/mips/loongson/common/init.c
+++ b/arch/mips/loongson/common/init.c
@@ -1,6 +1,6 @@
1/* 1/*
2 * Copyright (C) 2009 Lemote Inc. & Insititute of Computing Technology 2 * Copyright (C) 2009 Lemote Inc.
3 * Author: Wu Zhangjin, wuzj@lemote.com 3 * Author: Wu Zhangjin, wuzhangjin@gmail.com
4 * 4 *
5 * This program is free software; you can redistribute it and/or modify it 5 * This program is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License as published by the 6 * under the terms of the GNU General Public License as published by the
@@ -10,19 +10,28 @@
10 10
11#include <linux/bootmem.h> 11#include <linux/bootmem.h>
12 12
13#include <asm/bootinfo.h>
14
15#include <loongson.h> 13#include <loongson.h>
16 14
15/* Loongson CPU address windows config space base address */
16unsigned long __maybe_unused _loongson_addrwincfg_base;
17
17void __init prom_init(void) 18void __init prom_init(void)
18{ 19{
19 /* init base address of io space */ 20 /* init base address of io space */
20 set_io_port_base((unsigned long) 21 set_io_port_base((unsigned long)
21 ioremap(BONITO_PCIIO_BASE, BONITO_PCIIO_SIZE)); 22 ioremap(LOONGSON_PCIIO_BASE, LOONGSON_PCIIO_SIZE));
23
24#ifdef CONFIG_CPU_SUPPORTS_ADDRWINCFG
25 _loongson_addrwincfg_base = (unsigned long)
26 ioremap(LOONGSON_ADDRWINCFG_BASE, LOONGSON_ADDRWINCFG_SIZE);
27#endif
22 28
23 prom_init_cmdline(); 29 prom_init_cmdline();
24 prom_init_env(); 30 prom_init_env();
25 prom_init_memory(); 31 prom_init_memory();
32
33 /*init the uart base address */
34 prom_init_uart_base();
26} 35}
27 36
28void __init prom_free_prom_memory(void) 37void __init prom_free_prom_memory(void)
diff --git a/arch/mips/loongson/common/irq.c b/arch/mips/loongson/common/irq.c
index b32b4a3e5137..20e732831978 100644
--- a/arch/mips/loongson/common/irq.c
+++ b/arch/mips/loongson/common/irq.c
@@ -20,21 +20,21 @@ void bonito_irqdispatch(void)
20 int i; 20 int i;
21 21
22 /* workaround the IO dma problem: let cpu looping to allow DMA finish */ 22 /* workaround the IO dma problem: let cpu looping to allow DMA finish */
23 int_status = BONITO_INTISR; 23 int_status = LOONGSON_INTISR;
24 if (int_status & (1 << 10)) { 24 if (int_status & (1 << 10)) {
25 while (int_status & (1 << 10)) { 25 while (int_status & (1 << 10)) {
26 udelay(1); 26 udelay(1);
27 int_status = BONITO_INTISR; 27 int_status = LOONGSON_INTISR;
28 } 28 }
29 } 29 }
30 30
31 /* Get pending sources, masked by current enables */ 31 /* Get pending sources, masked by current enables */
32 int_status = BONITO_INTISR & BONITO_INTEN; 32 int_status = LOONGSON_INTISR & LOONGSON_INTEN;
33 33
34 if (int_status != 0) { 34 if (int_status != 0) {
35 i = __ffs(int_status); 35 i = __ffs(int_status);
36 int_status &= ~(1 << i); 36 int_status &= ~(1 << i);
37 do_IRQ(BONITO_IRQ_BASE + i); 37 do_IRQ(LOONGSON_IRQ_BASE + i);
38 } 38 }
39} 39}
40 40
@@ -60,13 +60,13 @@ void __init arch_init_irq(void)
60 set_irq_trigger_mode(); 60 set_irq_trigger_mode();
61 61
62 /* no steer */ 62 /* no steer */
63 BONITO_INTSTEER = 0; 63 LOONGSON_INTSTEER = 0;
64 64
65 /* 65 /*
66 * Mask out all interrupt by writing "1" to all bit position in 66 * Mask out all interrupt by writing "1" to all bit position in
67 * the interrupt reset reg. 67 * the interrupt reset reg.
68 */ 68 */
69 BONITO_INTENCLR = ~0; 69 LOONGSON_INTENCLR = ~0;
70 70
71 /* machine specific irq init */ 71 /* machine specific irq init */
72 mach_init_irq(); 72 mach_init_irq();
diff --git a/arch/mips/loongson/common/machtype.c b/arch/mips/loongson/common/machtype.c
index 7b348248de7d..81fbe6b73f91 100644
--- a/arch/mips/loongson/common/machtype.c
+++ b/arch/mips/loongson/common/machtype.c
@@ -1,6 +1,6 @@
1/* 1/*
2 * Copyright (C) 2009 Lemote Inc. & Insititute of Computing Technology 2 * Copyright (C) 2009 Lemote Inc.
3 * Author: Wu Zhangjin, wuzj@lemote.com 3 * Author: Wu Zhangjin, wuzhangjin@gmail.com
4 * 4 *
5 * Copyright (c) 2009 Zhang Le <r0bertz@gentoo.org> 5 * Copyright (c) 2009 Zhang Le <r0bertz@gentoo.org>
6 * 6 *
@@ -15,36 +15,51 @@
15#include <loongson.h> 15#include <loongson.h>
16#include <machine.h> 16#include <machine.h>
17 17
18/* please ensure the length of the machtype string is less than 50 */
19#define MACHTYPE_LEN 50
20
18static const char *system_types[] = { 21static const char *system_types[] = {
19 [MACH_LOONGSON_UNKNOWN] "unknown loongson machine", 22 [MACH_LOONGSON_UNKNOWN] "unknown loongson machine",
20 [MACH_LEMOTE_FL2E] "lemote-fuloong-2e-box", 23 [MACH_LEMOTE_FL2E] "lemote-fuloong-2e-box",
21 [MACH_LEMOTE_FL2F] "lemote-fuloong-2f-box", 24 [MACH_LEMOTE_FL2F] "lemote-fuloong-2f-box",
22 [MACH_LEMOTE_ML2F7] "lemote-mengloong-2f-7inches", 25 [MACH_LEMOTE_ML2F7] "lemote-mengloong-2f-7inches",
23 [MACH_LEMOTE_YL2F89] "lemote-yeeloong-2f-8.9inches", 26 [MACH_LEMOTE_YL2F89] "lemote-yeeloong-2f-8.9inches",
24 [MACH_DEXXON_GDIUM2F10] "dexxon-gidum-2f-10inches", 27 [MACH_DEXXON_GDIUM2F10] "dexxon-gdium-2f",
28 [MACH_LEMOTE_NAS] "lemote-nas-2f",
29 [MACH_LEMOTE_LL2F] "lemote-lynloong-2f",
25 [MACH_LOONGSON_END] NULL, 30 [MACH_LOONGSON_END] NULL,
26}; 31};
27 32
28const char *get_system_type(void) 33const char *get_system_type(void)
29{ 34{
30 if (mips_machtype == MACH_UNKNOWN)
31 mips_machtype = LOONGSON_MACHTYPE;
32
33 return system_types[mips_machtype]; 35 return system_types[mips_machtype];
34} 36}
35 37
36static __init int machtype_setup(char *str) 38void __weak __init mach_prom_init_machtype(void)
39{
40}
41
42void __init prom_init_machtype(void)
37{ 43{
44 char *p, str[MACHTYPE_LEN];
38 int machtype = MACH_LEMOTE_FL2E; 45 int machtype = MACH_LEMOTE_FL2E;
39 46
40 if (!str) 47 mips_machtype = LOONGSON_MACHTYPE;
41 return -EINVAL; 48
49 p = strstr(arcs_cmdline, "machtype=");
50 if (!p) {
51 mach_prom_init_machtype();
52 return;
53 }
54 p += strlen("machtype=");
55 strncpy(str, p, MACHTYPE_LEN);
56 p = strstr(str, " ");
57 if (p)
58 *p = '\0';
42 59
43 for (; system_types[machtype]; machtype++) 60 for (; system_types[machtype]; machtype++)
44 if (strstr(system_types[machtype], str)) { 61 if (strstr(system_types[machtype], str)) {
45 mips_machtype = machtype; 62 mips_machtype = machtype;
46 break; 63 break;
47 } 64 }
48 return 0;
49} 65}
50__setup("machtype=", machtype_setup);
diff --git a/arch/mips/loongson/common/mem.c b/arch/mips/loongson/common/mem.c
index 7c92f79b6480..30eba6001205 100644
--- a/arch/mips/loongson/common/mem.c
+++ b/arch/mips/loongson/common/mem.c
@@ -12,24 +12,108 @@
12 12
13#include <loongson.h> 13#include <loongson.h>
14#include <mem.h> 14#include <mem.h>
15#include <pci.h>
15 16
16void __init prom_init_memory(void) 17void __init prom_init_memory(void)
17{ 18{
18 add_memory_region(0x0, (memsize << 20), BOOT_MEM_RAM); 19 add_memory_region(0x0, (memsize << 20), BOOT_MEM_RAM);
20
21 add_memory_region(memsize << 20, LOONGSON_PCI_MEM_START - (memsize <<
22 20), BOOT_MEM_RESERVED);
23
24#ifdef CONFIG_CPU_SUPPORTS_ADDRWINCFG
25 {
26 int bit;
27
28 bit = fls(memsize + highmemsize);
29 if (bit != ffs(memsize + highmemsize))
30 bit += 20;
31 else
32 bit = bit + 20 - 1;
33
34 /* set cpu window3 to map CPU to DDR: 2G -> 2G */
35 LOONGSON_ADDRWIN_CPUTODDR(ADDRWIN_WIN3, 0x80000000ul,
36 0x80000000ul, (1 << bit));
37 mmiowb();
38 }
39#endif /* !CONFIG_CPU_SUPPORTS_ADDRWINCFG */
40
19#ifdef CONFIG_64BIT 41#ifdef CONFIG_64BIT
20 if (highmemsize > 0) 42 if (highmemsize > 0)
21 add_memory_region(LOONGSON_HIGHMEM_START, 43 add_memory_region(LOONGSON_HIGHMEM_START,
22 highmemsize << 20, BOOT_MEM_RAM); 44 highmemsize << 20, BOOT_MEM_RAM);
23#endif /* CONFIG_64BIT */ 45
46 add_memory_region(LOONGSON_PCI_MEM_END + 1, LOONGSON_HIGHMEM_START -
47 LOONGSON_PCI_MEM_END - 1, BOOT_MEM_RESERVED);
48
49#endif /* !CONFIG_64BIT */
24} 50}
25 51
26/* override of arch/mips/mm/cache.c: __uncached_access */ 52/* override of arch/mips/mm/cache.c: __uncached_access */
27int __uncached_access(struct file *file, unsigned long addr) 53int __uncached_access(struct file *file, unsigned long addr)
28{ 54{
29 if (file->f_flags & O_SYNC) 55 if (file->f_flags & O_DSYNC)
30 return 1; 56 return 1;
31 57
32 return addr >= __pa(high_memory) || 58 return addr >= __pa(high_memory) ||
33 ((addr >= LOONGSON_MMIO_MEM_START) && 59 ((addr >= LOONGSON_MMIO_MEM_START) &&
34 (addr < LOONGSON_MMIO_MEM_END)); 60 (addr < LOONGSON_MMIO_MEM_END));
35} 61}
62
63#ifdef CONFIG_CPU_SUPPORTS_UNCACHED_ACCELERATED
64
65#include <linux/pci.h>
66#include <linux/sched.h>
67#include <asm/current.h>
68
69static unsigned long uca_start, uca_end;
70
71pgprot_t phys_mem_access_prot(struct file *file, unsigned long pfn,
72 unsigned long size, pgprot_t vma_prot)
73{
74 unsigned long offset = pfn << PAGE_SHIFT;
75 unsigned long end = offset + size;
76
77 if (__uncached_access(file, offset)) {
78 if (uca_start && (offset >= uca_start) &&
79 (end <= uca_end))
80 return __pgprot((pgprot_val(vma_prot) &
81 ~_CACHE_MASK) |
82 _CACHE_UNCACHED_ACCELERATED);
83 else
84 return pgprot_noncached(vma_prot);
85 }
86 return vma_prot;
87}
88
89static int __init find_vga_mem_init(void)
90{
91 struct pci_dev *dev = 0;
92 struct resource *r;
93 int idx;
94
95 if (uca_start)
96 return 0;
97
98 for_each_pci_dev(dev) {
99 if ((dev->class >> 16) == PCI_BASE_CLASS_DISPLAY) {
100 for (idx = 0; idx < PCI_NUM_RESOURCES; idx++) {
101 r = &dev->resource[idx];
102 if (!r->start && r->end)
103 continue;
104 if (r->flags & IORESOURCE_IO)
105 continue;
106 if (r->flags & IORESOURCE_MEM) {
107 uca_start = r->start;
108 uca_end = r->end;
109 return 0;
110 }
111 }
112 }
113 }
114
115 return 0;
116}
117
118late_initcall(find_vga_mem_init);
119#endif /* !CONFIG_CPU_SUPPORTS_UNCACHED_ACCELERATED */
diff --git a/arch/mips/loongson/common/pci.c b/arch/mips/loongson/common/pci.c
index a3a4abfb6c9a..31d8c5ecd16c 100644
--- a/arch/mips/loongson/common/pci.c
+++ b/arch/mips/loongson/common/pci.c
@@ -27,7 +27,7 @@ static struct resource loongson_pci_io_resource = {
27}; 27};
28 28
29static struct pci_controller loongson_pci_controller = { 29static struct pci_controller loongson_pci_controller = {
30 .pci_ops = &bonito64_pci_ops, 30 .pci_ops = &loongson_pci_ops,
31 .io_resource = &loongson_pci_io_resource, 31 .io_resource = &loongson_pci_io_resource,
32 .mem_resource = &loongson_pci_mem_resource, 32 .mem_resource = &loongson_pci_mem_resource,
33 .mem_offset = 0x00000000UL, 33 .mem_offset = 0x00000000UL,
@@ -44,15 +44,15 @@ static void __init setup_pcimap(void)
44 * pcimap: PCI_MAP2 PCI_Mem_Lo2 PCI_Mem_Lo1 PCI_Mem_Lo0 44 * pcimap: PCI_MAP2 PCI_Mem_Lo2 PCI_Mem_Lo1 PCI_Mem_Lo0
45 * [<2G] [384M,448M] [320M,384M] [0M,64M] 45 * [<2G] [384M,448M] [320M,384M] [0M,64M]
46 */ 46 */
47 BONITO_PCIMAP = BONITO_PCIMAP_PCIMAP_2 | 47 LOONGSON_PCIMAP = LOONGSON_PCIMAP_PCIMAP_2 |
48 BONITO_PCIMAP_WIN(2, BONITO_PCILO2_BASE) | 48 LOONGSON_PCIMAP_WIN(2, LOONGSON_PCILO2_BASE) |
49 BONITO_PCIMAP_WIN(1, BONITO_PCILO1_BASE) | 49 LOONGSON_PCIMAP_WIN(1, LOONGSON_PCILO1_BASE) |
50 BONITO_PCIMAP_WIN(0, 0); 50 LOONGSON_PCIMAP_WIN(0, 0);
51 51
52 /* 52 /*
53 * PCI-DMA to local mapping: [2G,2G+256M] -> [0M,256M] 53 * PCI-DMA to local mapping: [2G,2G+256M] -> [0M,256M]
54 */ 54 */
55 BONITO_PCIBASE0 = 0x80000000ul; /* base: 2G -> mmap: 0M */ 55 LOONGSON_PCIBASE0 = 0x80000000ul; /* base: 2G -> mmap: 0M */
56 /* size: 256M, burst transmission, pre-fetch enable, 64bit */ 56 /* size: 256M, burst transmission, pre-fetch enable, 64bit */
57 LOONGSON_PCI_HIT0_SEL_L = 0xc000000cul; 57 LOONGSON_PCI_HIT0_SEL_L = 0xc000000cul;
58 LOONGSON_PCI_HIT0_SEL_H = 0xfffffffful; 58 LOONGSON_PCI_HIT0_SEL_H = 0xfffffffful;
@@ -67,6 +67,14 @@ static void __init setup_pcimap(void)
67 /* can not change gnt to break pci transfer when device's gnt not 67 /* can not change gnt to break pci transfer when device's gnt not
68 deassert for some broken device */ 68 deassert for some broken device */
69 LOONGSON_PXARB_CFG = 0x00fe0105ul; 69 LOONGSON_PXARB_CFG = 0x00fe0105ul;
70
71#ifdef CONFIG_CPU_SUPPORTS_ADDRWINCFG
72 /*
73 * set cpu addr window2 to map CPU address space to PCI address space
74 */
75 LOONGSON_ADDRWIN_CPUTOPCI(ADDRWIN_WIN2, LOONGSON_CPU_MEM_SRC,
76 LOONGSON_PCI_MEM_DST, MMAP_CPUTOPCI_SIZE);
77#endif
70} 78}
71 79
72static int __init pcibios_init(void) 80static int __init pcibios_init(void)
diff --git a/arch/mips/loongson/common/platform.c b/arch/mips/loongson/common/platform.c
new file mode 100644
index 000000000000..ed007a2e0e1f
--- /dev/null
+++ b/arch/mips/loongson/common/platform.c
@@ -0,0 +1,30 @@
1/*
2 * Copyright (C) 2009 Lemote Inc.
3 * Author: Wu Zhangjin, wuzhangjin@gmail.com
4 *
5 * This program is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License as published by the
7 * Free Software Foundation; either version 2 of the License, or (at your
8 * option) any later version.
9 */
10
11#include <linux/err.h>
12#include <linux/platform_device.h>
13
14static struct platform_device loongson2_cpufreq_device = {
15 .name = "loongson2_cpufreq",
16 .id = -1,
17};
18
19static int __init loongson2_cpufreq_init(void)
20{
21 struct cpuinfo_mips *c = &current_cpu_data;
22
23 /* Only 2F revision and it's successors support CPUFreq */
24 if ((c->processor_id & PRID_REV_MASK) >= PRID_REV_LOONGSON2F)
25 return platform_device_register(&loongson2_cpufreq_device);
26
27 return -ENODEV;
28}
29
30arch_initcall(loongson2_cpufreq_init);
diff --git a/arch/mips/loongson/common/pm.c b/arch/mips/loongson/common/pm.c
new file mode 100644
index 000000000000..6c1fd9001712
--- /dev/null
+++ b/arch/mips/loongson/common/pm.c
@@ -0,0 +1,161 @@
1/*
2 * loongson-specific suspend support
3 *
4 * Copyright (C) 2009 Lemote Inc.
5 * Author: Wu Zhangjin <wuzhangjin@gmail.com>
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
11 */
12#include <linux/suspend.h>
13#include <linux/interrupt.h>
14#include <linux/pm.h>
15
16#include <asm/i8259.h>
17#include <asm/mipsregs.h>
18
19#include <loongson.h>
20
21static unsigned int __maybe_unused cached_master_mask; /* i8259A */
22static unsigned int __maybe_unused cached_slave_mask;
23static unsigned int __maybe_unused cached_bonito_irq_mask; /* bonito */
24
25void arch_suspend_disable_irqs(void)
26{
27 /* disable all mips events */
28 local_irq_disable();
29
30#ifdef CONFIG_I8259
31 /* disable all events of i8259A */
32 cached_slave_mask = inb(PIC_SLAVE_IMR);
33 cached_master_mask = inb(PIC_MASTER_IMR);
34
35 outb(0xff, PIC_SLAVE_IMR);
36 inb(PIC_SLAVE_IMR);
37 outb(0xff, PIC_MASTER_IMR);
38 inb(PIC_MASTER_IMR);
39#endif
40 /* disable all events of bonito */
41 cached_bonito_irq_mask = LOONGSON_INTEN;
42 LOONGSON_INTENCLR = 0xffff;
43 (void)LOONGSON_INTENCLR;
44}
45
46void arch_suspend_enable_irqs(void)
47{
48 /* enable all mips events */
49 local_irq_enable();
50#ifdef CONFIG_I8259
51 /* only enable the cached events of i8259A */
52 outb(cached_slave_mask, PIC_SLAVE_IMR);
53 outb(cached_master_mask, PIC_MASTER_IMR);
54#endif
55 /* enable all cached events of bonito */
56 LOONGSON_INTENSET = cached_bonito_irq_mask;
57 (void)LOONGSON_INTENSET;
58}
59
60/*
61 * Setup the board-specific events for waking up loongson from wait mode
62 */
63void __weak setup_wakeup_events(void)
64{
65}
66
67/*
68 * Check wakeup events
69 */
70int __weak wakeup_loongson(void)
71{
72 return 1;
73}
74
75/*
76 * If the events are really what we want to wakeup the CPU, wake it up
77 * otherwise put the CPU asleep again.
78 */
79static void wait_for_wakeup_events(void)
80{
81 while (!wakeup_loongson())
82 LOONGSON_CHIPCFG0 &= ~0x7;
83}
84
85/*
86 * Stop all perf counters
87 *
88 * $24 is the control register of Loongson perf counter
89 */
90static inline void stop_perf_counters(void)
91{
92 __write_64bit_c0_register($24, 0, 0);
93}
94
95
96static void loongson_suspend_enter(void)
97{
98 static unsigned int cached_cpu_freq;
99
100 /* setup wakeup events via enabling the IRQs */
101 setup_wakeup_events();
102
103 stop_perf_counters();
104
105 cached_cpu_freq = LOONGSON_CHIPCFG0;
106
107 /* Put CPU into wait mode */
108 LOONGSON_CHIPCFG0 &= ~0x7;
109
110 /* wait for the given events to wakeup cpu from wait mode */
111 wait_for_wakeup_events();
112
113 LOONGSON_CHIPCFG0 = cached_cpu_freq;
114 mmiowb();
115}
116
117void __weak mach_suspend(void)
118{
119}
120
121void __weak mach_resume(void)
122{
123}
124
125static int loongson_pm_enter(suspend_state_t state)
126{
127 mach_suspend();
128
129 /* processor specific suspend */
130 loongson_suspend_enter();
131
132 mach_resume();
133
134 return 0;
135}
136
137static int loongson_pm_valid_state(suspend_state_t state)
138{
139 switch (state) {
140 case PM_SUSPEND_ON:
141 case PM_SUSPEND_STANDBY:
142 case PM_SUSPEND_MEM:
143 return 1;
144
145 default:
146 return 0;
147 }
148}
149
150static struct platform_suspend_ops loongson_pm_ops = {
151 .valid = loongson_pm_valid_state,
152 .enter = loongson_pm_enter,
153};
154
155static int __init loongson_pm_init(void)
156{
157 suspend_set_ops(&loongson_pm_ops);
158
159 return 0;
160}
161arch_initcall(loongson_pm_init);
diff --git a/arch/mips/loongson/common/reset.c b/arch/mips/loongson/common/reset.c
index 97e918251edd..9e10d6225d9b 100644
--- a/arch/mips/loongson/common/reset.c
+++ b/arch/mips/loongson/common/reset.c
@@ -6,8 +6,8 @@
6 * 6 *
7 * Copyright (C) 2007 Lemote, Inc. & Institute of Computing Technology 7 * Copyright (C) 2007 Lemote, Inc. & Institute of Computing Technology
8 * Author: Fuxin Zhang, zhangfx@lemote.com 8 * Author: Fuxin Zhang, zhangfx@lemote.com
9 * Copyright (C) 2009 Lemote, Inc. & Institute of Computing Technology 9 * Copyright (C) 2009 Lemote, Inc.
10 * Author: Zhangjin Wu, wuzj@lemote.com 10 * Author: Zhangjin Wu, wuzhangjin@gmail.com
11 */ 11 */
12#include <linux/init.h> 12#include <linux/init.h>
13#include <linux/pm.h> 13#include <linux/pm.h>
@@ -16,27 +16,53 @@
16 16
17#include <loongson.h> 17#include <loongson.h>
18 18
19static 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
19static void loongson_restart(char *command) 37static 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(BONITO_BOOT_BASE, 4)) (); 43 loongson_reboot();
26} 44}
27 45
28static void loongson_halt(void) 46static void loongson_poweroff(void)
29{ 47{
30 mach_prepare_shutdown(); 48 mach_prepare_shutdown();
31 while (1) 49 unreachable();
32 ; 50}
51
52static void loongson_halt(void)
53{
54 pr_notice("\n\n** You can safely turn off the power now **\n\n");
55 while (1) {
56 if (cpu_wait)
57 cpu_wait();
58 }
33} 59}
34 60
35static int __init mips_reboot_setup(void) 61static int __init mips_reboot_setup(void)
36{ 62{
37 _machine_restart = loongson_restart; 63 _machine_restart = loongson_restart;
38 _machine_halt = loongson_halt; 64 _machine_halt = loongson_halt;
39 pm_power_off = loongson_halt; 65 pm_power_off = loongson_poweroff;
40 66
41 return 0; 67 return 0;
42} 68}
diff --git a/arch/mips/loongson/common/serial.c b/arch/mips/loongson/common/serial.c
new file mode 100644
index 000000000000..7580873143c8
--- /dev/null
+++ b/arch/mips/loongson/common/serial.c
@@ -0,0 +1,76 @@
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) 2007 Ralf Baechle (ralf@linux-mips.org)
7 *
8 * Copyright (C) 2009 Lemote, Inc.
9 * Author: Yan hua (yanhua@lemote.com)
10 * Author: Wu Zhangjin (wuzhangjin@gmail.com)
11 */
12
13#include <linux/io.h>
14#include <linux/init.h>
15#include <linux/serial_8250.h>
16
17#include <asm/bootinfo.h>
18
19#include <loongson.h>
20#include <machine.h>
21
22#define PORT(int) \
23{ \
24 .irq = int, \
25 .uartclk = 1843200, \
26 .iotype = UPIO_PORT, \
27 .flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST, \
28 .regshift = 0, \
29}
30
31#define PORT_M(int) \
32{ \
33 .irq = MIPS_CPU_IRQ_BASE + (int), \
34 .uartclk = 3686400, \
35 .iotype = UPIO_MEM, \
36 .membase = (void __iomem *)NULL, \
37 .flags = UPF_BOOT_AUTOCONF | UPF_SKIP_TEST, \
38 .regshift = 0, \
39}
40
41static struct plat_serial8250_port uart8250_data[][2] = {
42 [MACH_LOONGSON_UNKNOWN] {},
43 [MACH_LEMOTE_FL2E] {PORT(4), {} },
44 [MACH_LEMOTE_FL2F] {PORT(3), {} },
45 [MACH_LEMOTE_ML2F7] {PORT_M(3), {} },
46 [MACH_LEMOTE_YL2F89] {PORT_M(3), {} },
47 [MACH_DEXXON_GDIUM2F10] {PORT_M(3), {} },
48 [MACH_LEMOTE_NAS] {PORT_M(3), {} },
49 [MACH_LEMOTE_LL2F] {PORT(3), {} },
50 [MACH_LOONGSON_END] {},
51};
52
53static struct platform_device uart8250_device = {
54 .name = "serial8250",
55 .id = PLAT8250_DEV_PLATFORM,
56};
57
58static int __init serial_init(void)
59{
60 unsigned char iotype;
61
62 iotype = uart8250_data[mips_machtype][0].iotype;
63
64 if (UPIO_MEM == iotype)
65 uart8250_data[mips_machtype][0].membase =
66 (void __iomem *)_loongson_uart_base;
67 else if (UPIO_PORT == iotype)
68 uart8250_data[mips_machtype][0].iobase =
69 loongson_uart_base - LOONGSON_PCIIO_BASE;
70
71 uart8250_device.dev.platform_data = uart8250_data[mips_machtype];
72
73 return platform_device_register(&uart8250_device);
74}
75
76device_initcall(serial_init);
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/common/time.c b/arch/mips/loongson/common/time.c
index 6e08c8270abe..9fdd01f6c56a 100644
--- a/arch/mips/loongson/common/time.c
+++ b/arch/mips/loongson/common/time.c
@@ -2,8 +2,8 @@
2 * Copyright (C) 2007 Lemote, Inc. & Institute of Computing Technology 2 * Copyright (C) 2007 Lemote, Inc. & Institute of Computing Technology
3 * Author: Fuxin Zhang, zhangfx@lemote.com 3 * Author: Fuxin Zhang, zhangfx@lemote.com
4 * 4 *
5 * Copyright (C) 2009 Lemote Inc. & Insititute of Computing Technology 5 * Copyright (C) 2009 Lemote Inc.
6 * Author: Wu Zhangjin, wuzj@lemote.com 6 * Author: Wu Zhangjin, wuzhangjin@gmail.com
7 * 7 *
8 * This program is free software; you can redistribute it and/or modify it 8 * This program is free software; you can redistribute it and/or modify it
9 * under the terms of the GNU General Public License as published by the 9 * under the terms of the GNU General Public License as published by the
@@ -14,11 +14,14 @@
14#include <asm/time.h> 14#include <asm/time.h>
15 15
16#include <loongson.h> 16#include <loongson.h>
17#include <cs5536/cs5536_mfgpt.h>
17 18
18void __init plat_time_init(void) 19void __init plat_time_init(void)
19{ 20{
20 /* setup mips r4k timer */ 21 /* setup mips r4k timer */
21 mips_hpt_frequency = cpu_clock_freq / 2; 22 mips_hpt_frequency = cpu_clock_freq / 2;
23
24 setup_mfgpt0_timer();
22} 25}
23 26
24void read_persistent_clock(struct timespec *ts) 27void read_persistent_clock(struct timespec *ts)
diff --git a/arch/mips/loongson/common/uart_base.c b/arch/mips/loongson/common/uart_base.c
new file mode 100644
index 000000000000..d69ea54bc3d1
--- /dev/null
+++ b/arch/mips/loongson/common/uart_base.c
@@ -0,0 +1,45 @@
1/*
2 * Copyright (C) 2009 Lemote Inc.
3 * Author: Wu Zhangjin, wuzhangjin@gmail.com
4 *
5 * This program is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License as published by the
7 * Free Software Foundation; either version 2 of the License, or (at your
8 * option) any later version.
9 */
10
11#include <linux/module.h>
12#include <asm/bootinfo.h>
13
14#include <loongson.h>
15
16/* ioremapped */
17unsigned long _loongson_uart_base;
18EXPORT_SYMBOL(_loongson_uart_base);
19/* raw */
20unsigned long loongson_uart_base;
21EXPORT_SYMBOL(loongson_uart_base);
22
23void prom_init_loongson_uart_base(void)
24{
25 switch (mips_machtype) {
26 case MACH_LEMOTE_FL2E:
27 loongson_uart_base = LOONGSON_PCIIO_BASE + 0x3f8;
28 break;
29 case MACH_LEMOTE_FL2F:
30 case MACH_LEMOTE_LL2F:
31 loongson_uart_base = LOONGSON_PCIIO_BASE + 0x2f8;
32 break;
33 case MACH_LEMOTE_ML2F7:
34 case MACH_LEMOTE_YL2F89:
35 case MACH_DEXXON_GDIUM2F10:
36 case MACH_LEMOTE_NAS:
37 default:
38 /* The CPU provided serial port */
39 loongson_uart_base = LOONGSON_LIO1_BASE + 0x3f8;
40 break;
41 }
42
43 _loongson_uart_base =
44 (unsigned long)ioremap_nocache(loongson_uart_base, 8);
45}
diff --git a/arch/mips/loongson/fuloong-2e/irq.c b/arch/mips/loongson/fuloong-2e/irq.c
index 7888cf69424a..320e9379bdd7 100644
--- a/arch/mips/loongson/fuloong-2e/irq.c
+++ b/arch/mips/loongson/fuloong-2e/irq.c
@@ -47,8 +47,8 @@ static struct irqaction cascade_irqaction = {
47void __init set_irq_trigger_mode(void) 47void __init set_irq_trigger_mode(void)
48{ 48{
49 /* most bonito irq should be level triggered */ 49 /* most bonito irq should be level triggered */
50 BONITO_INTEDGE = BONITO_ICU_SYSTEMERR | BONITO_ICU_MASTERERR | 50 LOONGSON_INTEDGE = LOONGSON_ICU_SYSTEMERR | LOONGSON_ICU_MASTERERR |
51 BONITO_ICU_RETRYERR | BONITO_ICU_MBOXES; 51 LOONGSON_ICU_RETRYERR | LOONGSON_ICU_MBOXES;
52} 52}
53 53
54void __init mach_init_irq(void) 54void __init mach_init_irq(void)
diff --git a/arch/mips/loongson/fuloong-2e/reset.c b/arch/mips/loongson/fuloong-2e/reset.c
index 677fe186db95..bc39ec62c8c2 100644
--- a/arch/mips/loongson/fuloong-2e/reset.c
+++ b/arch/mips/loongson/fuloong-2e/reset.c
@@ -1,8 +1,8 @@
1/* Board-specific reboot/shutdown routines 1/* Board-specific reboot/shutdown routines
2 * Copyright (c) 2009 Philippe Vachon <philippe@cowpig.ca> 2 * Copyright (c) 2009 Philippe Vachon <philippe@cowpig.ca>
3 * 3 *
4 * Copyright (C) 2009 Lemote Inc. & Insititute of Computing Technology 4 * Copyright (C) 2009 Lemote Inc.
5 * Author: Wu Zhangjin, wuzj@lemote.com 5 * Author: Wu Zhangjin, wuzhangjin@gmail.com
6 * 6 *
7 * This program is free software; you can redistribute it and/or modify it 7 * This program is free software; you can redistribute it and/or modify it
8 * under the terms of the GNU General Public License as published by the 8 * under the terms of the GNU General Public License as published by the
@@ -14,8 +14,8 @@
14 14
15void mach_prepare_reboot(void) 15void mach_prepare_reboot(void)
16{ 16{
17 BONITO_BONGENCFG &= ~(1 << 2); 17 LOONGSON_GENCFG &= ~(1 << 2);
18 BONITO_BONGENCFG |= (1 << 2); 18 LOONGSON_GENCFG |= (1 << 2);
19} 19}
20 20
21void mach_prepare_shutdown(void) 21void mach_prepare_shutdown(void)
diff --git a/arch/mips/loongson/lemote-2f/Makefile b/arch/mips/loongson/lemote-2f/Makefile
new file mode 100644
index 000000000000..8699a53f0477
--- /dev/null
+++ b/arch/mips/loongson/lemote-2f/Makefile
@@ -0,0 +1,11 @@
1#
2# Makefile for lemote loongson2f family machines
3#
4
5obj-y += machtype.o irq.o reset.o ec_kb3310b.o
6
7#
8# Suspend Support
9#
10
11obj-$(CONFIG_LOONGSON_SUSPEND) += pm.o
diff --git a/arch/mips/loongson/lemote-2f/ec_kb3310b.c b/arch/mips/loongson/lemote-2f/ec_kb3310b.c
new file mode 100644
index 000000000000..64057244eec5
--- /dev/null
+++ b/arch/mips/loongson/lemote-2f/ec_kb3310b.c
@@ -0,0 +1,130 @@
1/*
2 * Basic KB3310B Embedded Controller support for the YeeLoong 2F netbook
3 *
4 * Copyright (C) 2008 Lemote Inc.
5 * Author: liujl <liujl@lemote.com>, 2008-04-20
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
11 */
12
13#include <linux/module.h>
14#include <linux/spinlock.h>
15#include <linux/delay.h>
16
17#include "ec_kb3310b.h"
18
19static DEFINE_SPINLOCK(index_access_lock);
20static DEFINE_SPINLOCK(port_access_lock);
21
22unsigned char ec_read(unsigned short addr)
23{
24 unsigned char value;
25 unsigned long flags;
26
27 spin_lock_irqsave(&index_access_lock, flags);
28 outb((addr & 0xff00) >> 8, EC_IO_PORT_HIGH);
29 outb((addr & 0x00ff), EC_IO_PORT_LOW);
30 value = inb(EC_IO_PORT_DATA);
31 spin_unlock_irqrestore(&index_access_lock, flags);
32
33 return value;
34}
35EXPORT_SYMBOL_GPL(ec_read);
36
37void ec_write(unsigned short addr, unsigned char val)
38{
39 unsigned long flags;
40
41 spin_lock_irqsave(&index_access_lock, flags);
42 outb((addr & 0xff00) >> 8, EC_IO_PORT_HIGH);
43 outb((addr & 0x00ff), EC_IO_PORT_LOW);
44 outb(val, EC_IO_PORT_DATA);
45 /* flush the write action */
46 inb(EC_IO_PORT_DATA);
47 spin_unlock_irqrestore(&index_access_lock, flags);
48
49 return;
50}
51EXPORT_SYMBOL_GPL(ec_write);
52
53/*
54 * This function is used for EC command writes and corresponding status queries.
55 */
56int ec_query_seq(unsigned char cmd)
57{
58 int timeout;
59 unsigned char status;
60 unsigned long flags;
61 int ret = 0;
62
63 spin_lock_irqsave(&port_access_lock, flags);
64
65 /* make chip goto reset mode */
66 udelay(EC_REG_DELAY);
67 outb(cmd, EC_CMD_PORT);
68 udelay(EC_REG_DELAY);
69
70 /* check if the command is received by ec */
71 timeout = EC_CMD_TIMEOUT;
72 status = inb(EC_STS_PORT);
73 while (timeout-- && (status & (1 << 1))) {
74 status = inb(EC_STS_PORT);
75 udelay(EC_REG_DELAY);
76 }
77
78 spin_unlock_irqrestore(&port_access_lock, flags);
79
80 if (timeout <= 0) {
81 printk(KERN_ERR "%s: deadable error : timeout...\n", __func__);
82 ret = -EINVAL;
83 } else
84 printk(KERN_INFO
85 "(%x/%d)ec issued command %d status : 0x%x\n",
86 timeout, EC_CMD_TIMEOUT - timeout, cmd, status);
87
88 return ret;
89}
90EXPORT_SYMBOL_GPL(ec_query_seq);
91
92/*
93 * Send query command to EC to get the proper event number
94 */
95int ec_query_event_num(void)
96{
97 return ec_query_seq(CMD_GET_EVENT_NUM);
98}
99EXPORT_SYMBOL(ec_query_event_num);
100
101/*
102 * Get event number from EC
103 *
104 * NOTE: This routine must follow the query_event_num function in the
105 * interrupt.
106 */
107int ec_get_event_num(void)
108{
109 int timeout = 100;
110 unsigned char value;
111 unsigned char status;
112
113 udelay(EC_REG_DELAY);
114 status = inb(EC_STS_PORT);
115 udelay(EC_REG_DELAY);
116 while (timeout-- && !(status & (1 << 0))) {
117 status = inb(EC_STS_PORT);
118 udelay(EC_REG_DELAY);
119 }
120 if (timeout <= 0) {
121 pr_info("%s: get event number timeout.\n", __func__);
122
123 return -EINVAL;
124 }
125 value = inb(EC_DAT_PORT);
126 udelay(EC_REG_DELAY);
127
128 return value;
129}
130EXPORT_SYMBOL(ec_get_event_num);
diff --git a/arch/mips/loongson/lemote-2f/ec_kb3310b.h b/arch/mips/loongson/lemote-2f/ec_kb3310b.h
new file mode 100644
index 000000000000..1595a21b315b
--- /dev/null
+++ b/arch/mips/loongson/lemote-2f/ec_kb3310b.h
@@ -0,0 +1,188 @@
1/*
2 * KB3310B Embedded Controller
3 *
4 * Copyright (C) 2008 Lemote Inc.
5 * Author: liujl <liujl@lemote.com>, 2008-03-14
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
11 */
12
13#ifndef _EC_KB3310B_H
14#define _EC_KB3310B_H
15
16extern unsigned char ec_read(unsigned short addr);
17extern void ec_write(unsigned short addr, unsigned char val);
18extern int ec_query_seq(unsigned char cmd);
19extern int ec_query_event_num(void);
20extern int ec_get_event_num(void);
21
22typedef int (*sci_handler) (int status);
23extern sci_handler yeeloong_report_lid_status;
24
25#define SCI_IRQ_NUM 0x0A
26
27/*
28 * The following registers are determined by the EC index configuration.
29 * 1, fill the PORT_HIGH as EC register high part.
30 * 2, fill the PORT_LOW as EC register low part.
31 * 3, fill the PORT_DATA as EC register write data or get the data from it.
32 */
33#define EC_IO_PORT_HIGH 0x0381
34#define EC_IO_PORT_LOW 0x0382
35#define EC_IO_PORT_DATA 0x0383
36
37/*
38 * EC delay time is 500us for register and status access
39 */
40#define EC_REG_DELAY 500 /* unit : us */
41#define EC_CMD_TIMEOUT 0x1000
42
43/*
44 * EC access port for SCI communication
45 */
46#define EC_CMD_PORT 0x66
47#define EC_STS_PORT 0x66
48#define EC_DAT_PORT 0x62
49#define CMD_INIT_IDLE_MODE 0xdd
50#define CMD_EXIT_IDLE_MODE 0xdf
51#define CMD_INIT_RESET_MODE 0xd8
52#define CMD_REBOOT_SYSTEM 0x8c
53#define CMD_GET_EVENT_NUM 0x84
54#define CMD_PROGRAM_PIECE 0xda
55
56/* temperature & fan registers */
57#define REG_TEMPERATURE_VALUE 0xF458
58#define REG_FAN_AUTO_MAN_SWITCH 0xF459
59#define BIT_FAN_AUTO 0
60#define BIT_FAN_MANUAL 1
61#define REG_FAN_CONTROL 0xF4D2
62#define BIT_FAN_CONTROL_ON (1 << 0)
63#define BIT_FAN_CONTROL_OFF (0 << 0)
64#define REG_FAN_STATUS 0xF4DA
65#define BIT_FAN_STATUS_ON (1 << 0)
66#define BIT_FAN_STATUS_OFF (0 << 0)
67#define REG_FAN_SPEED_HIGH 0xFE22
68#define REG_FAN_SPEED_LOW 0xFE23
69#define REG_FAN_SPEED_LEVEL 0xF4CC
70/* fan speed divider */
71#define FAN_SPEED_DIVIDER 480000 /* (60*1000*1000/62.5/2)*/
72
73/* battery registers */
74#define REG_BAT_DESIGN_CAP_HIGH 0xF77D
75#define REG_BAT_DESIGN_CAP_LOW 0xF77E
76#define REG_BAT_FULLCHG_CAP_HIGH 0xF780
77#define REG_BAT_FULLCHG_CAP_LOW 0xF781
78#define REG_BAT_DESIGN_VOL_HIGH 0xF782
79#define REG_BAT_DESIGN_VOL_LOW 0xF783
80#define REG_BAT_CURRENT_HIGH 0xF784
81#define REG_BAT_CURRENT_LOW 0xF785
82#define REG_BAT_VOLTAGE_HIGH 0xF786
83#define REG_BAT_VOLTAGE_LOW 0xF787
84#define REG_BAT_TEMPERATURE_HIGH 0xF788
85#define REG_BAT_TEMPERATURE_LOW 0xF789
86#define REG_BAT_RELATIVE_CAP_HIGH 0xF492
87#define REG_BAT_RELATIVE_CAP_LOW 0xF493
88#define REG_BAT_VENDOR 0xF4C4
89#define FLAG_BAT_VENDOR_SANYO 0x01
90#define FLAG_BAT_VENDOR_SIMPLO 0x02
91#define REG_BAT_CELL_COUNT 0xF4C6
92#define FLAG_BAT_CELL_3S1P 0x03
93#define FLAG_BAT_CELL_3S2P 0x06
94#define REG_BAT_CHARGE 0xF4A2
95#define FLAG_BAT_CHARGE_DISCHARGE 0x01
96#define FLAG_BAT_CHARGE_CHARGE 0x02
97#define FLAG_BAT_CHARGE_ACPOWER 0x00
98#define REG_BAT_STATUS 0xF4B0
99#define BIT_BAT_STATUS_LOW (1 << 5)
100#define BIT_BAT_STATUS_DESTROY (1 << 2)
101#define BIT_BAT_STATUS_FULL (1 << 1)
102#define BIT_BAT_STATUS_IN (1 << 0)
103#define REG_BAT_CHARGE_STATUS 0xF4B1
104#define BIT_BAT_CHARGE_STATUS_OVERTEMP (1 << 2)
105#define BIT_BAT_CHARGE_STATUS_PRECHG (1 << 1)
106#define REG_BAT_STATE 0xF482
107#define BIT_BAT_STATE_CHARGING (1 << 1)
108#define BIT_BAT_STATE_DISCHARGING (1 << 0)
109#define REG_BAT_POWER 0xF440
110#define BIT_BAT_POWER_S3 (1 << 2)
111#define BIT_BAT_POWER_ON (1 << 1)
112#define BIT_BAT_POWER_ACIN (1 << 0)
113
114/* other registers */
115/* Audio: rd/wr */
116#define REG_AUDIO_VOLUME 0xF46C
117#define REG_AUDIO_MUTE 0xF4E7
118#define REG_AUDIO_BEEP 0xF4D0
119/* USB port power or not: rd/wr */
120#define REG_USB0_FLAG 0xF461
121#define REG_USB1_FLAG 0xF462
122#define REG_USB2_FLAG 0xF463
123#define BIT_USB_FLAG_ON 1
124#define BIT_USB_FLAG_OFF 0
125/* LID */
126#define REG_LID_DETECT 0xF4BD
127#define BIT_LID_DETECT_ON 1
128#define BIT_LID_DETECT_OFF 0
129/* CRT */
130#define REG_CRT_DETECT 0xF4AD
131#define BIT_CRT_DETECT_PLUG 1
132#define BIT_CRT_DETECT_UNPLUG 0
133/* LCD backlight brightness adjust: 9 levels */
134#define REG_DISPLAY_BRIGHTNESS 0xF4F5
135/* Black screen Status */
136#define BIT_DISPLAY_LCD_ON 1
137#define BIT_DISPLAY_LCD_OFF 0
138/* LCD backlight control: off/restore */
139#define REG_BACKLIGHT_CTRL 0xF7BD
140#define BIT_BACKLIGHT_ON 1
141#define BIT_BACKLIGHT_OFF 0
142/* Reset the machine auto-clear: rd/wr */
143#define REG_RESET 0xF4EC
144#define BIT_RESET_ON 1
145/* Light the led: rd/wr */
146#define REG_LED 0xF4C8
147#define BIT_LED_RED_POWER (1 << 0)
148#define BIT_LED_ORANGE_POWER (1 << 1)
149#define BIT_LED_GREEN_CHARGE (1 << 2)
150#define BIT_LED_RED_CHARGE (1 << 3)
151#define BIT_LED_NUMLOCK (1 << 4)
152/* Test led mode, all led on/off */
153#define REG_LED_TEST 0xF4C2
154#define BIT_LED_TEST_IN 1
155#define BIT_LED_TEST_OUT 0
156/* Camera on/off */
157#define REG_CAMERA_STATUS 0xF46A
158#define BIT_CAMERA_STATUS_ON 1
159#define BIT_CAMERA_STATUS_OFF 0
160#define REG_CAMERA_CONTROL 0xF7B7
161#define BIT_CAMERA_CONTROL_OFF 0
162#define BIT_CAMERA_CONTROL_ON 1
163/* Wlan Status */
164#define REG_WLAN 0xF4FA
165#define BIT_WLAN_ON 1
166#define BIT_WLAN_OFF 0
167#define REG_DISPLAY_LCD 0xF79F
168
169/* SCI Event Number from EC */
170enum {
171 EVENT_LID = 0x23, /* LID open/close */
172 EVENT_DISPLAY_TOGGLE, /* Fn+F3 for display switch */
173 EVENT_SLEEP, /* Fn+F1 for entering sleep mode */
174 EVENT_OVERTEMP, /* Over-temperature happened */
175 EVENT_CRT_DETECT, /* CRT is connected */
176 EVENT_CAMERA, /* Camera on/off */
177 EVENT_USB_OC2, /* USB2 Over Current occurred */
178 EVENT_USB_OC0, /* USB0 Over Current occurred */
179 EVENT_BLACK_SCREEN, /* Turn on/off backlight */
180 EVENT_AUDIO_MUTE, /* Mute on/off */
181 EVENT_DISPLAY_BRIGHTNESS,/* LCD backlight brightness adjust */
182 EVENT_AC_BAT, /* AC & Battery relative issue */
183 EVENT_AUDIO_VOLUME, /* Volume adjust */
184 EVENT_WLAN, /* Wlan on/off */
185 EVENT_END
186};
187
188#endif /* !_EC_KB3310B_H */
diff --git a/arch/mips/loongson/lemote-2f/irq.c b/arch/mips/loongson/lemote-2f/irq.c
new file mode 100644
index 000000000000..1d8b4d28a058
--- /dev/null
+++ b/arch/mips/loongson/lemote-2f/irq.c
@@ -0,0 +1,134 @@
1/*
2 * Copyright (C) 2007 Lemote Inc.
3 * Author: Fuxin Zhang, zhangfx@lemote.com
4 *
5 * This program is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License as published by the
7 * Free Software Foundation; either version 2 of the License, or (at your
8 * option) any later version.
9 */
10
11#include <linux/interrupt.h>
12#include <linux/module.h>
13
14#include <asm/irq_cpu.h>
15#include <asm/i8259.h>
16#include <asm/mipsregs.h>
17
18#include <loongson.h>
19#include <machine.h>
20
21#define LOONGSON_TIMER_IRQ (MIPS_CPU_IRQ_BASE + 7) /* cpu timer */
22#define LOONGSON_PERFCNT_IRQ (MIPS_CPU_IRQ_BASE + 6) /* cpu perf counter */
23#define LOONGSON_NORTH_BRIDGE_IRQ (MIPS_CPU_IRQ_BASE + 6) /* bonito */
24#define LOONGSON_UART_IRQ (MIPS_CPU_IRQ_BASE + 3) /* cpu serial port */
25#define LOONGSON_SOUTH_BRIDGE_IRQ (MIPS_CPU_IRQ_BASE + 2) /* i8259 */
26
27#define LOONGSON_INT_BIT_INT0 (1 << 11)
28#define LOONGSON_INT_BIT_INT1 (1 << 12)
29
30/*
31 * The generic i8259_irq() make the kernel hang on booting. Since we cannot
32 * get the irq via the IRR directly, we access the ISR instead.
33 */
34int mach_i8259_irq(void)
35{
36 int irq, isr;
37
38 irq = -1;
39
40 if ((LOONGSON_INTISR & LOONGSON_INTEN) & LOONGSON_INT_BIT_INT0) {
41 raw_spin_lock(&i8259A_lock);
42 isr = inb(PIC_MASTER_CMD) &
43 ~inb(PIC_MASTER_IMR) & ~(1 << PIC_CASCADE_IR);
44 if (!isr)
45 isr = (inb(PIC_SLAVE_CMD) & ~inb(PIC_SLAVE_IMR)) << 8;
46 irq = ffs(isr) - 1;
47 if (unlikely(irq == 7)) {
48 /*
49 * This may be a spurious interrupt.
50 *
51 * Read the interrupt status register (ISR). If the most
52 * significant bit is not set then there is no valid
53 * interrupt.
54 */
55 outb(0x0B, PIC_MASTER_ISR); /* ISR register */
56 if (~inb(PIC_MASTER_ISR) & 0x80)
57 irq = -1;
58 }
59 raw_spin_unlock(&i8259A_lock);
60 }
61
62 return irq;
63}
64EXPORT_SYMBOL(mach_i8259_irq);
65
66static void i8259_irqdispatch(void)
67{
68 int irq;
69
70 irq = mach_i8259_irq();
71 if (irq >= 0)
72 do_IRQ(irq);
73 else
74 spurious_interrupt();
75}
76
77void mach_irq_dispatch(unsigned int pending)
78{
79 if (pending & CAUSEF_IP7)
80 do_IRQ(LOONGSON_TIMER_IRQ);
81 else if (pending & CAUSEF_IP6) { /* North Bridge, Perf counter */
82#if defined(CONFIG_OPROFILE) || defined(CONFIG_OPROFILE_MODULE)
83 do_IRQ(LOONGSON2_PERFCNT_IRQ);
84#endif
85 bonito_irqdispatch();
86 } else if (pending & CAUSEF_IP3) /* CPU UART */
87 do_IRQ(LOONGSON_UART_IRQ);
88 else if (pending & CAUSEF_IP2) /* South Bridge */
89 i8259_irqdispatch();
90 else
91 spurious_interrupt();
92}
93
94void __init set_irq_trigger_mode(void)
95{
96 /* setup cs5536 as high level trigger */
97 LOONGSON_INTPOL = LOONGSON_INT_BIT_INT0 | LOONGSON_INT_BIT_INT1;
98 LOONGSON_INTEDGE &= ~(LOONGSON_INT_BIT_INT0 | LOONGSON_INT_BIT_INT1);
99}
100
101static irqreturn_t ip6_action(int cpl, void *dev_id)
102{
103 return IRQ_HANDLED;
104}
105
106struct irqaction ip6_irqaction = {
107 .handler = ip6_action,
108 .name = "cascade",
109 .flags = IRQF_SHARED,
110};
111
112struct irqaction cascade_irqaction = {
113 .handler = no_action,
114 .name = "cascade",
115};
116
117void __init mach_init_irq(void)
118{
119 /* init all controller
120 * 0-15 ------> i8259 interrupt
121 * 16-23 ------> mips cpu interrupt
122 * 32-63 ------> bonito irq
123 */
124
125 /* Sets the first-level interrupt dispatcher. */
126 mips_cpu_irq_init();
127 init_i8259_irqs();
128 bonito_irq_init();
129
130 /* setup north bridge irq (bonito) */
131 setup_irq(LOONGSON_NORTH_BRIDGE_IRQ, &ip6_irqaction);
132 /* setup source bridge irq (i8259) */
133 setup_irq(LOONGSON_SOUTH_BRIDGE_IRQ, &cascade_irqaction);
134}
diff --git a/arch/mips/loongson/lemote-2f/machtype.c b/arch/mips/loongson/lemote-2f/machtype.c
new file mode 100644
index 000000000000..e860a2705c27
--- /dev/null
+++ b/arch/mips/loongson/lemote-2f/machtype.c
@@ -0,0 +1,45 @@
1/*
2 * Copyright (C) 2009 Lemote Inc.
3 * Author: Wu Zhangjin, wuzhangjin@gmail.com
4 *
5 * This program is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License as published by the
7 * Free Software Foundation; either version 2 of the License, or (at your
8 * option) any later version.
9 */
10#include <asm/bootinfo.h>
11
12#include <loongson.h>
13
14void __init mach_prom_init_machtype(void)
15{
16 /* We share the same kernel image file among Lemote 2F family
17 * of machines, and provide the machtype= kernel command line
18 * to users to indicate their machine, this command line will
19 * be passed by the latest PMON automatically. and fortunately,
20 * up to now, we can get the machine type from the PMON_VER=
21 * commandline directly except the NAS machine, In the old
22 * machines, this will help the users a lot.
23 *
24 * If no "machtype=" passed, get machine type from "PMON_VER=".
25 * PMON_VER=LM8089 Lemote 8.9'' netbook
26 * LM8101 Lemote 10.1'' netbook
27 * (The above two netbooks have the same kernel support)
28 * LM6XXX Lemote FuLoong(2F) box series
29 * LM9XXX Lemote LynLoong PC series
30 */
31 if (strstr(arcs_cmdline, "PMON_VER=LM")) {
32 if (strstr(arcs_cmdline, "PMON_VER=LM8"))
33 mips_machtype = MACH_LEMOTE_YL2F89;
34 else if (strstr(arcs_cmdline, "PMON_VER=LM6"))
35 mips_machtype = MACH_LEMOTE_FL2F;
36 else if (strstr(arcs_cmdline, "PMON_VER=LM9"))
37 mips_machtype = MACH_LEMOTE_LL2F;
38 else
39 mips_machtype = MACH_LEMOTE_NAS;
40
41 strcat(arcs_cmdline, " machtype=");
42 strcat(arcs_cmdline, get_system_type());
43 strcat(arcs_cmdline, " ");
44 }
45}
diff --git a/arch/mips/loongson/lemote-2f/pm.c b/arch/mips/loongson/lemote-2f/pm.c
new file mode 100644
index 000000000000..cac4d382ea73
--- /dev/null
+++ b/arch/mips/loongson/lemote-2f/pm.c
@@ -0,0 +1,149 @@
1/*
2 * Lemote loongson2f family machines' specific suspend support
3 *
4 * Copyright (C) 2009 Lemote Inc.
5 * Author: Wu Zhangjin <wuzhangjin@gmail.com>
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
11 */
12
13#include <linux/suspend.h>
14#include <linux/interrupt.h>
15#include <linux/pm.h>
16#include <linux/i8042.h>
17#include <linux/module.h>
18
19#include <asm/i8259.h>
20#include <asm/mipsregs.h>
21#include <asm/bootinfo.h>
22
23#include <loongson.h>
24
25#include <cs5536/cs5536_mfgpt.h>
26#include "ec_kb3310b.h"
27
28#define I8042_KBD_IRQ 1
29#define I8042_CTR_KBDINT 0x01
30#define I8042_CTR_KBDDIS 0x10
31
32static unsigned char i8042_ctr;
33
34static int i8042_enable_kbd_port(void)
35{
36 if (i8042_command(&i8042_ctr, I8042_CMD_CTL_RCTR)) {
37 pr_err("i8042.c: Can't read CTR while enabling i8042 kbd port."
38 "\n");
39 return -EIO;
40 }
41
42 i8042_ctr &= ~I8042_CTR_KBDDIS;
43 i8042_ctr |= I8042_CTR_KBDINT;
44
45 if (i8042_command(&i8042_ctr, I8042_CMD_CTL_WCTR)) {
46 i8042_ctr &= ~I8042_CTR_KBDINT;
47 i8042_ctr |= I8042_CTR_KBDDIS;
48 pr_err("i8042.c: Failed to enable KBD port.\n");
49
50 return -EIO;
51 }
52
53 return 0;
54}
55
56void setup_wakeup_events(void)
57{
58 int irq_mask;
59
60 switch (mips_machtype) {
61 case MACH_LEMOTE_ML2F7:
62 case MACH_LEMOTE_YL2F89:
63 /* open the keyboard irq in i8259A */
64 outb((0xff & ~(1 << I8042_KBD_IRQ)), PIC_MASTER_IMR);
65 irq_mask = inb(PIC_MASTER_IMR);
66
67 /* enable keyboard port */
68 i8042_enable_kbd_port();
69
70 /* Wakeup CPU via SCI lid open event */
71 outb(irq_mask & ~(1 << PIC_CASCADE_IR), PIC_MASTER_IMR);
72 inb(PIC_MASTER_IMR);
73 outb(0xff & ~(1 << (SCI_IRQ_NUM - 8)), PIC_SLAVE_IMR);
74 inb(PIC_SLAVE_IMR);
75
76 break;
77
78 default:
79 break;
80 }
81}
82
83static struct delayed_work lid_task;
84static int initialized;
85/* yeeloong_report_lid_status will be implemented in yeeloong_laptop.c */
86sci_handler yeeloong_report_lid_status;
87EXPORT_SYMBOL(yeeloong_report_lid_status);
88static void yeeloong_lid_update_task(struct work_struct *work)
89{
90 if (yeeloong_report_lid_status)
91 yeeloong_report_lid_status(BIT_LID_DETECT_ON);
92}
93
94int wakeup_loongson(void)
95{
96 int irq;
97
98 /* query the interrupt number */
99 irq = mach_i8259_irq();
100 if (irq < 0)
101 return 0;
102
103 printk(KERN_INFO "%s: irq = %d\n", __func__, irq);
104
105 if (irq == I8042_KBD_IRQ)
106 return 1;
107 else if (irq == SCI_IRQ_NUM) {
108 int ret, sci_event;
109 /* query the event number */
110 ret = ec_query_seq(CMD_GET_EVENT_NUM);
111 if (ret < 0)
112 return 0;
113 sci_event = ec_get_event_num();
114 if (sci_event < 0)
115 return 0;
116 if (sci_event == EVENT_LID) {
117 int lid_status;
118 /* check the LID status */
119 lid_status = ec_read(REG_LID_DETECT);
120 /* wakeup cpu when people open the LID */
121 if (lid_status == BIT_LID_DETECT_ON) {
122 /* If we call it directly here, the WARNING
123 * will be sent out by getnstimeofday
124 * via "WARN_ON(timekeeping_suspended);"
125 * because we can not schedule in suspend mode.
126 */
127 if (initialized == 0) {
128 INIT_DELAYED_WORK(&lid_task,
129 yeeloong_lid_update_task);
130 initialized = 1;
131 }
132 schedule_delayed_work(&lid_task, 1);
133 return 1;
134 }
135 }
136 }
137
138 return 0;
139}
140
141void __weak mach_suspend(void)
142{
143 disable_mfgpt0_counter();
144}
145
146void __weak mach_resume(void)
147{
148 enable_mfgpt0_counter();
149}
diff --git a/arch/mips/loongson/lemote-2f/reset.c b/arch/mips/loongson/lemote-2f/reset.c
new file mode 100644
index 000000000000..36020a07e180
--- /dev/null
+++ b/arch/mips/loongson/lemote-2f/reset.c
@@ -0,0 +1,159 @@
1/* Board-specific reboot/shutdown routines
2 *
3 * Copyright (c) 2009 Philippe Vachon <philippe@cowpig.ca>
4 *
5 * Copyright (C) 2009 Lemote Inc.
6 * Author: Wu Zhangjin, wuzhangjin@gmail.com
7 *
8 * This program is free software; you can redistribute it and/or modify it
9 * under the terms of the GNU General Public License as published by the
10 * Free Software Foundation; either version 2 of the License, or (at your
11 * option) any later version.
12 */
13
14#include <linux/io.h>
15#include <linux/delay.h>
16#include <linux/types.h>
17
18#include <asm/bootinfo.h>
19
20#include <loongson.h>
21
22#include <cs5536/cs5536.h>
23#include "ec_kb3310b.h"
24
25static void reset_cpu(void)
26{
27 /*
28 * reset cpu to full speed, this is needed when enabling cpu frequency
29 * scalling
30 */
31 LOONGSON_CHIPCFG0 |= 0x7;
32}
33
34/* reset support for fuloong2f */
35
36static void fl2f_reboot(void)
37{
38 reset_cpu();
39
40 /* send a reset signal to south bridge.
41 *
42 * NOTE: if enable "Power Management" in kernel, rtl8169 will not reset
43 * normally with this reset operation and it will not work in PMON, but
44 * you can type halt command and then reboot, seems the hardware reset
45 * logic not work normally.
46 */
47 {
48 u32 hi, lo;
49 _rdmsr(DIVIL_MSR_REG(DIVIL_SOFT_RESET), &hi, &lo);
50 lo |= 0x00000001;
51 _wrmsr(DIVIL_MSR_REG(DIVIL_SOFT_RESET), hi, lo);
52 }
53}
54
55static void fl2f_shutdown(void)
56{
57 u32 hi, lo, val;
58 int gpio_base;
59
60 /* get gpio base */
61 _rdmsr(DIVIL_MSR_REG(DIVIL_LBAR_GPIO), &hi, &lo);
62 gpio_base = lo & 0xff00;
63
64 /* make cs5536 gpio13 output enable */
65 val = inl(gpio_base + GPIOL_OUT_EN);
66 val &= ~(1 << (16 + 13));
67 val |= (1 << 13);
68 outl(val, gpio_base + GPIOL_OUT_EN);
69 mmiowb();
70 /* make cs5536 gpio13 output low level voltage. */
71 val = inl(gpio_base + GPIOL_OUT_VAL) & ~(1 << (13));
72 val |= (1 << (16 + 13));
73 outl(val, gpio_base + GPIOL_OUT_VAL);
74 mmiowb();
75}
76
77/* reset support for yeeloong2f and mengloong2f notebook */
78
79void ml2f_reboot(void)
80{
81 reset_cpu();
82
83 /* sending an reset signal to EC(embedded controller) */
84 ec_write(REG_RESET, BIT_RESET_ON);
85}
86
87#define yl2f89_reboot ml2f_reboot
88
89/* menglong(7inches) laptop has different shutdown logic from 8.9inches */
90#define EC_SHUTDOWN_IO_PORT_HIGH 0xff2d
91#define EC_SHUTDOWN_IO_PORT_LOW 0xff2e
92#define EC_SHUTDOWN_IO_PORT_DATA 0xff2f
93#define REG_SHUTDOWN_HIGH 0xFC
94#define REG_SHUTDOWN_LOW 0x29
95#define BIT_SHUTDOWN_ON (1 << 1)
96
97static void ml2f_shutdown(void)
98{
99 u8 val;
100 u64 i;
101
102 outb(REG_SHUTDOWN_HIGH, EC_SHUTDOWN_IO_PORT_HIGH);
103 outb(REG_SHUTDOWN_LOW, EC_SHUTDOWN_IO_PORT_LOW);
104 mmiowb();
105 val = inb(EC_SHUTDOWN_IO_PORT_DATA);
106 outb(val & (~BIT_SHUTDOWN_ON), EC_SHUTDOWN_IO_PORT_DATA);
107 mmiowb();
108 /* need enough wait here... how many microseconds needs? */
109 for (i = 0; i < 0x10000; i++)
110 delay();
111 outb(val | BIT_SHUTDOWN_ON, EC_SHUTDOWN_IO_PORT_DATA);
112 mmiowb();
113}
114
115static void yl2f89_shutdown(void)
116{
117 /* cpu-gpio0 output low */
118 LOONGSON_GPIODATA &= ~0x00000001;
119 /* cpu-gpio0 as output */
120 LOONGSON_GPIOIE &= ~0x00000001;
121}
122
123void mach_prepare_reboot(void)
124{
125 switch (mips_machtype) {
126 case MACH_LEMOTE_FL2F:
127 case MACH_LEMOTE_NAS:
128 case MACH_LEMOTE_LL2F:
129 fl2f_reboot();
130 break;
131 case MACH_LEMOTE_ML2F7:
132 ml2f_reboot();
133 break;
134 case MACH_LEMOTE_YL2F89:
135 yl2f89_reboot();
136 break;
137 default:
138 break;
139 }
140}
141
142void mach_prepare_shutdown(void)
143{
144 switch (mips_machtype) {
145 case MACH_LEMOTE_FL2F:
146 case MACH_LEMOTE_NAS:
147 case MACH_LEMOTE_LL2F:
148 fl2f_shutdown();
149 break;
150 case MACH_LEMOTE_ML2F7:
151 ml2f_shutdown();
152 break;
153 case MACH_LEMOTE_YL2F89:
154 yl2f89_shutdown();
155 break;
156 default:
157 break;
158 }
159}
diff --git a/arch/mips/math-emu/cp1emu.c b/arch/mips/math-emu/cp1emu.c
index 454b53924490..f2338d1c0b48 100644
--- a/arch/mips/math-emu/cp1emu.c
+++ b/arch/mips/math-emu/cp1emu.c
@@ -35,6 +35,7 @@
35 * better performance by compiling with -msoft-float! 35 * better performance by compiling with -msoft-float!
36 */ 36 */
37#include <linux/sched.h> 37#include <linux/sched.h>
38#include <linux/module.h>
38#include <linux/debugfs.h> 39#include <linux/debugfs.h>
39 40
40#include <asm/inst.h> 41#include <asm/inst.h>
@@ -68,13 +69,18 @@ static int fpux_emu(struct pt_regs *,
68 69
69/* Further private data for which no space exists in mips_fpu_struct */ 70/* Further private data for which no space exists in mips_fpu_struct */
70 71
71struct mips_fpu_emulator_stats fpuemustats; 72#ifdef CONFIG_DEBUG_FS
73DEFINE_PER_CPU(struct mips_fpu_emulator_stats, fpuemustats);
74#endif
72 75
73/* Control registers */ 76/* Control registers */
74 77
75#define FPCREG_RID 0 /* $0 = revision id */ 78#define FPCREG_RID 0 /* $0 = revision id */
76#define FPCREG_CSR 31 /* $31 = csr */ 79#define FPCREG_CSR 31 /* $31 = csr */
77 80
81/* Determine rounding mode from the RM bits of the FCSR */
82#define modeindex(v) ((v) & FPU_CSR_RM)
83
78/* Convert Mips rounding mode (0..3) to IEEE library modes. */ 84/* Convert Mips rounding mode (0..3) to IEEE library modes. */
79static const unsigned char ieee_rm[4] = { 85static const unsigned char ieee_rm[4] = {
80 [FPU_CSR_RN] = IEEE754_RN, 86 [FPU_CSR_RN] = IEEE754_RN,
@@ -209,7 +215,7 @@ static int cop1Emulate(struct pt_regs *xcp, struct mips_fpu_struct *ctx)
209 unsigned int cond; 215 unsigned int cond;
210 216
211 if (get_user(ir, (mips_instruction __user *) xcp->cp0_epc)) { 217 if (get_user(ir, (mips_instruction __user *) xcp->cp0_epc)) {
212 fpuemustats.errors++; 218 MIPS_FPU_EMU_INC_STATS(errors);
213 return SIGBUS; 219 return SIGBUS;
214 } 220 }
215 221
@@ -240,7 +246,7 @@ static int cop1Emulate(struct pt_regs *xcp, struct mips_fpu_struct *ctx)
240 return SIGILL; 246 return SIGILL;
241 } 247 }
242 if (get_user(ir, (mips_instruction __user *) emulpc)) { 248 if (get_user(ir, (mips_instruction __user *) emulpc)) {
243 fpuemustats.errors++; 249 MIPS_FPU_EMU_INC_STATS(errors);
244 return SIGBUS; 250 return SIGBUS;
245 } 251 }
246 /* __compute_return_epc() will have updated cp0_epc */ 252 /* __compute_return_epc() will have updated cp0_epc */
@@ -253,16 +259,16 @@ static int cop1Emulate(struct pt_regs *xcp, struct mips_fpu_struct *ctx)
253 } 259 }
254 260
255 emul: 261 emul:
256 fpuemustats.emulated++; 262 MIPS_FPU_EMU_INC_STATS(emulated);
257 switch (MIPSInst_OPCODE(ir)) { 263 switch (MIPSInst_OPCODE(ir)) {
258 case ldc1_op:{ 264 case ldc1_op:{
259 u64 __user *va = (u64 __user *) (xcp->regs[MIPSInst_RS(ir)] + 265 u64 __user *va = (u64 __user *) (xcp->regs[MIPSInst_RS(ir)] +
260 MIPSInst_SIMM(ir)); 266 MIPSInst_SIMM(ir));
261 u64 val; 267 u64 val;
262 268
263 fpuemustats.loads++; 269 MIPS_FPU_EMU_INC_STATS(loads);
264 if (get_user(val, va)) { 270 if (get_user(val, va)) {
265 fpuemustats.errors++; 271 MIPS_FPU_EMU_INC_STATS(errors);
266 return SIGBUS; 272 return SIGBUS;
267 } 273 }
268 DITOREG(val, MIPSInst_RT(ir)); 274 DITOREG(val, MIPSInst_RT(ir));
@@ -274,10 +280,10 @@ static int cop1Emulate(struct pt_regs *xcp, struct mips_fpu_struct *ctx)
274 MIPSInst_SIMM(ir)); 280 MIPSInst_SIMM(ir));
275 u64 val; 281 u64 val;
276 282
277 fpuemustats.stores++; 283 MIPS_FPU_EMU_INC_STATS(stores);
278 DIFROMREG(val, MIPSInst_RT(ir)); 284 DIFROMREG(val, MIPSInst_RT(ir));
279 if (put_user(val, va)) { 285 if (put_user(val, va)) {
280 fpuemustats.errors++; 286 MIPS_FPU_EMU_INC_STATS(errors);
281 return SIGBUS; 287 return SIGBUS;
282 } 288 }
283 break; 289 break;
@@ -288,9 +294,9 @@ static int cop1Emulate(struct pt_regs *xcp, struct mips_fpu_struct *ctx)
288 MIPSInst_SIMM(ir)); 294 MIPSInst_SIMM(ir));
289 u32 val; 295 u32 val;
290 296
291 fpuemustats.loads++; 297 MIPS_FPU_EMU_INC_STATS(loads);
292 if (get_user(val, va)) { 298 if (get_user(val, va)) {
293 fpuemustats.errors++; 299 MIPS_FPU_EMU_INC_STATS(errors);
294 return SIGBUS; 300 return SIGBUS;
295 } 301 }
296 SITOREG(val, MIPSInst_RT(ir)); 302 SITOREG(val, MIPSInst_RT(ir));
@@ -302,10 +308,10 @@ static int cop1Emulate(struct pt_regs *xcp, struct mips_fpu_struct *ctx)
302 MIPSInst_SIMM(ir)); 308 MIPSInst_SIMM(ir));
303 u32 val; 309 u32 val;
304 310
305 fpuemustats.stores++; 311 MIPS_FPU_EMU_INC_STATS(stores);
306 SIFROMREG(val, MIPSInst_RT(ir)); 312 SIFROMREG(val, MIPSInst_RT(ir));
307 if (put_user(val, va)) { 313 if (put_user(val, va)) {
308 fpuemustats.errors++; 314 MIPS_FPU_EMU_INC_STATS(errors);
309 return SIGBUS; 315 return SIGBUS;
310 } 316 }
311 break; 317 break;
@@ -381,10 +387,14 @@ static int cop1Emulate(struct pt_regs *xcp, struct mips_fpu_struct *ctx)
381 (void *) (xcp->cp0_epc), 387 (void *) (xcp->cp0_epc),
382 MIPSInst_RT(ir), value); 388 MIPSInst_RT(ir), value);
383#endif 389#endif
384 value &= (FPU_CSR_FLUSH | FPU_CSR_ALL_E | FPU_CSR_ALL_S | 0x03); 390
385 ctx->fcr31 &= ~(FPU_CSR_FLUSH | FPU_CSR_ALL_E | FPU_CSR_ALL_S | 0x03); 391 /*
386 /* convert to ieee library modes */ 392 * Don't write reserved bits,
387 ctx->fcr31 |= (value & ~0x3) | ieee_rm[value & 0x3]; 393 * and convert to ieee library modes
394 */
395 ctx->fcr31 = (value &
396 ~(FPU_CSR_RSVD | FPU_CSR_RM)) |
397 ieee_rm[modeindex(value)];
388 } 398 }
389 if ((ctx->fcr31 >> 5) & ctx->fcr31 & FPU_CSR_ALL_E) { 399 if ((ctx->fcr31 >> 5) & ctx->fcr31 & FPU_CSR_ALL_E) {
390 return SIGFPE; 400 return SIGFPE;
@@ -429,7 +439,7 @@ static int cop1Emulate(struct pt_regs *xcp, struct mips_fpu_struct *ctx)
429 439
430 if (get_user(ir, 440 if (get_user(ir,
431 (mips_instruction __user *) xcp->cp0_epc)) { 441 (mips_instruction __user *) xcp->cp0_epc)) {
432 fpuemustats.errors++; 442 MIPS_FPU_EMU_INC_STATS(errors);
433 return SIGBUS; 443 return SIGBUS;
434 } 444 }
435 445
@@ -595,7 +605,7 @@ static int fpux_emu(struct pt_regs *xcp, struct mips_fpu_struct *ctx,
595{ 605{
596 unsigned rcsr = 0; /* resulting csr */ 606 unsigned rcsr = 0; /* resulting csr */
597 607
598 fpuemustats.cp1xops++; 608 MIPS_FPU_EMU_INC_STATS(cp1xops);
599 609
600 switch (MIPSInst_FMA_FFMT(ir)) { 610 switch (MIPSInst_FMA_FFMT(ir)) {
601 case s_fmt:{ /* 0 */ 611 case s_fmt:{ /* 0 */
@@ -610,9 +620,9 @@ static int fpux_emu(struct pt_regs *xcp, struct mips_fpu_struct *ctx,
610 va = (void __user *) (xcp->regs[MIPSInst_FR(ir)] + 620 va = (void __user *) (xcp->regs[MIPSInst_FR(ir)] +
611 xcp->regs[MIPSInst_FT(ir)]); 621 xcp->regs[MIPSInst_FT(ir)]);
612 622
613 fpuemustats.loads++; 623 MIPS_FPU_EMU_INC_STATS(loads);
614 if (get_user(val, va)) { 624 if (get_user(val, va)) {
615 fpuemustats.errors++; 625 MIPS_FPU_EMU_INC_STATS(errors);
616 return SIGBUS; 626 return SIGBUS;
617 } 627 }
618 SITOREG(val, MIPSInst_FD(ir)); 628 SITOREG(val, MIPSInst_FD(ir));
@@ -622,11 +632,11 @@ static int fpux_emu(struct pt_regs *xcp, struct mips_fpu_struct *ctx,
622 va = (void __user *) (xcp->regs[MIPSInst_FR(ir)] + 632 va = (void __user *) (xcp->regs[MIPSInst_FR(ir)] +
623 xcp->regs[MIPSInst_FT(ir)]); 633 xcp->regs[MIPSInst_FT(ir)]);
624 634
625 fpuemustats.stores++; 635 MIPS_FPU_EMU_INC_STATS(stores);
626 636
627 SIFROMREG(val, MIPSInst_FS(ir)); 637 SIFROMREG(val, MIPSInst_FS(ir));
628 if (put_user(val, va)) { 638 if (put_user(val, va)) {
629 fpuemustats.errors++; 639 MIPS_FPU_EMU_INC_STATS(errors);
630 return SIGBUS; 640 return SIGBUS;
631 } 641 }
632 break; 642 break;
@@ -687,9 +697,9 @@ static int fpux_emu(struct pt_regs *xcp, struct mips_fpu_struct *ctx,
687 va = (void __user *) (xcp->regs[MIPSInst_FR(ir)] + 697 va = (void __user *) (xcp->regs[MIPSInst_FR(ir)] +
688 xcp->regs[MIPSInst_FT(ir)]); 698 xcp->regs[MIPSInst_FT(ir)]);
689 699
690 fpuemustats.loads++; 700 MIPS_FPU_EMU_INC_STATS(loads);
691 if (get_user(val, va)) { 701 if (get_user(val, va)) {
692 fpuemustats.errors++; 702 MIPS_FPU_EMU_INC_STATS(errors);
693 return SIGBUS; 703 return SIGBUS;
694 } 704 }
695 DITOREG(val, MIPSInst_FD(ir)); 705 DITOREG(val, MIPSInst_FD(ir));
@@ -699,10 +709,10 @@ static int fpux_emu(struct pt_regs *xcp, struct mips_fpu_struct *ctx,
699 va = (void __user *) (xcp->regs[MIPSInst_FR(ir)] + 709 va = (void __user *) (xcp->regs[MIPSInst_FR(ir)] +
700 xcp->regs[MIPSInst_FT(ir)]); 710 xcp->regs[MIPSInst_FT(ir)]);
701 711
702 fpuemustats.stores++; 712 MIPS_FPU_EMU_INC_STATS(stores);
703 DIFROMREG(val, MIPSInst_FS(ir)); 713 DIFROMREG(val, MIPSInst_FS(ir));
704 if (put_user(val, va)) { 714 if (put_user(val, va)) {
705 fpuemustats.errors++; 715 MIPS_FPU_EMU_INC_STATS(errors);
706 return SIGBUS; 716 return SIGBUS;
707 } 717 }
708 break; 718 break;
@@ -769,7 +779,7 @@ static int fpu_emu(struct pt_regs *xcp, struct mips_fpu_struct *ctx,
769#endif 779#endif
770 } rv; /* resulting value */ 780 } rv; /* resulting value */
771 781
772 fpuemustats.cp1ops++; 782 MIPS_FPU_EMU_INC_STATS(cp1ops);
773 switch (rfmt = (MIPSInst_FFMT(ir) & 0xf)) { 783 switch (rfmt = (MIPSInst_FFMT(ir) & 0xf)) {
774 case s_fmt:{ /* 0 */ 784 case s_fmt:{ /* 0 */
775 union { 785 union {
@@ -1240,7 +1250,7 @@ int fpu_emulator_cop1Handler(struct pt_regs *xcp, struct mips_fpu_struct *ctx,
1240 prevepc = xcp->cp0_epc; 1250 prevepc = xcp->cp0_epc;
1241 1251
1242 if (get_user(insn, (mips_instruction __user *) xcp->cp0_epc)) { 1252 if (get_user(insn, (mips_instruction __user *) xcp->cp0_epc)) {
1243 fpuemustats.errors++; 1253 MIPS_FPU_EMU_INC_STATS(errors);
1244 return SIGBUS; 1254 return SIGBUS;
1245 } 1255 }
1246 if (insn == 0) 1256 if (insn == 0)
@@ -1276,33 +1286,50 @@ int fpu_emulator_cop1Handler(struct pt_regs *xcp, struct mips_fpu_struct *ctx,
1276} 1286}
1277 1287
1278#ifdef CONFIG_DEBUG_FS 1288#ifdef CONFIG_DEBUG_FS
1289
1290static int fpuemu_stat_get(void *data, u64 *val)
1291{
1292 int cpu;
1293 unsigned long sum = 0;
1294 for_each_online_cpu(cpu) {
1295 struct mips_fpu_emulator_stats *ps;
1296 local_t *pv;
1297 ps = &per_cpu(fpuemustats, cpu);
1298 pv = (void *)ps + (unsigned long)data;
1299 sum += local_read(pv);
1300 }
1301 *val = sum;
1302 return 0;
1303}
1304DEFINE_SIMPLE_ATTRIBUTE(fops_fpuemu_stat, fpuemu_stat_get, NULL, "%llu\n");
1305
1279extern struct dentry *mips_debugfs_dir; 1306extern struct dentry *mips_debugfs_dir;
1280static int __init debugfs_fpuemu(void) 1307static int __init debugfs_fpuemu(void)
1281{ 1308{
1282 struct dentry *d, *dir; 1309 struct dentry *d, *dir;
1283 int i;
1284 static struct {
1285 const char *name;
1286 unsigned int *v;
1287 } vars[] __initdata = {
1288 { "emulated", &fpuemustats.emulated },
1289 { "loads", &fpuemustats.loads },
1290 { "stores", &fpuemustats.stores },
1291 { "cp1ops", &fpuemustats.cp1ops },
1292 { "cp1xops", &fpuemustats.cp1xops },
1293 { "errors", &fpuemustats.errors },
1294 };
1295 1310
1296 if (!mips_debugfs_dir) 1311 if (!mips_debugfs_dir)
1297 return -ENODEV; 1312 return -ENODEV;
1298 dir = debugfs_create_dir("fpuemustats", mips_debugfs_dir); 1313 dir = debugfs_create_dir("fpuemustats", mips_debugfs_dir);
1299 if (!dir) 1314 if (!dir)
1300 return -ENOMEM; 1315 return -ENOMEM;
1301 for (i = 0; i < ARRAY_SIZE(vars); i++) { 1316
1302 d = debugfs_create_u32(vars[i].name, S_IRUGO, dir, vars[i].v); 1317#define FPU_STAT_CREATE(M) \
1303 if (!d) 1318 do { \
1304 return -ENOMEM; 1319 d = debugfs_create_file(#M , S_IRUGO, dir, \
1305 } 1320 (void *)offsetof(struct mips_fpu_emulator_stats, M), \
1321 &fops_fpuemu_stat); \
1322 if (!d) \
1323 return -ENOMEM; \
1324 } while (0)
1325
1326 FPU_STAT_CREATE(emulated);
1327 FPU_STAT_CREATE(loads);
1328 FPU_STAT_CREATE(stores);
1329 FPU_STAT_CREATE(cp1ops);
1330 FPU_STAT_CREATE(cp1xops);
1331 FPU_STAT_CREATE(errors);
1332
1306 return 0; 1333 return 0;
1307} 1334}
1308__initcall(debugfs_fpuemu); 1335__initcall(debugfs_fpuemu);
diff --git a/arch/mips/math-emu/dp_sub.c b/arch/mips/math-emu/dp_sub.c
index b30c5b1f1a2c..a2127d685a0d 100644
--- a/arch/mips/math-emu/dp_sub.c
+++ b/arch/mips/math-emu/dp_sub.c
@@ -110,7 +110,7 @@ ieee754dp ieee754dp_sub(ieee754dp x, ieee754dp y)
110 110
111 case CLPAIR(IEEE754_CLASS_DNORM, IEEE754_CLASS_DNORM): 111 case CLPAIR(IEEE754_CLASS_DNORM, IEEE754_CLASS_DNORM):
112 DPDNORMX; 112 DPDNORMX;
113 /* FAAL THOROUGH */ 113 /* FALL THROUGH */
114 114
115 case CLPAIR(IEEE754_CLASS_NORM, IEEE754_CLASS_DNORM): 115 case CLPAIR(IEEE754_CLASS_NORM, IEEE754_CLASS_DNORM):
116 /* normalize ym,ye */ 116 /* normalize ym,ye */
diff --git a/arch/mips/math-emu/dsemul.c b/arch/mips/math-emu/dsemul.c
index df7b9d928efc..36d975ae08f8 100644
--- a/arch/mips/math-emu/dsemul.c
+++ b/arch/mips/math-emu/dsemul.c
@@ -98,7 +98,7 @@ int mips_dsemul(struct pt_regs *regs, mips_instruction ir, unsigned long cpc)
98 err |= __put_user(cpc, &fr->epc); 98 err |= __put_user(cpc, &fr->epc);
99 99
100 if (unlikely(err)) { 100 if (unlikely(err)) {
101 fpuemustats.errors++; 101 MIPS_FPU_EMU_INC_STATS(errors);
102 return SIGBUS; 102 return SIGBUS;
103 } 103 }
104 104
@@ -136,7 +136,7 @@ int do_dsemulret(struct pt_regs *xcp)
136 err |= __get_user(cookie, &fr->cookie); 136 err |= __get_user(cookie, &fr->cookie);
137 137
138 if (unlikely(err || (insn != BREAK_MATH) || (cookie != BD_COOKIE))) { 138 if (unlikely(err || (insn != BREAK_MATH) || (cookie != BD_COOKIE))) {
139 fpuemustats.errors++; 139 MIPS_FPU_EMU_INC_STATS(errors);
140 return 0; 140 return 0;
141 } 141 }
142 142
diff --git a/arch/mips/math-emu/ieee754d.c b/arch/mips/math-emu/ieee754d.c
index 7e900f30987e..a0325337b76c 100644
--- a/arch/mips/math-emu/ieee754d.c
+++ b/arch/mips/math-emu/ieee754d.c
@@ -135,4 +135,3 @@ ieee754sp ieee754sp_dump(char *m, ieee754sp x)
135 printk("\n"); 135 printk("\n");
136 return x; 136 return x;
137} 137}
138
diff --git a/arch/mips/math-emu/ieee754dp.c b/arch/mips/math-emu/ieee754dp.c
index 6d2d89f32472..2f22fd7fd784 100644
--- a/arch/mips/math-emu/ieee754dp.c
+++ b/arch/mips/math-emu/ieee754dp.c
@@ -148,7 +148,6 @@ ieee754dp ieee754dp_format(int sn, int xe, u64 xm)
148 148
149 switch(ieee754_csr.rm) { 149 switch(ieee754_csr.rm) {
150 case IEEE754_RN: 150 case IEEE754_RN:
151 return ieee754dp_zero(sn);
152 case IEEE754_RZ: 151 case IEEE754_RZ:
153 return ieee754dp_zero(sn); 152 return ieee754dp_zero(sn);
154 case IEEE754_RU: /* toward +Infinity */ 153 case IEEE754_RU: /* toward +Infinity */
diff --git a/arch/mips/math-emu/ieee754sp.c b/arch/mips/math-emu/ieee754sp.c
index 463534045ab6..a19b72185ab9 100644
--- a/arch/mips/math-emu/ieee754sp.c
+++ b/arch/mips/math-emu/ieee754sp.c
@@ -149,7 +149,6 @@ ieee754sp ieee754sp_format(int sn, int xe, unsigned xm)
149 149
150 switch(ieee754_csr.rm) { 150 switch(ieee754_csr.rm) {
151 case IEEE754_RN: 151 case IEEE754_RN:
152 return ieee754sp_zero(sn);
153 case IEEE754_RZ: 152 case IEEE754_RZ:
154 return ieee754sp_zero(sn); 153 return ieee754sp_zero(sn);
155 case IEEE754_RU: /* toward +Infinity */ 154 case IEEE754_RU: /* toward +Infinity */
diff --git a/arch/mips/math-emu/ieee754xcpt.c b/arch/mips/math-emu/ieee754xcpt.c
index 7d8ef8965067..e02423a0ae23 100644
--- a/arch/mips/math-emu/ieee754xcpt.c
+++ b/arch/mips/math-emu/ieee754xcpt.c
@@ -46,4 +46,3 @@ void ieee754_xcpt(struct ieee754xctx *xcp)
46 printk(KERN_DEBUG "floating point exception in \"%s\", type=%s\n", 46 printk(KERN_DEBUG "floating point exception in \"%s\", type=%s\n",
47 xcp->op, rtnames[xcp->rt]); 47 xcp->op, rtnames[xcp->rt]);
48} 48}
49
diff --git a/arch/mips/mipssim/Makefile b/arch/mips/mipssim/Makefile
index 57f43c1c7882..41b96571315e 100644
--- a/arch/mips/mipssim/Makefile
+++ b/arch/mips/mipssim/Makefile
@@ -17,8 +17,7 @@
17# 59 Temple Place - Suite 330, Boston MA 02111-1307, USA. 17# 59 Temple Place - Suite 330, Boston MA 02111-1307, USA.
18# 18#
19 19
20obj-y := sim_platform.o sim_setup.o sim_mem.o sim_time.o sim_int.o \ 20obj-y := sim_platform.o sim_setup.o sim_mem.o sim_time.o sim_int.o
21 sim_cmdline.o
22 21
23obj-$(CONFIG_EARLY_PRINTK) += sim_console.o 22obj-$(CONFIG_EARLY_PRINTK) += sim_console.o
24obj-$(CONFIG_MIPS_MT_SMTC) += sim_smtc.o 23obj-$(CONFIG_MIPS_MT_SMTC) += sim_smtc.o
diff --git a/arch/mips/mipssim/sim_int.c b/arch/mips/mipssim/sim_int.c
index 46067ad542dc..5c779be6f082 100644
--- a/arch/mips/mipssim/sim_int.c
+++ b/arch/mips/mipssim/sim_int.c
@@ -17,7 +17,6 @@
17 */ 17 */
18#include <linux/init.h> 18#include <linux/init.h>
19#include <linux/sched.h> 19#include <linux/sched.h>
20#include <linux/slab.h>
21#include <linux/interrupt.h> 20#include <linux/interrupt.h>
22#include <linux/kernel_stat.h> 21#include <linux/kernel_stat.h>
23#include <asm/mips-boards/simint.h> 22#include <asm/mips-boards/simint.h>
diff --git a/arch/mips/mipssim/sim_setup.c b/arch/mips/mipssim/sim_setup.c
index 2877675c5f0d..55f22a3afe61 100644
--- a/arch/mips/mipssim/sim_setup.c
+++ b/arch/mips/mipssim/sim_setup.c
@@ -49,9 +49,6 @@ void __init plat_mem_setup(void)
49 set_io_port_base(0xbfd00000); 49 set_io_port_base(0xbfd00000);
50 50
51 serial_init(); 51 serial_init();
52
53 pr_info("Linux started...\n");
54
55} 52}
56 53
57extern struct plat_smp_ops ssmtc_smp_ops; 54extern struct plat_smp_ops ssmtc_smp_ops;
@@ -60,8 +57,6 @@ void __init prom_init(void)
60{ 57{
61 set_io_port_base(0xbfd00000); 58 set_io_port_base(0xbfd00000);
62 59
63 pr_info("\nLINUX started...\n");
64 prom_init_cmdline();
65 prom_meminit(); 60 prom_meminit();
66 61
67#ifdef CONFIG_MIPS_MT_SMP 62#ifdef CONFIG_MIPS_MT_SMP
diff --git a/arch/mips/mm/c-octeon.c b/arch/mips/mm/c-octeon.c
index 94e05e5733c1..0f9c488044d1 100644
--- a/arch/mips/mm/c-octeon.c
+++ b/arch/mips/mm/c-octeon.c
@@ -174,7 +174,7 @@ static void octeon_flush_cache_page(struct vm_area_struct *vma,
174 * Probe Octeon's caches 174 * Probe Octeon's caches
175 * 175 *
176 */ 176 */
177static void __devinit probe_octeon(void) 177static void __cpuinit probe_octeon(void)
178{ 178{
179 unsigned long icache_size; 179 unsigned long icache_size;
180 unsigned long dcache_size; 180 unsigned long dcache_size;
@@ -183,6 +183,7 @@ static void __devinit probe_octeon(void)
183 183
184 switch (c->cputype) { 184 switch (c->cputype) {
185 case CPU_CAVIUM_OCTEON: 185 case CPU_CAVIUM_OCTEON:
186 case CPU_CAVIUM_OCTEON_PLUS:
186 config1 = read_c0_config1(); 187 config1 = read_c0_config1();
187 c->icache.linesz = 2 << ((config1 >> 19) & 7); 188 c->icache.linesz = 2 << ((config1 >> 19) & 7);
188 c->icache.sets = 64 << ((config1 >> 22) & 7); 189 c->icache.sets = 64 << ((config1 >> 22) & 7);
@@ -192,10 +193,10 @@ static void __devinit probe_octeon(void)
192 c->icache.sets * c->icache.ways * c->icache.linesz; 193 c->icache.sets * c->icache.ways * c->icache.linesz;
193 c->icache.waybit = ffs(icache_size / c->icache.ways) - 1; 194 c->icache.waybit = ffs(icache_size / c->icache.ways) - 1;
194 c->dcache.linesz = 128; 195 c->dcache.linesz = 128;
195 if (OCTEON_IS_MODEL(OCTEON_CN3XXX)) 196 if (c->cputype == CPU_CAVIUM_OCTEON_PLUS)
196 c->dcache.sets = 1; /* CN3XXX has one Dcache set */
197 else
198 c->dcache.sets = 2; /* CN5XXX has two Dcache sets */ 197 c->dcache.sets = 2; /* CN5XXX has two Dcache sets */
198 else
199 c->dcache.sets = 1; /* CN3XXX has one Dcache set */
199 c->dcache.ways = 64; 200 c->dcache.ways = 64;
200 dcache_size = 201 dcache_size =
201 c->dcache.sets * c->dcache.ways * c->dcache.linesz; 202 c->dcache.sets * c->dcache.ways * c->dcache.linesz;
@@ -235,7 +236,7 @@ static void __devinit probe_octeon(void)
235 * Setup the Octeon cache flush routines 236 * Setup the Octeon cache flush routines
236 * 237 *
237 */ 238 */
238void __devinit octeon_cache_init(void) 239void __cpuinit octeon_cache_init(void)
239{ 240{
240 extern unsigned long ebase; 241 extern unsigned long ebase;
241 extern char except_vec2_octeon; 242 extern char except_vec2_octeon;
@@ -305,4 +306,3 @@ asmlinkage void cache_parity_error_octeon_non_recoverable(void)
305{ 306{
306 cache_parity_error_octeon(1); 307 cache_parity_error_octeon(1);
307} 308}
308
diff --git a/arch/mips/mm/cache.c b/arch/mips/mm/cache.c
index 694d51f523d1..12af739048fa 100644
--- a/arch/mips/mm/cache.c
+++ b/arch/mips/mm/cache.c
@@ -133,29 +133,50 @@ void __update_cache(struct vm_area_struct *vma, unsigned long address,
133} 133}
134 134
135unsigned long _page_cachable_default; 135unsigned long _page_cachable_default;
136EXPORT_SYMBOL_GPL(_page_cachable_default); 136EXPORT_SYMBOL(_page_cachable_default);
137 137
138static inline void setup_protection_map(void) 138static inline void setup_protection_map(void)
139{ 139{
140 protection_map[0] = PAGE_NONE; 140 if (kernel_uses_smartmips_rixi) {
141 protection_map[1] = PAGE_READONLY; 141 protection_map[0] = __pgprot(_page_cachable_default | _PAGE_PRESENT | _PAGE_NO_EXEC | _PAGE_NO_READ);
142 protection_map[2] = PAGE_COPY; 142 protection_map[1] = __pgprot(_page_cachable_default | _PAGE_PRESENT | _PAGE_NO_EXEC);
143 protection_map[3] = PAGE_COPY; 143 protection_map[2] = __pgprot(_page_cachable_default | _PAGE_PRESENT | _PAGE_NO_EXEC | _PAGE_NO_READ);
144 protection_map[4] = PAGE_READONLY; 144 protection_map[3] = __pgprot(_page_cachable_default | _PAGE_PRESENT | _PAGE_NO_EXEC);
145 protection_map[5] = PAGE_READONLY; 145 protection_map[4] = __pgprot(_page_cachable_default | _PAGE_PRESENT | _PAGE_NO_READ);
146 protection_map[6] = PAGE_COPY; 146 protection_map[5] = __pgprot(_page_cachable_default | _PAGE_PRESENT);
147 protection_map[7] = PAGE_COPY; 147 protection_map[6] = __pgprot(_page_cachable_default | _PAGE_PRESENT | _PAGE_NO_READ);
148 protection_map[8] = PAGE_NONE; 148 protection_map[7] = __pgprot(_page_cachable_default | _PAGE_PRESENT);
149 protection_map[9] = PAGE_READONLY; 149
150 protection_map[10] = PAGE_SHARED; 150 protection_map[8] = __pgprot(_page_cachable_default | _PAGE_PRESENT | _PAGE_NO_EXEC | _PAGE_NO_READ);
151 protection_map[11] = PAGE_SHARED; 151 protection_map[9] = __pgprot(_page_cachable_default | _PAGE_PRESENT | _PAGE_NO_EXEC);
152 protection_map[12] = PAGE_READONLY; 152 protection_map[10] = __pgprot(_page_cachable_default | _PAGE_PRESENT | _PAGE_NO_EXEC | _PAGE_WRITE | _PAGE_NO_READ);
153 protection_map[13] = PAGE_READONLY; 153 protection_map[11] = __pgprot(_page_cachable_default | _PAGE_PRESENT | _PAGE_NO_EXEC | _PAGE_WRITE);
154 protection_map[14] = PAGE_SHARED; 154 protection_map[12] = __pgprot(_page_cachable_default | _PAGE_PRESENT | _PAGE_NO_READ);
155 protection_map[15] = PAGE_SHARED; 155 protection_map[13] = __pgprot(_page_cachable_default | _PAGE_PRESENT);
156 protection_map[14] = __pgprot(_page_cachable_default | _PAGE_PRESENT | _PAGE_WRITE | _PAGE_NO_READ);
157 protection_map[15] = __pgprot(_page_cachable_default | _PAGE_PRESENT | _PAGE_WRITE);
158
159 } else {
160 protection_map[0] = PAGE_NONE;
161 protection_map[1] = PAGE_READONLY;
162 protection_map[2] = PAGE_COPY;
163 protection_map[3] = PAGE_COPY;
164 protection_map[4] = PAGE_READONLY;
165 protection_map[5] = PAGE_READONLY;
166 protection_map[6] = PAGE_COPY;
167 protection_map[7] = PAGE_COPY;
168 protection_map[8] = PAGE_NONE;
169 protection_map[9] = PAGE_READONLY;
170 protection_map[10] = PAGE_SHARED;
171 protection_map[11] = PAGE_SHARED;
172 protection_map[12] = PAGE_READONLY;
173 protection_map[13] = PAGE_READONLY;
174 protection_map[14] = PAGE_SHARED;
175 protection_map[15] = PAGE_SHARED;
176 }
156} 177}
157 178
158void __devinit cpu_cache_init(void) 179void __cpuinit cpu_cache_init(void)
159{ 180{
160 if (cpu_has_3k_cache) { 181 if (cpu_has_3k_cache) {
161 extern void __weak r3k_cache_init(void); 182 extern void __weak r3k_cache_init(void);
@@ -194,7 +215,7 @@ void __devinit cpu_cache_init(void)
194 215
195int __weak __uncached_access(struct file *file, unsigned long addr) 216int __weak __uncached_access(struct file *file, unsigned long addr)
196{ 217{
197 if (file->f_flags & O_SYNC) 218 if (file->f_flags & O_DSYNC)
198 return 1; 219 return 1;
199 220
200 return addr >= __pa(high_memory); 221 return addr >= __pa(high_memory);
diff --git a/arch/mips/mm/cerr-sb1.c b/arch/mips/mm/cerr-sb1.c
index 1bd1f18ac23c..3571090ba178 100644
--- a/arch/mips/mm/cerr-sb1.c
+++ b/arch/mips/mm/cerr-sb1.c
@@ -567,13 +567,10 @@ static uint32_t extract_dc(unsigned short addr, int data)
567 datalo = ((unsigned long long)datalohi << 32) | datalolo; 567 datalo = ((unsigned long long)datalohi << 32) | datalolo;
568 ecc = dc_ecc(datalo); 568 ecc = dc_ecc(datalo);
569 if (ecc != datahi) { 569 if (ecc != datahi) {
570 int bits = 0; 570 int bits;
571 bad_ecc |= 1 << (3-offset); 571 bad_ecc |= 1 << (3-offset);
572 ecc ^= datahi; 572 ecc ^= datahi;
573 while (ecc) { 573 bits = hweight8(ecc);
574 if (ecc & 1) bits++;
575 ecc >>= 1;
576 }
577 res |= (bits == 1) ? CP0_CERRD_DATA_SBE : CP0_CERRD_DATA_DBE; 574 res |= (bits == 1) ? CP0_CERRD_DATA_SBE : CP0_CERRD_DATA_DBE;
578 } 575 }
579 printk(" %02X-%016llX", datahi, datalo); 576 printk(" %02X-%016llX", datahi, datalo);
diff --git a/arch/mips/mm/dma-default.c b/arch/mips/mm/dma-default.c
index 9367e33fbd18..9547bc0cf188 100644
--- a/arch/mips/mm/dma-default.c
+++ b/arch/mips/mm/dma-default.c
@@ -14,6 +14,7 @@
14#include <linux/module.h> 14#include <linux/module.h>
15#include <linux/scatterlist.h> 15#include <linux/scatterlist.h>
16#include <linux/string.h> 16#include <linux/string.h>
17#include <linux/gfp.h>
17 18
18#include <asm/cache.h> 19#include <asm/cache.h>
19#include <asm/io.h> 20#include <asm/io.h>
diff --git a/arch/mips/mm/fault.c b/arch/mips/mm/fault.c
index e97a7a2fb2c0..b78f7d913ca4 100644
--- a/arch/mips/mm/fault.c
+++ b/arch/mips/mm/fault.c
@@ -99,8 +99,31 @@ good_area:
99 if (!(vma->vm_flags & VM_WRITE)) 99 if (!(vma->vm_flags & VM_WRITE))
100 goto bad_area; 100 goto bad_area;
101 } else { 101 } else {
102 if (!(vma->vm_flags & (VM_READ | VM_WRITE | VM_EXEC))) 102 if (kernel_uses_smartmips_rixi) {
103 goto bad_area; 103 if (address == regs->cp0_epc && !(vma->vm_flags & VM_EXEC)) {
104#if 0
105 pr_notice("Cpu%d[%s:%d:%0*lx:%ld:%0*lx] XI violation\n",
106 raw_smp_processor_id(),
107 current->comm, current->pid,
108 field, address, write,
109 field, regs->cp0_epc);
110#endif
111 goto bad_area;
112 }
113 if (!(vma->vm_flags & VM_READ)) {
114#if 0
115 pr_notice("Cpu%d[%s:%d:%0*lx:%ld:%0*lx] RI violation\n",
116 raw_smp_processor_id(),
117 current->comm, current->pid,
118 field, address, write,
119 field, regs->cp0_epc);
120#endif
121 goto bad_area;
122 }
123 } else {
124 if (!(vma->vm_flags & (VM_READ | VM_WRITE | VM_EXEC)))
125 goto bad_area;
126 }
104 } 127 }
105 128
106 /* 129 /*
diff --git a/arch/mips/mm/highmem.c b/arch/mips/mm/highmem.c
index e274fda329f4..127d732474bf 100644
--- a/arch/mips/mm/highmem.c
+++ b/arch/mips/mm/highmem.c
@@ -1,5 +1,6 @@
1#include <linux/module.h> 1#include <linux/module.h>
2#include <linux/highmem.h> 2#include <linux/highmem.h>
3#include <linux/sched.h>
3#include <linux/smp.h> 4#include <linux/smp.h>
4#include <asm/fixmap.h> 5#include <asm/fixmap.h>
5#include <asm/tlbflush.h> 6#include <asm/tlbflush.h>
diff --git a/arch/mips/mm/hugetlbpage.c b/arch/mips/mm/hugetlbpage.c
index 8c2834f5919d..a7fee0dfb7a9 100644
--- a/arch/mips/mm/hugetlbpage.c
+++ b/arch/mips/mm/hugetlbpage.c
@@ -16,7 +16,6 @@
16#include <linux/mm.h> 16#include <linux/mm.h>
17#include <linux/hugetlb.h> 17#include <linux/hugetlb.h>
18#include <linux/pagemap.h> 18#include <linux/pagemap.h>
19#include <linux/slab.h>
20#include <linux/err.h> 19#include <linux/err.h>
21#include <linux/sysctl.h> 20#include <linux/sysctl.h>
22#include <asm/mman.h> 21#include <asm/mman.h>
@@ -97,4 +96,3 @@ follow_huge_pmd(struct mm_struct *mm, unsigned long address,
97 page += ((address & ~HPAGE_MASK) >> PAGE_SHIFT); 96 page += ((address & ~HPAGE_MASK) >> PAGE_SHIFT);
98 return page; 97 return page;
99} 98}
100
diff --git a/arch/mips/mm/init.c b/arch/mips/mm/init.c
index 8d1f4f363049..2efcbd24c82f 100644
--- a/arch/mips/mm/init.c
+++ b/arch/mips/mm/init.c
@@ -28,6 +28,7 @@
28#include <linux/proc_fs.h> 28#include <linux/proc_fs.h>
29#include <linux/pfn.h> 29#include <linux/pfn.h>
30#include <linux/hardirq.h> 30#include <linux/hardirq.h>
31#include <linux/gfp.h>
31 32
32#include <asm/asm-offsets.h> 33#include <asm/asm-offsets.h>
33#include <asm/bootinfo.h> 34#include <asm/bootinfo.h>
@@ -143,7 +144,7 @@ void *kmap_coherent(struct page *page, unsigned long addr)
143#if defined(CONFIG_64BIT_PHYS_ADDR) && defined(CONFIG_CPU_MIPS32) 144#if defined(CONFIG_64BIT_PHYS_ADDR) && defined(CONFIG_CPU_MIPS32)
144 entrylo = pte.pte_high; 145 entrylo = pte.pte_high;
145#else 146#else
146 entrylo = pte_val(pte) >> 6; 147 entrylo = pte_to_entrylo(pte_val(pte));
147#endif 148#endif
148 149
149 ENTER_CRITICAL(flags); 150 ENTER_CRITICAL(flags);
@@ -298,7 +299,7 @@ void __init fixrange_init(unsigned long start, unsigned long end,
298} 299}
299 300
300#ifndef CONFIG_NEED_MULTIPLE_NODES 301#ifndef CONFIG_NEED_MULTIPLE_NODES
301static int __init page_is_ram(unsigned long pagenr) 302int page_is_ram(unsigned long pagenr)
302{ 303{
303 int i; 304 int i;
304 305
@@ -424,7 +425,7 @@ void __init mem_init(void)
424 reservedpages << (PAGE_SHIFT-10), 425 reservedpages << (PAGE_SHIFT-10),
425 datasize >> 10, 426 datasize >> 10,
426 initsize >> 10, 427 initsize >> 10,
427 (unsigned long) (totalhigh_pages << (PAGE_SHIFT-10))); 428 totalhigh_pages << (PAGE_SHIFT-10));
428} 429}
429#endif /* !CONFIG_NEED_MULTIPLE_NODES */ 430#endif /* !CONFIG_NEED_MULTIPLE_NODES */
430 431
@@ -462,7 +463,9 @@ void __init_refok free_initmem(void)
462 __pa_symbol(&__init_end)); 463 __pa_symbol(&__init_end));
463} 464}
464 465
466#ifndef CONFIG_MIPS_PGD_C0_CONTEXT
465unsigned long pgd_current[NR_CPUS]; 467unsigned long pgd_current[NR_CPUS];
468#endif
466/* 469/*
467 * On 64-bit we've got three-level pagetables with a slightly 470 * On 64-bit we've got three-level pagetables with a slightly
468 * different layout ... 471 * different layout ...
@@ -475,7 +478,7 @@ unsigned long pgd_current[NR_CPUS];
475 * will officially be retired. 478 * will officially be retired.
476 */ 479 */
477pgd_t swapper_pg_dir[_PTRS_PER_PGD] __page_aligned(_PGD_ORDER); 480pgd_t swapper_pg_dir[_PTRS_PER_PGD] __page_aligned(_PGD_ORDER);
478#ifdef CONFIG_64BIT 481#ifndef __PAGETABLE_PMD_FOLDED
479pmd_t invalid_pmd_table[PTRS_PER_PMD] __page_aligned(PMD_ORDER); 482pmd_t invalid_pmd_table[PTRS_PER_PMD] __page_aligned(PMD_ORDER);
480#endif 483#endif
481pte_t invalid_pte_table[PTRS_PER_PTE] __page_aligned(PTE_ORDER); 484pte_t invalid_pte_table[PTRS_PER_PTE] __page_aligned(PTE_ORDER);
diff --git a/arch/mips/mm/ioremap.c b/arch/mips/mm/ioremap.c
index 0c43248347bd..cacfd31e8ec9 100644
--- a/arch/mips/mm/ioremap.c
+++ b/arch/mips/mm/ioremap.c
@@ -10,6 +10,7 @@
10#include <asm/addrspace.h> 10#include <asm/addrspace.h>
11#include <asm/byteorder.h> 11#include <asm/byteorder.h>
12#include <linux/sched.h> 12#include <linux/sched.h>
13#include <linux/slab.h>
13#include <linux/vmalloc.h> 14#include <linux/vmalloc.h>
14#include <asm/cacheflush.h> 15#include <asm/cacheflush.h>
15#include <asm/io.h> 16#include <asm/io.h>
diff --git a/arch/mips/mm/page.c b/arch/mips/mm/page.c
index f5c73754d664..36272f7d3744 100644
--- a/arch/mips/mm/page.c
+++ b/arch/mips/mm/page.c
@@ -35,7 +35,7 @@
35#include <asm/sibyte/sb1250_dma.h> 35#include <asm/sibyte/sb1250_dma.h>
36#endif 36#endif
37 37
38#include "uasm.h" 38#include <asm/uasm.h>
39 39
40/* Registers used in the assembled routines. */ 40/* Registers used in the assembled routines. */
41#define ZERO 0 41#define ZERO 0
diff --git a/arch/mips/mm/pgtable-64.c b/arch/mips/mm/pgtable-64.c
index 1121019fa456..78eaa4f0b0ec 100644
--- a/arch/mips/mm/pgtable-64.c
+++ b/arch/mips/mm/pgtable-64.c
@@ -15,23 +15,31 @@
15void pgd_init(unsigned long page) 15void pgd_init(unsigned long page)
16{ 16{
17 unsigned long *p, *end; 17 unsigned long *p, *end;
18 unsigned long entry;
19
20#ifdef __PAGETABLE_PMD_FOLDED
21 entry = (unsigned long)invalid_pte_table;
22#else
23 entry = (unsigned long)invalid_pmd_table;
24#endif
18 25
19 p = (unsigned long *) page; 26 p = (unsigned long *) page;
20 end = p + PTRS_PER_PGD; 27 end = p + PTRS_PER_PGD;
21 28
22 while (p < end) { 29 while (p < end) {
23 p[0] = (unsigned long) invalid_pmd_table; 30 p[0] = entry;
24 p[1] = (unsigned long) invalid_pmd_table; 31 p[1] = entry;
25 p[2] = (unsigned long) invalid_pmd_table; 32 p[2] = entry;
26 p[3] = (unsigned long) invalid_pmd_table; 33 p[3] = entry;
27 p[4] = (unsigned long) invalid_pmd_table; 34 p[4] = entry;
28 p[5] = (unsigned long) invalid_pmd_table; 35 p[5] = entry;
29 p[6] = (unsigned long) invalid_pmd_table; 36 p[6] = entry;
30 p[7] = (unsigned long) invalid_pmd_table; 37 p[7] = entry;
31 p += 8; 38 p += 8;
32 } 39 }
33} 40}
34 41
42#ifndef __PAGETABLE_PMD_FOLDED
35void pmd_init(unsigned long addr, unsigned long pagetable) 43void pmd_init(unsigned long addr, unsigned long pagetable)
36{ 44{
37 unsigned long *p, *end; 45 unsigned long *p, *end;
@@ -40,17 +48,18 @@ void pmd_init(unsigned long addr, unsigned long pagetable)
40 end = p + PTRS_PER_PMD; 48 end = p + PTRS_PER_PMD;
41 49
42 while (p < end) { 50 while (p < end) {
43 p[0] = (unsigned long)pagetable; 51 p[0] = pagetable;
44 p[1] = (unsigned long)pagetable; 52 p[1] = pagetable;
45 p[2] = (unsigned long)pagetable; 53 p[2] = pagetable;
46 p[3] = (unsigned long)pagetable; 54 p[3] = pagetable;
47 p[4] = (unsigned long)pagetable; 55 p[4] = pagetable;
48 p[5] = (unsigned long)pagetable; 56 p[5] = pagetable;
49 p[6] = (unsigned long)pagetable; 57 p[6] = pagetable;
50 p[7] = (unsigned long)pagetable; 58 p[7] = pagetable;
51 p += 8; 59 p += 8;
52 } 60 }
53} 61}
62#endif
54 63
55void __init pagetable_init(void) 64void __init pagetable_init(void)
56{ 65{
@@ -59,8 +68,9 @@ void __init pagetable_init(void)
59 68
60 /* Initialize the entire pgd. */ 69 /* Initialize the entire pgd. */
61 pgd_init((unsigned long)swapper_pg_dir); 70 pgd_init((unsigned long)swapper_pg_dir);
71#ifndef __PAGETABLE_PMD_FOLDED
62 pmd_init((unsigned long)invalid_pmd_table, (unsigned long)invalid_pte_table); 72 pmd_init((unsigned long)invalid_pmd_table, (unsigned long)invalid_pte_table);
63 73#endif
64 pgd_base = swapper_pg_dir; 74 pgd_base = swapper_pg_dir;
65 /* 75 /*
66 * Fixed mappings: 76 * Fixed mappings:
diff --git a/arch/mips/mm/tlb-r4k.c b/arch/mips/mm/tlb-r4k.c
index d73428b18b0a..c618eed933a1 100644
--- a/arch/mips/mm/tlb-r4k.c
+++ b/arch/mips/mm/tlb-r4k.c
@@ -303,7 +303,7 @@ void __update_tlb(struct vm_area_struct * vma, unsigned long address, pte_t pte)
303 unsigned long lo; 303 unsigned long lo;
304 write_c0_pagemask(PM_HUGE_MASK); 304 write_c0_pagemask(PM_HUGE_MASK);
305 ptep = (pte_t *)pmdp; 305 ptep = (pte_t *)pmdp;
306 lo = pte_val(*ptep) >> 6; 306 lo = pte_to_entrylo(pte_val(*ptep));
307 write_c0_entrylo0(lo); 307 write_c0_entrylo0(lo);
308 write_c0_entrylo1(lo + (HPAGE_SIZE >> 7)); 308 write_c0_entrylo1(lo + (HPAGE_SIZE >> 7));
309 309
@@ -323,8 +323,8 @@ void __update_tlb(struct vm_area_struct * vma, unsigned long address, pte_t pte)
323 ptep++; 323 ptep++;
324 write_c0_entrylo1(ptep->pte_high); 324 write_c0_entrylo1(ptep->pte_high);
325#else 325#else
326 write_c0_entrylo0(pte_val(*ptep++) >> 6); 326 write_c0_entrylo0(pte_to_entrylo(pte_val(*ptep++)));
327 write_c0_entrylo1(pte_val(*ptep) >> 6); 327 write_c0_entrylo1(pte_to_entrylo(pte_val(*ptep)));
328#endif 328#endif
329 mtc0_tlbw_hazard(); 329 mtc0_tlbw_hazard();
330 if (idx < 0) 330 if (idx < 0)
@@ -337,40 +337,6 @@ void __update_tlb(struct vm_area_struct * vma, unsigned long address, pte_t pte)
337 EXIT_CRITICAL(flags); 337 EXIT_CRITICAL(flags);
338} 338}
339 339
340#if 0
341static void r4k_update_mmu_cache_hwbug(struct vm_area_struct * vma,
342 unsigned long address, pte_t pte)
343{
344 unsigned long flags;
345 unsigned int asid;
346 pgd_t *pgdp;
347 pmd_t *pmdp;
348 pte_t *ptep;
349 int idx;
350
351 ENTER_CRITICAL(flags);
352 address &= (PAGE_MASK << 1);
353 asid = read_c0_entryhi() & ASID_MASK;
354 write_c0_entryhi(address | asid);
355 pgdp = pgd_offset(vma->vm_mm, address);
356 mtc0_tlbw_hazard();
357 tlb_probe();
358 tlb_probe_hazard();
359 pmdp = pmd_offset(pgdp, address);
360 idx = read_c0_index();
361 ptep = pte_offset_map(pmdp, address);
362 write_c0_entrylo0(pte_val(*ptep++) >> 6);
363 write_c0_entrylo1(pte_val(*ptep) >> 6);
364 mtc0_tlbw_hazard();
365 if (idx < 0)
366 tlb_write_random();
367 else
368 tlb_write_indexed();
369 tlbw_use_hazard();
370 EXIT_CRITICAL(flags);
371}
372#endif
373
374void __init add_wired_entry(unsigned long entrylo0, unsigned long entrylo1, 340void __init add_wired_entry(unsigned long entrylo0, unsigned long entrylo1,
375 unsigned long entryhi, unsigned long pagemask) 341 unsigned long entryhi, unsigned long pagemask)
376{ 342{
@@ -447,34 +413,6 @@ out:
447 return ret; 413 return ret;
448} 414}
449 415
450static void __cpuinit probe_tlb(unsigned long config)
451{
452 struct cpuinfo_mips *c = &current_cpu_data;
453 unsigned int reg;
454
455 /*
456 * If this isn't a MIPS32 / MIPS64 compliant CPU. Config 1 register
457 * is not supported, we assume R4k style. Cpu probing already figured
458 * out the number of tlb entries.
459 */
460 if ((c->processor_id & 0xff0000) == PRID_COMP_LEGACY)
461 return;
462#ifdef CONFIG_MIPS_MT_SMTC
463 /*
464 * If TLB is shared in SMTC system, total size already
465 * has been calculated and written into cpu_data tlbsize
466 */
467 if((smtc_status & SMTC_TLB_SHARED) == SMTC_TLB_SHARED)
468 return;
469#endif /* CONFIG_MIPS_MT_SMTC */
470
471 reg = read_c0_config1();
472 if (!((config >> 7) & 3))
473 panic("No TLB present");
474
475 c->tlbsize = ((reg >> 25) & 0x3f) + 1;
476}
477
478static int __cpuinitdata ntlb; 416static int __cpuinitdata ntlb;
479static int __init set_ntlb(char *str) 417static int __init set_ntlb(char *str)
480{ 418{
@@ -486,8 +424,6 @@ __setup("ntlb=", set_ntlb);
486 424
487void __cpuinit tlb_init(void) 425void __cpuinit tlb_init(void)
488{ 426{
489 unsigned int config = read_c0_config();
490
491 /* 427 /*
492 * You should never change this register: 428 * You should never change this register:
493 * - On R4600 1.7 the tlbp never hits for pages smaller than 429 * - On R4600 1.7 the tlbp never hits for pages smaller than
@@ -495,13 +431,25 @@ void __cpuinit tlb_init(void)
495 * - The entire mm handling assumes the c0_pagemask register to 431 * - The entire mm handling assumes the c0_pagemask register to
496 * be set to fixed-size pages. 432 * be set to fixed-size pages.
497 */ 433 */
498 probe_tlb(config);
499 write_c0_pagemask(PM_DEFAULT_MASK); 434 write_c0_pagemask(PM_DEFAULT_MASK);
500 write_c0_wired(0); 435 write_c0_wired(0);
501 if (current_cpu_type() == CPU_R10000 || 436 if (current_cpu_type() == CPU_R10000 ||
502 current_cpu_type() == CPU_R12000 || 437 current_cpu_type() == CPU_R12000 ||
503 current_cpu_type() == CPU_R14000) 438 current_cpu_type() == CPU_R14000)
504 write_c0_framemask(0); 439 write_c0_framemask(0);
440
441 if (kernel_uses_smartmips_rixi) {
442 /*
443 * Enable the no read, no exec bits, and enable large virtual
444 * address.
445 */
446 u32 pg = PG_RIE | PG_XIE;
447#ifdef CONFIG_64BIT
448 pg |= PG_ELPA;
449#endif
450 write_c0_pagegrain(pg);
451 }
452
505 temp_tlb_entry = current_cpu_data.tlbsize - 1; 453 temp_tlb_entry = current_cpu_data.tlbsize - 1;
506 454
507 /* From this point on the ARC firmware is dead. */ 455 /* From this point on the ARC firmware is dead. */
diff --git a/arch/mips/mm/tlbex.c b/arch/mips/mm/tlbex.c
index bb1719a55d22..86f004dc8355 100644
--- a/arch/mips/mm/tlbex.c
+++ b/arch/mips/mm/tlbex.c
@@ -29,8 +29,17 @@
29 29
30#include <asm/mmu_context.h> 30#include <asm/mmu_context.h>
31#include <asm/war.h> 31#include <asm/war.h>
32#include <asm/uasm.h>
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 */
40extern void tlb_do_page_fault_0(void);
41extern void tlb_do_page_fault_1(void);
32 42
33#include "uasm.h"
34 43
35static inline int r45k_bvahwbug(void) 44static inline int r45k_bvahwbug(void)
36{ 45{
@@ -73,18 +82,18 @@ static int __cpuinit m4kc_tlbp_war(void)
73enum label_id { 82enum label_id {
74 label_second_part = 1, 83 label_second_part = 1,
75 label_leave, 84 label_leave,
76#ifdef MODULE_START
77 label_module_alloc,
78#endif
79 label_vmalloc, 85 label_vmalloc,
80 label_vmalloc_done, 86 label_vmalloc_done,
81 label_tlbw_hazard, 87 label_tlbw_hazard,
82 label_split, 88 label_split,
89 label_tlbl_goaround1,
90 label_tlbl_goaround2,
83 label_nopage_tlbl, 91 label_nopage_tlbl,
84 label_nopage_tlbs, 92 label_nopage_tlbs,
85 label_nopage_tlbm, 93 label_nopage_tlbm,
86 label_smp_pgtable_change, 94 label_smp_pgtable_change,
87 label_r3000_write_probe_fail, 95 label_r3000_write_probe_fail,
96 label_large_segbits_fault,
88#ifdef CONFIG_HUGETLB_PAGE 97#ifdef CONFIG_HUGETLB_PAGE
89 label_tlb_huge_update, 98 label_tlb_huge_update,
90#endif 99#endif
@@ -92,18 +101,18 @@ enum label_id {
92 101
93UASM_L_LA(_second_part) 102UASM_L_LA(_second_part)
94UASM_L_LA(_leave) 103UASM_L_LA(_leave)
95#ifdef MODULE_START
96UASM_L_LA(_module_alloc)
97#endif
98UASM_L_LA(_vmalloc) 104UASM_L_LA(_vmalloc)
99UASM_L_LA(_vmalloc_done) 105UASM_L_LA(_vmalloc_done)
100UASM_L_LA(_tlbw_hazard) 106UASM_L_LA(_tlbw_hazard)
101UASM_L_LA(_split) 107UASM_L_LA(_split)
108UASM_L_LA(_tlbl_goaround1)
109UASM_L_LA(_tlbl_goaround2)
102UASM_L_LA(_nopage_tlbl) 110UASM_L_LA(_nopage_tlbl)
103UASM_L_LA(_nopage_tlbs) 111UASM_L_LA(_nopage_tlbs)
104UASM_L_LA(_nopage_tlbm) 112UASM_L_LA(_nopage_tlbm)
105UASM_L_LA(_smp_pgtable_change) 113UASM_L_LA(_smp_pgtable_change)
106UASM_L_LA(_r3000_write_probe_fail) 114UASM_L_LA(_r3000_write_probe_fail)
115UASM_L_LA(_large_segbits_fault)
107#ifdef CONFIG_HUGETLB_PAGE 116#ifdef CONFIG_HUGETLB_PAGE
108UASM_L_LA(_tlb_huge_update) 117UASM_L_LA(_tlb_huge_update)
109#endif 118#endif
@@ -160,6 +169,16 @@ static u32 tlb_handler[128] __cpuinitdata;
160static struct uasm_label labels[128] __cpuinitdata; 169static struct uasm_label labels[128] __cpuinitdata;
161static struct uasm_reloc relocs[128] __cpuinitdata; 170static struct uasm_reloc relocs[128] __cpuinitdata;
162 171
172#ifdef CONFIG_64BIT
173static int check_for_high_segbits __cpuinitdata;
174#endif
175
176#ifndef CONFIG_MIPS_PGD_C0_CONTEXT
177/*
178 * CONFIG_MIPS_PGD_C0_CONTEXT implies 64 bit and lack of pgd_current,
179 * we cannot do r3000 under these circumstances.
180 */
181
163/* 182/*
164 * The R3000 TLB handler is simple. 183 * The R3000 TLB handler is simple.
165 */ 184 */
@@ -199,6 +218,7 @@ static void __cpuinit build_r3000_tlb_refill_handler(void)
199 218
200 dump_handler((u32 *)ebase, 32); 219 dump_handler((u32 *)ebase, 32);
201} 220}
221#endif /* CONFIG_MIPS_PGD_C0_CONTEXT */
202 222
203/* 223/*
204 * The R4000 TLB handler is much more complicated. We have two 224 * The R4000 TLB handler is much more complicated. We have two
@@ -396,36 +416,60 @@ static void __cpuinit build_tlb_write_entry(u32 **p, struct uasm_label **l,
396 } 416 }
397} 417}
398 418
399#ifdef CONFIG_HUGETLB_PAGE 419static __cpuinit __maybe_unused void build_convert_pte_to_entrylo(u32 **p,
400static __cpuinit void build_huge_tlb_write_entry(u32 **p, 420 unsigned int reg)
401 struct uasm_label **l,
402 struct uasm_reloc **r,
403 unsigned int tmp,
404 enum tlb_write_entry wmode)
405{ 421{
406 /* Set huge page tlb entry size */ 422 if (kernel_uses_smartmips_rixi) {
407 uasm_i_lui(p, tmp, PM_HUGE_MASK >> 16); 423 UASM_i_SRL(p, reg, reg, ilog2(_PAGE_NO_EXEC));
408 uasm_i_ori(p, tmp, tmp, PM_HUGE_MASK & 0xffff); 424 UASM_i_ROTR(p, reg, reg, ilog2(_PAGE_GLOBAL) - ilog2(_PAGE_NO_EXEC));
409 uasm_i_mtc0(p, tmp, C0_PAGEMASK); 425 } else {
426#ifdef CONFIG_64BIT_PHYS_ADDR
427 uasm_i_dsrl_safe(p, reg, reg, ilog2(_PAGE_GLOBAL));
428#else
429 UASM_i_SRL(p, reg, reg, ilog2(_PAGE_GLOBAL));
430#endif
431 }
432}
410 433
411 build_tlb_write_entry(p, l, r, wmode); 434#ifdef CONFIG_HUGETLB_PAGE
412 435
436static __cpuinit void build_restore_pagemask(u32 **p,
437 struct uasm_reloc **r,
438 unsigned int tmp,
439 enum label_id lid)
440{
413 /* Reset default page size */ 441 /* Reset default page size */
414 if (PM_DEFAULT_MASK >> 16) { 442 if (PM_DEFAULT_MASK >> 16) {
415 uasm_i_lui(p, tmp, PM_DEFAULT_MASK >> 16); 443 uasm_i_lui(p, tmp, PM_DEFAULT_MASK >> 16);
416 uasm_i_ori(p, tmp, tmp, PM_DEFAULT_MASK & 0xffff); 444 uasm_i_ori(p, tmp, tmp, PM_DEFAULT_MASK & 0xffff);
417 uasm_il_b(p, r, label_leave); 445 uasm_il_b(p, r, lid);
418 uasm_i_mtc0(p, tmp, C0_PAGEMASK); 446 uasm_i_mtc0(p, tmp, C0_PAGEMASK);
419 } else if (PM_DEFAULT_MASK) { 447 } else if (PM_DEFAULT_MASK) {
420 uasm_i_ori(p, tmp, 0, PM_DEFAULT_MASK); 448 uasm_i_ori(p, tmp, 0, PM_DEFAULT_MASK);
421 uasm_il_b(p, r, label_leave); 449 uasm_il_b(p, r, lid);
422 uasm_i_mtc0(p, tmp, C0_PAGEMASK); 450 uasm_i_mtc0(p, tmp, C0_PAGEMASK);
423 } else { 451 } else {
424 uasm_il_b(p, r, label_leave); 452 uasm_il_b(p, r, lid);
425 uasm_i_mtc0(p, 0, C0_PAGEMASK); 453 uasm_i_mtc0(p, 0, C0_PAGEMASK);
426 } 454 }
427} 455}
428 456
457static __cpuinit void build_huge_tlb_write_entry(u32 **p,
458 struct uasm_label **l,
459 struct uasm_reloc **r,
460 unsigned int tmp,
461 enum tlb_write_entry wmode)
462{
463 /* Set huge page tlb entry size */
464 uasm_i_lui(p, tmp, PM_HUGE_MASK >> 16);
465 uasm_i_ori(p, tmp, tmp, PM_HUGE_MASK & 0xffff);
466 uasm_i_mtc0(p, tmp, C0_PAGEMASK);
467
468 build_tlb_write_entry(p, l, r, wmode);
469
470 build_restore_pagemask(p, r, tmp, label_leave);
471}
472
429/* 473/*
430 * Check if Huge PTE is present, if so then jump to LABEL. 474 * Check if Huge PTE is present, if so then jump to LABEL.
431 */ 475 */
@@ -459,15 +503,15 @@ static __cpuinit void build_huge_update_entries(u32 **p,
459 if (!small_sequence) 503 if (!small_sequence)
460 uasm_i_lui(p, tmp, HPAGE_SIZE >> (7 + 16)); 504 uasm_i_lui(p, tmp, HPAGE_SIZE >> (7 + 16));
461 505
462 UASM_i_SRL(p, pte, pte, 6); /* convert to entrylo */ 506 build_convert_pte_to_entrylo(p, pte);
463 uasm_i_mtc0(p, pte, C0_ENTRYLO0); /* load it */ 507 UASM_i_MTC0(p, pte, C0_ENTRYLO0); /* load it */
464 /* convert to entrylo1 */ 508 /* convert to entrylo1 */
465 if (small_sequence) 509 if (small_sequence)
466 UASM_i_ADDIU(p, pte, pte, HPAGE_SIZE >> 7); 510 UASM_i_ADDIU(p, pte, pte, HPAGE_SIZE >> 7);
467 else 511 else
468 UASM_i_ADDU(p, pte, pte, tmp); 512 UASM_i_ADDU(p, pte, pte, tmp);
469 513
470 uasm_i_mtc0(p, pte, C0_ENTRYLO1); /* load it */ 514 UASM_i_MTC0(p, pte, C0_ENTRYLO1); /* load it */
471} 515}
472 516
473static __cpuinit void build_huge_handler_tail(u32 **p, 517static __cpuinit void build_huge_handler_tail(u32 **p,
@@ -497,30 +541,56 @@ static void __cpuinit
497build_get_pmde64(u32 **p, struct uasm_label **l, struct uasm_reloc **r, 541build_get_pmde64(u32 **p, struct uasm_label **l, struct uasm_reloc **r,
498 unsigned int tmp, unsigned int ptr) 542 unsigned int tmp, unsigned int ptr)
499{ 543{
544#ifndef CONFIG_MIPS_PGD_C0_CONTEXT
500 long pgdc = (long)pgd_current; 545 long pgdc = (long)pgd_current;
501 546#endif
502 /* 547 /*
503 * The vmalloc handling is not in the hotpath. 548 * The vmalloc handling is not in the hotpath.
504 */ 549 */
505 uasm_i_dmfc0(p, tmp, C0_BADVADDR); 550 uasm_i_dmfc0(p, tmp, C0_BADVADDR);
506 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 }
507 /* 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. */
508 570
509#ifdef CONFIG_SMP 571#ifdef CONFIG_MIPS_PGD_C0_CONTEXT
572 /*
573 * &pgd << 11 stored in CONTEXT [23..63].
574 */
575 UASM_i_MFC0(p, ptr, C0_CONTEXT);
576 uasm_i_dins(p, ptr, 0, 0, 23); /* Clear lower 23 bits of context. */
577 uasm_i_ori(p, ptr, ptr, 0x540); /* 1 0 1 0 1 << 6 xkphys cached */
578 uasm_i_drotr(p, ptr, ptr, 11);
579#elif defined(CONFIG_SMP)
510# ifdef CONFIG_MIPS_MT_SMTC 580# ifdef CONFIG_MIPS_MT_SMTC
511 /* 581 /*
512 * SMTC uses TCBind value as "CPU" index 582 * SMTC uses TCBind value as "CPU" index
513 */ 583 */
514 uasm_i_mfc0(p, ptr, C0_TCBIND); 584 uasm_i_mfc0(p, ptr, C0_TCBIND);
515 uasm_i_dsrl(p, ptr, ptr, 19); 585 uasm_i_dsrl_safe(p, ptr, ptr, 19);
516# else 586# else
517 /* 587 /*
518 * 64 bit SMP running in XKPHYS has smp_processor_id() << 3 588 * 64 bit SMP running in XKPHYS has smp_processor_id() << 3
519 * stored in CONTEXT. 589 * stored in CONTEXT.
520 */ 590 */
521 uasm_i_dmfc0(p, ptr, C0_CONTEXT); 591 uasm_i_dmfc0(p, ptr, C0_CONTEXT);
522 uasm_i_dsrl(p, ptr, ptr, 23); 592 uasm_i_dsrl_safe(p, ptr, ptr, 23);
523#endif 593# endif
524 UASM_i_LA_mostly(p, tmp, pgdc); 594 UASM_i_LA_mostly(p, tmp, pgdc);
525 uasm_i_daddu(p, ptr, ptr, tmp); 595 uasm_i_daddu(p, ptr, ptr, tmp);
526 uasm_i_dmfc0(p, tmp, C0_BADVADDR); 596 uasm_i_dmfc0(p, tmp, C0_BADVADDR);
@@ -532,42 +602,78 @@ build_get_pmde64(u32 **p, struct uasm_label **l, struct uasm_reloc **r,
532 602
533 uasm_l_vmalloc_done(l, *p); 603 uasm_l_vmalloc_done(l, *p);
534 604
535 if (PGDIR_SHIFT - 3 < 32) /* get pgd offset in bytes */ 605 /* get pgd offset in bytes */
536 uasm_i_dsrl(p, tmp, tmp, PGDIR_SHIFT-3); 606 uasm_i_dsrl_safe(p, tmp, tmp, PGDIR_SHIFT - 3);
537 else
538 uasm_i_dsrl32(p, tmp, tmp, PGDIR_SHIFT - 3 - 32);
539 607
540 uasm_i_andi(p, tmp, tmp, (PTRS_PER_PGD - 1)<<3); 608 uasm_i_andi(p, tmp, tmp, (PTRS_PER_PGD - 1)<<3);
541 uasm_i_daddu(p, ptr, ptr, tmp); /* add in pgd offset */ 609 uasm_i_daddu(p, ptr, ptr, tmp); /* add in pgd offset */
610#ifndef __PAGETABLE_PMD_FOLDED
542 uasm_i_dmfc0(p, tmp, C0_BADVADDR); /* get faulting address */ 611 uasm_i_dmfc0(p, tmp, C0_BADVADDR); /* get faulting address */
543 uasm_i_ld(p, ptr, 0, ptr); /* get pmd pointer */ 612 uasm_i_ld(p, ptr, 0, ptr); /* get pmd pointer */
544 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 */
545 uasm_i_andi(p, tmp, tmp, (PTRS_PER_PMD - 1)<<3); 614 uasm_i_andi(p, tmp, tmp, (PTRS_PER_PMD - 1)<<3);
546 uasm_i_daddu(p, ptr, ptr, tmp); /* add in pmd offset */ 615 uasm_i_daddu(p, ptr, ptr, tmp); /* add in pmd offset */
616#endif
547} 617}
548 618
619enum vmalloc64_mode {not_refill, refill};
549/* 620/*
550 * BVADDR is the faulting address, PTR is scratch. 621 * BVADDR is the faulting address, PTR is scratch.
551 * PTR will hold the pgd for vmalloc. 622 * PTR will hold the pgd for vmalloc.
552 */ 623 */
553static void __cpuinit 624static void __cpuinit
554build_get_pgd_vmalloc64(u32 **p, struct uasm_label **l, struct uasm_reloc **r, 625build_get_pgd_vmalloc64(u32 **p, struct uasm_label **l, struct uasm_reloc **r,
555 unsigned int bvaddr, unsigned int ptr) 626 unsigned int bvaddr, unsigned int ptr,
627 enum vmalloc64_mode mode)
556{ 628{
557 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);
558 634
559 uasm_l_vmalloc(l, *p); 635 uasm_l_vmalloc(l, *p);
560 636
561 if (uasm_in_compat_space_p(swpd) && !uasm_rel_lo(swpd)) { 637 if (mode == refill && check_for_high_segbits) {
562 uasm_il_b(p, r, label_vmalloc_done); 638 if (single_insn_swpd) {
563 uasm_i_lui(p, ptr, uasm_rel_hi(swpd)); 639 uasm_il_bltz(p, r, bvaddr, label_vmalloc_done);
564 } else { 640 uasm_i_lui(p, ptr, uasm_rel_hi(swpd));
565 UASM_i_LA_mostly(p, ptr, swpd); 641 did_vmalloc_branch = 1;
566 uasm_il_b(p, r, label_vmalloc_done); 642 /* fall through */
567 if (uasm_in_compat_space_p(swpd)) 643 } else {
568 uasm_i_addiu(p, ptr, ptr, uasm_rel_lo(swpd)); 644 uasm_il_bgez(p, r, bvaddr, label_large_segbits_fault);
569 else 645 }
570 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);
571 } 677 }
572} 678}
573 679
@@ -674,35 +780,53 @@ static void __cpuinit build_update_entries(u32 **p, unsigned int tmp,
674 if (cpu_has_64bits) { 780 if (cpu_has_64bits) {
675 uasm_i_ld(p, tmp, 0, ptep); /* get even pte */ 781 uasm_i_ld(p, tmp, 0, ptep); /* get even pte */
676 uasm_i_ld(p, ptep, sizeof(pte_t), ptep); /* get odd pte */ 782 uasm_i_ld(p, ptep, sizeof(pte_t), ptep); /* get odd pte */
677 uasm_i_dsrl(p, tmp, tmp, 6); /* convert to entrylo0 */ 783 if (kernel_uses_smartmips_rixi) {
678 uasm_i_mtc0(p, tmp, C0_ENTRYLO0); /* load it */ 784 UASM_i_SRL(p, tmp, tmp, ilog2(_PAGE_NO_EXEC));
679 uasm_i_dsrl(p, ptep, ptep, 6); /* convert to entrylo1 */ 785 UASM_i_SRL(p, ptep, ptep, ilog2(_PAGE_NO_EXEC));
680 uasm_i_mtc0(p, ptep, C0_ENTRYLO1); /* load it */ 786 UASM_i_ROTR(p, tmp, tmp, ilog2(_PAGE_GLOBAL) - ilog2(_PAGE_NO_EXEC));
787 UASM_i_MTC0(p, tmp, C0_ENTRYLO0); /* load it */
788 UASM_i_ROTR(p, ptep, ptep, ilog2(_PAGE_GLOBAL) - ilog2(_PAGE_NO_EXEC));
789 } else {
790 uasm_i_dsrl_safe(p, tmp, tmp, ilog2(_PAGE_GLOBAL)); /* convert to entrylo0 */
791 UASM_i_MTC0(p, tmp, C0_ENTRYLO0); /* load it */
792 uasm_i_dsrl_safe(p, ptep, ptep, ilog2(_PAGE_GLOBAL)); /* convert to entrylo1 */
793 }
794 UASM_i_MTC0(p, ptep, C0_ENTRYLO1); /* load it */
681 } else { 795 } else {
682 int pte_off_even = sizeof(pte_t) / 2; 796 int pte_off_even = sizeof(pte_t) / 2;
683 int pte_off_odd = pte_off_even + sizeof(pte_t); 797 int pte_off_odd = pte_off_even + sizeof(pte_t);
684 798
685 /* The pte entries are pre-shifted */ 799 /* The pte entries are pre-shifted */
686 uasm_i_lw(p, tmp, pte_off_even, ptep); /* get even pte */ 800 uasm_i_lw(p, tmp, pte_off_even, ptep); /* get even pte */
687 uasm_i_mtc0(p, tmp, C0_ENTRYLO0); /* load it */ 801 UASM_i_MTC0(p, tmp, C0_ENTRYLO0); /* load it */
688 uasm_i_lw(p, ptep, pte_off_odd, ptep); /* get odd pte */ 802 uasm_i_lw(p, ptep, pte_off_odd, ptep); /* get odd pte */
689 uasm_i_mtc0(p, ptep, C0_ENTRYLO1); /* load it */ 803 UASM_i_MTC0(p, ptep, C0_ENTRYLO1); /* load it */
690 } 804 }
691#else 805#else
692 UASM_i_LW(p, tmp, 0, ptep); /* get even pte */ 806 UASM_i_LW(p, tmp, 0, ptep); /* get even pte */
693 UASM_i_LW(p, ptep, sizeof(pte_t), ptep); /* get odd pte */ 807 UASM_i_LW(p, ptep, sizeof(pte_t), ptep); /* get odd pte */
694 if (r45k_bvahwbug()) 808 if (r45k_bvahwbug())
695 build_tlb_probe_entry(p); 809 build_tlb_probe_entry(p);
696 UASM_i_SRL(p, tmp, tmp, 6); /* convert to entrylo0 */ 810 if (kernel_uses_smartmips_rixi) {
697 if (r4k_250MHZhwbug()) 811 UASM_i_SRL(p, tmp, tmp, ilog2(_PAGE_NO_EXEC));
698 uasm_i_mtc0(p, 0, C0_ENTRYLO0); 812 UASM_i_SRL(p, ptep, ptep, ilog2(_PAGE_NO_EXEC));
699 uasm_i_mtc0(p, tmp, C0_ENTRYLO0); /* load it */ 813 UASM_i_ROTR(p, tmp, tmp, ilog2(_PAGE_GLOBAL) - ilog2(_PAGE_NO_EXEC));
700 UASM_i_SRL(p, ptep, ptep, 6); /* convert to entrylo1 */ 814 if (r4k_250MHZhwbug())
701 if (r45k_bvahwbug()) 815 UASM_i_MTC0(p, 0, C0_ENTRYLO0);
702 uasm_i_mfc0(p, tmp, C0_INDEX); 816 UASM_i_MTC0(p, tmp, C0_ENTRYLO0); /* load it */
817 UASM_i_ROTR(p, ptep, ptep, ilog2(_PAGE_GLOBAL) - ilog2(_PAGE_NO_EXEC));
818 } else {
819 UASM_i_SRL(p, tmp, tmp, ilog2(_PAGE_GLOBAL)); /* convert to entrylo0 */
820 if (r4k_250MHZhwbug())
821 UASM_i_MTC0(p, 0, C0_ENTRYLO0);
822 UASM_i_MTC0(p, tmp, C0_ENTRYLO0); /* load it */
823 UASM_i_SRL(p, ptep, ptep, ilog2(_PAGE_GLOBAL)); /* convert to entrylo1 */
824 if (r45k_bvahwbug())
825 uasm_i_mfc0(p, tmp, C0_INDEX);
826 }
703 if (r4k_250MHZhwbug()) 827 if (r4k_250MHZhwbug())
704 uasm_i_mtc0(p, 0, C0_ENTRYLO1); 828 UASM_i_MTC0(p, 0, C0_ENTRYLO1);
705 uasm_i_mtc0(p, ptep, C0_ENTRYLO1); /* load it */ 829 UASM_i_MTC0(p, ptep, C0_ENTRYLO1); /* load it */
706#endif 830#endif
707} 831}
708 832
@@ -731,10 +855,15 @@ static void __cpuinit build_r4000_tlb_refill_handler(void)
731 * create the plain linear handler 855 * create the plain linear handler
732 */ 856 */
733 if (bcm1250_m3_war()) { 857 if (bcm1250_m3_war()) {
734 UASM_i_MFC0(&p, K0, C0_BADVADDR); 858 unsigned int segbits = 44;
735 UASM_i_MFC0(&p, K1, C0_ENTRYHI); 859
860 uasm_i_dmfc0(&p, K0, C0_BADVADDR);
861 uasm_i_dmfc0(&p, K1, C0_ENTRYHI);
736 uasm_i_xor(&p, K0, K0, K1); 862 uasm_i_xor(&p, K0, K0, K1);
737 UASM_i_SRL(&p, K0, K0, PAGE_SHIFT + 1); 863 uasm_i_dsrl_safe(&p, K1, K0, 62);
864 uasm_i_dsrl_safe(&p, K0, K0, 12 + 1);
865 uasm_i_dsll_safe(&p, K0, K0, 64 + 12 + 1 - segbits);
866 uasm_i_or(&p, K0, K0, K1);
738 uasm_il_bnez(&p, &r, K0, label_leave); 867 uasm_il_bnez(&p, &r, K0, label_leave);
739 /* No need for uasm_i_nop */ 868 /* No need for uasm_i_nop */
740 } 869 }
@@ -763,7 +892,7 @@ static void __cpuinit build_r4000_tlb_refill_handler(void)
763#endif 892#endif
764 893
765#ifdef CONFIG_64BIT 894#ifdef CONFIG_64BIT
766 build_get_pgd_vmalloc64(&p, &l, &r, K0, K1); 895 build_get_pgd_vmalloc64(&p, &l, &r, K0, K1, refill);
767#endif 896#endif
768 897
769 /* 898 /*
@@ -802,8 +931,6 @@ static void __cpuinit build_r4000_tlb_refill_handler(void)
802 } else { 931 } else {
803#if defined(CONFIG_HUGETLB_PAGE) 932#if defined(CONFIG_HUGETLB_PAGE)
804 const enum label_id ls = label_tlb_huge_update; 933 const enum label_id ls = label_tlb_huge_update;
805#elif defined(MODULE_START)
806 const enum label_id ls = label_module_alloc;
807#else 934#else
808 const enum label_id ls = label_vmalloc; 935 const enum label_id ls = label_vmalloc;
809#endif 936#endif
@@ -875,15 +1002,6 @@ static void __cpuinit build_r4000_tlb_refill_handler(void)
875} 1002}
876 1003
877/* 1004/*
878 * TLB load/store/modify handlers.
879 *
880 * Only the fastpath gets synthesized at runtime, the slowpath for
881 * do_page_fault remains normal asm.
882 */
883extern void tlb_do_page_fault_0(void);
884extern void tlb_do_page_fault_1(void);
885
886/*
887 * 128 instructions for the fastpath handler is generous and should 1005 * 128 instructions for the fastpath handler is generous and should
888 * never be exceeded. 1006 * never be exceeded.
889 */ 1007 */
@@ -977,9 +1095,14 @@ static void __cpuinit
977build_pte_present(u32 **p, struct uasm_reloc **r, 1095build_pte_present(u32 **p, struct uasm_reloc **r,
978 unsigned int pte, unsigned int ptr, enum label_id lid) 1096 unsigned int pte, unsigned int ptr, enum label_id lid)
979{ 1097{
980 uasm_i_andi(p, pte, pte, _PAGE_PRESENT | _PAGE_READ); 1098 if (kernel_uses_smartmips_rixi) {
981 uasm_i_xori(p, pte, pte, _PAGE_PRESENT | _PAGE_READ); 1099 uasm_i_andi(p, pte, pte, _PAGE_PRESENT);
982 uasm_il_bnez(p, r, pte, lid); 1100 uasm_il_beqz(p, r, pte, lid);
1101 } else {
1102 uasm_i_andi(p, pte, pte, _PAGE_PRESENT | _PAGE_READ);
1103 uasm_i_xori(p, pte, pte, _PAGE_PRESENT | _PAGE_READ);
1104 uasm_il_bnez(p, r, pte, lid);
1105 }
983 iPTE_LW(p, pte, ptr); 1106 iPTE_LW(p, pte, ptr);
984} 1107}
985 1108
@@ -1033,6 +1156,7 @@ build_pte_modifiable(u32 **p, struct uasm_reloc **r,
1033 iPTE_LW(p, pte, ptr); 1156 iPTE_LW(p, pte, ptr);
1034} 1157}
1035 1158
1159#ifndef CONFIG_MIPS_PGD_C0_CONTEXT
1036/* 1160/*
1037 * R3000 style TLB load/store/modify handlers. 1161 * R3000 style TLB load/store/modify handlers.
1038 */ 1162 */
@@ -1184,6 +1308,7 @@ static void __cpuinit build_r3000_tlb_modify_handler(void)
1184 1308
1185 dump_handler(handle_tlbm, ARRAY_SIZE(handle_tlbm)); 1309 dump_handler(handle_tlbm, ARRAY_SIZE(handle_tlbm));
1186} 1310}
1311#endif /* CONFIG_MIPS_PGD_C0_CONTEXT */
1187 1312
1188/* 1313/*
1189 * R4000 style TLB load/store/modify handlers. 1314 * R4000 style TLB load/store/modify handlers.
@@ -1235,7 +1360,7 @@ build_r4000_tlbchange_handler_tail(u32 **p, struct uasm_label **l,
1235 uasm_i_eret(p); /* return from trap */ 1360 uasm_i_eret(p); /* return from trap */
1236 1361
1237#ifdef CONFIG_64BIT 1362#ifdef CONFIG_64BIT
1238 build_get_pgd_vmalloc64(p, l, r, tmp, ptr); 1363 build_get_pgd_vmalloc64(p, l, r, tmp, ptr, not_refill);
1239#endif 1364#endif
1240} 1365}
1241 1366
@@ -1250,10 +1375,15 @@ static void __cpuinit build_r4000_tlb_load_handler(void)
1250 memset(relocs, 0, sizeof(relocs)); 1375 memset(relocs, 0, sizeof(relocs));
1251 1376
1252 if (bcm1250_m3_war()) { 1377 if (bcm1250_m3_war()) {
1253 UASM_i_MFC0(&p, K0, C0_BADVADDR); 1378 unsigned int segbits = 44;
1254 UASM_i_MFC0(&p, K1, C0_ENTRYHI); 1379
1380 uasm_i_dmfc0(&p, K0, C0_BADVADDR);
1381 uasm_i_dmfc0(&p, K1, C0_ENTRYHI);
1255 uasm_i_xor(&p, K0, K0, K1); 1382 uasm_i_xor(&p, K0, K0, K1);
1256 UASM_i_SRL(&p, K0, K0, PAGE_SHIFT + 1); 1383 uasm_i_dsrl_safe(&p, K1, K0, 62);
1384 uasm_i_dsrl_safe(&p, K0, K0, 12 + 1);
1385 uasm_i_dsll_safe(&p, K0, K0, 64 + 12 + 1 - segbits);
1386 uasm_i_or(&p, K0, K0, K1);
1257 uasm_il_bnez(&p, &r, K0, label_leave); 1387 uasm_il_bnez(&p, &r, K0, label_leave);
1258 /* No need for uasm_i_nop */ 1388 /* No need for uasm_i_nop */
1259 } 1389 }
@@ -1262,6 +1392,34 @@ static void __cpuinit build_r4000_tlb_load_handler(void)
1262 build_pte_present(&p, &r, K0, K1, label_nopage_tlbl); 1392 build_pte_present(&p, &r, K0, K1, label_nopage_tlbl);
1263 if (m4kc_tlbp_war()) 1393 if (m4kc_tlbp_war())
1264 build_tlb_probe_entry(&p); 1394 build_tlb_probe_entry(&p);
1395
1396 if (kernel_uses_smartmips_rixi) {
1397 /*
1398 * If the page is not _PAGE_VALID, RI or XI could not
1399 * have triggered it. Skip the expensive test..
1400 */
1401 uasm_i_andi(&p, K0, K0, _PAGE_VALID);
1402 uasm_il_beqz(&p, &r, K0, label_tlbl_goaround1);
1403 uasm_i_nop(&p);
1404
1405 uasm_i_tlbr(&p);
1406 /* Examine entrylo 0 or 1 based on ptr. */
1407 uasm_i_andi(&p, K0, K1, sizeof(pte_t));
1408 uasm_i_beqz(&p, K0, 8);
1409
1410 UASM_i_MFC0(&p, K0, C0_ENTRYLO0); /* load it in the delay slot*/
1411 UASM_i_MFC0(&p, K0, C0_ENTRYLO1); /* load it if ptr is odd */
1412 /*
1413 * If the entryLo (now in K0) is valid (bit 1), RI or
1414 * XI must have triggered it.
1415 */
1416 uasm_i_andi(&p, K0, K0, 2);
1417 uasm_il_bnez(&p, &r, K0, label_nopage_tlbl);
1418
1419 uasm_l_tlbl_goaround1(&l, p);
1420 /* Reload the PTE value */
1421 iPTE_LW(&p, K0, K1);
1422 }
1265 build_make_valid(&p, &r, K0, K1); 1423 build_make_valid(&p, &r, K0, K1);
1266 build_r4000_tlbchange_handler_tail(&p, &l, &r, K0, K1); 1424 build_r4000_tlbchange_handler_tail(&p, &l, &r, K0, K1);
1267 1425
@@ -1274,6 +1432,40 @@ static void __cpuinit build_r4000_tlb_load_handler(void)
1274 iPTE_LW(&p, K0, K1); 1432 iPTE_LW(&p, K0, K1);
1275 build_pte_present(&p, &r, K0, K1, label_nopage_tlbl); 1433 build_pte_present(&p, &r, K0, K1, label_nopage_tlbl);
1276 build_tlb_probe_entry(&p); 1434 build_tlb_probe_entry(&p);
1435
1436 if (kernel_uses_smartmips_rixi) {
1437 /*
1438 * If the page is not _PAGE_VALID, RI or XI could not
1439 * have triggered it. Skip the expensive test..
1440 */
1441 uasm_i_andi(&p, K0, K0, _PAGE_VALID);
1442 uasm_il_beqz(&p, &r, K0, label_tlbl_goaround2);
1443 uasm_i_nop(&p);
1444
1445 uasm_i_tlbr(&p);
1446 /* Examine entrylo 0 or 1 based on ptr. */
1447 uasm_i_andi(&p, K0, K1, sizeof(pte_t));
1448 uasm_i_beqz(&p, K0, 8);
1449
1450 UASM_i_MFC0(&p, K0, C0_ENTRYLO0); /* load it in the delay slot*/
1451 UASM_i_MFC0(&p, K0, C0_ENTRYLO1); /* load it if ptr is odd */
1452 /*
1453 * If the entryLo (now in K0) is valid (bit 1), RI or
1454 * XI must have triggered it.
1455 */
1456 uasm_i_andi(&p, K0, K0, 2);
1457 uasm_il_beqz(&p, &r, K0, label_tlbl_goaround2);
1458 /* Reload the PTE value */
1459 iPTE_LW(&p, K0, K1);
1460
1461 /*
1462 * We clobbered C0_PAGEMASK, restore it. On the other branch
1463 * it is restored in build_huge_tlb_write_entry.
1464 */
1465 build_restore_pagemask(&p, &r, K0, label_nopage_tlbl);
1466
1467 uasm_l_tlbl_goaround2(&l, p);
1468 }
1277 uasm_i_ori(&p, K0, K0, (_PAGE_ACCESSED | _PAGE_VALID)); 1469 uasm_i_ori(&p, K0, K0, (_PAGE_ACCESSED | _PAGE_VALID));
1278 build_huge_handler_tail(&p, &r, &l, K0, K1); 1470 build_huge_handler_tail(&p, &r, &l, K0, K1);
1279#endif 1471#endif
@@ -1392,6 +1584,10 @@ void __cpuinit build_tlb_refill_handler(void)
1392 */ 1584 */
1393 static int run_once = 0; 1585 static int run_once = 0;
1394 1586
1587#ifdef CONFIG_64BIT
1588 check_for_high_segbits = current_cpu_data.vmbits > (PGDIR_SHIFT + PGD_ORDER + PAGE_SHIFT - 3);
1589#endif
1590
1395 switch (current_cpu_type()) { 1591 switch (current_cpu_type()) {
1396 case CPU_R2000: 1592 case CPU_R2000:
1397 case CPU_R3000: 1593 case CPU_R3000:
@@ -1400,6 +1596,7 @@ void __cpuinit build_tlb_refill_handler(void)
1400 case CPU_TX3912: 1596 case CPU_TX3912:
1401 case CPU_TX3922: 1597 case CPU_TX3922:
1402 case CPU_TX3927: 1598 case CPU_TX3927:
1599#ifndef CONFIG_MIPS_PGD_C0_CONTEXT
1403 build_r3000_tlb_refill_handler(); 1600 build_r3000_tlb_refill_handler();
1404 if (!run_once) { 1601 if (!run_once) {
1405 build_r3000_tlb_load_handler(); 1602 build_r3000_tlb_load_handler();
@@ -1407,6 +1604,9 @@ void __cpuinit build_tlb_refill_handler(void)
1407 build_r3000_tlb_modify_handler(); 1604 build_r3000_tlb_modify_handler();
1408 run_once++; 1605 run_once++;
1409 } 1606 }
1607#else
1608 panic("No R3000 TLB refill handler");
1609#endif
1410 break; 1610 break;
1411 1611
1412 case CPU_R6000: 1612 case CPU_R6000:
diff --git a/arch/mips/mm/uasm.c b/arch/mips/mm/uasm.c
index f467199676a8..611d564fdcf1 100644
--- a/arch/mips/mm/uasm.c
+++ b/arch/mips/mm/uasm.c
@@ -19,8 +19,7 @@
19#include <asm/inst.h> 19#include <asm/inst.h>
20#include <asm/elf.h> 20#include <asm/elf.h>
21#include <asm/bugs.h> 21#include <asm/bugs.h>
22 22#include <asm/uasm.h>
23#include "uasm.h"
24 23
25enum fields { 24enum fields {
26 RS = 0x001, 25 RS = 0x001,
@@ -32,7 +31,8 @@ enum fields {
32 BIMM = 0x040, 31 BIMM = 0x040,
33 JIMM = 0x080, 32 JIMM = 0x080,
34 FUNC = 0x100, 33 FUNC = 0x100,
35 SET = 0x200 34 SET = 0x200,
35 SCIMM = 0x400
36}; 36};
37 37
38#define OP_MASK 0x3f 38#define OP_MASK 0x3f
@@ -53,6 +53,8 @@ enum fields {
53#define FUNC_SH 0 53#define FUNC_SH 0
54#define SET_MASK 0x7 54#define SET_MASK 0x7
55#define SET_SH 0 55#define SET_SH 0
56#define SCIMM_MASK 0xfffff
57#define SCIMM_SH 6
56 58
57enum opcode { 59enum opcode {
58 insn_invalid, 60 insn_invalid,
@@ -60,11 +62,12 @@ enum opcode {
60 insn_beql, insn_bgez, insn_bgezl, insn_bltz, insn_bltzl, 62 insn_beql, insn_bgez, insn_bgezl, insn_bltz, insn_bltzl,
61 insn_bne, insn_cache, insn_daddu, insn_daddiu, insn_dmfc0, 63 insn_bne, insn_cache, insn_daddu, insn_daddiu, insn_dmfc0,
62 insn_dmtc0, insn_dsll, insn_dsll32, insn_dsra, insn_dsrl, 64 insn_dmtc0, insn_dsll, insn_dsll32, insn_dsra, insn_dsrl,
63 insn_dsrl32, insn_dsubu, insn_eret, insn_j, insn_jal, insn_jr, 65 insn_dsrl32, insn_drotr, insn_dsubu, insn_eret, insn_j, insn_jal,
64 insn_ld, insn_ll, insn_lld, insn_lui, insn_lw, insn_mfc0, 66 insn_jr, insn_ld, insn_ll, insn_lld, insn_lui, insn_lw, insn_mfc0,
65 insn_mtc0, insn_ori, insn_pref, insn_rfe, insn_sc, insn_scd, 67 insn_mtc0, insn_or, insn_ori, insn_pref, insn_rfe, insn_sc, insn_scd,
66 insn_sd, insn_sll, insn_sra, insn_srl, insn_subu, insn_sw, 68 insn_sd, insn_sll, insn_sra, insn_srl, insn_rotr, insn_subu, insn_sw,
67 insn_tlbp, insn_tlbwi, insn_tlbwr, insn_xor, insn_xori 69 insn_tlbp, insn_tlbr, insn_tlbwi, insn_tlbwr, insn_xor, insn_xori,
70 insn_dins, insn_syscall
68}; 71};
69 72
70struct insn { 73struct insn {
@@ -104,6 +107,7 @@ static struct insn insn_table[] __cpuinitdata = {
104 { insn_dsra, M(spec_op, 0, 0, 0, 0, dsra_op), RT | RD | RE }, 107 { insn_dsra, M(spec_op, 0, 0, 0, 0, dsra_op), RT | RD | RE },
105 { insn_dsrl, M(spec_op, 0, 0, 0, 0, dsrl_op), RT | RD | RE }, 108 { insn_dsrl, M(spec_op, 0, 0, 0, 0, dsrl_op), RT | RD | RE },
106 { insn_dsrl32, M(spec_op, 0, 0, 0, 0, dsrl32_op), RT | RD | RE }, 109 { insn_dsrl32, M(spec_op, 0, 0, 0, 0, dsrl32_op), RT | RD | RE },
110 { insn_drotr, M(spec_op, 1, 0, 0, 0, dsrl_op), RT | RD | RE },
107 { insn_dsubu, M(spec_op, 0, 0, 0, 0, dsubu_op), RS | RT | RD }, 111 { insn_dsubu, M(spec_op, 0, 0, 0, 0, dsubu_op), RS | RT | RD },
108 { insn_eret, M(cop0_op, cop_op, 0, 0, 0, eret_op), 0 }, 112 { insn_eret, M(cop0_op, cop_op, 0, 0, 0, eret_op), 0 },
109 { insn_j, M(j_op, 0, 0, 0, 0, 0), JIMM }, 113 { insn_j, M(j_op, 0, 0, 0, 0, 0), JIMM },
@@ -116,6 +120,7 @@ static struct insn insn_table[] __cpuinitdata = {
116 { insn_lw, M(lw_op, 0, 0, 0, 0, 0), RS | RT | SIMM }, 120 { insn_lw, M(lw_op, 0, 0, 0, 0, 0), RS | RT | SIMM },
117 { insn_mfc0, M(cop0_op, mfc_op, 0, 0, 0, 0), RT | RD | SET}, 121 { insn_mfc0, M(cop0_op, mfc_op, 0, 0, 0, 0), RT | RD | SET},
118 { insn_mtc0, M(cop0_op, mtc_op, 0, 0, 0, 0), RT | RD | SET}, 122 { insn_mtc0, M(cop0_op, mtc_op, 0, 0, 0, 0), RT | RD | SET},
123 { insn_or, M(spec_op, 0, 0, 0, 0, or_op), RS | RT | RD },
119 { insn_ori, M(ori_op, 0, 0, 0, 0, 0), RS | RT | UIMM }, 124 { insn_ori, M(ori_op, 0, 0, 0, 0, 0), RS | RT | UIMM },
120 { insn_pref, M(pref_op, 0, 0, 0, 0, 0), RS | RT | SIMM }, 125 { insn_pref, M(pref_op, 0, 0, 0, 0, 0), RS | RT | SIMM },
121 { insn_rfe, M(cop0_op, cop_op, 0, 0, 0, rfe_op), 0 }, 126 { insn_rfe, M(cop0_op, cop_op, 0, 0, 0, rfe_op), 0 },
@@ -125,13 +130,17 @@ static struct insn insn_table[] __cpuinitdata = {
125 { insn_sll, M(spec_op, 0, 0, 0, 0, sll_op), RT | RD | RE }, 130 { insn_sll, M(spec_op, 0, 0, 0, 0, sll_op), RT | RD | RE },
126 { insn_sra, M(spec_op, 0, 0, 0, 0, sra_op), RT | RD | RE }, 131 { insn_sra, M(spec_op, 0, 0, 0, 0, sra_op), RT | RD | RE },
127 { insn_srl, M(spec_op, 0, 0, 0, 0, srl_op), RT | RD | RE }, 132 { insn_srl, M(spec_op, 0, 0, 0, 0, srl_op), RT | RD | RE },
133 { insn_rotr, M(spec_op, 1, 0, 0, 0, srl_op), RT | RD | RE },
128 { insn_subu, M(spec_op, 0, 0, 0, 0, subu_op), RS | RT | RD }, 134 { insn_subu, M(spec_op, 0, 0, 0, 0, subu_op), RS | RT | RD },
129 { insn_sw, M(sw_op, 0, 0, 0, 0, 0), RS | RT | SIMM }, 135 { insn_sw, M(sw_op, 0, 0, 0, 0, 0), RS | RT | SIMM },
130 { insn_tlbp, M(cop0_op, cop_op, 0, 0, 0, tlbp_op), 0 }, 136 { insn_tlbp, M(cop0_op, cop_op, 0, 0, 0, tlbp_op), 0 },
137 { insn_tlbr, M(cop0_op, cop_op, 0, 0, 0, tlbr_op), 0 },
131 { insn_tlbwi, M(cop0_op, cop_op, 0, 0, 0, tlbwi_op), 0 }, 138 { insn_tlbwi, M(cop0_op, cop_op, 0, 0, 0, tlbwi_op), 0 },
132 { insn_tlbwr, M(cop0_op, cop_op, 0, 0, 0, tlbwr_op), 0 }, 139 { insn_tlbwr, M(cop0_op, cop_op, 0, 0, 0, tlbwr_op), 0 },
133 { insn_xor, M(spec_op, 0, 0, 0, 0, xor_op), RS | RT | RD }, 140 { insn_xor, M(spec_op, 0, 0, 0, 0, xor_op), RS | RT | RD },
134 { insn_xori, M(xori_op, 0, 0, 0, 0, 0), RS | RT | UIMM }, 141 { insn_xori, M(xori_op, 0, 0, 0, 0, 0), RS | RT | UIMM },
142 { insn_dins, M(spec3_op, 0, 0, 0, 0, dins_op), RS | RT | RD | RE },
143 { insn_syscall, M(spec_op, 0, 0, 0, 0, syscall_op), SCIMM},
135 { insn_invalid, 0, 0 } 144 { insn_invalid, 0, 0 }
136}; 145};
137 146
@@ -204,6 +213,14 @@ static inline __cpuinit u32 build_jimm(u32 arg)
204 return (arg >> 2) & JIMM_MASK; 213 return (arg >> 2) & JIMM_MASK;
205} 214}
206 215
216static inline __cpuinit u32 build_scimm(u32 arg)
217{
218 if (arg & ~SCIMM_MASK)
219 printk(KERN_WARNING "Micro-assembler field overflow\n");
220
221 return (arg & SCIMM_MASK) << SCIMM_SH;
222}
223
207static inline __cpuinit u32 build_func(u32 arg) 224static inline __cpuinit u32 build_func(u32 arg)
208{ 225{
209 if (arg & ~FUNC_MASK) 226 if (arg & ~FUNC_MASK)
@@ -262,6 +279,8 @@ static void __cpuinit build_insn(u32 **buf, enum opcode opc, ...)
262 op |= build_func(va_arg(ap, u32)); 279 op |= build_func(va_arg(ap, u32));
263 if (ip->fields & SET) 280 if (ip->fields & SET)
264 op |= build_set(va_arg(ap, u32)); 281 op |= build_set(va_arg(ap, u32));
282 if (ip->fields & SCIMM)
283 op |= build_scimm(va_arg(ap, u32));
265 va_end(ap); 284 va_end(ap);
266 285
267 **buf = op; 286 **buf = op;
@@ -304,6 +323,12 @@ Ip_u2u1s3(op) \
304 build_insn(buf, insn##op, b, a, c); \ 323 build_insn(buf, insn##op, b, a, c); \
305} 324}
306 325
326#define I_u2u1msbu3(op) \
327Ip_u2u1msbu3(op) \
328{ \
329 build_insn(buf, insn##op, b, a, c+d-1, c); \
330}
331
307#define I_u1u2(op) \ 332#define I_u1u2(op) \
308Ip_u1u2(op) \ 333Ip_u1u2(op) \
309{ \ 334{ \
@@ -349,6 +374,7 @@ I_u2u1u3(_dsll32)
349I_u2u1u3(_dsra) 374I_u2u1u3(_dsra)
350I_u2u1u3(_dsrl) 375I_u2u1u3(_dsrl)
351I_u2u1u3(_dsrl32) 376I_u2u1u3(_dsrl32)
377I_u2u1u3(_drotr)
352I_u3u1u2(_dsubu) 378I_u3u1u2(_dsubu)
353I_0(_eret) 379I_0(_eret)
354I_u1(_j) 380I_u1(_j)
@@ -362,6 +388,7 @@ I_u2s3u1(_lw)
362I_u1u2u3(_mfc0) 388I_u1u2u3(_mfc0)
363I_u1u2u3(_mtc0) 389I_u1u2u3(_mtc0)
364I_u2u1u3(_ori) 390I_u2u1u3(_ori)
391I_u3u1u2(_or)
365I_u2s3u1(_pref) 392I_u2s3u1(_pref)
366I_0(_rfe) 393I_0(_rfe)
367I_u2s3u1(_sc) 394I_u2s3u1(_sc)
@@ -370,13 +397,17 @@ I_u2s3u1(_sd)
370I_u2u1u3(_sll) 397I_u2u1u3(_sll)
371I_u2u1u3(_sra) 398I_u2u1u3(_sra)
372I_u2u1u3(_srl) 399I_u2u1u3(_srl)
400I_u2u1u3(_rotr)
373I_u3u1u2(_subu) 401I_u3u1u2(_subu)
374I_u2s3u1(_sw) 402I_u2s3u1(_sw)
375I_0(_tlbp) 403I_0(_tlbp)
404I_0(_tlbr)
376I_0(_tlbwi) 405I_0(_tlbwi)
377I_0(_tlbwr) 406I_0(_tlbwr)
378I_u3u1u2(_xor) 407I_u3u1u2(_xor)
379I_u2u1u3(_xori) 408I_u2u1u3(_xori)
409I_u2u1msbu3(_dins);
410I_u1(_syscall);
380 411
381/* Handle labels. */ 412/* Handle labels. */
382void __cpuinit uasm_build_label(struct uasm_label **lab, u32 *addr, int lid) 413void __cpuinit uasm_build_label(struct uasm_label **lab, u32 *addr, int lid)
diff --git a/arch/mips/mti-malta/malta-init.c b/arch/mips/mti-malta/malta-init.c
index f1b14c8a4a1c..414f0c99b196 100644
--- a/arch/mips/mti-malta/malta-init.c
+++ b/arch/mips/mti-malta/malta-init.c
@@ -355,7 +355,6 @@ void __init prom_init(void)
355 board_nmi_handler_setup = mips_nmi_setup; 355 board_nmi_handler_setup = mips_nmi_setup;
356 board_ejtag_handler_setup = mips_ejtag_setup; 356 board_ejtag_handler_setup = mips_ejtag_setup;
357 357
358 pr_info("\nLINUX started...\n");
359 prom_init_cmdline(); 358 prom_init_cmdline();
360 prom_meminit(); 359 prom_meminit();
361#ifdef CONFIG_SERIAL_8250_CONSOLE 360#ifdef CONFIG_SERIAL_8250_CONSOLE
diff --git a/arch/mips/mti-malta/malta-int.c b/arch/mips/mti-malta/malta-int.c
index 4c3fca18a171..15949b0be811 100644
--- a/arch/mips/mti-malta/malta-int.c
+++ b/arch/mips/mti-malta/malta-int.c
@@ -25,7 +25,6 @@
25#include <linux/irq.h> 25#include <linux/irq.h>
26#include <linux/sched.h> 26#include <linux/sched.h>
27#include <linux/smp.h> 27#include <linux/smp.h>
28#include <linux/slab.h>
29#include <linux/interrupt.h> 28#include <linux/interrupt.h>
30#include <linux/io.h> 29#include <linux/io.h>
31#include <linux/kernel_stat.h> 30#include <linux/kernel_stat.h>
@@ -52,7 +51,7 @@ static unsigned long _msc01_biu_base;
52static unsigned long _gcmp_base; 51static unsigned long _gcmp_base;
53static unsigned int ipi_map[NR_CPUS]; 52static unsigned int ipi_map[NR_CPUS];
54 53
55static DEFINE_SPINLOCK(mips_irq_lock); 54static DEFINE_RAW_SPINLOCK(mips_irq_lock);
56 55
57static inline int mips_pcibios_iack(void) 56static inline int mips_pcibios_iack(void)
58{ 57{
@@ -103,7 +102,7 @@ static inline int get_int(void)
103{ 102{
104 unsigned long flags; 103 unsigned long flags;
105 int irq; 104 int irq;
106 spin_lock_irqsave(&mips_irq_lock, flags); 105 raw_spin_lock_irqsave(&mips_irq_lock, flags);
107 106
108 irq = mips_pcibios_iack(); 107 irq = mips_pcibios_iack();
109 108
@@ -113,7 +112,7 @@ static inline int get_int(void)
113 * on an SMP system, so leave it up to the generic code... 112 * on an SMP system, so leave it up to the generic code...
114 */ 113 */
115 114
116 spin_unlock_irqrestore(&mips_irq_lock, flags); 115 raw_spin_unlock_irqrestore(&mips_irq_lock, flags);
117 116
118 return irq; 117 return irq;
119} 118}
diff --git a/arch/mips/mti-malta/malta-memory.c b/arch/mips/mti-malta/malta-memory.c
index 9035c64bc5ed..b27419c84919 100644
--- a/arch/mips/mti-malta/malta-memory.c
+++ b/arch/mips/mti-malta/malta-memory.c
@@ -55,7 +55,7 @@ static struct prom_pmemblock * __init prom_getmdesc(void)
55 char *memsize_str; 55 char *memsize_str;
56 unsigned int memsize; 56 unsigned int memsize;
57 char *ptr; 57 char *ptr;
58 static char cmdline[CL_SIZE] __initdata; 58 static char cmdline[COMMAND_LINE_SIZE] __initdata;
59 59
60 /* otherwise look in the environment */ 60 /* otherwise look in the environment */
61 memsize_str = prom_getenv("memsize"); 61 memsize_str = prom_getenv("memsize");
diff --git a/arch/mips/nxp/pnx833x/common/interrupts.c b/arch/mips/nxp/pnx833x/common/interrupts.c
index 30533ba200e2..941916f8aaff 100644
--- a/arch/mips/nxp/pnx833x/common/interrupts.c
+++ b/arch/mips/nxp/pnx833x/common/interrupts.c
@@ -156,19 +156,19 @@ static int irqflags[PNX833X_PIC_NUM_IRQ]; /* initialized by zeroes */
156#define IRQFLAG_STARTED 1 156#define IRQFLAG_STARTED 1
157#define IRQFLAG_DISABLED 2 157#define IRQFLAG_DISABLED 2
158 158
159static DEFINE_SPINLOCK(pnx833x_irq_lock); 159static DEFINE_RAW_SPINLOCK(pnx833x_irq_lock);
160 160
161static unsigned int pnx833x_startup_pic_irq(unsigned int irq) 161static unsigned int pnx833x_startup_pic_irq(unsigned int irq)
162{ 162{
163 unsigned long flags; 163 unsigned long flags;
164 unsigned int pic_irq = irq - PNX833X_PIC_IRQ_BASE; 164 unsigned int pic_irq = irq - PNX833X_PIC_IRQ_BASE;
165 165
166 spin_lock_irqsave(&pnx833x_irq_lock, flags); 166 raw_spin_lock_irqsave(&pnx833x_irq_lock, flags);
167 167
168 irqflags[pic_irq] = IRQFLAG_STARTED; /* started, not disabled */ 168 irqflags[pic_irq] = IRQFLAG_STARTED; /* started, not disabled */
169 pnx833x_hard_enable_pic_irq(pic_irq); 169 pnx833x_hard_enable_pic_irq(pic_irq);
170 170
171 spin_unlock_irqrestore(&pnx833x_irq_lock, flags); 171 raw_spin_unlock_irqrestore(&pnx833x_irq_lock, flags);
172 return 0; 172 return 0;
173} 173}
174 174
@@ -177,12 +177,12 @@ static void pnx833x_shutdown_pic_irq(unsigned int irq)
177 unsigned long flags; 177 unsigned long flags;
178 unsigned int pic_irq = irq - PNX833X_PIC_IRQ_BASE; 178 unsigned int pic_irq = irq - PNX833X_PIC_IRQ_BASE;
179 179
180 spin_lock_irqsave(&pnx833x_irq_lock, flags); 180 raw_spin_lock_irqsave(&pnx833x_irq_lock, flags);
181 181
182 irqflags[pic_irq] = 0; /* not started */ 182 irqflags[pic_irq] = 0; /* not started */
183 pnx833x_hard_disable_pic_irq(pic_irq); 183 pnx833x_hard_disable_pic_irq(pic_irq);
184 184
185 spin_unlock_irqrestore(&pnx833x_irq_lock, flags); 185 raw_spin_unlock_irqrestore(&pnx833x_irq_lock, flags);
186} 186}
187 187
188static void pnx833x_enable_pic_irq(unsigned int irq) 188static void pnx833x_enable_pic_irq(unsigned int irq)
@@ -190,13 +190,13 @@ static void pnx833x_enable_pic_irq(unsigned int irq)
190 unsigned long flags; 190 unsigned long flags;
191 unsigned int pic_irq = irq - PNX833X_PIC_IRQ_BASE; 191 unsigned int pic_irq = irq - PNX833X_PIC_IRQ_BASE;
192 192
193 spin_lock_irqsave(&pnx833x_irq_lock, flags); 193 raw_spin_lock_irqsave(&pnx833x_irq_lock, flags);
194 194
195 irqflags[pic_irq] &= ~IRQFLAG_DISABLED; 195 irqflags[pic_irq] &= ~IRQFLAG_DISABLED;
196 if (irqflags[pic_irq] == IRQFLAG_STARTED) 196 if (irqflags[pic_irq] == IRQFLAG_STARTED)
197 pnx833x_hard_enable_pic_irq(pic_irq); 197 pnx833x_hard_enable_pic_irq(pic_irq);
198 198
199 spin_unlock_irqrestore(&pnx833x_irq_lock, flags); 199 raw_spin_unlock_irqrestore(&pnx833x_irq_lock, flags);
200} 200}
201 201
202static void pnx833x_disable_pic_irq(unsigned int irq) 202static void pnx833x_disable_pic_irq(unsigned int irq)
@@ -204,12 +204,12 @@ static void pnx833x_disable_pic_irq(unsigned int irq)
204 unsigned long flags; 204 unsigned long flags;
205 unsigned int pic_irq = irq - PNX833X_PIC_IRQ_BASE; 205 unsigned int pic_irq = irq - PNX833X_PIC_IRQ_BASE;
206 206
207 spin_lock_irqsave(&pnx833x_irq_lock, flags); 207 raw_spin_lock_irqsave(&pnx833x_irq_lock, flags);
208 208
209 irqflags[pic_irq] |= IRQFLAG_DISABLED; 209 irqflags[pic_irq] |= IRQFLAG_DISABLED;
210 pnx833x_hard_disable_pic_irq(pic_irq); 210 pnx833x_hard_disable_pic_irq(pic_irq);
211 211
212 spin_unlock_irqrestore(&pnx833x_irq_lock, flags); 212 raw_spin_unlock_irqrestore(&pnx833x_irq_lock, flags);
213} 213}
214 214
215static void pnx833x_ack_pic_irq(unsigned int irq) 215static void pnx833x_ack_pic_irq(unsigned int irq)
@@ -220,15 +220,15 @@ static void pnx833x_end_pic_irq(unsigned int irq)
220{ 220{
221} 221}
222 222
223static DEFINE_SPINLOCK(pnx833x_gpio_pnx833x_irq_lock); 223static DEFINE_RAW_SPINLOCK(pnx833x_gpio_pnx833x_irq_lock);
224 224
225static unsigned int pnx833x_startup_gpio_irq(unsigned int irq) 225static unsigned int pnx833x_startup_gpio_irq(unsigned int irq)
226{ 226{
227 int pin = irq - PNX833X_GPIO_IRQ_BASE; 227 int pin = irq - PNX833X_GPIO_IRQ_BASE;
228 unsigned long flags; 228 unsigned long flags;
229 spin_lock_irqsave(&pnx833x_gpio_pnx833x_irq_lock, flags); 229 raw_spin_lock_irqsave(&pnx833x_gpio_pnx833x_irq_lock, flags);
230 pnx833x_gpio_enable_irq(pin); 230 pnx833x_gpio_enable_irq(pin);
231 spin_unlock_irqrestore(&pnx833x_gpio_pnx833x_irq_lock, flags); 231 raw_spin_unlock_irqrestore(&pnx833x_gpio_pnx833x_irq_lock, flags);
232 return 0; 232 return 0;
233} 233}
234 234
@@ -236,18 +236,18 @@ static void pnx833x_enable_gpio_irq(unsigned int irq)
236{ 236{
237 int pin = irq - PNX833X_GPIO_IRQ_BASE; 237 int pin = irq - PNX833X_GPIO_IRQ_BASE;
238 unsigned long flags; 238 unsigned long flags;
239 spin_lock_irqsave(&pnx833x_gpio_pnx833x_irq_lock, flags); 239 raw_spin_lock_irqsave(&pnx833x_gpio_pnx833x_irq_lock, flags);
240 pnx833x_gpio_enable_irq(pin); 240 pnx833x_gpio_enable_irq(pin);
241 spin_unlock_irqrestore(&pnx833x_gpio_pnx833x_irq_lock, flags); 241 raw_spin_unlock_irqrestore(&pnx833x_gpio_pnx833x_irq_lock, flags);
242} 242}
243 243
244static void pnx833x_disable_gpio_irq(unsigned int irq) 244static void pnx833x_disable_gpio_irq(unsigned int irq)
245{ 245{
246 int pin = irq - PNX833X_GPIO_IRQ_BASE; 246 int pin = irq - PNX833X_GPIO_IRQ_BASE;
247 unsigned long flags; 247 unsigned long flags;
248 spin_lock_irqsave(&pnx833x_gpio_pnx833x_irq_lock, flags); 248 raw_spin_lock_irqsave(&pnx833x_gpio_pnx833x_irq_lock, flags);
249 pnx833x_gpio_disable_irq(pin); 249 pnx833x_gpio_disable_irq(pin);
250 spin_unlock_irqrestore(&pnx833x_gpio_pnx833x_irq_lock, flags); 250 raw_spin_unlock_irqrestore(&pnx833x_gpio_pnx833x_irq_lock, flags);
251} 251}
252 252
253static void pnx833x_ack_gpio_irq(unsigned int irq) 253static void pnx833x_ack_gpio_irq(unsigned int irq)
@@ -258,9 +258,9 @@ static void pnx833x_end_gpio_irq(unsigned int irq)
258{ 258{
259 int pin = irq - PNX833X_GPIO_IRQ_BASE; 259 int pin = irq - PNX833X_GPIO_IRQ_BASE;
260 unsigned long flags; 260 unsigned long flags;
261 spin_lock_irqsave(&pnx833x_gpio_pnx833x_irq_lock, flags); 261 raw_spin_lock_irqsave(&pnx833x_gpio_pnx833x_irq_lock, flags);
262 pnx833x_gpio_clear_irq(pin); 262 pnx833x_gpio_clear_irq(pin);
263 spin_unlock_irqrestore(&pnx833x_gpio_pnx833x_irq_lock, flags); 263 raw_spin_unlock_irqrestore(&pnx833x_gpio_pnx833x_irq_lock, flags);
264} 264}
265 265
266static int pnx833x_set_type_gpio_irq(unsigned int irq, unsigned int flow_type) 266static int pnx833x_set_type_gpio_irq(unsigned int irq, unsigned int flow_type)
@@ -295,7 +295,7 @@ static int pnx833x_set_type_gpio_irq(unsigned int irq, unsigned int flow_type)
295} 295}
296 296
297static struct irq_chip pnx833x_pic_irq_type = { 297static struct irq_chip pnx833x_pic_irq_type = {
298 .typename = "PNX-PIC", 298 .name = "PNX-PIC",
299 .startup = pnx833x_startup_pic_irq, 299 .startup = pnx833x_startup_pic_irq,
300 .shutdown = pnx833x_shutdown_pic_irq, 300 .shutdown = pnx833x_shutdown_pic_irq,
301 .enable = pnx833x_enable_pic_irq, 301 .enable = pnx833x_enable_pic_irq,
@@ -305,7 +305,7 @@ static struct irq_chip pnx833x_pic_irq_type = {
305}; 305};
306 306
307static struct irq_chip pnx833x_gpio_irq_type = { 307static struct irq_chip pnx833x_gpio_irq_type = {
308 .typename = "PNX-GPIO", 308 .name = "PNX-GPIO",
309 .startup = pnx833x_startup_gpio_irq, 309 .startup = pnx833x_startup_gpio_irq,
310 .shutdown = pnx833x_disable_gpio_irq, 310 .shutdown = pnx833x_disable_gpio_irq,
311 .enable = pnx833x_enable_gpio_irq, 311 .enable = pnx833x_enable_gpio_irq,
@@ -377,4 +377,3 @@ void __init plat_time_init(void)
377 377
378 mips_hpt_frequency *= 500000; 378 mips_hpt_frequency *= 500000;
379} 379}
380
diff --git a/arch/mips/nxp/pnx833x/common/prom.c b/arch/mips/nxp/pnx833x/common/prom.c
index 2a41e8fec210..29969f90a6b0 100644
--- a/arch/mips/nxp/pnx833x/common/prom.c
+++ b/arch/mips/nxp/pnx833x/common/prom.c
@@ -62,9 +62,3 @@ char __init *prom_getenv(char *envname)
62void __init prom_free_prom_memory(void) 62void __init prom_free_prom_memory(void)
63{ 63{
64} 64}
65
66char * __init prom_getcmdline(void)
67{
68 return arcs_cmdline;
69}
70
diff --git a/arch/mips/nxp/pnx833x/common/reset.c b/arch/mips/nxp/pnx833x/common/reset.c
index a9bc9bacad2b..e0ea96d29fde 100644
--- a/arch/mips/nxp/pnx833x/common/reset.c
+++ b/arch/mips/nxp/pnx833x/common/reset.c
@@ -22,7 +22,6 @@
22 * along with this program; if not, write to the Free Software 22 * along with this program; if not, write to the Free Software
23 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 23 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
24 */ 24 */
25#include <linux/slab.h>
26#include <linux/reboot.h> 25#include <linux/reboot.h>
27#include <pnx833x.h> 26#include <pnx833x.h>
28 27
diff --git a/arch/mips/nxp/pnx8550/common/int.c b/arch/mips/nxp/pnx8550/common/int.c
index 7aca7d5375e5..cfed5051dc6d 100644
--- a/arch/mips/nxp/pnx8550/common/int.c
+++ b/arch/mips/nxp/pnx8550/common/int.c
@@ -27,7 +27,6 @@
27#include <linux/init.h> 27#include <linux/init.h>
28#include <linux/irq.h> 28#include <linux/irq.h>
29#include <linux/sched.h> 29#include <linux/sched.h>
30#include <linux/slab.h>
31#include <linux/interrupt.h> 30#include <linux/interrupt.h>
32#include <linux/kernel_stat.h> 31#include <linux/kernel_stat.h>
33#include <linux/random.h> 32#include <linux/random.h>
diff --git a/arch/mips/nxp/pnx8550/common/proc.c b/arch/mips/nxp/pnx8550/common/proc.c
index af094cd1d85b..3bba5ec828e8 100644
--- a/arch/mips/nxp/pnx8550/common/proc.c
+++ b/arch/mips/nxp/pnx8550/common/proc.c
@@ -16,7 +16,6 @@
16#include <linux/proc_fs.h> 16#include <linux/proc_fs.h>
17#include <linux/irq.h> 17#include <linux/irq.h>
18#include <linux/sched.h> 18#include <linux/sched.h>
19#include <linux/slab.h>
20#include <linux/interrupt.h> 19#include <linux/interrupt.h>
21#include <linux/kernel_stat.h> 20#include <linux/kernel_stat.h>
22#include <linux/random.h> 21#include <linux/random.h>
diff --git a/arch/mips/nxp/pnx8550/common/prom.c b/arch/mips/nxp/pnx8550/common/prom.c
index 2f567452e7ac..32f70097c3c7 100644
--- a/arch/mips/nxp/pnx8550/common/prom.c
+++ b/arch/mips/nxp/pnx8550/common/prom.c
@@ -124,6 +124,5 @@ void prom_putchar(char c)
124 } 124 }
125} 125}
126 126
127EXPORT_SYMBOL(prom_getcmdline);
128EXPORT_SYMBOL(get_ethernet_addr); 127EXPORT_SYMBOL(get_ethernet_addr);
129EXPORT_SYMBOL(str2eaddr); 128EXPORT_SYMBOL(str2eaddr);
diff --git a/arch/mips/nxp/pnx8550/common/reset.c b/arch/mips/nxp/pnx8550/common/reset.c
index 7b2cbc5b2c7c..fadd8744a6bc 100644
--- a/arch/mips/nxp/pnx8550/common/reset.c
+++ b/arch/mips/nxp/pnx8550/common/reset.c
@@ -20,7 +20,8 @@
20 * Reset the PNX8550 board. 20 * Reset the PNX8550 board.
21 * 21 *
22 */ 22 */
23#include <linux/slab.h> 23#include <linux/kernel.h>
24
24#include <asm/reboot.h> 25#include <asm/reboot.h>
25#include <glb.h> 26#include <glb.h>
26 27
diff --git a/arch/mips/oprofile/common.c b/arch/mips/oprofile/common.c
index 7832ad257a14..f9eb1aba6345 100644
--- a/arch/mips/oprofile/common.c
+++ b/arch/mips/oprofile/common.c
@@ -6,6 +6,7 @@
6 * Copyright (C) 2004, 2005 Ralf Baechle 6 * Copyright (C) 2004, 2005 Ralf Baechle
7 * Copyright (C) 2005 MIPS Technologies, Inc. 7 * Copyright (C) 2005 MIPS Technologies, Inc.
8 */ 8 */
9#include <linux/compiler.h>
9#include <linux/errno.h> 10#include <linux/errno.h>
10#include <linux/init.h> 11#include <linux/init.h>
11#include <linux/oprofile.h> 12#include <linux/oprofile.h>
@@ -14,9 +15,9 @@
14 15
15#include "op_impl.h" 16#include "op_impl.h"
16 17
17extern struct op_mips_model op_model_mipsxx_ops __attribute__((weak)); 18extern struct op_mips_model op_model_mipsxx_ops __weak;
18extern struct op_mips_model op_model_rm9000_ops __attribute__((weak)); 19extern struct op_mips_model op_model_rm9000_ops __weak;
19extern struct op_mips_model op_model_loongson2_ops __attribute__((weak)); 20extern struct op_mips_model op_model_loongson2_ops __weak;
20 21
21static struct op_mips_model *model; 22static struct op_mips_model *model;
22 23
diff --git a/arch/mips/oprofile/op_model_loongson2.c b/arch/mips/oprofile/op_model_loongson2.c
index 575cd1473475..fa3bf661ae29 100644
--- a/arch/mips/oprofile/op_model_loongson2.c
+++ b/arch/mips/oprofile/op_model_loongson2.c
@@ -1,9 +1,9 @@
1/* 1/*
2 * Loongson2 performance counter driver for oprofile 2 * Loongson2 performance counter driver for oprofile
3 * 3 *
4 * Copyright (C) 2009 Lemote Inc. & Insititute of Computing Technology 4 * Copyright (C) 2009 Lemote Inc.
5 * Author: Yanhua <yanh@lemote.com> 5 * Author: Yanhua <yanh@lemote.com>
6 * Author: Wu Zhangjin <wuzj@lemote.com> 6 * Author: Wu Zhangjin <wuzhangjin@gmail.com>
7 * 7 *
8 * This file is subject to the terms and conditions of the GNU General Public 8 * This file is subject to the terms and conditions of the GNU General Public
9 * License. See the file "COPYING" in the main directory of this archive 9 * License. See the file "COPYING" in the main directory of this archive
@@ -47,8 +47,6 @@ static struct loongson2_register_config {
47 int cnt1_enabled, cnt2_enabled; 47 int cnt1_enabled, cnt2_enabled;
48} reg; 48} reg;
49 49
50DEFINE_SPINLOCK(sample_lock);
51
52static char *oprofid = "LoongsonPerf"; 50static char *oprofid = "LoongsonPerf";
53static irqreturn_t loongson2_perfcount_handler(int irq, void *dev_id); 51static irqreturn_t loongson2_perfcount_handler(int irq, void *dev_id);
54/* Compute all of the registers in preparation for enabling profiling. */ 52/* Compute all of the registers in preparation for enabling profiling. */
@@ -115,7 +113,6 @@ static irqreturn_t loongson2_perfcount_handler(int irq, void *dev_id)
115 uint64_t counter, counter1, counter2; 113 uint64_t counter, counter1, counter2;
116 struct pt_regs *regs = get_irq_regs(); 114 struct pt_regs *regs = get_irq_regs();
117 int enabled; 115 int enabled;
118 unsigned long flags;
119 116
120 /* 117 /*
121 * LOONGSON2 defines two 32-bit performance counters. 118 * LOONGSON2 defines two 32-bit performance counters.
@@ -125,6 +122,9 @@ static irqreturn_t loongson2_perfcount_handler(int irq, void *dev_id)
125 */ 122 */
126 123
127 /* Check whether the irq belongs to me */ 124 /* Check whether the irq belongs to me */
125 enabled = read_c0_perfctrl() & LOONGSON2_PERFCNT_INT_EN;
126 if (!enabled)
127 return IRQ_NONE;
128 enabled = reg.cnt1_enabled | reg.cnt2_enabled; 128 enabled = reg.cnt1_enabled | reg.cnt2_enabled;
129 if (!enabled) 129 if (!enabled)
130 return IRQ_NONE; 130 return IRQ_NONE;
@@ -133,8 +133,6 @@ static irqreturn_t loongson2_perfcount_handler(int irq, void *dev_id)
133 counter1 = counter & 0xffffffff; 133 counter1 = counter & 0xffffffff;
134 counter2 = counter >> 32; 134 counter2 = counter >> 32;
135 135
136 spin_lock_irqsave(&sample_lock, flags);
137
138 if (counter1 & LOONGSON2_PERFCNT_OVERFLOW) { 136 if (counter1 & LOONGSON2_PERFCNT_OVERFLOW) {
139 if (reg.cnt1_enabled) 137 if (reg.cnt1_enabled)
140 oprofile_add_sample(regs, 0); 138 oprofile_add_sample(regs, 0);
@@ -146,8 +144,6 @@ static irqreturn_t loongson2_perfcount_handler(int irq, void *dev_id)
146 counter2 = reg.reset_counter2; 144 counter2 = reg.reset_counter2;
147 } 145 }
148 146
149 spin_unlock_irqrestore(&sample_lock, flags);
150
151 write_c0_perfcnt((counter2 << 32) | counter1); 147 write_c0_perfcnt((counter2 << 32) | counter1);
152 148
153 return IRQ_HANDLED; 149 return IRQ_HANDLED;
diff --git a/arch/mips/pci/Makefile b/arch/mips/pci/Makefile
index 91bfe73a7f60..c9209ca6c8e7 100644
--- a/arch/mips/pci/Makefile
+++ b/arch/mips/pci/Makefile
@@ -22,13 +22,13 @@ obj-$(CONFIG_BCM63XX) += pci-bcm63xx.o fixup-bcm63xx.o \
22# 22#
23# These are still pretty much in the old state, watch, go blind. 23# These are still pretty much in the old state, watch, go blind.
24# 24#
25obj-$(CONFIG_BASLER_EXCITE) += ops-titan.o pci-excite.o fixup-excite.o
26obj-$(CONFIG_LASAT) += pci-lasat.o 25obj-$(CONFIG_LASAT) += pci-lasat.o
27obj-$(CONFIG_MIPS_COBALT) += fixup-cobalt.o 26obj-$(CONFIG_MIPS_COBALT) += fixup-cobalt.o
28obj-$(CONFIG_SOC_AU1500) += fixup-au1000.o ops-au1000.o 27obj-$(CONFIG_SOC_AU1500) += fixup-au1000.o ops-au1000.o
29obj-$(CONFIG_SOC_AU1550) += fixup-au1000.o ops-au1000.o 28obj-$(CONFIG_SOC_AU1550) += fixup-au1000.o ops-au1000.o
30obj-$(CONFIG_SOC_PNX8550) += fixup-pnx8550.o ops-pnx8550.o 29obj-$(CONFIG_SOC_PNX8550) += fixup-pnx8550.o ops-pnx8550.o
31obj-$(CONFIG_LEMOTE_FULOONG2E) += fixup-fuloong2e.o ops-bonito64.o 30obj-$(CONFIG_LEMOTE_FULOONG2E) += fixup-fuloong2e.o ops-loongson2.o
31obj-$(CONFIG_LEMOTE_MACH2F) += fixup-lemote2f.o ops-loongson2.o
32obj-$(CONFIG_MIPS_MALTA) += fixup-malta.o 32obj-$(CONFIG_MIPS_MALTA) += fixup-malta.o
33obj-$(CONFIG_PMC_MSP7120_GW) += fixup-pmcmsp.o ops-pmcmsp.o 33obj-$(CONFIG_PMC_MSP7120_GW) += fixup-pmcmsp.o ops-pmcmsp.o
34obj-$(CONFIG_PMC_MSP7120_EVAL) += fixup-pmcmsp.o ops-pmcmsp.o 34obj-$(CONFIG_PMC_MSP7120_EVAL) += fixup-pmcmsp.o ops-pmcmsp.o
diff --git a/arch/mips/pci/fixup-cobalt.c b/arch/mips/pci/fixup-cobalt.c
index 9553b14002dd..acacd1407c63 100644
--- a/arch/mips/pci/fixup-cobalt.c
+++ b/arch/mips/pci/fixup-cobalt.c
@@ -51,6 +51,67 @@ static void qube_raq_galileo_early_fixup(struct pci_dev *dev)
51DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_MARVELL, PCI_DEVICE_ID_MARVELL_GT64111, 51DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_MARVELL, PCI_DEVICE_ID_MARVELL_GT64111,
52 qube_raq_galileo_early_fixup); 52 qube_raq_galileo_early_fixup);
53 53
54static void __devinit cobalt_legacy_ide_resource_fixup(struct pci_dev *dev,
55 struct resource *res)
56{
57 struct pci_controller *hose = (struct pci_controller *)dev->sysdata;
58 unsigned long offset = hose->io_offset;
59 struct resource orig = *res;
60
61 if (!(res->flags & IORESOURCE_IO) ||
62 !(res->flags & IORESOURCE_PCI_FIXED))
63 return;
64
65 res->start -= offset;
66 res->end -= offset;
67 dev_printk(KERN_DEBUG, &dev->dev, "converted legacy %pR to bus %pR\n",
68 &orig, res);
69}
70
71static void __devinit cobalt_legacy_ide_fixup(struct pci_dev *dev)
72{
73 u32 class;
74 u8 progif;
75
76 /*
77 * If the IDE controller is in legacy mode, pci_setup_device() fills in
78 * the resources with the legacy addresses that normally appear on the
79 * PCI bus, just as if we had read them from a BAR.
80 *
81 * However, with the GT-64111, those legacy addresses, e.g., 0x1f0,
82 * will never appear on the PCI bus because it converts memory accesses
83 * in the PCI I/O region (which is never at address zero) into I/O port
84 * accesses with no address translation.
85 *
86 * For example, if GT_DEF_PCI0_IO_BASE is 0x10000000, a load or store
87 * to physical address 0x100001f0 will become a PCI access to I/O port
88 * 0x100001f0. There's no way to generate an access to I/O port 0x1f0,
89 * but the VT82C586 IDE controller does respond at 0x100001f0 because
90 * it only decodes the low 24 bits of the address.
91 *
92 * When this quirk runs, the pci_dev resources should contain bus
93 * addresses, not Linux I/O port numbers, so convert legacy addresses
94 * like 0x1f0 to bus addresses like 0x100001f0. Later, we'll convert
95 * them back with pcibios_fixup_bus() or pcibios_bus_to_resource().
96 */
97 class = dev->class >> 8;
98 if (class != PCI_CLASS_STORAGE_IDE)
99 return;
100
101 pci_read_config_byte(dev, PCI_CLASS_PROG, &progif);
102 if ((progif & 1) == 0) {
103 cobalt_legacy_ide_resource_fixup(dev, &dev->resource[0]);
104 cobalt_legacy_ide_resource_fixup(dev, &dev->resource[1]);
105 }
106 if ((progif & 4) == 0) {
107 cobalt_legacy_ide_resource_fixup(dev, &dev->resource[2]);
108 cobalt_legacy_ide_resource_fixup(dev, &dev->resource[3]);
109 }
110}
111
112DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C586_1,
113 cobalt_legacy_ide_fixup);
114
54static void qube_raq_via_bmIDE_fixup(struct pci_dev *dev) 115static void qube_raq_via_bmIDE_fixup(struct pci_dev *dev)
55{ 116{
56 unsigned short cfgword; 117 unsigned short cfgword;
diff --git a/arch/mips/pci/fixup-excite.c b/arch/mips/pci/fixup-excite.c
deleted file mode 100644
index cd64d9f177c4..000000000000
--- a/arch/mips/pci/fixup-excite.c
+++ /dev/null
@@ -1,36 +0,0 @@
1/*
2 * Copyright (C) 2004 by Basler Vision Technologies AG
3 * Author: Thomas Koeller <thomas.koeller@baslerweb.com>
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 */
19#include <linux/kernel.h>
20#include <linux/init.h>
21#include <linux/pci.h>
22#include <excite.h>
23
24int __init pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin)
25{
26 if (pin == 0)
27 return -1;
28
29 return USB_IRQ; /* USB controller is the only PCI device */
30}
31
32/* Do platform specific device initialization at pci_enable_device() time */
33int pcibios_plat_dev_init(struct pci_dev *dev)
34{
35 return 0;
36}
diff --git a/arch/mips/pci/fixup-fuloong2e.c b/arch/mips/pci/fixup-fuloong2e.c
index 0c4c7a81213f..4f6d8da07f93 100644
--- a/arch/mips/pci/fixup-fuloong2e.c
+++ b/arch/mips/pci/fixup-fuloong2e.c
@@ -13,7 +13,8 @@
13 */ 13 */
14#include <linux/init.h> 14#include <linux/init.h>
15#include <linux/pci.h> 15#include <linux/pci.h>
16#include <asm/mips-boards/bonito64.h> 16
17#include <loongson.h>
17 18
18/* South bridge slot number is set by the pci probe process */ 19/* South bridge slot number is set by the pci probe process */
19static u8 sb_slot = 5; 20static u8 sb_slot = 5;
@@ -35,7 +36,7 @@ int __init pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin)
35 break; 36 break;
36 } 37 }
37 } else { 38 } else {
38 irq = BONITO_IRQ_BASE + 25 + pin; 39 irq = LOONGSON_IRQ_BASE + 25 + pin;
39 } 40 }
40 return irq; 41 return irq;
41 42
diff --git a/arch/mips/pci/fixup-lemote2f.c b/arch/mips/pci/fixup-lemote2f.c
new file mode 100644
index 000000000000..4b9768d5d729
--- /dev/null
+++ b/arch/mips/pci/fixup-lemote2f.c
@@ -0,0 +1,160 @@
1/*
2 * Copyright (C) 2008 Lemote Technology
3 * Copyright (C) 2004 ICT CAS
4 * Author: Li xiaoyu, lixy@ict.ac.cn
5 *
6 * Copyright (C) 2007 Lemote, Inc.
7 * Author: Fuxin Zhang, zhangfx@lemote.com
8 *
9 * This program is free software; you can redistribute it and/or modify it
10 * under the terms of the GNU General Public License as published by the
11 * Free Software Foundation; either version 2 of the License, or (at your
12 * option) any later version.
13 */
14#include <linux/init.h>
15#include <linux/pci.h>
16
17#include <loongson.h>
18#include <cs5536/cs5536.h>
19#include <cs5536/cs5536_pci.h>
20
21/* PCI interrupt pins
22 *
23 * These should not be changed, or you should consider loongson2f interrupt
24 * register and your pci card dispatch
25 */
26
27#define PCIA 4
28#define PCIB 5
29#define PCIC 6
30#define PCID 7
31
32/* all the pci device has the PCIA pin, check the datasheet. */
33static char irq_tab[][5] __initdata = {
34 /* INTA INTB INTC INTD */
35 {0, 0, 0, 0, 0}, /* 11: Unused */
36 {0, 0, 0, 0, 0}, /* 12: Unused */
37 {0, 0, 0, 0, 0}, /* 13: Unused */
38 {0, 0, 0, 0, 0}, /* 14: Unused */
39 {0, 0, 0, 0, 0}, /* 15: Unused */
40 {0, 0, 0, 0, 0}, /* 16: Unused */
41 {0, PCIA, 0, 0, 0}, /* 17: RTL8110-0 */
42 {0, PCIB, 0, 0, 0}, /* 18: RTL8110-1 */
43 {0, PCIC, 0, 0, 0}, /* 19: SiI3114 */
44 {0, PCID, 0, 0, 0}, /* 20: 3-ports nec usb */
45 {0, PCIA, PCIB, PCIC, PCID}, /* 21: PCI-SLOT */
46 {0, 0, 0, 0, 0}, /* 22: Unused */
47 {0, 0, 0, 0, 0}, /* 23: Unused */
48 {0, 0, 0, 0, 0}, /* 24: Unused */
49 {0, 0, 0, 0, 0}, /* 25: Unused */
50 {0, 0, 0, 0, 0}, /* 26: Unused */
51 {0, 0, 0, 0, 0}, /* 27: Unused */
52};
53
54int __init pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin)
55{
56 int virq;
57
58 if ((PCI_SLOT(dev->devfn) != PCI_IDSEL_CS5536)
59 && (PCI_SLOT(dev->devfn) < 32)) {
60 virq = irq_tab[slot][pin];
61 printk(KERN_INFO "slot: %d, pin: %d, irq: %d\n", slot, pin,
62 virq + LOONGSON_IRQ_BASE);
63 if (virq != 0)
64 return LOONGSON_IRQ_BASE + virq;
65 else
66 return 0;
67 } else if (PCI_SLOT(dev->devfn) == PCI_IDSEL_CS5536) { /* cs5536 */
68 switch (PCI_FUNC(dev->devfn)) {
69 case 2:
70 pci_write_config_byte(dev, PCI_INTERRUPT_LINE,
71 CS5536_IDE_INTR);
72 return CS5536_IDE_INTR; /* for IDE */
73 case 3:
74 pci_write_config_byte(dev, PCI_INTERRUPT_LINE,
75 CS5536_ACC_INTR);
76 return CS5536_ACC_INTR; /* for AUDIO */
77 case 4: /* for OHCI */
78 case 5: /* for EHCI */
79 case 6: /* for UDC */
80 case 7: /* for OTG */
81 pci_write_config_byte(dev, PCI_INTERRUPT_LINE,
82 CS5536_USB_INTR);
83 return CS5536_USB_INTR;
84 }
85 return dev->irq;
86 } else {
87 printk(KERN_INFO " strange pci slot number.\n");
88 return 0;
89 }
90}
91
92/* Do platform specific device initialization at pci_enable_device() time */
93int pcibios_plat_dev_init(struct pci_dev *dev)
94{
95 return 0;
96}
97
98/* CS5536 SPEC. fixup */
99static void __init loongson_cs5536_isa_fixup(struct pci_dev *pdev)
100{
101 /* the uart1 and uart2 interrupt in PIC is enabled as default */
102 pci_write_config_dword(pdev, PCI_UART1_INT_REG, 1);
103 pci_write_config_dword(pdev, PCI_UART2_INT_REG, 1);
104}
105
106static void __init loongson_cs5536_ide_fixup(struct pci_dev *pdev)
107{
108 /* setting the mutex pin as IDE function */
109 pci_write_config_dword(pdev, PCI_IDE_CFG_REG,
110 CS5536_IDE_FLASH_SIGNATURE);
111}
112
113static void __init loongson_cs5536_acc_fixup(struct pci_dev *pdev)
114{
115 /* enable the AUDIO interrupt in PIC */
116 pci_write_config_dword(pdev, PCI_ACC_INT_REG, 1);
117
118 pci_write_config_byte(pdev, PCI_LATENCY_TIMER, 0xc0);
119}
120
121static void __init loongson_cs5536_ohci_fixup(struct pci_dev *pdev)
122{
123 /* enable the OHCI interrupt in PIC */
124 /* THE OHCI, EHCI, UDC, OTG are shared with interrupt in PIC */
125 pci_write_config_dword(pdev, PCI_OHCI_INT_REG, 1);
126}
127
128static void __init loongson_cs5536_ehci_fixup(struct pci_dev *pdev)
129{
130 u32 hi, lo;
131
132 /* Serial short detect enable */
133 _rdmsr(USB_MSR_REG(USB_CONFIG), &hi, &lo);
134 _wrmsr(USB_MSR_REG(USB_CONFIG), (1 << 1) | (1 << 3), lo);
135
136 /* setting the USB2.0 micro frame length */
137 pci_write_config_dword(pdev, PCI_EHCI_FLADJ_REG, 0x2000);
138}
139
140static void __init loongson_nec_fixup(struct pci_dev *pdev)
141{
142 unsigned int val;
143
144 pci_read_config_dword(pdev, 0xe0, &val);
145 /* Only 2 port be used */
146 pci_write_config_dword(pdev, 0xe0, (val & ~3) | 0x2);
147}
148
149DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_CS5536_ISA,
150 loongson_cs5536_isa_fixup);
151DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_CS5536_OHC,
152 loongson_cs5536_ohci_fixup);
153DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_CS5536_EHC,
154 loongson_cs5536_ehci_fixup);
155DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_CS5536_AUDIO,
156 loongson_cs5536_acc_fixup);
157DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_CS5536_IDE,
158 loongson_cs5536_ide_fixup);
159DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_NEC, PCI_DEVICE_ID_NEC_USB,
160 loongson_nec_fixup);
diff --git a/arch/mips/pci/ops-bonito64.c b/arch/mips/pci/ops-bonito64.c
index 54e55e7a2431..1b3e03f20c54 100644
--- a/arch/mips/pci/ops-bonito64.c
+++ b/arch/mips/pci/ops-bonito64.c
@@ -29,13 +29,8 @@
29#define PCI_ACCESS_READ 0 29#define PCI_ACCESS_READ 0
30#define PCI_ACCESS_WRITE 1 30#define PCI_ACCESS_WRITE 1
31 31
32#ifdef CONFIG_LEMOTE_FULOONG2E
33#define CFG_SPACE_REG(offset) (void *)CKSEG1ADDR(BONITO_PCICFG_BASE | (offset))
34#define ID_SEL_BEGIN 11
35#else
36#define CFG_SPACE_REG(offset) (void *)CKSEG1ADDR(_pcictrl_bonito_pcicfg + (offset)) 32#define CFG_SPACE_REG(offset) (void *)CKSEG1ADDR(_pcictrl_bonito_pcicfg + (offset))
37#define ID_SEL_BEGIN 10 33#define ID_SEL_BEGIN 10
38#endif
39#define MAX_DEV_NUM (31 - ID_SEL_BEGIN) 34#define MAX_DEV_NUM (31 - ID_SEL_BEGIN)
40 35
41 36
@@ -77,10 +72,8 @@ static int bonito64_pcibios_config_access(unsigned char access_type,
77 addrp = CFG_SPACE_REG(addr & 0xffff); 72 addrp = CFG_SPACE_REG(addr & 0xffff);
78 if (access_type == PCI_ACCESS_WRITE) { 73 if (access_type == PCI_ACCESS_WRITE) {
79 writel(cpu_to_le32(*data), addrp); 74 writel(cpu_to_le32(*data), addrp);
80#ifndef CONFIG_LEMOTE_FULOONG2E
81 /* Wait till done */ 75 /* Wait till done */
82 while (BONITO_PCIMSTAT & 0xF); 76 while (BONITO_PCIMSTAT & 0xF);
83#endif
84 } else { 77 } else {
85 *data = le32_to_cpu(readl(addrp)); 78 *data = le32_to_cpu(readl(addrp));
86 } 79 }
diff --git a/arch/mips/pci/ops-loongson2.c b/arch/mips/pci/ops-loongson2.c
new file mode 100644
index 000000000000..d657ee0bc131
--- /dev/null
+++ b/arch/mips/pci/ops-loongson2.c
@@ -0,0 +1,216 @@
1/*
2 * Copyright (C) 1999, 2000, 2004 MIPS Technologies, Inc.
3 * All rights reserved.
4 * Authors: Carsten Langgaard <carstenl@mips.com>
5 * Maciej W. Rozycki <macro@mips.com>
6 *
7 * Copyright (C) 2009 Lemote Inc.
8 * Author: Wu Zhangjin <wuzhangjin@gmail.com>
9 *
10 * This program is free software; you can distribute it and/or modify it
11 * under the terms of the GNU General Public License (Version 2) as
12 * published by the Free Software Foundation.
13 */
14#include <linux/types.h>
15#include <linux/pci.h>
16#include <linux/kernel.h>
17#include <linux/init.h>
18
19#include <loongson.h>
20
21#ifdef CONFIG_CS5536
22#include <cs5536/cs5536_pci.h>
23#include <cs5536/cs5536.h>
24#endif
25
26#define PCI_ACCESS_READ 0
27#define PCI_ACCESS_WRITE 1
28
29#define CFG_SPACE_REG(offset) \
30 (void *)CKSEG1ADDR(LOONGSON_PCICFG_BASE | (offset))
31#define ID_SEL_BEGIN 11
32#define MAX_DEV_NUM (31 - ID_SEL_BEGIN)
33
34
35static int loongson_pcibios_config_access(unsigned char access_type,
36 struct pci_bus *bus,
37 unsigned int devfn, int where,
38 u32 *data)
39{
40 u32 busnum = bus->number;
41 u32 addr, type;
42 u32 dummy;
43 void *addrp;
44 int device = PCI_SLOT(devfn);
45 int function = PCI_FUNC(devfn);
46 int reg = where & ~3;
47
48 if (busnum == 0) {
49 /* board-specific part,currently,only fuloong2f,yeeloong2f
50 * use CS5536, fuloong2e use via686b, gdium has no
51 * south bridge
52 */
53#ifdef CONFIG_CS5536
54 /* cs5536_pci_conf_read4/write4() will call _rdmsr/_wrmsr() to
55 * access the regsters PCI_MSR_ADDR, PCI_MSR_DATA_LO,
56 * PCI_MSR_DATA_HI, which is bigger than PCI_MSR_CTRL, so, it
57 * will not go this branch, but the others. so, no calling dead
58 * loop here.
59 */
60 if ((PCI_IDSEL_CS5536 == device) && (reg < PCI_MSR_CTRL)) {
61 switch (access_type) {
62 case PCI_ACCESS_READ:
63 *data = cs5536_pci_conf_read4(function, reg);
64 break;
65 case PCI_ACCESS_WRITE:
66 cs5536_pci_conf_write4(function, reg, *data);
67 break;
68 }
69 return 0;
70 }
71#endif
72 /* Type 0 configuration for onboard PCI bus */
73 if (device > MAX_DEV_NUM)
74 return -1;
75
76 addr = (1 << (device + ID_SEL_BEGIN)) | (function << 8) | reg;
77 type = 0;
78 } else {
79 /* Type 1 configuration for offboard PCI bus */
80 addr = (busnum << 16) | (device << 11) | (function << 8) | reg;
81 type = 0x10000;
82 }
83
84 /* Clear aborts */
85 LOONGSON_PCICMD |= LOONGSON_PCICMD_MABORT_CLR | \
86 LOONGSON_PCICMD_MTABORT_CLR;
87
88 LOONGSON_PCIMAP_CFG = (addr >> 16) | type;
89
90 /* Flush Bonito register block */
91 dummy = LOONGSON_PCIMAP_CFG;
92 mmiowb();
93
94 addrp = CFG_SPACE_REG(addr & 0xffff);
95 if (access_type == PCI_ACCESS_WRITE)
96 writel(cpu_to_le32(*data), addrp);
97 else
98 *data = le32_to_cpu(readl(addrp));
99
100 /* Detect Master/Target abort */
101 if (LOONGSON_PCICMD & (LOONGSON_PCICMD_MABORT_CLR |
102 LOONGSON_PCICMD_MTABORT_CLR)) {
103 /* Error occurred */
104
105 /* Clear bits */
106 LOONGSON_PCICMD |= (LOONGSON_PCICMD_MABORT_CLR |
107 LOONGSON_PCICMD_MTABORT_CLR);
108
109 return -1;
110 }
111
112 return 0;
113
114}
115
116
117/*
118 * We can't address 8 and 16 bit words directly. Instead we have to
119 * read/write a 32bit word and mask/modify the data we actually want.
120 */
121static int loongson_pcibios_read(struct pci_bus *bus, unsigned int devfn,
122 int where, int size, u32 *val)
123{
124 u32 data = 0;
125
126 if ((size == 2) && (where & 1))
127 return PCIBIOS_BAD_REGISTER_NUMBER;
128 else if ((size == 4) && (where & 3))
129 return PCIBIOS_BAD_REGISTER_NUMBER;
130
131 if (loongson_pcibios_config_access(PCI_ACCESS_READ, bus, devfn, where,
132 &data))
133 return -1;
134
135 if (size == 1)
136 *val = (data >> ((where & 3) << 3)) & 0xff;
137 else if (size == 2)
138 *val = (data >> ((where & 3) << 3)) & 0xffff;
139 else
140 *val = data;
141
142 return PCIBIOS_SUCCESSFUL;
143}
144
145static int loongson_pcibios_write(struct pci_bus *bus, unsigned int devfn,
146 int where, int size, u32 val)
147{
148 u32 data = 0;
149
150 if ((size == 2) && (where & 1))
151 return PCIBIOS_BAD_REGISTER_NUMBER;
152 else if ((size == 4) && (where & 3))
153 return PCIBIOS_BAD_REGISTER_NUMBER;
154
155 if (size == 4)
156 data = val;
157 else {
158 if (loongson_pcibios_config_access(PCI_ACCESS_READ, bus, devfn,
159 where, &data))
160 return -1;
161
162 if (size == 1)
163 data = (data & ~(0xff << ((where & 3) << 3))) |
164 (val << ((where & 3) << 3));
165 else if (size == 2)
166 data = (data & ~(0xffff << ((where & 3) << 3))) |
167 (val << ((where & 3) << 3));
168 }
169
170 if (loongson_pcibios_config_access(PCI_ACCESS_WRITE, bus, devfn, where,
171 &data))
172 return -1;
173
174 return PCIBIOS_SUCCESSFUL;
175}
176
177struct pci_ops loongson_pci_ops = {
178 .read = loongson_pcibios_read,
179 .write = loongson_pcibios_write
180};
181
182#ifdef CONFIG_CS5536
183DEFINE_RAW_SPINLOCK(msr_lock);
184
185void _rdmsr(u32 msr, u32 *hi, u32 *lo)
186{
187 struct pci_bus bus = {
188 .number = PCI_BUS_CS5536
189 };
190 u32 devfn = PCI_DEVFN(PCI_IDSEL_CS5536, 0);
191 unsigned long flags;
192
193 raw_spin_lock_irqsave(&msr_lock, flags);
194 loongson_pcibios_write(&bus, devfn, PCI_MSR_ADDR, 4, msr);
195 loongson_pcibios_read(&bus, devfn, PCI_MSR_DATA_LO, 4, lo);
196 loongson_pcibios_read(&bus, devfn, PCI_MSR_DATA_HI, 4, hi);
197 raw_spin_unlock_irqrestore(&msr_lock, flags);
198}
199EXPORT_SYMBOL(_rdmsr);
200
201void _wrmsr(u32 msr, u32 hi, u32 lo)
202{
203 struct pci_bus bus = {
204 .number = PCI_BUS_CS5536
205 };
206 u32 devfn = PCI_DEVFN(PCI_IDSEL_CS5536, 0);
207 unsigned long flags;
208
209 raw_spin_lock_irqsave(&msr_lock, flags);
210 loongson_pcibios_write(&bus, devfn, PCI_MSR_ADDR, 4, msr);
211 loongson_pcibios_write(&bus, devfn, PCI_MSR_DATA_LO, 4, lo);
212 loongson_pcibios_write(&bus, devfn, PCI_MSR_DATA_HI, 4, hi);
213 raw_spin_unlock_irqrestore(&msr_lock, flags);
214}
215EXPORT_SYMBOL(_wrmsr);
216#endif
diff --git a/arch/mips/pci/ops-pmcmsp.c b/arch/mips/pci/ops-pmcmsp.c
index 32548b5d68d6..04b31478a6d7 100644
--- a/arch/mips/pci/ops-pmcmsp.c
+++ b/arch/mips/pci/ops-pmcmsp.c
@@ -206,7 +206,7 @@ static void pci_proc_init(void)
206} 206}
207#endif /* CONFIG_PROC_FS && PCI_COUNTERS */ 207#endif /* CONFIG_PROC_FS && PCI_COUNTERS */
208 208
209DEFINE_SPINLOCK(bpci_lock); 209static DEFINE_SPINLOCK(bpci_lock);
210 210
211/***************************************************************************** 211/*****************************************************************************
212 * 212 *
diff --git a/arch/mips/pci/ops-titan-ht.c b/arch/mips/pci/ops-titan-ht.c
index 46c636c27e06..749c1922d420 100644
--- a/arch/mips/pci/ops-titan-ht.c
+++ b/arch/mips/pci/ops-titan-ht.c
@@ -26,7 +26,6 @@
26#include <linux/types.h> 26#include <linux/types.h>
27#include <linux/pci.h> 27#include <linux/pci.h>
28#include <linux/kernel.h> 28#include <linux/kernel.h>
29#include <linux/slab.h>
30#include <linux/delay.h> 29#include <linux/delay.h>
31#include <asm/io.h> 30#include <asm/io.h>
32 31
diff --git a/arch/mips/pci/pci-bcm47xx.c b/arch/mips/pci/pci-bcm47xx.c
index bea9b6cdfdbf..455f8e50a007 100644
--- a/arch/mips/pci/pci-bcm47xx.c
+++ b/arch/mips/pci/pci-bcm47xx.c
@@ -57,4 +57,3 @@ int pcibios_plat_dev_init(struct pci_dev *dev)
57 dev->irq = res; 57 dev->irq = res;
58 return 0; 58 return 0;
59} 59}
60
diff --git a/arch/mips/pci/pci-excite.c b/arch/mips/pci/pci-excite.c
deleted file mode 100644
index 8a56876afcc6..000000000000
--- a/arch/mips/pci/pci-excite.c
+++ /dev/null
@@ -1,149 +0,0 @@
1/*
2 * Copyright (C) 2004 by Basler Vision Technologies AG
3 * Author: Thomas Koeller <thomas.koeller@baslerweb.com>
4 * Based on the PMC-Sierra Yosemite board support by Ralf Baechle.
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 */
20#include <linux/init.h>
21#include <linux/kernel.h>
22#include <linux/types.h>
23#include <linux/pci.h>
24#include <linux/bitops.h>
25#include <asm/rm9k-ocd.h>
26#include <excite.h>
27
28
29extern struct pci_ops titan_pci_ops;
30
31
32static struct resource
33 mem_resource = {
34 .name = "PCI memory",
35 .start = EXCITE_PHYS_PCI_MEM,
36 .end = EXCITE_PHYS_PCI_MEM + EXCITE_SIZE_PCI_MEM - 1,
37 .flags = IORESOURCE_MEM
38 },
39 io_resource = {
40 .name = "PCI I/O",
41 .start = EXCITE_PHYS_PCI_IO,
42 .end = EXCITE_PHYS_PCI_IO + EXCITE_SIZE_PCI_IO - 1,
43 .flags = IORESOURCE_IO
44 };
45
46
47static struct pci_controller bx_controller = {
48 .pci_ops = &titan_pci_ops,
49 .mem_resource = &mem_resource,
50 .mem_offset = 0x00000000UL,
51 .io_resource = &io_resource,
52 .io_offset = 0x00000000UL
53};
54
55
56static char
57 iopage_failed[] __initdata = "Cannot allocate PCI I/O page",
58 modebits_no_pci[] __initdata = "PCI is not configured in mode bits";
59
60#define RM9000x2_OCD_HTSC 0x0604
61#define RM9000x2_OCD_HTBHL 0x060c
62#define RM9000x2_OCD_PCIHRST 0x078c
63
64#define RM9K_OCD_MODEBIT1 0x00d4 /* (MODEBIT1) Mode Bit 1 */
65#define RM9K_OCD_CPHDCR 0x00f4 /* CPU-PCI/HT Data Control. */
66
67#define PCISC_FB2B 0x00000200
68#define PCISC_MWICG 0x00000010
69#define PCISC_EMC 0x00000004
70#define PCISC_ERMA 0x00000002
71
72
73
74static int __init basler_excite_pci_setup(void)
75{
76 const unsigned int fullbars = memsize / (256 << 20);
77 unsigned int i;
78
79 /* Check modebits to see if PCI is really enabled. */
80 if (!((ocd_readl(RM9K_OCD_MODEBIT1) >> (47-32)) & 0x1))
81 panic(modebits_no_pci);
82
83 if (NULL == request_mem_region(EXCITE_PHYS_PCI_IO, EXCITE_SIZE_PCI_IO,
84 "Memory-mapped PCI I/O page"))
85 panic(iopage_failed);
86
87 /* Enable PCI 0 as master for config cycles */
88 ocd_writel(PCISC_EMC | PCISC_ERMA, RM9000x2_OCD_HTSC);
89
90
91 /* Set up latency timer */
92 ocd_writel(0x8008, RM9000x2_OCD_HTBHL);
93
94 /* Setup host IO and Memory space */
95 ocd_writel((EXCITE_PHYS_PCI_IO >> 4) | 1, LKB7);
96 ocd_writel(((EXCITE_SIZE_PCI_IO >> 4) & 0x7fffff00) - 0x100, LKM7);
97 ocd_writel((EXCITE_PHYS_PCI_MEM >> 4) | 1, LKB8);
98 ocd_writel(((EXCITE_SIZE_PCI_MEM >> 4) & 0x7fffff00) - 0x100, LKM8);
99
100 /* Set up PCI BARs to map all installed memory */
101 for (i = 0; i < 6; i++) {
102 const unsigned int bar = 0x610 + i * 4;
103
104 if (i < fullbars) {
105 ocd_writel(0x10000000 * i, bar);
106 ocd_writel(0x01000000 * i, bar + 0x140);
107 ocd_writel(0x0ffff029, bar + 0x100);
108 continue;
109 }
110
111 if (i == fullbars) {
112 int o;
113 u32 mask;
114
115 const unsigned long rem = memsize - i * 0x10000000;
116 if (!rem) {
117 ocd_writel(0x00000000, bar + 0x100);
118 continue;
119 }
120
121 o = ffs(rem) - 1;
122 if (rem & ~(0x1 << o))
123 o++;
124 mask = ((0x1 << o) & 0x0ffff000) - 0x1000;
125 ocd_writel(0x10000000 * i, bar);
126 ocd_writel(0x01000000 * i, bar + 0x140);
127 ocd_writel(0x00000029 | mask, bar + 0x100);
128 continue;
129 }
130
131 ocd_writel(0x00000000, bar + 0x100);
132 }
133
134 /* Finally, enable the PCI interrupt */
135#if USB_IRQ > 7
136 set_c0_intcontrol(1 << USB_IRQ);
137#else
138 set_c0_status(1 << (USB_IRQ + 8));
139#endif
140
141 ioport_resource.start = EXCITE_PHYS_PCI_IO;
142 ioport_resource.end = EXCITE_PHYS_PCI_IO + EXCITE_SIZE_PCI_IO - 1;
143 set_io_port_base((unsigned long) ioremap_nocache(EXCITE_PHYS_PCI_IO, EXCITE_SIZE_PCI_IO));
144 register_pci_controller(&bx_controller);
145 return 0;
146}
147
148
149arch_initcall(basler_excite_pci_setup);
diff --git a/arch/mips/pci/pci-octeon.c b/arch/mips/pci/pci-octeon.c
index 9cb0c807f564..d248b707eff3 100644
--- a/arch/mips/pci/pci-octeon.c
+++ b/arch/mips/pci/pci-octeon.c
@@ -209,16 +209,14 @@ const char *octeon_get_pci_interrupts(void)
209 case CVMX_BOARD_TYPE_NAO38: 209 case CVMX_BOARD_TYPE_NAO38:
210 /* This is really the NAC38 */ 210 /* This is really the NAC38 */
211 return "AAAAADABAAAAAAAAAAAAAAAAAAAAAAAA"; 211 return "AAAAADABAAAAAAAAAAAAAAAAAAAAAAAA";
212 case CVMX_BOARD_TYPE_THUNDER:
213 return "";
214 case CVMX_BOARD_TYPE_EBH3000:
215 return "";
216 case CVMX_BOARD_TYPE_EBH3100: 212 case CVMX_BOARD_TYPE_EBH3100:
217 case CVMX_BOARD_TYPE_CN3010_EVB_HS5: 213 case CVMX_BOARD_TYPE_CN3010_EVB_HS5:
218 case CVMX_BOARD_TYPE_CN3005_EVB_HS5: 214 case CVMX_BOARD_TYPE_CN3005_EVB_HS5:
219 return "AAABAAAAAAAAAAAAAAAAAAAAAAAAAAAA"; 215 return "AAABAAAAAAAAAAAAAAAAAAAAAAAAAAAA";
220 case CVMX_BOARD_TYPE_BBGW_REF: 216 case CVMX_BOARD_TYPE_BBGW_REF:
221 return "AABCD"; 217 return "AABCD";
218 case CVMX_BOARD_TYPE_THUNDER:
219 case CVMX_BOARD_TYPE_EBH3000:
222 default: 220 default:
223 return ""; 221 return "";
224 } 222 }
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/pci/pci.c b/arch/mips/pci/pci.c
index 9a11c2226891..38bc28005b4a 100644
--- a/arch/mips/pci/pci.c
+++ b/arch/mips/pci/pci.c
@@ -49,8 +49,8 @@ static int pci_initialized;
49 * but we want to try to avoid allocating at 0x2900-0x2bff 49 * but we want to try to avoid allocating at 0x2900-0x2bff
50 * which might have be mirrored at 0x0100-0x03ff.. 50 * which might have be mirrored at 0x0100-0x03ff..
51 */ 51 */
52void 52resource_size_t
53pcibios_align_resource(void *data, struct resource *res, 53pcibios_align_resource(void *data, const struct resource *res,
54 resource_size_t size, resource_size_t align) 54 resource_size_t size, resource_size_t align)
55{ 55{
56 struct pci_dev *dev = data; 56 struct pci_dev *dev = data;
@@ -73,7 +73,7 @@ pcibios_align_resource(void *data, struct resource *res,
73 start = PCIBIOS_MIN_MEM + hose->mem_resource->start; 73 start = PCIBIOS_MIN_MEM + hose->mem_resource->start;
74 } 74 }
75 75
76 res->start = start; 76 return start;
77} 77}
78 78
79static void __devinit pcibios_scanbus(struct pci_controller *hose) 79static void __devinit pcibios_scanbus(struct pci_controller *hose)
@@ -251,8 +251,6 @@ static void pcibios_fixup_device_resources(struct pci_dev *dev,
251 for (i = 0; i < PCI_NUM_RESOURCES; i++) { 251 for (i = 0; i < PCI_NUM_RESOURCES; i++) {
252 if (!dev->resource[i].start) 252 if (!dev->resource[i].start)
253 continue; 253 continue;
254 if (dev->resource[i].flags & IORESOURCE_PCI_FIXED)
255 continue;
256 if (dev->resource[i].flags & IORESOURCE_IO) 254 if (dev->resource[i].flags & IORESOURCE_IO)
257 offset = hose->io_offset; 255 offset = hose->io_offset;
258 else if (dev->resource[i].flags & IORESOURCE_MEM) 256 else if (dev->resource[i].flags & IORESOURCE_MEM)
diff --git a/arch/mips/pmc-sierra/msp71xx/msp_irq_cic.c b/arch/mips/pmc-sierra/msp71xx/msp_irq_cic.c
index 5175357d0a25..94c9c2c9fbc1 100644
--- a/arch/mips/pmc-sierra/msp71xx/msp_irq_cic.c
+++ b/arch/mips/pmc-sierra/msp71xx/msp_irq_cic.c
@@ -131,4 +131,3 @@ void msp_cic_irq_dispatch(void)
131 else 131 else
132 do_IRQ(ffs(pending) + intbase - 1); 132 do_IRQ(ffs(pending) + intbase - 1);
133} 133}
134
diff --git a/arch/mips/pmc-sierra/msp71xx/msp_prom.c b/arch/mips/pmc-sierra/msp71xx/msp_prom.c
index c317a3623ce9..db00deb59b9c 100644
--- a/arch/mips/pmc-sierra/msp71xx/msp_prom.c
+++ b/arch/mips/pmc-sierra/msp71xx/msp_prom.c
@@ -40,6 +40,7 @@
40#include <linux/string.h> 40#include <linux/string.h>
41#include <linux/interrupt.h> 41#include <linux/interrupt.h>
42#include <linux/mm.h> 42#include <linux/mm.h>
43#include <linux/slab.h>
43 44
44#include <asm/addrspace.h> 45#include <asm/addrspace.h>
45#include <asm/bootinfo.h> 46#include <asm/bootinfo.h>
@@ -303,12 +304,6 @@ char *prom_getenv(char *env_name)
303} 304}
304 305
305/* PROM commandline functions */ 306/* PROM commandline functions */
306char *prom_getcmdline(void)
307{
308 return &(arcs_cmdline[0]);
309}
310EXPORT_SYMBOL(prom_getcmdline);
311
312void __init prom_init_cmdline(void) 307void __init prom_init_cmdline(void)
313{ 308{
314 char *cp; 309 char *cp;
diff --git a/arch/mips/pmc-sierra/yosemite/atmel_read_eeprom.c b/arch/mips/pmc-sierra/yosemite/atmel_read_eeprom.c
index fc990cb31941..d6f8bdff8cbb 100644
--- a/arch/mips/pmc-sierra/yosemite/atmel_read_eeprom.c
+++ b/arch/mips/pmc-sierra/yosemite/atmel_read_eeprom.c
@@ -127,7 +127,7 @@ static int recv_ack(void)
127 127
128 if (ack) { 128 if (ack) {
129 do_idle(); 129 do_idle();
130 printk(KERN_ERR "Error reading the Atmel 24C32/24C64 EEPROM \n"); 130 printk(KERN_ERR "Error reading the Atmel 24C32/24C64 EEPROM\n");
131 return -1; 131 return -1;
132 } 132 }
133 133
diff --git a/arch/mips/pmc-sierra/yosemite/atmel_read_eeprom.h b/arch/mips/pmc-sierra/yosemite/atmel_read_eeprom.h
index a31288335fba..d6c7ec469fa8 100644
--- a/arch/mips/pmc-sierra/yosemite/atmel_read_eeprom.h
+++ b/arch/mips/pmc-sierra/yosemite/atmel_read_eeprom.h
@@ -65,4 +65,3 @@
65const char rts = TIOCM_RTS; 65const char rts = TIOCM_RTS;
66const char dtr = TIOCM_DTR; 66const char dtr = TIOCM_DTR;
67int fd; 67int fd;
68
diff --git a/arch/mips/pmc-sierra/yosemite/ht.c b/arch/mips/pmc-sierra/yosemite/ht.c
index 678388fd34b1..63be40e470db 100644
--- a/arch/mips/pmc-sierra/yosemite/ht.c
+++ b/arch/mips/pmc-sierra/yosemite/ht.c
@@ -26,7 +26,6 @@
26#include <linux/types.h> 26#include <linux/types.h>
27#include <linux/pci.h> 27#include <linux/pci.h>
28#include <linux/kernel.h> 28#include <linux/kernel.h>
29#include <linux/slab.h>
30#include <asm/pci.h> 29#include <asm/pci.h>
31#include <asm/io.h> 30#include <asm/io.h>
32 31
@@ -345,14 +344,13 @@ int pcibios_enable_device(struct pci_dev *dev, int mask)
345 return pcibios_enable_resources(dev); 344 return pcibios_enable_resources(dev);
346} 345}
347 346
348void pcibios_align_resource(void *data, struct resource *res, 347resource_size_t pcibios_align_resource(void *data, const struct resource *res,
349 resource_size_t size, resource_size_t align) 348 resource_size_t size, resource_size_t align)
350{ 349{
351 struct pci_dev *dev = data; 350 struct pci_dev *dev = data;
351 resource_size_t start = res->start;
352 352
353 if (res->flags & IORESOURCE_IO) { 353 if (res->flags & IORESOURCE_IO) {
354 resource_size_t start = res->start;
355
356 /* We need to avoid collisions with `mirrored' VGA ports 354 /* We need to avoid collisions with `mirrored' VGA ports
357 and other strange ISA hardware, so we always want the 355 and other strange ISA hardware, so we always want the
358 addresses kilobyte aligned. */ 356 addresses kilobyte aligned. */
@@ -363,8 +361,9 @@ void pcibios_align_resource(void *data, struct resource *res,
363 } 361 }
364 362
365 start = (start + 1024 - 1) & ~(1024 - 1); 363 start = (start + 1024 - 1) & ~(1024 - 1);
366 res->start = start;
367 } 364 }
365
366 return start;
368} 367}
369 368
370struct pci_ops titan_pci_ops = { 369struct pci_ops titan_pci_ops = {
diff --git a/arch/mips/pmc-sierra/yosemite/irq.c b/arch/mips/pmc-sierra/yosemite/irq.c
index 5f673eba142c..51021cfd04bc 100644
--- a/arch/mips/pmc-sierra/yosemite/irq.c
+++ b/arch/mips/pmc-sierra/yosemite/irq.c
@@ -37,7 +37,6 @@
37#include <linux/ioport.h> 37#include <linux/ioport.h>
38#include <linux/irq.h> 38#include <linux/irq.h>
39#include <linux/timex.h> 39#include <linux/timex.h>
40#include <linux/slab.h>
41#include <linux/random.h> 40#include <linux/random.h>
42#include <linux/bitops.h> 41#include <linux/bitops.h>
43#include <asm/bootinfo.h> 42#include <asm/bootinfo.h>
diff --git a/arch/mips/pmc-sierra/yosemite/smp.c b/arch/mips/pmc-sierra/yosemite/smp.c
index 326fe7a392e8..efc9e889b349 100644
--- a/arch/mips/pmc-sierra/yosemite/smp.c
+++ b/arch/mips/pmc-sierra/yosemite/smp.c
@@ -8,7 +8,7 @@
8 8
9#define LAUNCHSTACK_SIZE 256 9#define LAUNCHSTACK_SIZE 256
10 10
11static __cpuinitdata DEFINE_SPINLOCK(launch_lock); 11static __cpuinitdata arch_spinlock_t launch_lock = __ARCH_SPIN_LOCK_UNLOCKED;
12 12
13static unsigned long secondary_sp __cpuinitdata; 13static unsigned long secondary_sp __cpuinitdata;
14static unsigned long secondary_gp __cpuinitdata; 14static unsigned long secondary_gp __cpuinitdata;
@@ -20,7 +20,7 @@ static void __init prom_smp_bootstrap(void)
20{ 20{
21 local_irq_disable(); 21 local_irq_disable();
22 22
23 while (spin_is_locked(&launch_lock)); 23 while (arch_spin_is_locked(&launch_lock));
24 24
25 __asm__ __volatile__( 25 __asm__ __volatile__(
26 " move $sp, %0 \n" 26 " move $sp, %0 \n"
@@ -37,7 +37,7 @@ static void __init prom_smp_bootstrap(void)
37 */ 37 */
38void __init prom_grab_secondary(void) 38void __init prom_grab_secondary(void)
39{ 39{
40 spin_lock(&launch_lock); 40 arch_spin_lock(&launch_lock);
41 41
42 pmon_cpustart(1, &prom_smp_bootstrap, 42 pmon_cpustart(1, &prom_smp_bootstrap,
43 launchstack + LAUNCHSTACK_SIZE, 0); 43 launchstack + LAUNCHSTACK_SIZE, 0);
@@ -138,7 +138,7 @@ static void __cpuinit yos_boot_secondary(int cpu, struct task_struct *idle)
138 secondary_sp = sp; 138 secondary_sp = sp;
139 secondary_gp = gp; 139 secondary_gp = gp;
140 140
141 spin_unlock(&launch_lock); 141 arch_spin_unlock(&launch_lock);
142} 142}
143 143
144/* 144/*
diff --git a/arch/mips/power/cpu.c b/arch/mips/power/cpu.c
index 7995df45dc8d..26a6ef19d71f 100644
--- a/arch/mips/power/cpu.c
+++ b/arch/mips/power/cpu.c
@@ -3,9 +3,9 @@
3 * 3 *
4 * Licensed under the GPLv2 4 * Licensed under the GPLv2
5 * 5 *
6 * Copyright (C) 2009 Lemote Inc. & Insititute of Computing Technology 6 * Copyright (C) 2009 Lemote Inc.
7 * Author: Hu Hongbing <huhb@lemote.com> 7 * Author: Hu Hongbing <huhb@lemote.com>
8 * Wu Zhangjin <wuzj@lemote.com> 8 * Wu Zhangjin <wuzhangjin@gmail.com>
9 */ 9 */
10#include <asm/suspend.h> 10#include <asm/suspend.h>
11#include <asm/fpu.h> 11#include <asm/fpu.h>
diff --git a/arch/mips/power/hibernate.S b/arch/mips/power/hibernate.S
index 0cf86fb32ec3..dbb5c7b4b70f 100644
--- a/arch/mips/power/hibernate.S
+++ b/arch/mips/power/hibernate.S
@@ -3,9 +3,9 @@
3 * 3 *
4 * Licensed under the GPLv2 4 * Licensed under the GPLv2
5 * 5 *
6 * Copyright (C) 2009 Lemote Inc. & Insititute of Computing Technology 6 * Copyright (C) 2009 Lemote Inc.
7 * Author: Hu Hongbing <huhb@lemote.com> 7 * Author: Hu Hongbing <huhb@lemote.com>
8 * Wu Zhangjin <wuzj@lemote.com> 8 * Wu Zhangjin <wuzhangjin@gmail.com>
9 */ 9 */
10#include <asm/asm-offsets.h> 10#include <asm/asm-offsets.h>
11#include <asm/page.h> 11#include <asm/page.h>
diff --git a/arch/mips/powertv/Kconfig b/arch/mips/powertv/Kconfig
new file mode 100644
index 000000000000..ff0e7e3e6954
--- /dev/null
+++ b/arch/mips/powertv/Kconfig
@@ -0,0 +1,21 @@
1source "arch/mips/powertv/asic/Kconfig"
2
3config BOOTLOADER_DRIVER
4 bool "PowerTV Bootloader Driver Support"
5 default n
6 depends on POWERTV
7 help
8 Use this option if you want to load bootloader driver.
9
10config BOOTLOADER_FAMILY
11 string "POWERTV Bootloader Family string"
12 default "85"
13 depends on POWERTV && !BOOTLOADER_DRIVER
14 help
15 This value should be specified when the bootloader driver is disabled
16 and must be exactly two characters long. Families supported are:
17 R1 - RNG-100 R2 - RNG-200
18 A1 - Class A B1 - Class B
19 E1 - Class E F1 - Class F
20 44 - 45xx 46 - 46xx
21 85 - 85xx 86 - 86xx
diff --git a/arch/mips/powertv/Makefile b/arch/mips/powertv/Makefile
new file mode 100644
index 000000000000..0a0d73c0564f
--- /dev/null
+++ b/arch/mips/powertv/Makefile
@@ -0,0 +1,28 @@
1#
2# Carsten Langgaard, carstenl@mips.com
3# Copyright (C) 1999,2000 MIPS Technologies, Inc. All rights reserved.
4#
5# Carsten Langgaard, carstenl@mips.com
6# Copyright (C) 2000 MIPS Technologies, Inc. All rights reserved.
7# Portions copyright (C) 2009 Cisco Systems, Inc.
8#
9# This program is free software; you can distribute it and/or modify it
10# under the terms of the GNU General Public License (Version 2) as
11# published by the Free Software Foundation.
12#
13# This program is distributed in the hope it will be useful, but WITHOUT
14# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
15# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
16# for more details.
17#
18# You should have received a copy of the GNU General Public License along
19# with this program; if not, write to the Free Software Foundation, Inc.,
20# 59 Temple Place - Suite 330, Boston MA 02111-1307, USA.
21#
22# Makefile for the Cisco PowerTV-specific kernel interface routines
23# under Linux.
24#
25
26obj-y += init.o memory.o reset.o time.o powertv_setup.o asic/ pci/
27
28EXTRA_CFLAGS += -Wall -Werror
diff --git a/arch/mips/powertv/asic/Kconfig b/arch/mips/powertv/asic/Kconfig
new file mode 100644
index 000000000000..2016bfe94d66
--- /dev/null
+++ b/arch/mips/powertv/asic/Kconfig
@@ -0,0 +1,28 @@
1config MIN_RUNTIME_RESOURCES
2 bool "Support for minimum runtime resources"
3 default n
4 depends on POWERTV
5 help
6 Enables support for minimizing the number of (SA asic) runtime
7 resources that are preallocated by the kernel.
8
9config MIN_RUNTIME_DOCSIS
10 bool "Support for minimum DOCSIS resource"
11 default y
12 depends on MIN_RUNTIME_RESOURCES
13 help
14 Enables support for the preallocated DOCSIS resource.
15
16config MIN_RUNTIME_PMEM
17 bool "Support for minimum PMEM resource"
18 default y
19 depends on MIN_RUNTIME_RESOURCES
20 help
21 Enables support for the preallocated Memory resource.
22
23config MIN_RUNTIME_TFTP
24 bool "Support for minimum TFTP resource"
25 default y
26 depends on MIN_RUNTIME_RESOURCES
27 help
28 Enables support for the preallocated TFTP resource.
diff --git a/arch/mips/powertv/asic/Makefile b/arch/mips/powertv/asic/Makefile
new file mode 100644
index 000000000000..bebfdcff0443
--- /dev/null
+++ b/arch/mips/powertv/asic/Makefile
@@ -0,0 +1,23 @@
1#
2# Copyright (C) 2009 Scientific-Atlanta, Inc.
3#
4# This program is free software; you can redistribute it and/or modify
5# it under the terms of the GNU General Public License as published by
6# the Free Software Foundation; either version 2 of the License, or
7# (at your option) any later version.
8#
9# This program is distributed in the hope that it will be useful,
10# but WITHOUT ANY WARRANTY; without even the implied warranty of
11# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12# GNU General Public License for more details.
13#
14# You should have received a copy of the GNU General Public License
15# along with this program; if not, write to the Free Software
16# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
17#
18
19obj-y += asic-calliope.o asic-cronus.o asic-zeus.o asic_devices.o asic_int.o \
20 irq_asic.o prealloc-calliope.o prealloc-cronus.o \
21 prealloc-cronuslite.o prealloc-zeus.o
22
23EXTRA_CFLAGS += -Wall -Werror
diff --git a/arch/mips/powertv/asic/asic-calliope.c b/arch/mips/powertv/asic/asic-calliope.c
new file mode 100644
index 000000000000..1ae6623444b2
--- /dev/null
+++ b/arch/mips/powertv/asic/asic-calliope.c
@@ -0,0 +1,101 @@
1/*
2 * Locations of devices in the Calliope ASIC.
3 *
4 * Copyright (C) 2005-2009 Scientific-Atlanta, Inc.
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
19 *
20 * Author: Ken Eppinett
21 * David Schleef <ds@schleef.org>
22 *
23 * Description: Defines the platform resources for the SA settop.
24 */
25
26#include <linux/init.h>
27#include <asm/mach-powertv/asic.h>
28
29#define CALLIOPE_ADDR(x) (CALLIOPE_IO_BASE + (x))
30
31const struct register_map calliope_register_map __initdata = {
32 .eic_slow0_strt_add = {.phys = CALLIOPE_ADDR(0x800000)},
33 .eic_cfg_bits = {.phys = CALLIOPE_ADDR(0x800038)},
34 .eic_ready_status = {.phys = CALLIOPE_ADDR(0x80004c)},
35
36 .chipver3 = {.phys = CALLIOPE_ADDR(0xA00800)},
37 .chipver2 = {.phys = CALLIOPE_ADDR(0xA00804)},
38 .chipver1 = {.phys = CALLIOPE_ADDR(0xA00808)},
39 .chipver0 = {.phys = CALLIOPE_ADDR(0xA0080c)},
40
41 /* The registers of IRBlaster */
42 .uart1_intstat = {.phys = CALLIOPE_ADDR(0xA01800)},
43 .uart1_inten = {.phys = CALLIOPE_ADDR(0xA01804)},
44 .uart1_config1 = {.phys = CALLIOPE_ADDR(0xA01808)},
45 .uart1_config2 = {.phys = CALLIOPE_ADDR(0xA0180C)},
46 .uart1_divisorhi = {.phys = CALLIOPE_ADDR(0xA01810)},
47 .uart1_divisorlo = {.phys = CALLIOPE_ADDR(0xA01814)},
48 .uart1_data = {.phys = CALLIOPE_ADDR(0xA01818)},
49 .uart1_status = {.phys = CALLIOPE_ADDR(0xA0181C)},
50
51 .int_stat_3 = {.phys = CALLIOPE_ADDR(0xA02800)},
52 .int_stat_2 = {.phys = CALLIOPE_ADDR(0xA02804)},
53 .int_stat_1 = {.phys = CALLIOPE_ADDR(0xA02808)},
54 .int_stat_0 = {.phys = CALLIOPE_ADDR(0xA0280c)},
55 .int_config = {.phys = CALLIOPE_ADDR(0xA02810)},
56 .int_int_scan = {.phys = CALLIOPE_ADDR(0xA02818)},
57 .ien_int_3 = {.phys = CALLIOPE_ADDR(0xA02830)},
58 .ien_int_2 = {.phys = CALLIOPE_ADDR(0xA02834)},
59 .ien_int_1 = {.phys = CALLIOPE_ADDR(0xA02838)},
60 .ien_int_0 = {.phys = CALLIOPE_ADDR(0xA0283c)},
61 .int_level_3_3 = {.phys = CALLIOPE_ADDR(0xA02880)},
62 .int_level_3_2 = {.phys = CALLIOPE_ADDR(0xA02884)},
63 .int_level_3_1 = {.phys = CALLIOPE_ADDR(0xA02888)},
64 .int_level_3_0 = {.phys = CALLIOPE_ADDR(0xA0288c)},
65 .int_level_2_3 = {.phys = CALLIOPE_ADDR(0xA02890)},
66 .int_level_2_2 = {.phys = CALLIOPE_ADDR(0xA02894)},
67 .int_level_2_1 = {.phys = CALLIOPE_ADDR(0xA02898)},
68 .int_level_2_0 = {.phys = CALLIOPE_ADDR(0xA0289c)},
69 .int_level_1_3 = {.phys = CALLIOPE_ADDR(0xA028a0)},
70 .int_level_1_2 = {.phys = CALLIOPE_ADDR(0xA028a4)},
71 .int_level_1_1 = {.phys = CALLIOPE_ADDR(0xA028a8)},
72 .int_level_1_0 = {.phys = CALLIOPE_ADDR(0xA028ac)},
73 .int_level_0_3 = {.phys = CALLIOPE_ADDR(0xA028b0)},
74 .int_level_0_2 = {.phys = CALLIOPE_ADDR(0xA028b4)},
75 .int_level_0_1 = {.phys = CALLIOPE_ADDR(0xA028b8)},
76 .int_level_0_0 = {.phys = CALLIOPE_ADDR(0xA028bc)},
77 .int_docsis_en = {.phys = CALLIOPE_ADDR(0xA028F4)},
78
79 .mips_pll_setup = {.phys = CALLIOPE_ADDR(0x980000)},
80 .usb_fs = {.phys = CALLIOPE_ADDR(0x980030)},
81 .test_bus = {.phys = CALLIOPE_ADDR(0x9800CC)},
82 .crt_spare = {.phys = CALLIOPE_ADDR(0x9800d4)},
83 .usb2_ohci_int_mask = {.phys = CALLIOPE_ADDR(0x9A000c)},
84 .usb2_strap = {.phys = CALLIOPE_ADDR(0x9A0014)},
85 .ehci_hcapbase = {.phys = CALLIOPE_ADDR(0x9BFE00)},
86 .ohci_hc_revision = {.phys = CALLIOPE_ADDR(0x9BFC00)},
87 .bcm1_bs_lmi_steer = {.phys = CALLIOPE_ADDR(0x9E0004)},
88 .usb2_control = {.phys = CALLIOPE_ADDR(0x9E0054)},
89 .usb2_stbus_obc = {.phys = CALLIOPE_ADDR(0x9BFF00)},
90 .usb2_stbus_mess_size = {.phys = CALLIOPE_ADDR(0x9BFF04)},
91 .usb2_stbus_chunk_size = {.phys = CALLIOPE_ADDR(0x9BFF08)},
92
93 .pcie_regs = {.phys = 0x000000}, /* -doesn't exist- */
94 .tim_ch = {.phys = CALLIOPE_ADDR(0xA02C10)},
95 .tim_cl = {.phys = CALLIOPE_ADDR(0xA02C14)},
96 .gpio_dout = {.phys = CALLIOPE_ADDR(0xA02c20)},
97 .gpio_din = {.phys = CALLIOPE_ADDR(0xA02c24)},
98 .gpio_dir = {.phys = CALLIOPE_ADDR(0xA02c2C)},
99 .watchdog = {.phys = CALLIOPE_ADDR(0xA02c30)},
100 .front_panel = {.phys = 0x000000}, /* -not used- */
101};
diff --git a/arch/mips/powertv/asic/asic-cronus.c b/arch/mips/powertv/asic/asic-cronus.c
new file mode 100644
index 000000000000..5bb64bfb508b
--- /dev/null
+++ b/arch/mips/powertv/asic/asic-cronus.c
@@ -0,0 +1,101 @@
1/*
2 * Locations of devices in the Cronus ASIC
3 *
4 * Copyright (C) 2005-2009 Scientific-Atlanta, Inc.
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
19 *
20 * Author: Ken Eppinett
21 * David Schleef <ds@schleef.org>
22 *
23 * Description: Defines the platform resources for the SA settop.
24 */
25
26#include <linux/init.h>
27#include <asm/mach-powertv/asic.h>
28
29#define CRONUS_ADDR(x) (CRONUS_IO_BASE + (x))
30
31const struct register_map cronus_register_map __initdata = {
32 .eic_slow0_strt_add = {.phys = CRONUS_ADDR(0x000000)},
33 .eic_cfg_bits = {.phys = CRONUS_ADDR(0x000038)},
34 .eic_ready_status = {.phys = CRONUS_ADDR(0x00004C)},
35
36 .chipver3 = {.phys = CRONUS_ADDR(0x2A0800)},
37 .chipver2 = {.phys = CRONUS_ADDR(0x2A0804)},
38 .chipver1 = {.phys = CRONUS_ADDR(0x2A0808)},
39 .chipver0 = {.phys = CRONUS_ADDR(0x2A080C)},
40
41 /* The registers of IRBlaster */
42 .uart1_intstat = {.phys = CRONUS_ADDR(0x2A1800)},
43 .uart1_inten = {.phys = CRONUS_ADDR(0x2A1804)},
44 .uart1_config1 = {.phys = CRONUS_ADDR(0x2A1808)},
45 .uart1_config2 = {.phys = CRONUS_ADDR(0x2A180C)},
46 .uart1_divisorhi = {.phys = CRONUS_ADDR(0x2A1810)},
47 .uart1_divisorlo = {.phys = CRONUS_ADDR(0x2A1814)},
48 .uart1_data = {.phys = CRONUS_ADDR(0x2A1818)},
49 .uart1_status = {.phys = CRONUS_ADDR(0x2A181C)},
50
51 .int_stat_3 = {.phys = CRONUS_ADDR(0x2A2800)},
52 .int_stat_2 = {.phys = CRONUS_ADDR(0x2A2804)},
53 .int_stat_1 = {.phys = CRONUS_ADDR(0x2A2808)},
54 .int_stat_0 = {.phys = CRONUS_ADDR(0x2A280C)},
55 .int_config = {.phys = CRONUS_ADDR(0x2A2810)},
56 .int_int_scan = {.phys = CRONUS_ADDR(0x2A2818)},
57 .ien_int_3 = {.phys = CRONUS_ADDR(0x2A2830)},
58 .ien_int_2 = {.phys = CRONUS_ADDR(0x2A2834)},
59 .ien_int_1 = {.phys = CRONUS_ADDR(0x2A2838)},
60 .ien_int_0 = {.phys = CRONUS_ADDR(0x2A283C)},
61 .int_level_3_3 = {.phys = CRONUS_ADDR(0x2A2880)},
62 .int_level_3_2 = {.phys = CRONUS_ADDR(0x2A2884)},
63 .int_level_3_1 = {.phys = CRONUS_ADDR(0x2A2888)},
64 .int_level_3_0 = {.phys = CRONUS_ADDR(0x2A288C)},
65 .int_level_2_3 = {.phys = CRONUS_ADDR(0x2A2890)},
66 .int_level_2_2 = {.phys = CRONUS_ADDR(0x2A2894)},
67 .int_level_2_1 = {.phys = CRONUS_ADDR(0x2A2898)},
68 .int_level_2_0 = {.phys = CRONUS_ADDR(0x2A289C)},
69 .int_level_1_3 = {.phys = CRONUS_ADDR(0x2A28A0)},
70 .int_level_1_2 = {.phys = CRONUS_ADDR(0x2A28A4)},
71 .int_level_1_1 = {.phys = CRONUS_ADDR(0x2A28A8)},
72 .int_level_1_0 = {.phys = CRONUS_ADDR(0x2A28AC)},
73 .int_level_0_3 = {.phys = CRONUS_ADDR(0x2A28B0)},
74 .int_level_0_2 = {.phys = CRONUS_ADDR(0x2A28B4)},
75 .int_level_0_1 = {.phys = CRONUS_ADDR(0x2A28B8)},
76 .int_level_0_0 = {.phys = CRONUS_ADDR(0x2A28BC)},
77 .int_docsis_en = {.phys = CRONUS_ADDR(0x2A28F4)},
78
79 .mips_pll_setup = {.phys = CRONUS_ADDR(0x1C0000)},
80 .usb_fs = {.phys = CRONUS_ADDR(0x1C0018)},
81 .test_bus = {.phys = CRONUS_ADDR(0x1C00CC)},
82 .crt_spare = {.phys = CRONUS_ADDR(0x1c00d4)},
83 .usb2_ohci_int_mask = {.phys = CRONUS_ADDR(0x20000C)},
84 .usb2_strap = {.phys = CRONUS_ADDR(0x200014)},
85 .ehci_hcapbase = {.phys = CRONUS_ADDR(0x21FE00)},
86 .ohci_hc_revision = {.phys = CRONUS_ADDR(0x1E0000)},
87 .bcm1_bs_lmi_steer = {.phys = CRONUS_ADDR(0x2E0008)},
88 .usb2_control = {.phys = CRONUS_ADDR(0x2E004C)},
89 .usb2_stbus_obc = {.phys = CRONUS_ADDR(0x21FF00)},
90 .usb2_stbus_mess_size = {.phys = CRONUS_ADDR(0x21FF04)},
91 .usb2_stbus_chunk_size = {.phys = CRONUS_ADDR(0x21FF08)},
92
93 .pcie_regs = {.phys = CRONUS_ADDR(0x220000)},
94 .tim_ch = {.phys = CRONUS_ADDR(0x2A2C10)},
95 .tim_cl = {.phys = CRONUS_ADDR(0x2A2C14)},
96 .gpio_dout = {.phys = CRONUS_ADDR(0x2A2C20)},
97 .gpio_din = {.phys = CRONUS_ADDR(0x2A2C24)},
98 .gpio_dir = {.phys = CRONUS_ADDR(0x2A2C2C)},
99 .watchdog = {.phys = CRONUS_ADDR(0x2A2C30)},
100 .front_panel = {.phys = CRONUS_ADDR(0x2A3800)},
101};
diff --git a/arch/mips/powertv/asic/asic-zeus.c b/arch/mips/powertv/asic/asic-zeus.c
new file mode 100644
index 000000000000..095cbe10ebb9
--- /dev/null
+++ b/arch/mips/powertv/asic/asic-zeus.c
@@ -0,0 +1,101 @@
1/*
2 * Locations of devices in the Zeus ASIC
3 *
4 * Copyright (C) 2005-2009 Scientific-Atlanta, Inc.
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
19 *
20 * Author: Ken Eppinett
21 * David Schleef <ds@schleef.org>
22 *
23 * Description: Defines the platform resources for the SA settop.
24 */
25
26#include <linux/init.h>
27#include <asm/mach-powertv/asic.h>
28
29#define ZEUS_ADDR(x) (ZEUS_IO_BASE + (x))
30
31const struct register_map zeus_register_map __initdata = {
32 .eic_slow0_strt_add = {.phys = ZEUS_ADDR(0x000000)},
33 .eic_cfg_bits = {.phys = ZEUS_ADDR(0x000038)},
34 .eic_ready_status = {.phys = ZEUS_ADDR(0x00004c)},
35
36 .chipver3 = {.phys = ZEUS_ADDR(0x280800)},
37 .chipver2 = {.phys = ZEUS_ADDR(0x280804)},
38 .chipver1 = {.phys = ZEUS_ADDR(0x280808)},
39 .chipver0 = {.phys = ZEUS_ADDR(0x28080c)},
40
41 /* The registers of IRBlaster */
42 .uart1_intstat = {.phys = ZEUS_ADDR(0x281800)},
43 .uart1_inten = {.phys = ZEUS_ADDR(0x281804)},
44 .uart1_config1 = {.phys = ZEUS_ADDR(0x281808)},
45 .uart1_config2 = {.phys = ZEUS_ADDR(0x28180C)},
46 .uart1_divisorhi = {.phys = ZEUS_ADDR(0x281810)},
47 .uart1_divisorlo = {.phys = ZEUS_ADDR(0x281814)},
48 .uart1_data = {.phys = ZEUS_ADDR(0x281818)},
49 .uart1_status = {.phys = ZEUS_ADDR(0x28181C)},
50
51 .int_stat_3 = {.phys = ZEUS_ADDR(0x282800)},
52 .int_stat_2 = {.phys = ZEUS_ADDR(0x282804)},
53 .int_stat_1 = {.phys = ZEUS_ADDR(0x282808)},
54 .int_stat_0 = {.phys = ZEUS_ADDR(0x28280c)},
55 .int_config = {.phys = ZEUS_ADDR(0x282810)},
56 .int_int_scan = {.phys = ZEUS_ADDR(0x282818)},
57 .ien_int_3 = {.phys = ZEUS_ADDR(0x282830)},
58 .ien_int_2 = {.phys = ZEUS_ADDR(0x282834)},
59 .ien_int_1 = {.phys = ZEUS_ADDR(0x282838)},
60 .ien_int_0 = {.phys = ZEUS_ADDR(0x28283c)},
61 .int_level_3_3 = {.phys = ZEUS_ADDR(0x282880)},
62 .int_level_3_2 = {.phys = ZEUS_ADDR(0x282884)},
63 .int_level_3_1 = {.phys = ZEUS_ADDR(0x282888)},
64 .int_level_3_0 = {.phys = ZEUS_ADDR(0x28288c)},
65 .int_level_2_3 = {.phys = ZEUS_ADDR(0x282890)},
66 .int_level_2_2 = {.phys = ZEUS_ADDR(0x282894)},
67 .int_level_2_1 = {.phys = ZEUS_ADDR(0x282898)},
68 .int_level_2_0 = {.phys = ZEUS_ADDR(0x28289c)},
69 .int_level_1_3 = {.phys = ZEUS_ADDR(0x2828a0)},
70 .int_level_1_2 = {.phys = ZEUS_ADDR(0x2828a4)},
71 .int_level_1_1 = {.phys = ZEUS_ADDR(0x2828a8)},
72 .int_level_1_0 = {.phys = ZEUS_ADDR(0x2828ac)},
73 .int_level_0_3 = {.phys = ZEUS_ADDR(0x2828b0)},
74 .int_level_0_2 = {.phys = ZEUS_ADDR(0x2828b4)},
75 .int_level_0_1 = {.phys = ZEUS_ADDR(0x2828b8)},
76 .int_level_0_0 = {.phys = ZEUS_ADDR(0x2828bc)},
77 .int_docsis_en = {.phys = ZEUS_ADDR(0x2828F4)},
78
79 .mips_pll_setup = {.phys = ZEUS_ADDR(0x1a0000)},
80 .usb_fs = {.phys = ZEUS_ADDR(0x1a0018)},
81 .test_bus = {.phys = ZEUS_ADDR(0x1a0238)},
82 .crt_spare = {.phys = ZEUS_ADDR(0x1a0090)},
83 .usb2_ohci_int_mask = {.phys = ZEUS_ADDR(0x1e000c)},
84 .usb2_strap = {.phys = ZEUS_ADDR(0x1e0014)},
85 .ehci_hcapbase = {.phys = ZEUS_ADDR(0x1FFE00)},
86 .ohci_hc_revision = {.phys = ZEUS_ADDR(0x1FFC00)},
87 .bcm1_bs_lmi_steer = {.phys = ZEUS_ADDR(0x2C0008)},
88 .usb2_control = {.phys = ZEUS_ADDR(0x2c01a0)},
89 .usb2_stbus_obc = {.phys = ZEUS_ADDR(0x1FFF00)},
90 .usb2_stbus_mess_size = {.phys = ZEUS_ADDR(0x1FFF04)},
91 .usb2_stbus_chunk_size = {.phys = ZEUS_ADDR(0x1FFF08)},
92
93 .pcie_regs = {.phys = ZEUS_ADDR(0x200000)},
94 .tim_ch = {.phys = ZEUS_ADDR(0x282C10)},
95 .tim_cl = {.phys = ZEUS_ADDR(0x282C14)},
96 .gpio_dout = {.phys = ZEUS_ADDR(0x282c20)},
97 .gpio_din = {.phys = ZEUS_ADDR(0x282c24)},
98 .gpio_dir = {.phys = ZEUS_ADDR(0x282c2C)},
99 .watchdog = {.phys = ZEUS_ADDR(0x282c30)},
100 .front_panel = {.phys = ZEUS_ADDR(0x283800)},
101};
diff --git a/arch/mips/powertv/asic/asic_devices.c b/arch/mips/powertv/asic/asic_devices.c
new file mode 100644
index 000000000000..8ee77887306a
--- /dev/null
+++ b/arch/mips/powertv/asic/asic_devices.c
@@ -0,0 +1,776 @@
1/*
2 * ASIC Device List Intialization
3 *
4 * Description: Defines the platform resources for the SA settop.
5 *
6 * Copyright (C) 2005-2009 Scientific-Atlanta, Inc.
7 *
8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License as published by
10 * the Free Software Foundation; either version 2 of the License, or
11 * (at your option) any later version.
12 *
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * You should have received a copy of the GNU General Public License
19 * along with this program; if not, write to the Free Software
20 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
21 *
22 * Author: Ken Eppinett
23 * David Schleef <ds@schleef.org>
24 *
25 * Description: Defines the platform resources for the SA settop.
26 *
27 * NOTE: The bootloader allocates persistent memory at an address which is
28 * 16 MiB below the end of the highest address in KSEG0. All fixed
29 * address memory reservations must avoid this region.
30 */
31
32#include <linux/device.h>
33#include <linux/kernel.h>
34#include <linux/init.h>
35#include <linux/resource.h>
36#include <linux/serial_reg.h>
37#include <linux/io.h>
38#include <linux/bootmem.h>
39#include <linux/mm.h>
40#include <linux/platform_device.h>
41#include <linux/module.h>
42#include <linux/gfp.h>
43#include <asm/page.h>
44#include <linux/swap.h>
45#include <linux/highmem.h>
46#include <linux/dma-mapping.h>
47
48#include <asm/mach-powertv/asic.h>
49#include <asm/mach-powertv/asic_regs.h>
50#include <asm/mach-powertv/interrupts.h>
51
52#ifdef CONFIG_BOOTLOADER_DRIVER
53#include <asm/mach-powertv/kbldr.h>
54#endif
55#include <asm/bootinfo.h>
56
57#define BOOTLDRFAMILY(byte1, byte0) (((byte1) << 8) | (byte0))
58
59/*
60 * Forward Prototypes
61 */
62static void pmem_setup_resource(void);
63
64/*
65 * Global Variables
66 */
67enum asic_type asic;
68
69unsigned int platform_features;
70unsigned int platform_family;
71struct register_map _asic_register_map;
72EXPORT_SYMBOL(_asic_register_map); /* Exported for testing */
73unsigned long asic_phy_base;
74unsigned long asic_base;
75EXPORT_SYMBOL(asic_base); /* Exported for testing */
76struct resource *gp_resources;
77static bool usb_configured;
78
79/*
80 * Don't recommend to use it directly, it is usually used by kernel internally.
81 * Portable code should be using interfaces such as ioremp, dma_map_single, etc.
82 */
83unsigned long phys_to_bus_offset;
84EXPORT_SYMBOL(phys_to_bus_offset);
85
86/*
87 *
88 * IO Resource Definition
89 *
90 */
91
92struct resource asic_resource = {
93 .name = "ASIC Resource",
94 .start = 0,
95 .end = ASIC_IO_SIZE,
96 .flags = IORESOURCE_MEM,
97};
98
99/*
100 *
101 * USB Host Resource Definition
102 *
103 */
104
105static struct resource ehci_resources[] = {
106 {
107 .parent = &asic_resource,
108 .start = 0,
109 .end = 0xff,
110 .flags = IORESOURCE_MEM,
111 },
112 {
113 .start = irq_usbehci,
114 .end = irq_usbehci,
115 .flags = IORESOURCE_IRQ,
116 },
117};
118
119static u64 ehci_dmamask = DMA_BIT_MASK(32);
120
121static struct platform_device ehci_device = {
122 .name = "powertv-ehci",
123 .id = 0,
124 .num_resources = 2,
125 .resource = ehci_resources,
126 .dev = {
127 .dma_mask = &ehci_dmamask,
128 .coherent_dma_mask = DMA_BIT_MASK(32),
129 },
130};
131
132static struct resource ohci_resources[] = {
133 {
134 .parent = &asic_resource,
135 .start = 0,
136 .end = 0xff,
137 .flags = IORESOURCE_MEM,
138 },
139 {
140 .start = irq_usbohci,
141 .end = irq_usbohci,
142 .flags = IORESOURCE_IRQ,
143 },
144};
145
146static u64 ohci_dmamask = DMA_BIT_MASK(32);
147
148static struct platform_device ohci_device = {
149 .name = "powertv-ohci",
150 .id = 0,
151 .num_resources = 2,
152 .resource = ohci_resources,
153 .dev = {
154 .dma_mask = &ohci_dmamask,
155 .coherent_dma_mask = DMA_BIT_MASK(32),
156 },
157};
158
159static struct platform_device *platform_devices[] = {
160 &ehci_device,
161 &ohci_device,
162};
163
164/*
165 *
166 * Platform Configuration and Device Initialization
167 *
168 */
169static void __init fs_update(int pe, int md, int sdiv, int disable_div_by_3)
170{
171 int en_prg, byp, pwr, nsb, val;
172 int sout;
173
174 sout = 1;
175 en_prg = 1;
176 byp = 0;
177 nsb = 1;
178 pwr = 1;
179
180 val = ((sdiv << 29) | (md << 24) | (pe<<8) | (sout<<3) | (byp<<2) |
181 (nsb<<1) | (disable_div_by_3<<5));
182
183 asic_write(val, usb_fs);
184 asic_write(val | (en_prg<<4), usb_fs);
185 asic_write(val | (en_prg<<4) | pwr, usb_fs);
186}
187
188/*
189 * Allow override of bootloader-specified model
190 */
191static char __initdata cmdline[COMMAND_LINE_SIZE];
192
193#define FORCEFAMILY_PARAM "forcefamily"
194
195static __init int check_forcefamily(unsigned char forced_family[2])
196{
197 const char *p;
198
199 forced_family[0] = '\0';
200 forced_family[1] = '\0';
201
202 /* Check the command line for a forcefamily directive */
203 strncpy(cmdline, arcs_cmdline, COMMAND_LINE_SIZE - 1);
204 p = strstr(cmdline, FORCEFAMILY_PARAM);
205 if (p && (p != cmdline) && (*(p - 1) != ' '))
206 p = strstr(p, " " FORCEFAMILY_PARAM "=");
207
208 if (p) {
209 p += strlen(FORCEFAMILY_PARAM "=");
210
211 if (*p == '\0' || *(p + 1) == '\0' ||
212 (*(p + 2) != '\0' && *(p + 2) != ' '))
213 pr_err(FORCEFAMILY_PARAM " must be exactly two "
214 "characters long, ignoring value\n");
215
216 else {
217 forced_family[0] = *p;
218 forced_family[1] = *(p + 1);
219 }
220 }
221
222 return 0;
223}
224
225/*
226 * platform_set_family - determine major platform family type.
227 *
228 * Returns family type; -1 if none
229 * Returns the family type; -1 if none
230 *
231 */
232static __init noinline void platform_set_family(void)
233{
234#define BOOTLDRFAMILY(byte1, byte0) (((byte1) << 8) | (byte0))
235
236 unsigned char forced_family[2];
237 unsigned short bootldr_family;
238
239 check_forcefamily(forced_family);
240
241 if (forced_family[0] != '\0' && forced_family[1] != '\0')
242 bootldr_family = BOOTLDRFAMILY(forced_family[0],
243 forced_family[1]);
244 else {
245
246#ifdef CONFIG_BOOTLOADER_DRIVER
247 bootldr_family = (unsigned short) kbldr_GetSWFamily();
248#else
249#if defined(CONFIG_BOOTLOADER_FAMILY)
250 bootldr_family = (unsigned short) BOOTLDRFAMILY(
251 CONFIG_BOOTLOADER_FAMILY[0],
252 CONFIG_BOOTLOADER_FAMILY[1]);
253#else
254#error "Unknown Bootloader Family"
255#endif
256#endif
257 }
258
259 pr_info("Bootloader Family = 0x%04X\n", bootldr_family);
260
261 switch (bootldr_family) {
262 case BOOTLDRFAMILY('R', '1'):
263 platform_family = FAMILY_1500;
264 break;
265 case BOOTLDRFAMILY('4', '4'):
266 platform_family = FAMILY_4500;
267 break;
268 case BOOTLDRFAMILY('4', '6'):
269 platform_family = FAMILY_4600;
270 break;
271 case BOOTLDRFAMILY('A', '1'):
272 platform_family = FAMILY_4600VZA;
273 break;
274 case BOOTLDRFAMILY('8', '5'):
275 platform_family = FAMILY_8500;
276 break;
277 case BOOTLDRFAMILY('R', '2'):
278 platform_family = FAMILY_8500RNG;
279 break;
280 case BOOTLDRFAMILY('8', '6'):
281 platform_family = FAMILY_8600;
282 break;
283 case BOOTLDRFAMILY('B', '1'):
284 platform_family = FAMILY_8600VZB;
285 break;
286 case BOOTLDRFAMILY('E', '1'):
287 platform_family = FAMILY_1500VZE;
288 break;
289 case BOOTLDRFAMILY('F', '1'):
290 platform_family = FAMILY_1500VZF;
291 break;
292 default:
293 platform_family = -1;
294 }
295}
296
297unsigned int platform_get_family(void)
298{
299 return platform_family;
300}
301EXPORT_SYMBOL(platform_get_family);
302
303/*
304 * \brief usb_eye_configure() for optimizing the USB eye on Calliope.
305 *
306 * \param unsigned int value saved to the register.
307 *
308 * \return none
309 *
310 */
311static void __init usb_eye_configure(unsigned int value)
312{
313 asic_write(asic_read(crt_spare) | value, crt_spare);
314}
315
316/*
317 * platform_get_asic - determine the ASIC type.
318 *
319 * \param none
320 *
321 * \return ASIC type; ASIC_UNKNOWN if none
322 *
323 */
324enum asic_type platform_get_asic(void)
325{
326 return asic;
327}
328EXPORT_SYMBOL(platform_get_asic);
329
330/*
331 * platform_configure_usb - usb configuration based on platform type.
332 * @bcm1_usb2_ctl: value for the BCM1_USB2_CTL register, which is
333 * quirky
334 */
335static void __init platform_configure_usb(void)
336{
337 u32 bcm1_usb2_ctl;
338
339 if (usb_configured)
340 return;
341
342 switch (asic) {
343 case ASIC_ZEUS:
344 case ASIC_CRONUS:
345 case ASIC_CRONUSLITE:
346 fs_update(0x0000, 0x11, 0x02, 0);
347 bcm1_usb2_ctl = 0x803;
348 break;
349
350 case ASIC_CALLIOPE:
351 fs_update(0x0000, 0x11, 0x02, 1);
352
353 switch (platform_family) {
354 case FAMILY_1500VZE:
355 break;
356
357 case FAMILY_1500VZF:
358 usb_eye_configure(0x003c0000);
359 break;
360
361 default:
362 usb_eye_configure(0x00300000);
363 break;
364 }
365
366 bcm1_usb2_ctl = 0x803;
367 break;
368
369 default:
370 pr_err("Unknown ASIC type: %d\n", asic);
371 break;
372 }
373
374 /* turn on USB power */
375 asic_write(0, usb2_strap);
376 /* Enable all OHCI interrupts */
377 asic_write(bcm1_usb2_ctl, usb2_control);
378 /* USB2_STBUS_OBC store32/load32 */
379 asic_write(3, usb2_stbus_obc);
380 /* USB2_STBUS_MESS_SIZE 2 packets */
381 asic_write(1, usb2_stbus_mess_size);
382 /* USB2_STBUS_CHUNK_SIZE 2 packets */
383 asic_write(1, usb2_stbus_chunk_size);
384
385 usb_configured = true;
386}
387
388/*
389 * Set up the USB EHCI interface
390 */
391void platform_configure_usb_ehci()
392{
393 platform_configure_usb();
394}
395
396/*
397 * Set up the USB OHCI interface
398 */
399void platform_configure_usb_ohci()
400{
401 platform_configure_usb();
402}
403
404/*
405 * Shut the USB EHCI interface down--currently a NOP
406 */
407void platform_unconfigure_usb_ehci()
408{
409}
410
411/*
412 * Shut the USB OHCI interface down--currently a NOP
413 */
414void platform_unconfigure_usb_ohci()
415{
416}
417
418static void __init set_register_map(unsigned long phys_base,
419 const struct register_map *map)
420{
421 asic_phy_base = phys_base;
422 _asic_register_map = *map;
423 register_map_virtualize(&_asic_register_map);
424 asic_base = (unsigned long)ioremap_nocache(phys_base, ASIC_IO_SIZE);
425}
426
427/**
428 * configure_platform - configuration based on platform type.
429 */
430void __init configure_platform(void)
431{
432 platform_set_family();
433
434 switch (platform_family) {
435 case FAMILY_1500:
436 case FAMILY_1500VZE:
437 case FAMILY_1500VZF:
438 platform_features = FFS_CAPABLE;
439 asic = ASIC_CALLIOPE;
440 set_register_map(CALLIOPE_IO_BASE, &calliope_register_map);
441
442 if (platform_family == FAMILY_1500VZE) {
443 gp_resources = non_dvr_vze_calliope_resources;
444 pr_info("Platform: 1500/Vz Class E - "
445 "CALLIOPE, NON_DVR_CAPABLE\n");
446 } else if (platform_family == FAMILY_1500VZF) {
447 gp_resources = non_dvr_vzf_calliope_resources;
448 pr_info("Platform: 1500/Vz Class F - "
449 "CALLIOPE, NON_DVR_CAPABLE\n");
450 } else {
451 gp_resources = non_dvr_calliope_resources;
452 pr_info("Platform: 1500/RNG100 - CALLIOPE, "
453 "NON_DVR_CAPABLE\n");
454 }
455 break;
456
457 case FAMILY_4500:
458 platform_features = FFS_CAPABLE | PCIE_CAPABLE |
459 DISPLAY_CAPABLE;
460 asic = ASIC_ZEUS;
461 set_register_map(ZEUS_IO_BASE, &zeus_register_map);
462 gp_resources = non_dvr_zeus_resources;
463
464 pr_info("Platform: 4500 - ZEUS, NON_DVR_CAPABLE\n");
465 break;
466
467 case FAMILY_4600:
468 {
469 unsigned int chipversion = 0;
470
471 /* The settop has PCIE but it isn't used, so don't advertise
472 * it*/
473 platform_features = FFS_CAPABLE | DISPLAY_CAPABLE;
474
475 /* ASIC version will determine if this is a real CronusLite or
476 * Castrati(Cronus) */
477 chipversion = asic_read(chipver3) << 24;
478 chipversion |= asic_read(chipver2) << 16;
479 chipversion |= asic_read(chipver1) << 8;
480 chipversion |= asic_read(chipver0);
481
482 if ((chipversion == CRONUS_10) || (chipversion == CRONUS_11))
483 asic = ASIC_CRONUS;
484 else
485 asic = ASIC_CRONUSLITE;
486
487 /* Cronus and Cronus Lite have the same register map */
488 set_register_map(CRONUS_IO_BASE, &cronus_register_map);
489 gp_resources = non_dvr_cronuslite_resources;
490 pr_info("Platform: 4600 - %s, NON_DVR_CAPABLE, "
491 "chipversion=0x%08X\n",
492 (asic == ASIC_CRONUS) ? "CRONUS" : "CRONUS LITE",
493 chipversion);
494 break;
495 }
496 case FAMILY_4600VZA:
497 platform_features = FFS_CAPABLE | DISPLAY_CAPABLE;
498 asic = ASIC_CRONUS;
499 set_register_map(CRONUS_IO_BASE, &cronus_register_map);
500 gp_resources = non_dvr_cronus_resources;
501
502 pr_info("Platform: Vz Class A - CRONUS, NON_DVR_CAPABLE\n");
503 break;
504
505 case FAMILY_8500:
506 case FAMILY_8500RNG:
507 platform_features = DVR_CAPABLE | PCIE_CAPABLE |
508 DISPLAY_CAPABLE;
509 asic = ASIC_ZEUS;
510 set_register_map(ZEUS_IO_BASE, &zeus_register_map);
511 gp_resources = dvr_zeus_resources;
512
513 pr_info("Platform: 8500/RNG200 - ZEUS, DVR_CAPABLE\n");
514 break;
515
516 case FAMILY_8600:
517 case FAMILY_8600VZB:
518 platform_features = DVR_CAPABLE | PCIE_CAPABLE |
519 DISPLAY_CAPABLE;
520 asic = ASIC_CRONUS;
521 set_register_map(CRONUS_IO_BASE, &cronus_register_map);
522 gp_resources = dvr_cronus_resources;
523
524 pr_info("Platform: 8600/Vz Class B - CRONUS, "
525 "DVR_CAPABLE\n");
526 break;
527
528 default:
529 pr_crit("Platform: UNKNOWN PLATFORM\n");
530 break;
531 }
532
533 switch (asic) {
534 case ASIC_ZEUS:
535 phys_to_bus_offset = 0x30000000;
536 break;
537 case ASIC_CALLIOPE:
538 phys_to_bus_offset = 0x10000000;
539 break;
540 case ASIC_CRONUSLITE:
541 /* Fall through */
542 case ASIC_CRONUS:
543 /*
544 * TODO: We suppose 0x10000000 aliases into 0x20000000-
545 * 0x2XXXXXXX. If 0x10000000 aliases into 0x60000000-
546 * 0x6XXXXXXX, the offset should be 0x50000000, not 0x10000000.
547 */
548 phys_to_bus_offset = 0x10000000;
549 break;
550 default:
551 phys_to_bus_offset = 0x00000000;
552 break;
553 }
554}
555
556/**
557 * platform_devices_init - sets up USB device resourse.
558 */
559static int __init platform_devices_init(void)
560{
561 pr_notice("%s: ----- Initializing USB resources -----\n", __func__);
562
563 asic_resource.start = asic_phy_base;
564 asic_resource.end += asic_resource.start;
565
566 ehci_resources[0].start = asic_reg_phys_addr(ehci_hcapbase);
567 ehci_resources[0].end += ehci_resources[0].start;
568
569 ohci_resources[0].start = asic_reg_phys_addr(ohci_hc_revision);
570 ohci_resources[0].end += ohci_resources[0].start;
571
572 set_io_port_base(0);
573
574 platform_add_devices(platform_devices, ARRAY_SIZE(platform_devices));
575
576 return 0;
577}
578
579arch_initcall(platform_devices_init);
580
581/*
582 *
583 * BOOTMEM ALLOCATION
584 *
585 */
586/*
587 * Allocates/reserves the Platform memory resources early in the boot process.
588 * This ignores any resources that are designated IORESOURCE_IO
589 */
590void __init platform_alloc_bootmem(void)
591{
592 int i;
593 int total = 0;
594
595 /* Get persistent memory data from command line before allocating
596 * resources. This need to happen before normal command line parsing
597 * has been done */
598 pmem_setup_resource();
599
600 /* Loop through looking for resources that want a particular address */
601 for (i = 0; gp_resources[i].flags != 0; i++) {
602 int size = gp_resources[i].end - gp_resources[i].start + 1;
603 if ((gp_resources[i].start != 0) &&
604 ((gp_resources[i].flags & IORESOURCE_MEM) != 0)) {
605 reserve_bootmem(bus_to_phys(gp_resources[i].start),
606 size, 0);
607 total += gp_resources[i].end -
608 gp_resources[i].start + 1;
609 pr_info("reserve resource %s at %08x (%u bytes)\n",
610 gp_resources[i].name, gp_resources[i].start,
611 gp_resources[i].end -
612 gp_resources[i].start + 1);
613 }
614 }
615
616 /* Loop through assigning addresses for those that are left */
617 for (i = 0; gp_resources[i].flags != 0; i++) {
618 int size = gp_resources[i].end - gp_resources[i].start + 1;
619 if ((gp_resources[i].start == 0) &&
620 ((gp_resources[i].flags & IORESOURCE_MEM) != 0)) {
621 void *mem = alloc_bootmem_pages(size);
622
623 if (mem == NULL)
624 pr_err("Unable to allocate bootmem pages "
625 "for %s\n", gp_resources[i].name);
626
627 else {
628 gp_resources[i].start =
629 phys_to_bus(virt_to_phys(mem));
630 gp_resources[i].end =
631 gp_resources[i].start + size - 1;
632 total += size;
633 pr_info("allocate resource %s at %08x "
634 "(%u bytes)\n",
635 gp_resources[i].name,
636 gp_resources[i].start, size);
637 }
638 }
639 }
640
641 pr_info("Total Platform driver memory allocation: 0x%08x\n", total);
642
643 /* indicate resources that are platform I/O related */
644 for (i = 0; gp_resources[i].flags != 0; i++) {
645 if ((gp_resources[i].start != 0) &&
646 ((gp_resources[i].flags & IORESOURCE_IO) != 0)) {
647 pr_info("reserved platform resource %s at %08x\n",
648 gp_resources[i].name, gp_resources[i].start);
649 }
650 }
651}
652
653/*
654 *
655 * PERSISTENT MEMORY (PMEM) CONFIGURATION
656 *
657 */
658static unsigned long pmemaddr __initdata;
659
660static int __init early_param_pmemaddr(char *p)
661{
662 pmemaddr = (unsigned long)simple_strtoul(p, NULL, 0);
663 return 0;
664}
665early_param("pmemaddr", early_param_pmemaddr);
666
667static long pmemlen __initdata;
668
669static int __init early_param_pmemlen(char *p)
670{
671/* TODO: we can use this code when and if the bootloader ever changes this */
672#if 0
673 pmemlen = (unsigned long)simple_strtoul(p, NULL, 0);
674#else
675 pmemlen = 0x20000;
676#endif
677 return 0;
678}
679early_param("pmemlen", early_param_pmemlen);
680
681/*
682 * Set up persistent memory. If we were given values, we patch the array of
683 * resources. Otherwise, persistent memory may be allocated anywhere at all.
684 */
685static void __init pmem_setup_resource(void)
686{
687 struct resource *resource;
688 resource = asic_resource_get("DiagPersistentMemory");
689
690 if (resource && pmemaddr && pmemlen) {
691 /* The address provided by bootloader is in kseg0. Convert to
692 * a bus address. */
693 resource->start = phys_to_bus(pmemaddr - 0x80000000);
694 resource->end = resource->start + pmemlen - 1;
695
696 pr_info("persistent memory: start=0x%x end=0x%x\n",
697 resource->start, resource->end);
698 }
699}
700
701/*
702 *
703 * RESOURCE ACCESS FUNCTIONS
704 *
705 */
706
707/**
708 * asic_resource_get - retrieves parameters for a platform resource.
709 * @name: string to match resource
710 *
711 * Returns a pointer to a struct resource corresponding to the given name.
712 *
713 * CANNOT BE NAMED platform_resource_get, which would be the obvious choice,
714 * as this function name is already declared
715 */
716struct resource *asic_resource_get(const char *name)
717{
718 int i;
719
720 for (i = 0; gp_resources[i].flags != 0; i++) {
721 if (strcmp(gp_resources[i].name, name) == 0)
722 return &gp_resources[i];
723 }
724
725 return NULL;
726}
727EXPORT_SYMBOL(asic_resource_get);
728
729/**
730 * platform_release_memory - release pre-allocated memory
731 * @ptr: pointer to memory to release
732 * @size: size of resource
733 *
734 * This must only be called for memory allocated or reserved via the boot
735 * memory allocator.
736 */
737void platform_release_memory(void *ptr, int size)
738{
739 unsigned long addr;
740 unsigned long end;
741
742 addr = ((unsigned long)ptr + (PAGE_SIZE - 1)) & PAGE_MASK;
743 end = ((unsigned long)ptr + size) & PAGE_MASK;
744
745 for (; addr < end; addr += PAGE_SIZE) {
746 ClearPageReserved(virt_to_page(__va(addr)));
747 init_page_count(virt_to_page(__va(addr)));
748 free_page((unsigned long)__va(addr));
749 }
750}
751EXPORT_SYMBOL(platform_release_memory);
752
753/*
754 *
755 * FEATURE AVAILABILITY FUNCTIONS
756 *
757 */
758int platform_supports_dvr(void)
759{
760 return (platform_features & DVR_CAPABLE) != 0;
761}
762
763int platform_supports_ffs(void)
764{
765 return (platform_features & FFS_CAPABLE) != 0;
766}
767
768int platform_supports_pcie(void)
769{
770 return (platform_features & PCIE_CAPABLE) != 0;
771}
772
773int platform_supports_display(void)
774{
775 return (platform_features & DISPLAY_CAPABLE) != 0;
776}
diff --git a/arch/mips/powertv/asic/asic_int.c b/arch/mips/powertv/asic/asic_int.c
new file mode 100644
index 000000000000..529c44a52d64
--- /dev/null
+++ b/arch/mips/powertv/asic/asic_int.c
@@ -0,0 +1,124 @@
1/*
2 * Carsten Langgaard, carstenl@mips.com
3 * Copyright (C) 2000, 2001, 2004 MIPS Technologies, Inc.
4 * Copyright (C) 2001 Ralf Baechle
5 * Portions copyright (C) 2009 Cisco Systems, Inc.
6 *
7 * This program is free software; you can distribute it and/or modify it
8 * under the terms of the GNU General Public License (Version 2) as
9 * published by the Free Software Foundation.
10 *
11 * This program is distributed in the hope it will be useful, but WITHOUT
12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14 * for more details.
15 *
16 * You should have received a copy of the GNU General Public License along
17 * with this program; if not, write to the Free Software Foundation, Inc.,
18 * 59 Temple Place - Suite 330, Boston MA 02111-1307, USA.
19 *
20 * Routines for generic manipulation of the interrupts found on the PowerTV
21 * platform.
22 *
23 * The interrupt controller is located in the South Bridge a PIIX4 device
24 * with two internal 82C95 interrupt controllers.
25 */
26#include <linux/init.h>
27#include <linux/irq.h>
28#include <linux/sched.h>
29#include <linux/interrupt.h>
30#include <linux/kernel_stat.h>
31#include <linux/kernel.h>
32#include <linux/random.h>
33
34#include <asm/irq_cpu.h>
35#include <linux/io.h>
36#include <asm/irq_regs.h>
37#include <asm/mips-boards/generic.h>
38
39#include <asm/mach-powertv/asic_regs.h>
40
41static DEFINE_RAW_SPINLOCK(asic_irq_lock);
42
43static inline int get_int(void)
44{
45 unsigned long flags;
46 int irq;
47
48 raw_spin_lock_irqsave(&asic_irq_lock, flags);
49
50 irq = (asic_read(int_int_scan) >> 4) - 1;
51
52 if (irq == 0 || irq >= NR_IRQS)
53 irq = -1;
54
55 raw_spin_unlock_irqrestore(&asic_irq_lock, flags);
56
57 return irq;
58}
59
60static void asic_irqdispatch(void)
61{
62 int irq;
63
64 irq = get_int();
65 if (irq < 0)
66 return; /* interrupt has already been cleared */
67
68 do_IRQ(irq);
69}
70
71static inline int clz(unsigned long x)
72{
73 __asm__(
74 " .set push \n"
75 " .set mips32 \n"
76 " clz %0, %1 \n"
77 " .set pop \n"
78 : "=r" (x)
79 : "r" (x));
80
81 return x;
82}
83
84/*
85 * Version of ffs that only looks at bits 12..15.
86 */
87static inline unsigned int irq_ffs(unsigned int pending)
88{
89 return fls(pending) - 1 + CAUSEB_IP;
90}
91
92/*
93 * TODO: check how it works under EIC mode.
94 */
95asmlinkage void plat_irq_dispatch(void)
96{
97 unsigned int pending = read_c0_cause() & read_c0_status() & ST0_IM;
98 int irq;
99
100 irq = irq_ffs(pending);
101
102 if (irq == CAUSEF_IP3)
103 asic_irqdispatch();
104 else if (irq >= 0)
105 do_IRQ(irq);
106 else
107 spurious_interrupt();
108}
109
110void __init arch_init_irq(void)
111{
112 int i;
113
114 asic_irq_init();
115
116 /*
117 * Initialize interrupt exception vectors.
118 */
119 if (cpu_has_veic || cpu_has_vint) {
120 int nvec = cpu_has_veic ? 64 : 8;
121 for (i = 0; i < nvec; i++)
122 set_vi_handler(i, asic_irqdispatch);
123 }
124}
diff --git a/arch/mips/powertv/asic/irq_asic.c b/arch/mips/powertv/asic/irq_asic.c
new file mode 100644
index 000000000000..b54d24499b06
--- /dev/null
+++ b/arch/mips/powertv/asic/irq_asic.c
@@ -0,0 +1,116 @@
1/*
2 * Portions copyright (C) 2005-2009 Scientific Atlanta
3 * Portions copyright (C) 2009 Cisco Systems, Inc.
4 *
5 * Modified from arch/mips/kernel/irq-rm7000.c:
6 * Copyright (C) 2003 Ralf Baechle
7 *
8 * This program is free software; you can redistribute it and/or modify it
9 * under the terms of the GNU General Public License as published by the
10 * Free Software Foundation; either version 2 of the License, or (at your
11 * option) any later version.
12 */
13#include <linux/init.h>
14#include <linux/interrupt.h>
15#include <linux/kernel.h>
16
17#include <asm/irq_cpu.h>
18#include <asm/mipsregs.h>
19#include <asm/system.h>
20
21#include <asm/mach-powertv/asic_regs.h>
22
23static inline void unmask_asic_irq(unsigned int irq)
24{
25 unsigned long enable_bit;
26
27 enable_bit = (1 << (irq & 0x1f));
28
29 switch (irq >> 5) {
30 case 0:
31 asic_write(asic_read(ien_int_0) | enable_bit, ien_int_0);
32 break;
33 case 1:
34 asic_write(asic_read(ien_int_1) | enable_bit, ien_int_1);
35 break;
36 case 2:
37 asic_write(asic_read(ien_int_2) | enable_bit, ien_int_2);
38 break;
39 case 3:
40 asic_write(asic_read(ien_int_3) | enable_bit, ien_int_3);
41 break;
42 default:
43 BUG();
44 }
45}
46
47static inline void mask_asic_irq(unsigned int irq)
48{
49 unsigned long disable_mask;
50
51 disable_mask = ~(1 << (irq & 0x1f));
52
53 switch (irq >> 5) {
54 case 0:
55 asic_write(asic_read(ien_int_0) & disable_mask, ien_int_0);
56 break;
57 case 1:
58 asic_write(asic_read(ien_int_1) & disable_mask, ien_int_1);
59 break;
60 case 2:
61 asic_write(asic_read(ien_int_2) & disable_mask, ien_int_2);
62 break;
63 case 3:
64 asic_write(asic_read(ien_int_3) & disable_mask, ien_int_3);
65 break;
66 default:
67 BUG();
68 }
69}
70
71static struct irq_chip asic_irq_chip = {
72 .name = "ASIC Level",
73 .ack = mask_asic_irq,
74 .mask = mask_asic_irq,
75 .mask_ack = mask_asic_irq,
76 .unmask = unmask_asic_irq,
77 .eoi = unmask_asic_irq,
78};
79
80void __init asic_irq_init(void)
81{
82 int i;
83
84 /* set priority to 0 */
85 write_c0_status(read_c0_status() & ~(0x0000fc00));
86
87 asic_write(0, ien_int_0);
88 asic_write(0, ien_int_1);
89 asic_write(0, ien_int_2);
90 asic_write(0, ien_int_3);
91
92 asic_write(0x0fffffff, int_level_3_3);
93 asic_write(0xffffffff, int_level_3_2);
94 asic_write(0xffffffff, int_level_3_1);
95 asic_write(0xffffffff, int_level_3_0);
96 asic_write(0xffffffff, int_level_2_3);
97 asic_write(0xffffffff, int_level_2_2);
98 asic_write(0xffffffff, int_level_2_1);
99 asic_write(0xffffffff, int_level_2_0);
100 asic_write(0xffffffff, int_level_1_3);
101 asic_write(0xffffffff, int_level_1_2);
102 asic_write(0xffffffff, int_level_1_1);
103 asic_write(0xffffffff, int_level_1_0);
104 asic_write(0xffffffff, int_level_0_3);
105 asic_write(0xffffffff, int_level_0_2);
106 asic_write(0xffffffff, int_level_0_1);
107 asic_write(0xffffffff, int_level_0_0);
108
109 asic_write(0xf, int_int_scan);
110
111 /*
112 * Initialize interrupt handlers.
113 */
114 for (i = 0; i < NR_IRQS; i++)
115 set_irq_chip_and_handler(i, &asic_irq_chip, handle_level_irq);
116}
diff --git a/arch/mips/powertv/asic/prealloc-calliope.c b/arch/mips/powertv/asic/prealloc-calliope.c
new file mode 100644
index 000000000000..cd5b76a1c951
--- /dev/null
+++ b/arch/mips/powertv/asic/prealloc-calliope.c
@@ -0,0 +1,620 @@
1/*
2 * Memory pre-allocations for Calliope boxes.
3 *
4 * Copyright (C) 2005-2009 Scientific-Atlanta, Inc.
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
19 *
20 * Author: Ken Eppinett
21 * David Schleef <ds@schleef.org>
22 */
23
24#include <linux/init.h>
25#include <asm/mach-powertv/asic.h>
26
27/*
28 * NON_DVR_CAPABLE CALLIOPE RESOURCES
29 */
30struct resource non_dvr_calliope_resources[] __initdata =
31{
32 /*
33 * VIDEO / LX1
34 */
35 {
36 .name = "ST231aImage", /* Delta-Mu 1 image and ram */
37 .start = 0x24000000,
38 .end = 0x24200000 - 1, /*2MiB */
39 .flags = IORESOURCE_MEM,
40 },
41 {
42 .name = "ST231aMonitor", /*8KiB block ST231a monitor */
43 .start = 0x24200000,
44 .end = 0x24202000 - 1,
45 .flags = IORESOURCE_MEM,
46 },
47 {
48 .name = "MediaMemory1",
49 .start = 0x24202000,
50 .end = 0x26700000 - 1, /*~36.9MiB (32MiB - (2MiB + 8KiB)) */
51 .flags = IORESOURCE_MEM,
52 },
53 /*
54 * Sysaudio Driver
55 */
56 {
57 .name = "DSP_Image_Buff",
58 .start = 0x00000000,
59 .end = 0x000FFFFF,
60 .flags = IORESOURCE_MEM,
61 },
62 {
63 .name = "ADSC_CPU_PCM_Buff",
64 .start = 0x00000000,
65 .end = 0x00009FFF,
66 .flags = IORESOURCE_MEM,
67 },
68 {
69 .name = "ADSC_AUX_Buff",
70 .start = 0x00000000,
71 .end = 0x00003FFF,
72 .flags = IORESOURCE_MEM,
73 },
74 {
75 .name = "ADSC_Main_Buff",
76 .start = 0x00000000,
77 .end = 0x00003FFF,
78 .flags = IORESOURCE_MEM,
79 },
80 /*
81 * STAVEM driver/STAPI
82 */
83 {
84 .name = "AVMEMPartition0",
85 .start = 0x00000000,
86 .end = 0x00600000 - 1, /* 6 MB total */
87 .flags = IORESOURCE_MEM,
88 },
89 /*
90 * DOCSIS Subsystem
91 */
92 {
93 .name = "Docsis",
94 .start = 0x22000000,
95 .end = 0x22700000 - 1,
96 .flags = IORESOURCE_MEM,
97 },
98 /*
99 * GHW HAL Driver
100 */
101 {
102 .name = "GraphicsHeap",
103 .start = 0x22700000,
104 .end = 0x23500000 - 1, /* 14 MB total */
105 .flags = IORESOURCE_MEM,
106 },
107 /*
108 * multi com buffer area
109 */
110 {
111 .name = "MulticomSHM",
112 .start = 0x23700000,
113 .end = 0x23720000 - 1,
114 .flags = IORESOURCE_MEM,
115 },
116 /*
117 * DMA Ring buffer (don't need recording buffers)
118 */
119 {
120 .name = "BMM_Buffer",
121 .start = 0x00000000,
122 .end = 0x000AA000 - 1,
123 .flags = IORESOURCE_MEM,
124 },
125 /*
126 * Display bins buffer for unit0
127 */
128 {
129 .name = "DisplayBins0",
130 .start = 0x00000000,
131 .end = 0x00000FFF, /* 4 KB total */
132 .flags = IORESOURCE_MEM,
133 },
134 /*
135 *
136 * AVFS: player HAL memory
137 *
138 *
139 */
140 {
141 .name = "AvfsDmaMem",
142 .start = 0x00000000,
143 .end = 0x002c4c00 - 1, /* 945K * 3 for playback */
144 .flags = IORESOURCE_MEM,
145 },
146 /*
147 * PMEM
148 */
149 {
150 .name = "DiagPersistentMemory",
151 .start = 0x00000000,
152 .end = 0x10000 - 1,
153 .flags = IORESOURCE_MEM,
154 },
155 /*
156 * Smartcard
157 */
158 {
159 .name = "SmartCardInfo",
160 .start = 0x00000000,
161 .end = 0x2800 - 1,
162 .flags = IORESOURCE_MEM,
163 },
164 /*
165 * NAND Flash
166 */
167 {
168 .name = "NandFlash",
169 .start = NAND_FLASH_BASE,
170 .end = NAND_FLASH_BASE + 0x400 - 1,
171 .flags = IORESOURCE_IO,
172 },
173 /*
174 * Synopsys GMAC Memory Region
175 */
176 {
177 .name = "GMAC",
178 .start = 0x00000000,
179 .end = 0x00010000 - 1,
180 .flags = IORESOURCE_MEM,
181 },
182 /*
183 * Add other resources here
184 *
185 */
186 { },
187};
188
189struct resource non_dvr_vz_calliope_resources[] __initdata =
190{
191 /*
192 * VIDEO / LX1
193 */
194 {
195 .name = "ST231aImage", /* Delta-Mu 1 image and ram */
196 .start = 0x24000000,
197 .end = 0x24200000 - 1, /*2 Meg */
198 .flags = IORESOURCE_MEM,
199 },
200 {
201 .name = "ST231aMonitor", /* 8k block ST231a monitor */
202 .start = 0x24200000,
203 .end = 0x24202000 - 1,
204 .flags = IORESOURCE_MEM,
205 },
206 {
207 .name = "MediaMemory1",
208 .start = 0x22202000,
209 .end = 0x22C20B85 - 1, /* 10.12 Meg */
210 .flags = IORESOURCE_MEM,
211 },
212 /*
213 * Sysaudio Driver
214 */
215 {
216 .name = "DSP_Image_Buff",
217 .start = 0x00000000,
218 .end = 0x000FFFFF,
219 .flags = IORESOURCE_MEM,
220 },
221 {
222 .name = "ADSC_CPU_PCM_Buff",
223 .start = 0x00000000,
224 .end = 0x00009FFF,
225 .flags = IORESOURCE_MEM,
226 },
227 {
228 .name = "ADSC_AUX_Buff",
229 .start = 0x00000000,
230 .end = 0x00003FFF,
231 .flags = IORESOURCE_MEM,
232 },
233 {
234 .name = "ADSC_Main_Buff",
235 .start = 0x00000000,
236 .end = 0x00003FFF,
237 .flags = IORESOURCE_MEM,
238 },
239 /*
240 * STAVEM driver/STAPI
241 */
242 {
243 .name = "AVMEMPartition0",
244 .start = 0x20300000,
245 .end = 0x20620000-1, /*3.125 MB total */
246 .flags = IORESOURCE_MEM,
247 },
248 /*
249 * GHW HAL Driver
250 */
251 {
252 .name = "GraphicsHeap",
253 .start = 0x20100000,
254 .end = 0x20300000 - 1,
255 .flags = IORESOURCE_MEM,
256 },
257 /*
258 * multi com buffer area
259 */
260 {
261 .name = "MulticomSHM",
262 .start = 0x23900000,
263 .end = 0x23920000 - 1,
264 .flags = IORESOURCE_MEM,
265 },
266 /*
267 * DMA Ring buffer
268 */
269 {
270 .name = "BMM_Buffer",
271 .start = 0x00000000,
272 .end = 0x000AA000 - 1,
273 .flags = IORESOURCE_MEM,
274 },
275 /*
276 * Display bins buffer for unit0
277 */
278 {
279 .name = "DisplayBins0",
280 .start = 0x00000000,
281 .end = 0x00000FFF,
282 .flags = IORESOURCE_MEM,
283 },
284 /*
285 * PMEM
286 */
287 {
288 .name = "DiagPersistentMemory",
289 .start = 0x00000000,
290 .end = 0x10000 - 1,
291 .flags = IORESOURCE_MEM,
292 },
293 /*
294 * Smartcard
295 */
296 {
297 .name = "SmartCardInfo",
298 .start = 0x00000000,
299 .end = 0x2800 - 1,
300 .flags = IORESOURCE_MEM,
301 },
302 /*
303 * NAND Flash
304 */
305 {
306 .name = "NandFlash",
307 .start = NAND_FLASH_BASE,
308 .end = NAND_FLASH_BASE+0x400 - 1,
309 .flags = IORESOURCE_IO,
310 },
311 /*
312 * Synopsys GMAC Memory Region
313 */
314 {
315 .name = "GMAC",
316 .start = 0x00000000,
317 .end = 0x00010000 - 1,
318 .flags = IORESOURCE_MEM,
319 },
320 /*
321 * Add other resources here
322 */
323 { },
324};
325
326struct resource non_dvr_vze_calliope_resources[] __initdata =
327{
328 /*
329 * VIDEO / LX1
330 */
331 {
332 .name = "ST231aImage", /* Delta-Mu 1 image and ram */
333 .start = 0x22000000,
334 .end = 0x22200000 - 1, /*2 Meg */
335 .flags = IORESOURCE_MEM,
336 },
337 {
338 .name = "ST231aMonitor", /* 8k block ST231a monitor */
339 .start = 0x22200000,
340 .end = 0x22202000 - 1,
341 .flags = IORESOURCE_MEM,
342 },
343 {
344 .name = "MediaMemory1",
345 .start = 0x22202000,
346 .end = 0x22C20B85 - 1, /* 10.12 Meg */
347 .flags = IORESOURCE_MEM,
348 },
349 /*
350 * Sysaudio Driver
351 */
352 {
353 .name = "DSP_Image_Buff",
354 .start = 0x00000000,
355 .end = 0x000FFFFF,
356 .flags = IORESOURCE_MEM,
357 },
358 {
359 .name = "ADSC_CPU_PCM_Buff",
360 .start = 0x00000000,
361 .end = 0x00009FFF,
362 .flags = IORESOURCE_MEM,
363 },
364 {
365 .name = "ADSC_AUX_Buff",
366 .start = 0x00000000,
367 .end = 0x00003FFF,
368 .flags = IORESOURCE_MEM,
369 },
370 {
371 .name = "ADSC_Main_Buff",
372 .start = 0x00000000,
373 .end = 0x00003FFF,
374 .flags = IORESOURCE_MEM,
375 },
376 /*
377 * STAVEM driver/STAPI
378 */
379 {
380 .name = "AVMEMPartition0",
381 .start = 0x20396000,
382 .end = 0x206B6000 - 1, /* 3.125 MB total */
383 .flags = IORESOURCE_MEM,
384 },
385 /*
386 * GHW HAL Driver
387 */
388 {
389 .name = "GraphicsHeap",
390 .start = 0x20100000,
391 .end = 0x20396000 - 1,
392 .flags = IORESOURCE_MEM,
393 },
394 /*
395 * multi com buffer area
396 */
397 {
398 .name = "MulticomSHM",
399 .start = 0x206B6000,
400 .end = 0x206D6000 - 1,
401 .flags = IORESOURCE_MEM,
402 },
403 /*
404 * DMA Ring buffer
405 */
406 {
407 .name = "BMM_Buffer",
408 .start = 0x00000000,
409 .end = 0x000AA000 - 1,
410 .flags = IORESOURCE_MEM,
411 },
412 /*
413 * Display bins buffer for unit0
414 */
415 {
416 .name = "DisplayBins0",
417 .start = 0x00000000,
418 .end = 0x00000FFF,
419 .flags = IORESOURCE_MEM,
420 },
421 /*
422 * PMEM
423 */
424 {
425 .name = "DiagPersistentMemory",
426 .start = 0x00000000,
427 .end = 0x10000 - 1,
428 .flags = IORESOURCE_MEM,
429 },
430 /*
431 * Smartcard
432 */
433 {
434 .name = "SmartCardInfo",
435 .start = 0x00000000,
436 .end = 0x2800 - 1,
437 .flags = IORESOURCE_MEM,
438 },
439 /*
440 * NAND Flash
441 */
442 {
443 .name = "NandFlash",
444 .start = NAND_FLASH_BASE,
445 .end = NAND_FLASH_BASE+0x400 - 1,
446 .flags = IORESOURCE_MEM,
447 },
448 /*
449 * Synopsys GMAC Memory Region
450 */
451 {
452 .name = "GMAC",
453 .start = 0x00000000,
454 .end = 0x00010000 - 1,
455 .flags = IORESOURCE_MEM,
456 },
457 /*
458 * Add other resources here
459 */
460 { },
461};
462
463struct resource non_dvr_vzf_calliope_resources[] __initdata =
464{
465 /*
466 * VIDEO / LX1
467 */
468 {
469 .name = "ST231aImage", /*Delta-Mu 1 image and ram */
470 .start = 0x24000000,
471 .end = 0x24200000 - 1, /*2MiB */
472 .flags = IORESOURCE_MEM,
473 },
474 {
475 .name = "ST231aMonitor", /*8KiB block ST231a monitor */
476 .start = 0x24200000,
477 .end = 0x24202000 - 1,
478 .flags = IORESOURCE_MEM,
479 },
480 {
481 .name = "MediaMemory1",
482 .start = 0x24202000,
483 /* ~19.4 (21.5MiB - (2MiB + 8KiB)) */
484 .end = 0x25580000 - 1,
485 .flags = IORESOURCE_MEM,
486 },
487 /*
488 * Sysaudio Driver
489 */
490 {
491 .name = "DSP_Image_Buff",
492 .start = 0x00000000,
493 .end = 0x000FFFFF,
494 .flags = IORESOURCE_MEM,
495 },
496 {
497 .name = "ADSC_CPU_PCM_Buff",
498 .start = 0x00000000,
499 .end = 0x00009FFF,
500 .flags = IORESOURCE_MEM,
501 },
502 {
503 .name = "ADSC_AUX_Buff",
504 .start = 0x00000000,
505 .end = 0x00003FFF,
506 .flags = IORESOURCE_MEM,
507 },
508 {
509 .name = "ADSC_Main_Buff",
510 .start = 0x00000000,
511 .end = 0x00003FFF,
512 .flags = IORESOURCE_MEM,
513 },
514 /*
515 * STAVEM driver/STAPI
516 */
517 {
518 .name = "AVMEMPartition0",
519 .start = 0x00000000,
520 .end = 0x00480000 - 1, /* 4.5 MB total */
521 .flags = IORESOURCE_MEM,
522 },
523 /*
524 * GHW HAL Driver
525 */
526 {
527 .name = "GraphicsHeap",
528 .start = 0x22700000,
529 .end = 0x23500000 - 1, /* 14 MB total */
530 .flags = IORESOURCE_MEM,
531 },
532 /*
533 * multi com buffer area
534 */
535 {
536 .name = "MulticomSHM",
537 .start = 0x23700000,
538 .end = 0x23720000 - 1,
539 .flags = IORESOURCE_MEM,
540 },
541 /*
542 * DMA Ring buffer (don't need recording buffers)
543 */
544 {
545 .name = "BMM_Buffer",
546 .start = 0x00000000,
547 .end = 0x000AA000 - 1,
548 .flags = IORESOURCE_MEM,
549 },
550 /*
551 * Display bins buffer for unit0
552 */
553 {
554 .name = "DisplayBins0",
555 .start = 0x00000000,
556 .end = 0x00000FFF, /* 4 KB total */
557 .flags = IORESOURCE_MEM,
558 },
559 /*
560 * Display bins buffer for unit1
561 */
562 {
563 .name = "DisplayBins1",
564 .start = 0x00000000,
565 .end = 0x00000FFF, /* 4 KB total */
566 .flags = IORESOURCE_MEM,
567 },
568 /*
569 *
570 * AVFS: player HAL memory
571 *
572 *
573 */
574 {
575 .name = "AvfsDmaMem",
576 .start = 0x00000000,
577 .end = 0x002c4c00 - 1, /* 945K * 3 for playback */
578 .flags = IORESOURCE_MEM,
579 },
580 /*
581 * PMEM
582 */
583 {
584 .name = "DiagPersistentMemory",
585 .start = 0x00000000,
586 .end = 0x10000 - 1,
587 .flags = IORESOURCE_MEM,
588 },
589 /*
590 * Smartcard
591 */
592 {
593 .name = "SmartCardInfo",
594 .start = 0x00000000,
595 .end = 0x2800 - 1,
596 .flags = IORESOURCE_MEM,
597 },
598 /*
599 * NAND Flash
600 */
601 {
602 .name = "NandFlash",
603 .start = NAND_FLASH_BASE,
604 .end = NAND_FLASH_BASE + 0x400 - 1,
605 .flags = IORESOURCE_MEM,
606 },
607 /*
608 * Synopsys GMAC Memory Region
609 */
610 {
611 .name = "GMAC",
612 .start = 0x00000000,
613 .end = 0x00010000 - 1,
614 .flags = IORESOURCE_MEM,
615 },
616 /*
617 * Add other resources here
618 */
619 { },
620};
diff --git a/arch/mips/powertv/asic/prealloc-cronus.c b/arch/mips/powertv/asic/prealloc-cronus.c
new file mode 100644
index 000000000000..45a5c3ea718c
--- /dev/null
+++ b/arch/mips/powertv/asic/prealloc-cronus.c
@@ -0,0 +1,608 @@
1/*
2 * Memory pre-allocations for Cronus boxes.
3 *
4 * Copyright (C) 2005-2009 Scientific-Atlanta, Inc.
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
19 *
20 * Author: Ken Eppinett
21 * David Schleef <ds@schleef.org>
22 */
23
24#include <linux/init.h>
25#include <asm/mach-powertv/asic.h>
26
27/*
28 * DVR_CAPABLE CRONUS RESOURCES
29 */
30struct resource dvr_cronus_resources[] __initdata =
31{
32 /*
33 *
34 * VIDEO1 / LX1
35 *
36 */
37 {
38 .name = "ST231aImage", /* Delta-Mu 1 image and ram */
39 .start = 0x24000000,
40 .end = 0x241FFFFF, /* 2MiB */
41 .flags = IORESOURCE_MEM,
42 },
43 {
44 .name = "ST231aMonitor", /* 8KiB block ST231a monitor */
45 .start = 0x24200000,
46 .end = 0x24201FFF,
47 .flags = IORESOURCE_MEM,
48 },
49 {
50 .name = "MediaMemory1",
51 .start = 0x24202000,
52 .end = 0x25FFFFFF, /*~29.9MiB (32MiB - (2MiB + 8KiB)) */
53 .flags = IORESOURCE_MEM,
54 },
55 /*
56 *
57 * VIDEO2 / LX2
58 *
59 */
60 {
61 .name = "ST231bImage", /* Delta-Mu 2 image and ram */
62 .start = 0x60000000,
63 .end = 0x601FFFFF, /* 2MiB */
64 .flags = IORESOURCE_IO,
65 },
66 {
67 .name = "ST231bMonitor", /* 8KiB block ST231b monitor */
68 .start = 0x60200000,
69 .end = 0x60201FFF,
70 .flags = IORESOURCE_IO,
71 },
72 {
73 .name = "MediaMemory2",
74 .start = 0x60202000,
75 .end = 0x61FFFFFF, /*~29.9MiB (32MiB - (2MiB + 8KiB)) */
76 .flags = IORESOURCE_IO,
77 },
78 /*
79 *
80 * Sysaudio Driver
81 *
82 * This driver requires:
83 *
84 * Arbitrary Based Buffers:
85 * DSP_Image_Buff - DSP code and data images (1MB)
86 * ADSC_CPU_PCM_Buff - ADSC CPU PCM buffer (40KB)
87 * ADSC_AUX_Buff - ADSC AUX buffer (16KB)
88 * ADSC_Main_Buff - ADSC Main buffer (16KB)
89 *
90 */
91 {
92 .name = "DSP_Image_Buff",
93 .start = 0x00000000,
94 .end = 0x000FFFFF,
95 .flags = IORESOURCE_MEM,
96 },
97 {
98 .name = "ADSC_CPU_PCM_Buff",
99 .start = 0x00000000,
100 .end = 0x00009FFF,
101 .flags = IORESOURCE_MEM,
102 },
103 {
104 .name = "ADSC_AUX_Buff",
105 .start = 0x00000000,
106 .end = 0x00003FFF,
107 .flags = IORESOURCE_MEM,
108 },
109 {
110 .name = "ADSC_Main_Buff",
111 .start = 0x00000000,
112 .end = 0x00003FFF,
113 .flags = IORESOURCE_MEM,
114 },
115 /*
116 *
117 * STAVEM driver/STAPI
118 *
119 * This driver requires:
120 *
121 * Arbitrary Based Buffers:
122 * This memory area is used for allocating buffers for Video decoding
123 * purposes. Allocation/De-allocation within this buffer is managed
124 * by the STAVMEM driver of the STAPI. They could be Decimated
125 * Picture Buffers, Intermediate Buffers, as deemed necessary for
126 * video decoding purposes, for any video decoders on Zeus.
127 *
128 */
129 {
130 .name = "AVMEMPartition0",
131 .start = 0x63580000,
132 .end = 0x64180000 - 1, /* 12 MB total */
133 .flags = IORESOURCE_IO,
134 },
135 /*
136 *
137 * DOCSIS Subsystem
138 *
139 * This driver requires:
140 *
141 * Arbitrary Based Buffers:
142 * Docsis -
143 *
144 */
145 {
146 .name = "Docsis",
147 .start = 0x62000000,
148 .end = 0x62700000 - 1, /* 7 MB total */
149 .flags = IORESOURCE_IO,
150 },
151 /*
152 *
153 * GHW HAL Driver
154 *
155 * This driver requires:
156 *
157 * Arbitrary Based Buffers:
158 * GraphicsHeap - PowerTV Graphics Heap
159 *
160 */
161 {
162 .name = "GraphicsHeap",
163 .start = 0x62700000,
164 .end = 0x63500000 - 1, /* 14 MB total */
165 .flags = IORESOURCE_IO,
166 },
167 /*
168 *
169 * multi com buffer area
170 *
171 * This driver requires:
172 *
173 * Arbitrary Based Buffers:
174 * Docsis -
175 *
176 */
177 {
178 .name = "MulticomSHM",
179 .start = 0x26000000,
180 .end = 0x26020000 - 1,
181 .flags = IORESOURCE_MEM,
182 },
183 /*
184 *
185 * DMA Ring buffer
186 *
187 * This driver requires:
188 *
189 * Arbitrary Based Buffers:
190 * Docsis -
191 *
192 */
193 {
194 .name = "BMM_Buffer",
195 .start = 0x00000000,
196 .end = 0x00280000 - 1,
197 .flags = IORESOURCE_MEM,
198 },
199 /*
200 *
201 * Display bins buffer for unit0
202 *
203 * This driver requires:
204 *
205 * Arbitrary Based Buffers:
206 * Display Bins for unit0
207 *
208 */
209 {
210 .name = "DisplayBins0",
211 .start = 0x00000000,
212 .end = 0x00000FFF, /* 4 KB total */
213 .flags = IORESOURCE_MEM,
214 },
215 /*
216 *
217 * Display bins buffer
218 *
219 * This driver requires:
220 *
221 * Arbitrary Based Buffers:
222 * Display Bins for unit1
223 *
224 */
225 {
226 .name = "DisplayBins1",
227 .start = 0x64AD4000,
228 .end = 0x64AD5000 - 1, /* 4 KB total */
229 .flags = IORESOURCE_IO,
230 },
231 /*
232 *
233 * ITFS
234 *
235 * This driver requires:
236 *
237 * Arbitrary Based Buffers:
238 * Docsis -
239 *
240 */
241 {
242 .name = "ITFS",
243 .start = 0x64180000,
244 /* 815,104 bytes each for 2 ITFS partitions. */
245 .end = 0x6430DFFF,
246 .flags = IORESOURCE_IO,
247 },
248 /*
249 *
250 * AVFS
251 *
252 * This driver requires:
253 *
254 * Arbitrary Based Buffers:
255 * Docsis -
256 *
257 */
258 {
259 .name = "AvfsDmaMem",
260 .start = 0x6430E000,
261 /* (945K * 8) = (128K *3) 5 playbacks / 3 server */
262 .end = 0x64AD0000 - 1,
263 .flags = IORESOURCE_IO,
264 },
265 {
266 .name = "AvfsFileSys",
267 .start = 0x64AD0000,
268 .end = 0x64AD1000 - 1, /* 4K */
269 .flags = IORESOURCE_IO,
270 },
271 /*
272 *
273 * PMEM
274 *
275 * This driver requires:
276 *
277 * Arbitrary Based Buffers:
278 * Persistent memory for diagnostics.
279 *
280 */
281 {
282 .name = "DiagPersistentMemory",
283 .start = 0x00000000,
284 .end = 0x10000 - 1,
285 .flags = IORESOURCE_MEM,
286 },
287 /*
288 *
289 * Smartcard
290 *
291 * This driver requires:
292 *
293 * Arbitrary Based Buffers:
294 * Read and write buffers for Internal/External cards
295 *
296 */
297 {
298 .name = "SmartCardInfo",
299 .start = 0x64AD1000,
300 .end = 0x64AD3800 - 1,
301 .flags = IORESOURCE_IO,
302 },
303 /*
304 *
305 * KAVNET
306 * NP Reset Vector - must be of the form xxCxxxxx
307 * NP Image - must be video bank 1
308 * NP IPC - must be video bank 2
309 */
310 {
311 .name = "NP_Reset_Vector",
312 .start = 0x27c00000,
313 .end = 0x27c01000 - 1,
314 .flags = IORESOURCE_MEM,
315 },
316 {
317 .name = "NP_Image",
318 .start = 0x27020000,
319 .end = 0x27060000 - 1,
320 .flags = IORESOURCE_MEM,
321 },
322 {
323 .name = "NP_IPC",
324 .start = 0x63500000,
325 .end = 0x63580000 - 1,
326 .flags = IORESOURCE_IO,
327 },
328 /*
329 * Add other resources here
330 */
331 { },
332};
333
334/*
335 * NON_DVR_CAPABLE CRONUS RESOURCES
336 */
337struct resource non_dvr_cronus_resources[] __initdata =
338{
339 /*
340 *
341 * VIDEO1 / LX1
342 *
343 */
344 {
345 .name = "ST231aImage", /* Delta-Mu 1 image and ram */
346 .start = 0x24000000,
347 .end = 0x241FFFFF, /* 2MiB */
348 .flags = IORESOURCE_MEM,
349 },
350 {
351 .name = "ST231aMonitor", /* 8KiB block ST231a monitor */
352 .start = 0x24200000,
353 .end = 0x24201FFF,
354 .flags = IORESOURCE_MEM,
355 },
356 {
357 .name = "MediaMemory1",
358 .start = 0x24202000,
359 .end = 0x25FFFFFF, /*~29.9MiB (32MiB - (2MiB + 8KiB)) */
360 .flags = IORESOURCE_MEM,
361 },
362 /*
363 *
364 * VIDEO2 / LX2
365 *
366 */
367 {
368 .name = "ST231bImage", /* Delta-Mu 2 image and ram */
369 .start = 0x60000000,
370 .end = 0x601FFFFF, /* 2MiB */
371 .flags = IORESOURCE_IO,
372 },
373 {
374 .name = "ST231bMonitor", /* 8KiB block ST231b monitor */
375 .start = 0x60200000,
376 .end = 0x60201FFF,
377 .flags = IORESOURCE_IO,
378 },
379 {
380 .name = "MediaMemory2",
381 .start = 0x60202000,
382 .end = 0x61FFFFFF, /*~29.9MiB (32MiB - (2MiB + 8KiB)) */
383 .flags = IORESOURCE_IO,
384 },
385 /*
386 *
387 * Sysaudio Driver
388 *
389 * This driver requires:
390 *
391 * Arbitrary Based Buffers:
392 * DSP_Image_Buff - DSP code and data images (1MB)
393 * ADSC_CPU_PCM_Buff - ADSC CPU PCM buffer (40KB)
394 * ADSC_AUX_Buff - ADSC AUX buffer (16KB)
395 * ADSC_Main_Buff - ADSC Main buffer (16KB)
396 *
397 */
398 {
399 .name = "DSP_Image_Buff",
400 .start = 0x00000000,
401 .end = 0x000FFFFF,
402 .flags = IORESOURCE_MEM,
403 },
404 {
405 .name = "ADSC_CPU_PCM_Buff",
406 .start = 0x00000000,
407 .end = 0x00009FFF,
408 .flags = IORESOURCE_MEM,
409 },
410 {
411 .name = "ADSC_AUX_Buff",
412 .start = 0x00000000,
413 .end = 0x00003FFF,
414 .flags = IORESOURCE_MEM,
415 },
416 {
417 .name = "ADSC_Main_Buff",
418 .start = 0x00000000,
419 .end = 0x00003FFF,
420 .flags = IORESOURCE_MEM,
421 },
422 /*
423 *
424 * STAVEM driver/STAPI
425 *
426 * This driver requires:
427 *
428 * Arbitrary Based Buffers:
429 * This memory area is used for allocating buffers for Video decoding
430 * purposes. Allocation/De-allocation within this buffer is managed
431 * by the STAVMEM driver of the STAPI. They could be Decimated
432 * Picture Buffers, Intermediate Buffers, as deemed necessary for
433 * video decoding purposes, for any video decoders on Zeus.
434 *
435 */
436 {
437 .name = "AVMEMPartition0",
438 .start = 0x63580000,
439 .end = 0x64180000 - 1, /* 12 MB total */
440 .flags = IORESOURCE_IO,
441 },
442 /*
443 *
444 * DOCSIS Subsystem
445 *
446 * This driver requires:
447 *
448 * Arbitrary Based Buffers:
449 * Docsis -
450 *
451 */
452 {
453 .name = "Docsis",
454 .start = 0x62000000,
455 .end = 0x62700000 - 1, /* 7 MB total */
456 .flags = IORESOURCE_IO,
457 },
458 /*
459 *
460 * GHW HAL Driver
461 *
462 * This driver requires:
463 *
464 * Arbitrary Based Buffers:
465 * GraphicsHeap - PowerTV Graphics Heap
466 *
467 */
468 {
469 .name = "GraphicsHeap",
470 .start = 0x62700000,
471 .end = 0x63500000 - 1, /* 14 MB total */
472 .flags = IORESOURCE_IO,
473 },
474 /*
475 *
476 * multi com buffer area
477 *
478 * This driver requires:
479 *
480 * Arbitrary Based Buffers:
481 * Docsis -
482 *
483 */
484 {
485 .name = "MulticomSHM",
486 .start = 0x26000000,
487 .end = 0x26020000 - 1,
488 .flags = IORESOURCE_MEM,
489 },
490 /*
491 *
492 * DMA Ring buffer
493 *
494 * This driver requires:
495 *
496 * Arbitrary Based Buffers:
497 * Docsis -
498 *
499 */
500 {
501 .name = "BMM_Buffer",
502 .start = 0x00000000,
503 .end = 0x000AA000 - 1,
504 .flags = IORESOURCE_MEM,
505 },
506 /*
507 *
508 * Display bins buffer for unit0
509 *
510 * This driver requires:
511 *
512 * Arbitrary Based Buffers:
513 * Display Bins for unit0
514 *
515 */
516 {
517 .name = "DisplayBins0",
518 .start = 0x00000000,
519 .end = 0x00000FFF, /* 4 KB total */
520 .flags = IORESOURCE_MEM,
521 },
522 /*
523 *
524 * Display bins buffer
525 *
526 * This driver requires:
527 *
528 * Arbitrary Based Buffers:
529 * Display Bins for unit1
530 *
531 */
532 {
533 .name = "DisplayBins1",
534 .start = 0x64AD4000,
535 .end = 0x64AD5000 - 1, /* 4 KB total */
536 .flags = IORESOURCE_IO,
537 },
538 /*
539 *
540 * AVFS: player HAL memory
541 *
542 *
543 */
544 {
545 .name = "AvfsDmaMem",
546 .start = 0x6430E000,
547 .end = 0x645D2C00 - 1, /* 945K * 3 for playback */
548 .flags = IORESOURCE_IO,
549 },
550 /*
551 *
552 * PMEM
553 *
554 * This driver requires:
555 *
556 * Arbitrary Based Buffers:
557 * Persistent memory for diagnostics.
558 *
559 */
560 {
561 .name = "DiagPersistentMemory",
562 .start = 0x00000000,
563 .end = 0x10000 - 1,
564 .flags = IORESOURCE_MEM,
565 },
566 /*
567 *
568 * Smartcard
569 *
570 * This driver requires:
571 *
572 * Arbitrary Based Buffers:
573 * Read and write buffers for Internal/External cards
574 *
575 */
576 {
577 .name = "SmartCardInfo",
578 .start = 0x64AD1000,
579 .end = 0x64AD3800 - 1,
580 .flags = IORESOURCE_IO,
581 },
582 /*
583 *
584 * KAVNET
585 * NP Reset Vector - must be of the form xxCxxxxx
586 * NP Image - must be video bank 1
587 * NP IPC - must be video bank 2
588 */
589 {
590 .name = "NP_Reset_Vector",
591 .start = 0x27c00000,
592 .end = 0x27c01000 - 1,
593 .flags = IORESOURCE_MEM,
594 },
595 {
596 .name = "NP_Image",
597 .start = 0x27020000,
598 .end = 0x27060000 - 1,
599 .flags = IORESOURCE_MEM,
600 },
601 {
602 .name = "NP_IPC",
603 .start = 0x63500000,
604 .end = 0x63580000 - 1,
605 .flags = IORESOURCE_IO,
606 },
607 { },
608};
diff --git a/arch/mips/powertv/asic/prealloc-cronuslite.c b/arch/mips/powertv/asic/prealloc-cronuslite.c
new file mode 100644
index 000000000000..23a905613c04
--- /dev/null
+++ b/arch/mips/powertv/asic/prealloc-cronuslite.c
@@ -0,0 +1,290 @@
1/*
2 * Memory pre-allocations for Cronus Lite boxes.
3 *
4 * Copyright (C) 2005-2009 Scientific-Atlanta, Inc.
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
19 *
20 * Author: Ken Eppinett
21 * David Schleef <ds@schleef.org>
22 */
23
24#include <linux/init.h>
25#include <asm/mach-powertv/asic.h>
26
27/*
28 * NON_DVR_CAPABLE CRONUSLITE RESOURCES
29 */
30struct resource non_dvr_cronuslite_resources[] __initdata =
31{
32 /*
33 *
34 * VIDEO2 / LX2
35 *
36 */
37 {
38 .name = "ST231aImage", /* Delta-Mu 2 image and ram */
39 .start = 0x60000000,
40 .end = 0x601FFFFF, /* 2MiB */
41 .flags = IORESOURCE_IO,
42 },
43 {
44 .name = "ST231aMonitor", /* 8KiB block ST231b monitor */
45 .start = 0x60200000,
46 .end = 0x60201FFF,
47 .flags = IORESOURCE_IO,
48 },
49 {
50 .name = "MediaMemory1",
51 .start = 0x60202000,
52 .end = 0x61FFFFFF, /*~29.9MiB (32MiB - (2MiB + 8KiB)) */
53 .flags = IORESOURCE_IO,
54 },
55 /*
56 *
57 * Sysaudio Driver
58 *
59 * This driver requires:
60 *
61 * Arbitrary Based Buffers:
62 * DSP_Image_Buff - DSP code and data images (1MB)
63 * ADSC_CPU_PCM_Buff - ADSC CPU PCM buffer (40KB)
64 * ADSC_AUX_Buff - ADSC AUX buffer (16KB)
65 * ADSC_Main_Buff - ADSC Main buffer (16KB)
66 *
67 */
68 {
69 .name = "DSP_Image_Buff",
70 .start = 0x00000000,
71 .end = 0x000FFFFF,
72 .flags = IORESOURCE_MEM,
73 },
74 {
75 .name = "ADSC_CPU_PCM_Buff",
76 .start = 0x00000000,
77 .end = 0x00009FFF,
78 .flags = IORESOURCE_MEM,
79 },
80 {
81 .name = "ADSC_AUX_Buff",
82 .start = 0x00000000,
83 .end = 0x00003FFF,
84 .flags = IORESOURCE_MEM,
85 },
86 {
87 .name = "ADSC_Main_Buff",
88 .start = 0x00000000,
89 .end = 0x00003FFF,
90 .flags = IORESOURCE_MEM,
91 },
92 /*
93 *
94 * STAVEM driver/STAPI
95 *
96 * This driver requires:
97 *
98 * Arbitrary Based Buffers:
99 * This memory area is used for allocating buffers for Video decoding
100 * purposes. Allocation/De-allocation within this buffer is managed
101 * by the STAVMEM driver of the STAPI. They could be Decimated
102 * Picture Buffers, Intermediate Buffers, as deemed necessary for
103 * video decoding purposes, for any video decoders on Zeus.
104 *
105 */
106 {
107 .name = "AVMEMPartition0",
108 .start = 0x63580000,
109 .end = 0x63B80000 - 1, /* 6 MB total */
110 .flags = IORESOURCE_IO,
111 },
112 /*
113 *
114 * DOCSIS Subsystem
115 *
116 * This driver requires:
117 *
118 * Arbitrary Based Buffers:
119 * Docsis -
120 *
121 */
122 {
123 .name = "Docsis",
124 .start = 0x62000000,
125 .end = 0x62700000 - 1, /* 7 MB total */
126 .flags = IORESOURCE_IO,
127 },
128 /*
129 *
130 * GHW HAL Driver
131 *
132 * This driver requires:
133 *
134 * Arbitrary Based Buffers:
135 * GraphicsHeap - PowerTV Graphics Heap
136 *
137 */
138 {
139 .name = "GraphicsHeap",
140 .start = 0x62700000,
141 .end = 0x63500000 - 1, /* 14 MB total */
142 .flags = IORESOURCE_IO,
143 },
144 /*
145 *
146 * multi com buffer area
147 *
148 * This driver requires:
149 *
150 * Arbitrary Based Buffers:
151 * Docsis -
152 *
153 */
154 {
155 .name = "MulticomSHM",
156 .start = 0x26000000,
157 .end = 0x26020000 - 1,
158 .flags = IORESOURCE_MEM,
159 },
160 /*
161 *
162 * DMA Ring buffer
163 *
164 * This driver requires:
165 *
166 * Arbitrary Based Buffers:
167 * Docsis -
168 *
169 */
170 {
171 .name = "BMM_Buffer",
172 .start = 0x00000000,
173 .end = 0x000AA000 - 1,
174 .flags = IORESOURCE_MEM,
175 },
176 /*
177 *
178 * Display bins buffer for unit0
179 *
180 * This driver requires:
181 *
182 * Arbitrary Based Buffers:
183 * Display Bins for unit0
184 *
185 */
186 {
187 .name = "DisplayBins0",
188 .start = 0x00000000,
189 .end = 0x00000FFF, /* 4 KB total */
190 .flags = IORESOURCE_MEM,
191 },
192 /*
193 *
194 * Display bins buffer
195 *
196 * This driver requires:
197 *
198 * Arbitrary Based Buffers:
199 * Display Bins for unit1
200 *
201 */
202 {
203 .name = "DisplayBins1",
204 .start = 0x63B83000,
205 .end = 0x63B84000 - 1, /* 4 KB total */
206 .flags = IORESOURCE_IO,
207 },
208 /*
209 *
210 * AVFS: player HAL memory
211 *
212 *
213 */
214 {
215 .name = "AvfsDmaMem",
216 .start = 0x63B84000,
217 .end = 0x63E48C00 - 1, /* 945K * 3 for playback */
218 .flags = IORESOURCE_IO,
219 },
220 /*
221 *
222 * PMEM
223 *
224 * This driver requires:
225 *
226 * Arbitrary Based Buffers:
227 * Persistent memory for diagnostics.
228 *
229 */
230 {
231 .name = "DiagPersistentMemory",
232 .start = 0x00000000,
233 .end = 0x10000 - 1,
234 .flags = IORESOURCE_MEM,
235 },
236 /*
237 *
238 * Smartcard
239 *
240 * This driver requires:
241 *
242 * Arbitrary Based Buffers:
243 * Read and write buffers for Internal/External cards
244 *
245 */
246 {
247 .name = "SmartCardInfo",
248 .start = 0x63B80000,
249 .end = 0x63B82800 - 1,
250 .flags = IORESOURCE_IO,
251 },
252 /*
253 *
254 * KAVNET
255 * NP Reset Vector - must be of the form xxCxxxxx
256 * NP Image - must be video bank 1
257 * NP IPC - must be video bank 2
258 */
259 {
260 .name = "NP_Reset_Vector",
261 .start = 0x27c00000,
262 .end = 0x27c01000 - 1,
263 .flags = IORESOURCE_MEM,
264 },
265 {
266 .name = "NP_Image",
267 .start = 0x27020000,
268 .end = 0x27060000 - 1,
269 .flags = IORESOURCE_MEM,
270 },
271 {
272 .name = "NP_IPC",
273 .start = 0x63500000,
274 .end = 0x63580000 - 1,
275 .flags = IORESOURCE_IO,
276 },
277 /*
278 * NAND Flash
279 */
280 {
281 .name = "NandFlash",
282 .start = NAND_FLASH_BASE,
283 .end = NAND_FLASH_BASE + 0x400 - 1,
284 .flags = IORESOURCE_IO,
285 },
286 /*
287 * Add other resources here
288 */
289 { },
290};
diff --git a/arch/mips/powertv/asic/prealloc-zeus.c b/arch/mips/powertv/asic/prealloc-zeus.c
new file mode 100644
index 000000000000..018d4514dbe3
--- /dev/null
+++ b/arch/mips/powertv/asic/prealloc-zeus.c
@@ -0,0 +1,459 @@
1/*
2 * Memory pre-allocations for Zeus boxes.
3 *
4 * Copyright (C) 2005-2009 Scientific-Atlanta, Inc.
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
19 *
20 * Author: Ken Eppinett
21 * David Schleef <ds@schleef.org>
22 */
23
24#include <linux/init.h>
25#include <asm/mach-powertv/asic.h>
26
27/*
28 * DVR_CAPABLE RESOURCES
29 */
30struct resource dvr_zeus_resources[] __initdata =
31{
32 /*
33 *
34 * VIDEO1 / LX1
35 *
36 */
37 {
38 .name = "ST231aImage", /* Delta-Mu 1 image and ram */
39 .start = 0x20000000,
40 .end = 0x201FFFFF, /* 2MiB */
41 .flags = IORESOURCE_IO,
42 },
43 {
44 .name = "ST231aMonitor", /* 8KiB block ST231a monitor */
45 .start = 0x20200000,
46 .end = 0x20201FFF,
47 .flags = IORESOURCE_IO,
48 },
49 {
50 .name = "MediaMemory1",
51 .start = 0x20202000,
52 .end = 0x21FFFFFF, /*~29.9MiB (32MiB - (2MiB + 8KiB)) */
53 .flags = IORESOURCE_IO,
54 },
55 /*
56 *
57 * VIDEO2 / LX2
58 *
59 */
60 {
61 .name = "ST231bImage", /* Delta-Mu 2 image and ram */
62 .start = 0x30000000,
63 .end = 0x301FFFFF, /* 2MiB */
64 .flags = IORESOURCE_IO,
65 },
66 {
67 .name = "ST231bMonitor", /* 8KiB block ST231b monitor */
68 .start = 0x30200000,
69 .end = 0x30201FFF,
70 .flags = IORESOURCE_IO,
71 },
72 {
73 .name = "MediaMemory2",
74 .start = 0x30202000,
75 .end = 0x31FFFFFF, /*~29.9MiB (32MiB - (2MiB + 8KiB)) */
76 .flags = IORESOURCE_IO,
77 },
78 /*
79 *
80 * Sysaudio Driver
81 *
82 * This driver requires:
83 *
84 * Arbitrary Based Buffers:
85 * DSP_Image_Buff - DSP code and data images (1MB)
86 * ADSC_CPU_PCM_Buff - ADSC CPU PCM buffer (40KB)
87 * ADSC_AUX_Buff - ADSC AUX buffer (16KB)
88 * ADSC_Main_Buff - ADSC Main buffer (16KB)
89 *
90 */
91 {
92 .name = "DSP_Image_Buff",
93 .start = 0x00000000,
94 .end = 0x000FFFFF,
95 .flags = IORESOURCE_MEM,
96 },
97 {
98 .name = "ADSC_CPU_PCM_Buff",
99 .start = 0x00000000,
100 .end = 0x00009FFF,
101 .flags = IORESOURCE_MEM,
102 },
103 {
104 .name = "ADSC_AUX_Buff",
105 .start = 0x00000000,
106 .end = 0x00003FFF,
107 .flags = IORESOURCE_MEM,
108 },
109 {
110 .name = "ADSC_Main_Buff",
111 .start = 0x00000000,
112 .end = 0x00003FFF,
113 .flags = IORESOURCE_MEM,
114 },
115 /*
116 *
117 * STAVEM driver/STAPI
118 *
119 * This driver requires:
120 *
121 * Arbitrary Based Buffers:
122 * This memory area is used for allocating buffers for Video decoding
123 * purposes. Allocation/De-allocation within this buffer is managed
124 * by the STAVMEM driver of the STAPI. They could be Decimated
125 * Picture Buffers, Intermediate Buffers, as deemed necessary for
126 * video decoding purposes, for any video decoders on Zeus.
127 *
128 */
129 {
130 .name = "AVMEMPartition0",
131 .start = 0x00000000,
132 .end = 0x00c00000 - 1, /* 12 MB total */
133 .flags = IORESOURCE_MEM,
134 },
135 /*
136 *
137 * DOCSIS Subsystem
138 *
139 * This driver requires:
140 *
141 * Arbitrary Based Buffers:
142 * Docsis -
143 *
144 */
145 {
146 .name = "Docsis",
147 .start = 0x40100000,
148 .end = 0x407fffff,
149 .flags = IORESOURCE_MEM,
150 },
151 /*
152 *
153 * GHW HAL Driver
154 *
155 * This driver requires:
156 *
157 * Arbitrary Based Buffers:
158 * GraphicsHeap - PowerTV Graphics Heap
159 *
160 */
161 {
162 .name = "GraphicsHeap",
163 .start = 0x46900000,
164 .end = 0x47700000 - 1, /* 14 MB total */
165 .flags = IORESOURCE_MEM,
166 },
167 /*
168 *
169 * multi com buffer area
170 *
171 * This driver requires:
172 *
173 * Arbitrary Based Buffers:
174 * Docsis -
175 *
176 */
177 {
178 .name = "MulticomSHM",
179 .start = 0x47900000,
180 .end = 0x47920000 - 1,
181 .flags = IORESOURCE_MEM,
182 },
183 /*
184 *
185 * DMA Ring buffer
186 *
187 * This driver requires:
188 *
189 * Arbitrary Based Buffers:
190 * Docsis -
191 *
192 */
193 {
194 .name = "BMM_Buffer",
195 .start = 0x00000000,
196 .end = 0x00280000 - 1,
197 .flags = IORESOURCE_MEM,
198 },
199 /*
200 *
201 * Display bins buffer for unit0
202 *
203 * This driver requires:
204 *
205 * Arbitrary Based Buffers:
206 * Display Bins for unit0
207 *
208 */
209 {
210 .name = "DisplayBins0",
211 .start = 0x00000000,
212 .end = 0x00000FFF, /* 4 KB total */
213 .flags = IORESOURCE_MEM,
214 },
215 /*
216 *
217 * Display bins buffer
218 *
219 * This driver requires:
220 *
221 * Arbitrary Based Buffers:
222 * Display Bins for unit1
223 *
224 */
225 {
226 .name = "DisplayBins1",
227 .start = 0x00000000,
228 .end = 0x00000FFF, /* 4 KB total */
229 .flags = IORESOURCE_MEM,
230 },
231 /*
232 *
233 * ITFS
234 *
235 * This driver requires:
236 *
237 * Arbitrary Based Buffers:
238 * Docsis -
239 *
240 */
241 {
242 .name = "ITFS",
243 .start = 0x00000000,
244 /* 815,104 bytes each for 2 ITFS partitions. */
245 .end = 0x0018DFFF,
246 .flags = IORESOURCE_MEM,
247 },
248 /*
249 *
250 * AVFS
251 *
252 * This driver requires:
253 *
254 * Arbitrary Based Buffers:
255 * Docsis -
256 *
257 */
258 {
259 .name = "AvfsDmaMem",
260 .start = 0x00000000,
261 /* (945K * 8) = (128K * 3) 5 playbacks / 3 server */
262 .end = 0x007c2000 - 1,
263 .flags = IORESOURCE_MEM,
264 },
265 {
266 .name = "AvfsFileSys",
267 .start = 0x00000000,
268 .end = 0x00001000 - 1, /* 4K */
269 .flags = IORESOURCE_MEM,
270 },
271 /*
272 *
273 * PMEM
274 *
275 * This driver requires:
276 *
277 * Arbitrary Based Buffers:
278 * Persistent memory for diagnostics.
279 *
280 */
281 {
282 .name = "DiagPersistentMemory",
283 .start = 0x00000000,
284 .end = 0x10000 - 1,
285 .flags = IORESOURCE_MEM,
286 },
287 /*
288 *
289 * Smartcard
290 *
291 * This driver requires:
292 *
293 * Arbitrary Based Buffers:
294 * Read and write buffers for Internal/External cards
295 *
296 */
297 {
298 .name = "SmartCardInfo",
299 .start = 0x00000000,
300 .end = 0x2800 - 1,
301 .flags = IORESOURCE_MEM,
302 },
303 /*
304 * Add other resources here
305 */
306 { },
307};
308
309/*
310 * NON_DVR_CAPABLE ZEUS RESOURCES
311 */
312struct resource non_dvr_zeus_resources[] __initdata =
313{
314 /*
315 * VIDEO1 / LX1
316 */
317 {
318 .name = "ST231aImage", /* Delta-Mu 1 image and ram */
319 .start = 0x20000000,
320 .end = 0x201FFFFF, /* 2MiB */
321 .flags = IORESOURCE_IO,
322 },
323 {
324 .name = "ST231aMonitor", /* 8KiB block ST231a monitor */
325 .start = 0x20200000,
326 .end = 0x20201FFF,
327 .flags = IORESOURCE_IO,
328 },
329 {
330 .name = "MediaMemory1",
331 .start = 0x20202000,
332 .end = 0x21FFFFFF, /*~29.9MiB (32MiB - (2MiB + 8KiB)) */
333 .flags = IORESOURCE_IO,
334 },
335 /*
336 * Sysaudio Driver
337 */
338 {
339 .name = "DSP_Image_Buff",
340 .start = 0x00000000,
341 .end = 0x000FFFFF,
342 .flags = IORESOURCE_MEM,
343 },
344 {
345 .name = "ADSC_CPU_PCM_Buff",
346 .start = 0x00000000,
347 .end = 0x00009FFF,
348 .flags = IORESOURCE_MEM,
349 },
350 {
351 .name = "ADSC_AUX_Buff",
352 .start = 0x00000000,
353 .end = 0x00003FFF,
354 .flags = IORESOURCE_MEM,
355 },
356 {
357 .name = "ADSC_Main_Buff",
358 .start = 0x00000000,
359 .end = 0x00003FFF,
360 .flags = IORESOURCE_MEM,
361 },
362 /*
363 * STAVEM driver/STAPI
364 */
365 {
366 .name = "AVMEMPartition0",
367 .start = 0x00000000,
368 .end = 0x00600000 - 1, /* 6 MB total */
369 .flags = IORESOURCE_MEM,
370 },
371 /*
372 * DOCSIS Subsystem
373 */
374 {
375 .name = "Docsis",
376 .start = 0x40100000,
377 .end = 0x407fffff,
378 .flags = IORESOURCE_MEM,
379 },
380 /*
381 * GHW HAL Driver
382 */
383 {
384 .name = "GraphicsHeap",
385 .start = 0x46900000,
386 .end = 0x47700000 - 1, /* 14 MB total */
387 .flags = IORESOURCE_MEM,
388 },
389 /*
390 * multi com buffer area
391 */
392 {
393 .name = "MulticomSHM",
394 .start = 0x47900000,
395 .end = 0x47920000 - 1,
396 .flags = IORESOURCE_MEM,
397 },
398 /*
399 * DMA Ring buffer
400 */
401 {
402 .name = "BMM_Buffer",
403 .start = 0x00000000,
404 .end = 0x00280000 - 1,
405 .flags = IORESOURCE_MEM,
406 },
407 /*
408 * Display bins buffer for unit0
409 */
410 {
411 .name = "DisplayBins0",
412 .start = 0x00000000,
413 .end = 0x00000FFF, /* 4 KB total */
414 .flags = IORESOURCE_MEM,
415 },
416 /*
417 *
418 * AVFS: player HAL memory
419 *
420 *
421 */
422 {
423 .name = "AvfsDmaMem",
424 .start = 0x00000000,
425 .end = 0x002c4c00 - 1, /* 945K * 3 for playback */
426 .flags = IORESOURCE_MEM,
427 },
428 /*
429 * PMEM
430 */
431 {
432 .name = "DiagPersistentMemory",
433 .start = 0x00000000,
434 .end = 0x10000 - 1,
435 .flags = IORESOURCE_MEM,
436 },
437 /*
438 * Smartcard
439 */
440 {
441 .name = "SmartCardInfo",
442 .start = 0x00000000,
443 .end = 0x2800 - 1,
444 .flags = IORESOURCE_MEM,
445 },
446 /*
447 * NAND Flash
448 */
449 {
450 .name = "NandFlash",
451 .start = NAND_FLASH_BASE,
452 .end = NAND_FLASH_BASE + 0x400 - 1,
453 .flags = IORESOURCE_IO,
454 },
455 /*
456 * Add other resources here
457 */
458 { },
459};
diff --git a/arch/mips/powertv/init.c b/arch/mips/powertv/init.c
new file mode 100644
index 000000000000..0afe227f1d0a
--- /dev/null
+++ b/arch/mips/powertv/init.c
@@ -0,0 +1,129 @@
1/*
2 * Copyright (C) 1999, 2000, 2004, 2005 MIPS Technologies, Inc.
3 * All rights reserved.
4 * Authors: Carsten Langgaard <carstenl@mips.com>
5 * Maciej W. Rozycki <macro@mips.com>
6 * Portions copyright (C) 2009 Cisco Systems, Inc.
7 *
8 * This program is free software; you can distribute it and/or modify it
9 * under the terms of the GNU General Public License (Version 2) as
10 * published by the Free Software Foundation.
11 *
12 * This program is distributed in the hope it will be useful, but WITHOUT
13 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
14 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
15 * for more details.
16 *
17 * You should have received a copy of the GNU General Public License along
18 * with this program; if not, write to the Free Software Foundation, Inc.,
19 * 59 Temple Place - Suite 330, Boston MA 02111-1307, USA.
20 *
21 * PROM library initialisation code.
22 */
23#include <linux/init.h>
24#include <linux/string.h>
25#include <linux/kernel.h>
26
27#include <asm/bootinfo.h>
28#include <linux/io.h>
29#include <asm/system.h>
30#include <asm/cacheflush.h>
31#include <asm/traps.h>
32
33#include <asm/mips-boards/prom.h>
34#include <asm/mips-boards/generic.h>
35#include <asm/mach-powertv/asic.h>
36
37static int *_prom_envp;
38unsigned long _prom_memsize;
39
40/*
41 * YAMON (32-bit PROM) pass arguments and environment as 32-bit pointer.
42 * This macro take care of sign extension, if running in 64-bit mode.
43 */
44#define prom_envp(index) ((char *)(long)_prom_envp[(index)])
45
46char *prom_getenv(char *envname)
47{
48 char *result = NULL;
49
50 if (_prom_envp != NULL) {
51 /*
52 * Return a pointer to the given environment variable.
53 * In 64-bit mode: we're using 64-bit pointers, but all pointers
54 * in the PROM structures are only 32-bit, so we need some
55 * workarounds, if we are running in 64-bit mode.
56 */
57 int i, index = 0;
58
59 i = strlen(envname);
60
61 while (prom_envp(index)) {
62 if (strncmp(envname, prom_envp(index), i) == 0) {
63 result = prom_envp(index + 1);
64 break;
65 }
66 index += 2;
67 }
68 }
69
70 return result;
71}
72
73/* TODO: Verify on linux-mips mailing list that the following two */
74/* functions are correct */
75/* TODO: Copy NMI and EJTAG exception vectors to memory from the */
76/* BootROM exception vectors. Flush their cache entries. test it. */
77
78static void __init mips_nmi_setup(void)
79{
80 void *base;
81#if defined(CONFIG_CPU_MIPS32_R1)
82 base = cpu_has_veic ?
83 (void *)(CAC_BASE + 0xa80) :
84 (void *)(CAC_BASE + 0x380);
85#elif defined(CONFIG_CPU_MIPS32_R2)
86 base = (void *)0xbfc00000;
87#else
88#error NMI exception handler address not defined
89#endif
90}
91
92static void __init mips_ejtag_setup(void)
93{
94 void *base;
95
96#if defined(CONFIG_CPU_MIPS32_R1)
97 base = cpu_has_veic ?
98 (void *)(CAC_BASE + 0xa00) :
99 (void *)(CAC_BASE + 0x300);
100#elif defined(CONFIG_CPU_MIPS32_R2)
101 base = (void *)0xbfc00480;
102#else
103#error EJTAG exception handler address not defined
104#endif
105}
106
107void __init prom_init(void)
108{
109 int prom_argc;
110 char *prom_argv;
111
112 prom_argc = fw_arg0;
113 prom_argv = (char *) fw_arg1;
114 _prom_envp = (int *) fw_arg2;
115 _prom_memsize = (unsigned long) fw_arg3;
116
117 board_nmi_handler_setup = mips_nmi_setup;
118 board_ejtag_handler_setup = mips_ejtag_setup;
119
120 if (prom_argc == 1)
121 strlcat(arcs_cmdline, prom_argv, COMMAND_LINE_SIZE);
122
123 configure_platform();
124 prom_meminit();
125
126#ifndef CONFIG_BOOTLOADER_DRIVER
127 pr_info("\nBootloader driver isn't loaded...\n");
128#endif
129}
diff --git a/arch/mips/powertv/init.h b/arch/mips/powertv/init.h
new file mode 100644
index 000000000000..b194c34ca966
--- /dev/null
+++ b/arch/mips/powertv/init.h
@@ -0,0 +1,26 @@
1/*
2 * Definitions from powertv init.c file
3 *
4 * Copyright (C) 2009 Cisco Systems, Inc.
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
19 *
20 * Author: David VomLehn
21 */
22
23#ifndef _POWERTV_INIT_H
24#define _POWERTV_INIT_H
25extern unsigned long _prom_memsize;
26#endif
diff --git a/arch/mips/powertv/memory.c b/arch/mips/powertv/memory.c
new file mode 100644
index 000000000000..f49eb3d0358b
--- /dev/null
+++ b/arch/mips/powertv/memory.c
@@ -0,0 +1,181 @@
1/*
2 * Carsten Langgaard, carstenl@mips.com
3 * Copyright (C) 1999,2000 MIPS Technologies, Inc. All rights reserved.
4 * Portions copyright (C) 2009 Cisco Systems, Inc.
5 *
6 * This program is free software; you can distribute it and/or modify it
7 * under the terms of the GNU General Public License (Version 2) as
8 * published by the Free Software Foundation.
9 *
10 * This program is distributed in the hope it will be useful, but WITHOUT
11 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
13 * for more details.
14 *
15 * You should have received a copy of the GNU General Public License along
16 * with this program; if not, write to the Free Software Foundation, Inc.,
17 * 59 Temple Place - Suite 330, Boston MA 02111-1307, USA.
18 *
19 * Apparently originally from arch/mips/malta-memory.c. Modified to work
20 * with the PowerTV bootloader.
21 */
22#include <linux/init.h>
23#include <linux/mm.h>
24#include <linux/bootmem.h>
25#include <linux/pfn.h>
26#include <linux/string.h>
27
28#include <asm/bootinfo.h>
29#include <asm/page.h>
30#include <asm/sections.h>
31
32#include <asm/mips-boards/prom.h>
33
34#include "init.h"
35
36/* Memory constants */
37#define KIBIBYTE(n) ((n) * 1024) /* Number of kibibytes */
38#define MEBIBYTE(n) ((n) * KIBIBYTE(1024)) /* Number of mebibytes */
39#define DEFAULT_MEMSIZE MEBIBYTE(256) /* If no memsize provided */
40#define LOW_MEM_MAX MEBIBYTE(252) /* Max usable low mem */
41#define RES_BOOTLDR_MEMSIZE MEBIBYTE(1) /* Memory reserved for bldr */
42#define BOOT_MEM_SIZE KIBIBYTE(256) /* Memory reserved for bldr */
43#define PHYS_MEM_START 0x10000000 /* Start of physical memory */
44
45char __initdata cmdline[COMMAND_LINE_SIZE];
46
47void __init prom_meminit(void)
48{
49 char *memsize_str;
50 unsigned long memsize = 0;
51 unsigned int physend;
52 char *ptr;
53 int low_mem;
54 int high_mem;
55
56 /* Check the command line first for a memsize directive */
57 strcpy(cmdline, arcs_cmdline);
58 ptr = strstr(cmdline, "memsize=");
59 if (ptr && (ptr != cmdline) && (*(ptr - 1) != ' '))
60 ptr = strstr(ptr, " memsize=");
61
62 if (ptr) {
63 memsize = memparse(ptr + 8, &ptr);
64 } else {
65 /* otherwise look in the environment */
66 memsize_str = prom_getenv("memsize");
67
68 if (memsize_str != NULL) {
69 pr_info("prom memsize = %s\n", memsize_str);
70 memsize = simple_strtol(memsize_str, NULL, 0);
71 }
72
73 if (memsize == 0) {
74 if (_prom_memsize != 0) {
75 memsize = _prom_memsize;
76 pr_info("_prom_memsize = 0x%lx\n", memsize);
77 /* add in memory that the bootloader doesn't
78 * report */
79 memsize += BOOT_MEM_SIZE;
80 } else {
81 memsize = DEFAULT_MEMSIZE;
82 pr_info("Memsize not passed by bootloader, "
83 "defaulting to 0x%lx\n", memsize);
84 }
85 }
86 }
87
88 physend = PFN_ALIGN(&_end) - 0x80000000;
89 if (memsize > LOW_MEM_MAX) {
90 low_mem = LOW_MEM_MAX;
91 high_mem = memsize - low_mem;
92 } else {
93 low_mem = memsize;
94 high_mem = 0;
95 }
96
97/*
98 * TODO: We will use the hard code for memory configuration until
99 * the bootloader releases their device tree to us.
100 */
101 /*
102 * Add the memory reserved for use by the bootloader to the
103 * memory map.
104 */
105 add_memory_region(PHYS_MEM_START, RES_BOOTLDR_MEMSIZE,
106 BOOT_MEM_RESERVED);
107#ifdef CONFIG_HIGHMEM_256_128
108 /*
109 * Add memory in low for general use by the kernel and its friends
110 * (like drivers, applications, etc).
111 */
112 add_memory_region(PHYS_MEM_START + RES_BOOTLDR_MEMSIZE,
113 LOW_MEM_MAX - RES_BOOTLDR_MEMSIZE, BOOT_MEM_RAM);
114 /*
115 * Add the memory reserved for reset vector.
116 */
117 add_memory_region(0x1fc00000, MEBIBYTE(4), BOOT_MEM_RESERVED);
118 /*
119 * Add the memory reserved.
120 */
121 add_memory_region(0x20000000, MEBIBYTE(1024 + 75), BOOT_MEM_RESERVED);
122 /*
123 * Add memory in high for general use by the kernel and its friends
124 * (like drivers, applications, etc).
125 *
126 * 75MB is reserved for devices which are using the memory in high.
127 */
128 add_memory_region(0x60000000 + MEBIBYTE(75), MEBIBYTE(128 - 75),
129 BOOT_MEM_RAM);
130#elif defined CONFIG_HIGHMEM_128_128
131 /*
132 * Add memory in low for general use by the kernel and its friends
133 * (like drivers, applications, etc).
134 */
135 add_memory_region(PHYS_MEM_START + RES_BOOTLDR_MEMSIZE,
136 MEBIBYTE(128) - RES_BOOTLDR_MEMSIZE, BOOT_MEM_RAM);
137 /*
138 * Add the memory reserved.
139 */
140 add_memory_region(PHYS_MEM_START + MEBIBYTE(128),
141 MEBIBYTE(128 + 1024 + 75), BOOT_MEM_RESERVED);
142 /*
143 * Add memory in high for general use by the kernel and its friends
144 * (like drivers, applications, etc).
145 *
146 * 75MB is reserved for devices which are using the memory in high.
147 */
148 add_memory_region(0x60000000 + MEBIBYTE(75), MEBIBYTE(128 - 75),
149 BOOT_MEM_RAM);
150#else
151 /* Add low memory regions for either:
152 * - no-highmemory configuration case -OR-
153 * - highmemory "HIGHMEM_LOWBANK_ONLY" case
154 */
155 /*
156 * Add memory for general use by the kernel and its friends
157 * (like drivers, applications, etc).
158 */
159 add_memory_region(PHYS_MEM_START + RES_BOOTLDR_MEMSIZE,
160 low_mem - RES_BOOTLDR_MEMSIZE, BOOT_MEM_RAM);
161 /*
162 * Add the memory reserved for reset vector.
163 */
164 add_memory_region(0x1fc00000, MEBIBYTE(4), BOOT_MEM_RESERVED);
165#endif
166}
167
168void __init prom_free_prom_memory(void)
169{
170 unsigned long addr;
171 int i;
172
173 for (i = 0; i < boot_mem_map.nr_map; i++) {
174 if (boot_mem_map.map[i].type != BOOT_MEM_ROM_DATA)
175 continue;
176
177 addr = boot_mem_map.map[i].addr;
178 free_init_pages("prom memory",
179 addr, addr + boot_mem_map.map[i].size);
180 }
181}
diff --git a/arch/mips/powertv/pci/Makefile b/arch/mips/powertv/pci/Makefile
new file mode 100644
index 000000000000..f5c62462fc9d
--- /dev/null
+++ b/arch/mips/powertv/pci/Makefile
@@ -0,0 +1,21 @@
1#
2# Copyright (C) 2009 Scientific-Atlanta, Inc.
3#
4# This program is free software; you can redistribute it and/or modify
5# it under the terms of the GNU General Public License as published by
6# the Free Software Foundation; either version 2 of the License, or
7# (at your option) any later version.
8#
9# This program is distributed in the hope that it will be useful,
10# but WITHOUT ANY WARRANTY; without even the implied warranty of
11# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12# GNU General Public License for more details.
13#
14# You should have received a copy of the GNU General Public License
15# along with this program; if not, write to the Free Software
16# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
17#
18
19obj-$(CONFIG_PCI) += fixup-powertv.o
20
21EXTRA_CFLAGS += -Wall -Werror
diff --git a/arch/mips/powertv/pci/fixup-powertv.c b/arch/mips/powertv/pci/fixup-powertv.c
new file mode 100644
index 000000000000..726bc2e824b3
--- /dev/null
+++ b/arch/mips/powertv/pci/fixup-powertv.c
@@ -0,0 +1,36 @@
1#include <linux/init.h>
2#include <linux/pci.h>
3#include <asm/mach-powertv/interrupts.h>
4#include "powertv-pci.h"
5
6int __init pcibios_map_irq(const struct pci_dev *dev, u8 slot, u8 pin)
7{
8 return asic_pcie_map_irq(dev, slot, pin);
9}
10
11/* Do platform specific device initialization at pci_enable_device() time */
12int pcibios_plat_dev_init(struct pci_dev *dev)
13{
14 return 0;
15}
16
17/*
18 * asic_pcie_map_irq
19 *
20 * Parameters:
21 * *dev - pointer to a pci_dev structure (not used)
22 * slot - slot number (not used)
23 * pin - pin number (not used)
24 *
25 * Return Value:
26 * Returns: IRQ number (always the PCI Express IRQ number)
27 *
28 * Description:
29 * asic_pcie_map_irq will return the IRQ number of the PCI Express interrupt.
30 *
31 */
32int asic_pcie_map_irq(const struct pci_dev *dev, u8 slot, u8 pin)
33{
34 return irq_pciexp;
35}
36EXPORT_SYMBOL(asic_pcie_map_irq);
diff --git a/arch/mips/powertv/pci/powertv-pci.h b/arch/mips/powertv/pci/powertv-pci.h
new file mode 100644
index 000000000000..1b5886bbd759
--- /dev/null
+++ b/arch/mips/powertv/pci/powertv-pci.h
@@ -0,0 +1,31 @@
1/*
2 * powertv-pci.c
3 *
4 * Copyright (C) 2009 Cisco Systems, Inc.
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
19 */
20/*
21 * Local definitions for the powertv PCI code
22 */
23
24#ifndef _POWERTV_PCI_POWERTV_PCI_H_
25#define _POWERTV_PCI_POWERTV_PCI_H_
26extern int asic_pcie_map_irq(const struct pci_dev *dev, u8 slot, u8 pin);
27extern int asic_pcie_init(void);
28extern int asic_pcie_init(void);
29
30extern int log_level;
31#endif
diff --git a/arch/mips/powertv/powertv-clock.h b/arch/mips/powertv/powertv-clock.h
new file mode 100644
index 000000000000..d94c54311485
--- /dev/null
+++ b/arch/mips/powertv/powertv-clock.h
@@ -0,0 +1,26 @@
1/*
2 * Copyright (C) 2009 Cisco Systems, Inc.
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
17 *
18 * Author: David VomLehn
19 */
20
21#ifndef _POWERTV_POWERTV_CLOCK_H
22#define _POWERTV_POWERTV_CLOCK_H
23extern int powertv_clockevent_init(void);
24extern void powertv_clocksource_init(void);
25extern unsigned int mips_get_pll_freq(void);
26#endif
diff --git a/arch/mips/powertv/powertv_setup.c b/arch/mips/powertv/powertv_setup.c
new file mode 100644
index 000000000000..af2cae0a5ab3
--- /dev/null
+++ b/arch/mips/powertv/powertv_setup.c
@@ -0,0 +1,326 @@
1/*
2 * Carsten Langgaard, carstenl@mips.com
3 * Copyright (C) 2000 MIPS Technologies, Inc. All rights reserved.
4 * Portions copyright (C) 2009 Cisco Systems, Inc.
5 *
6 * This program is free software; you can distribute it and/or modify it
7 * under the terms of the GNU General Public License (Version 2) as
8 * published by the Free Software Foundation.
9 *
10 * This program is distributed in the hope it will be useful, but WITHOUT
11 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
13 * for more details.
14 *
15 * You should have received a copy of the GNU General Public License along
16 * with this program; if not, write to the Free Software Foundation, Inc.,
17 * 59 Temple Place - Suite 330, Boston MA 02111-1307, USA.
18 */
19#include <linux/init.h>
20#include <linux/sched.h>
21#include <linux/ioport.h>
22#include <linux/pci.h>
23#include <linux/screen_info.h>
24#include <linux/notifier.h>
25#include <linux/etherdevice.h>
26#include <linux/if_ether.h>
27#include <linux/ctype.h>
28#include <linux/cpu.h>
29#include <linux/time.h>
30
31#include <asm/bootinfo.h>
32#include <asm/irq.h>
33#include <asm/mips-boards/generic.h>
34#include <asm/mips-boards/prom.h>
35#include <asm/dma.h>
36#include <asm/asm.h>
37#include <asm/traps.h>
38#include <asm/asm-offsets.h>
39#include "reset.h"
40
41#define VAL(n) STR(n)
42
43/*
44 * Macros for loading addresses and storing registers:
45 * LONG_L_ Stringified version of LONG_L for use in asm() statement
46 * LONG_S_ Stringified version of LONG_S for use in asm() statement
47 * PTR_LA_ Stringified version of PTR_LA for use in asm() statement
48 * REG_SIZE Number of 8-bit bytes in a full width register
49 */
50#define LONG_L_ VAL(LONG_L) " "
51#define LONG_S_ VAL(LONG_S) " "
52#define PTR_LA_ VAL(PTR_LA) " "
53
54#ifdef CONFIG_64BIT
55#warning TODO: 64-bit code needs to be verified
56#define REG_SIZE "8" /* In bytes */
57#endif
58
59#ifdef CONFIG_32BIT
60#define REG_SIZE "4" /* In bytes */
61#endif
62
63static void register_panic_notifier(void);
64static int panic_handler(struct notifier_block *notifier_block,
65 unsigned long event, void *cause_string);
66
67const char *get_system_type(void)
68{
69 return "PowerTV";
70}
71
72void __init plat_mem_setup(void)
73{
74 panic_on_oops = 1;
75 register_panic_notifier();
76
77#if 0
78 mips_pcibios_init();
79#endif
80 mips_reboot_setup();
81}
82
83/*
84 * Install a panic notifier for platform-specific diagnostics
85 */
86static void register_panic_notifier()
87{
88 static struct notifier_block panic_notifier = {
89 .notifier_call = panic_handler,
90 .next = NULL,
91 .priority = INT_MAX
92 };
93 atomic_notifier_chain_register(&panic_notifier_list, &panic_notifier);
94}
95
96static int panic_handler(struct notifier_block *notifier_block,
97 unsigned long event, void *cause_string)
98{
99 struct pt_regs my_regs;
100
101 /* Save all of the registers */
102 {
103 unsigned long at, v0, v1; /* Must be on the stack */
104
105 /* Start by saving $at and v0 on the stack. We use $at
106 * ourselves, but it looks like the compiler may use v0 or v1
107 * to load the address of the pt_regs structure. We'll come
108 * back later to store the registers in the pt_regs
109 * structure. */
110 __asm__ __volatile__ (
111 ".set noat\n"
112 LONG_S_ "$at, %[at]\n"
113 LONG_S_ "$2, %[v0]\n"
114 LONG_S_ "$3, %[v1]\n"
115 :
116 [at] "=m" (at),
117 [v0] "=m" (v0),
118 [v1] "=m" (v1)
119 :
120 : "at"
121 );
122
123 __asm__ __volatile__ (
124 ".set noat\n"
125 "move $at, %[pt_regs]\n"
126
127 /* Argument registers */
128 LONG_S_ "$4, " VAL(PT_R4) "($at)\n"
129 LONG_S_ "$5, " VAL(PT_R5) "($at)\n"
130 LONG_S_ "$6, " VAL(PT_R6) "($at)\n"
131 LONG_S_ "$7, " VAL(PT_R7) "($at)\n"
132
133 /* Temporary regs */
134 LONG_S_ "$8, " VAL(PT_R8) "($at)\n"
135 LONG_S_ "$9, " VAL(PT_R9) "($at)\n"
136 LONG_S_ "$10, " VAL(PT_R10) "($at)\n"
137 LONG_S_ "$11, " VAL(PT_R11) "($at)\n"
138 LONG_S_ "$12, " VAL(PT_R12) "($at)\n"
139 LONG_S_ "$13, " VAL(PT_R13) "($at)\n"
140 LONG_S_ "$14, " VAL(PT_R14) "($at)\n"
141 LONG_S_ "$15, " VAL(PT_R15) "($at)\n"
142
143 /* "Saved" registers */
144 LONG_S_ "$16, " VAL(PT_R16) "($at)\n"
145 LONG_S_ "$17, " VAL(PT_R17) "($at)\n"
146 LONG_S_ "$18, " VAL(PT_R18) "($at)\n"
147 LONG_S_ "$19, " VAL(PT_R19) "($at)\n"
148 LONG_S_ "$20, " VAL(PT_R20) "($at)\n"
149 LONG_S_ "$21, " VAL(PT_R21) "($at)\n"
150 LONG_S_ "$22, " VAL(PT_R22) "($at)\n"
151 LONG_S_ "$23, " VAL(PT_R23) "($at)\n"
152
153 /* Add'l temp regs */
154 LONG_S_ "$24, " VAL(PT_R24) "($at)\n"
155 LONG_S_ "$25, " VAL(PT_R25) "($at)\n"
156
157 /* Kernel temp regs */
158 LONG_S_ "$26, " VAL(PT_R26) "($at)\n"
159 LONG_S_ "$27, " VAL(PT_R27) "($at)\n"
160
161 /* Global pointer, stack pointer, frame pointer and
162 * return address */
163 LONG_S_ "$gp, " VAL(PT_R28) "($at)\n"
164 LONG_S_ "$sp, " VAL(PT_R29) "($at)\n"
165 LONG_S_ "$fp, " VAL(PT_R30) "($at)\n"
166 LONG_S_ "$ra, " VAL(PT_R31) "($at)\n"
167
168 /* Now we can get the $at and v0 registers back and
169 * store them */
170 LONG_L_ "$8, %[at]\n"
171 LONG_S_ "$8, " VAL(PT_R1) "($at)\n"
172 LONG_L_ "$8, %[v0]\n"
173 LONG_S_ "$8, " VAL(PT_R2) "($at)\n"
174 LONG_L_ "$8, %[v1]\n"
175 LONG_S_ "$8, " VAL(PT_R3) "($at)\n"
176 :
177 :
178 [at] "m" (at),
179 [v0] "m" (v0),
180 [v1] "m" (v1),
181 [pt_regs] "r" (&my_regs)
182 : "at", "t0"
183 );
184
185 /* Set the current EPC value to be the current location in this
186 * function */
187 __asm__ __volatile__ (
188 ".set noat\n"
189 "1:\n"
190 PTR_LA_ "$at, 1b\n"
191 LONG_S_ "$at, %[cp0_epc]\n"
192 :
193 [cp0_epc] "=m" (my_regs.cp0_epc)
194 :
195 : "at"
196 );
197
198 my_regs.cp0_cause = read_c0_cause();
199 my_regs.cp0_status = read_c0_status();
200 }
201
202#ifdef CONFIG_DIAGNOSTICS
203 failure_report((char *) cause_string,
204 have_die_regs ? &die_regs : &my_regs);
205 have_die_regs = false;
206#else
207 pr_crit("I'm feeling a bit sleepy. hmmmmm... perhaps a nap would... "
208 "zzzz... \n");
209#endif
210
211 return NOTIFY_DONE;
212}
213
214/* Information about the RF MAC address, if one was supplied on the
215 * command line. */
216static bool have_rfmac;
217static u8 rfmac[ETH_ALEN];
218
219static int rfmac_param(char *p)
220{
221 u8 *q;
222 bool is_high_nibble;
223 int c;
224
225 /* Skip a leading "0x", if present */
226 if (*p == '0' && *(p+1) == 'x')
227 p += 2;
228
229 q = rfmac;
230 is_high_nibble = true;
231
232 for (c = (unsigned char) *p++;
233 isxdigit(c) && q - rfmac < ETH_ALEN;
234 c = (unsigned char) *p++) {
235 int nibble;
236
237 nibble = (isdigit(c) ? (c - '0') :
238 (isupper(c) ? c - 'A' + 10 : c - 'a' + 10));
239
240 if (is_high_nibble)
241 *q = nibble << 4;
242 else
243 *q++ |= nibble;
244
245 is_high_nibble = !is_high_nibble;
246 }
247
248 /* If we parsed all the way to the end of the parameter value and
249 * parsed all ETH_ALEN bytes, we have a usable RF MAC address */
250 have_rfmac = (c == '\0' && q - rfmac == ETH_ALEN);
251
252 return 0;
253}
254
255early_param("rfmac", rfmac_param);
256
257/*
258 * Generate an Ethernet MAC address that has a good chance of being unique.
259 * @addr: Pointer to six-byte array containing the Ethernet address
260 * Generates an Ethernet MAC address that is highly likely to be unique for
261 * this particular system on a network with other systems of the same type.
262 *
263 * The problem we are solving is that, when random_ether_addr() is used to
264 * generate MAC addresses at startup, there isn't much entropy for the random
265 * number generator to use and the addresses it produces are fairly likely to
266 * be the same as those of other identical systems on the same local network.
267 * This is true even for relatively small numbers of systems (for the reason
268 * why, see the Wikipedia entry for "Birthday problem" at:
269 * http://en.wikipedia.org/wiki/Birthday_problem
270 *
271 * The good news is that we already have a MAC address known to be unique, the
272 * RF MAC address. The bad news is that this address is already in use on the
273 * RF interface. Worse, the obvious trick, taking the RF MAC address and
274 * turning on the locally managed bit, has already been used for other devices.
275 * Still, this does give us something to work with.
276 *
277 * The approach we take is:
278 * 1. If we can't get the RF MAC Address, just call random_ether_addr.
279 * 2. Use the 24-bit NIC-specific bits of the RF MAC address as the last 24
280 * bits of the new address. This is very likely to be unique, except for
281 * the current box.
282 * 3. To avoid using addresses already on the current box, we set the top
283 * six bits of the address with a value different from any currently
284 * registered Scientific Atlanta organizationally unique identifyer
285 * (OUI). This avoids duplication with any addresses on the system that
286 * were generated from valid Scientific Atlanta-registered address by
287 * simply flipping the locally managed bit.
288 * 4. We aren't generating a multicast address, so we leave the multicast
289 * bit off. Since we aren't using a registered address, we have to set
290 * the locally managed bit.
291 * 5. We then randomly generate the remaining 16-bits. This does two
292 * things:
293 * a. It allows us to call this function for more than one device
294 * in this system
295 * b. It ensures that things will probably still work even if
296 * some device on the device network has a locally managed
297 * address that matches the top six bits from step 2.
298 */
299void platform_random_ether_addr(u8 addr[ETH_ALEN])
300{
301 const int num_random_bytes = 2;
302 const unsigned char non_sciatl_oui_bits = 0xc0u;
303 const unsigned char mac_addr_locally_managed = (1 << 1);
304
305 if (!have_rfmac) {
306 pr_warning("rfmac not available on command line; "
307 "generating random MAC address\n");
308 random_ether_addr(addr);
309 }
310
311 else {
312 int i;
313
314 /* Set the first byte to something that won't match a Scientific
315 * Atlanta OUI, is locally managed, and isn't a multicast
316 * address */
317 addr[0] = non_sciatl_oui_bits | mac_addr_locally_managed;
318
319 /* Get some bytes of random address information */
320 get_random_bytes(&addr[1], num_random_bytes);
321
322 /* Copy over the NIC-specific bits of the RF MAC address */
323 for (i = 1 + num_random_bytes; i < ETH_ALEN; i++)
324 addr[i] = rfmac[i];
325 }
326}
diff --git a/arch/mips/powertv/reset.c b/arch/mips/powertv/reset.c
new file mode 100644
index 000000000000..0007652cb774
--- /dev/null
+++ b/arch/mips/powertv/reset.c
@@ -0,0 +1,47 @@
1/*
2 * Carsten Langgaard, carstenl@mips.com
3 * Copyright (C) 1999,2000 MIPS Technologies, Inc. All rights reserved.
4 * Portions copyright (C) 2009 Cisco Systems, Inc.
5 *
6 * This program is free software; you can distribute it and/or modify it
7 * under the terms of the GNU General Public License (Version 2) as
8 * published by the Free Software Foundation.
9 *
10 * This program is distributed in the hope it will be useful, but WITHOUT
11 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
13 * for more details.
14 *
15 * You should have received a copy of the GNU General Public License along
16 * with this program; if not, write to the Free Software Foundation, Inc.,
17 * 59 Temple Place - Suite 330, Boston MA 02111-1307, USA.
18 */
19#include <linux/pm.h>
20
21#include <linux/io.h>
22#include <asm/reboot.h> /* Not included by linux/reboot.h */
23
24#ifdef CONFIG_BOOTLOADER_DRIVER
25#include <asm/mach-powertv/kbldr.h>
26#endif
27
28#include <asm/mach-powertv/asic_regs.h>
29#include "reset.h"
30
31static void mips_machine_restart(char *command)
32{
33#ifdef CONFIG_BOOTLOADER_DRIVER
34 /*
35 * Call the bootloader's reset function to ensure
36 * that persistent data is flushed before hard reset
37 */
38 kbldr_SetCauseAndReset();
39#else
40 writel(0x1, asic_reg_addr(watchdog));
41#endif
42}
43
44void mips_reboot_setup(void)
45{
46 _machine_restart = mips_machine_restart;
47}
diff --git a/arch/mips/powertv/reset.h b/arch/mips/powertv/reset.h
new file mode 100644
index 000000000000..888fd09e2620
--- /dev/null
+++ b/arch/mips/powertv/reset.h
@@ -0,0 +1,26 @@
1/*
2 * Definitions from powertv reset.c file
3 *
4 * Copyright (C) 2009 Cisco Systems, Inc.
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
19 *
20 * Author: David VomLehn
21 */
22
23#ifndef _POWERTV_POWERTV_RESET_H
24#define _POWERTV_POWERTV_RESET_H
25extern void mips_reboot_setup(void);
26#endif
diff --git a/arch/mips/mipssim/sim_cmdline.c b/arch/mips/powertv/time.c
index 74240e1ce5a5..9fd7b67f2af7 100644
--- a/arch/mips/mipssim/sim_cmdline.c
+++ b/arch/mips/powertv/time.c
@@ -1,5 +1,7 @@
1/* 1/*
2 * Copyright (C) 2005 MIPS Technologies, Inc. All rights reserved. 2 * Carsten Langgaard, carstenl@mips.com
3 * Copyright (C) 1999,2000 MIPS Technologies, Inc. All rights reserved.
4 * Portions copyright (C) 2009 Cisco Systems, Inc.
3 * 5 *
4 * This program is free software; you can distribute it and/or modify it 6 * This program is free software; you can distribute it and/or modify it
5 * under the terms of the GNU General Public License (Version 2) as 7 * under the terms of the GNU General Public License (Version 2) as
@@ -14,19 +16,21 @@
14 * with this program; if not, write to the Free Software Foundation, Inc., 16 * with this program; if not, write to the Free Software Foundation, Inc.,
15 * 59 Temple Place - Suite 330, Boston MA 02111-1307, USA. 17 * 59 Temple Place - Suite 330, Boston MA 02111-1307, USA.
16 * 18 *
19 * Setting up the clock on the MIPS boards.
17 */ 20 */
21
18#include <linux/init.h> 22#include <linux/init.h>
19#include <linux/string.h> 23#include <asm/mach-powertv/interrupts.h>
20#include <asm/bootinfo.h> 24#include <asm/time.h>
21 25
22extern char arcs_cmdline[]; 26#include "powertv-clock.h"
23 27
24char * __init prom_getcmdline(void) 28unsigned int __cpuinit get_c0_compare_int(void)
25{ 29{
26 return arcs_cmdline; 30 return irq_mips_timer;
27} 31}
28 32
29void __init prom_init_cmdline(void) 33void __init plat_time_init(void)
30{ 34{
31 /* XXX: Get boot line from environment? */ 35 powertv_clocksource_init();
32} 36}
diff --git a/arch/mips/rb532/irq.c b/arch/mips/rb532/irq.c
index f07882029a90..ea6cec3c1e0d 100644
--- a/arch/mips/rb532/irq.c
+++ b/arch/mips/rb532/irq.c
@@ -36,7 +36,6 @@
36#include <linux/interrupt.h> 36#include <linux/interrupt.h>
37#include <linux/ioport.h> 37#include <linux/ioport.h>
38#include <linux/timex.h> 38#include <linux/timex.h>
39#include <linux/slab.h>
40#include <linux/random.h> 39#include <linux/random.h>
41#include <linux/delay.h> 40#include <linux/delay.h>
42 41
diff --git a/arch/mips/rb532/prom.c b/arch/mips/rb532/prom.c
index ad5bd1097974..d7c26d00cfef 100644
--- a/arch/mips/rb532/prom.c
+++ b/arch/mips/rb532/prom.c
@@ -69,7 +69,7 @@ static inline unsigned long tag2ul(char *arg, const char *tag)
69 69
70void __init prom_setup_cmdline(void) 70void __init prom_setup_cmdline(void)
71{ 71{
72 static char cmd_line[CL_SIZE] __initdata; 72 static char cmd_line[COMMAND_LINE_SIZE] __initdata;
73 char *cp, *board; 73 char *cp, *board;
74 int prom_argc; 74 int prom_argc;
75 char **prom_argv, **prom_envp; 75 char **prom_argv, **prom_envp;
@@ -115,7 +115,7 @@ void __init prom_setup_cmdline(void)
115 strcpy(cp, arcs_cmdline); 115 strcpy(cp, arcs_cmdline);
116 cp += strlen(arcs_cmdline); 116 cp += strlen(arcs_cmdline);
117 } 117 }
118 cmd_line[CL_SIZE-1] = '\0'; 118 cmd_line[COMMAND_LINE_SIZE - 1] = '\0';
119 119
120 strcpy(arcs_cmdline, cmd_line); 120 strcpy(arcs_cmdline, cmd_line);
121} 121}
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)
89void ip22_be_interrupt(int irq) 89void 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/ip22-eisa.c b/arch/mips/sgi-ip22/ip22-eisa.c
index 1617241d2737..da44ccb20829 100644
--- a/arch/mips/sgi-ip22/ip22-eisa.c
+++ b/arch/mips/sgi-ip22/ip22-eisa.c
@@ -50,9 +50,9 @@
50 50
51static char __init *decode_eisa_sig(unsigned long addr) 51static char __init *decode_eisa_sig(unsigned long addr)
52{ 52{
53 static char sig_str[EISA_SIG_LEN]; 53 static char sig_str[EISA_SIG_LEN] __initdata;
54 u8 sig[4]; 54 u8 sig[4];
55 u16 rev; 55 u16 rev;
56 int i; 56 int i;
57 57
58 for (i = 0; i < 4; i++) { 58 for (i = 0; i < 4; i++) {
diff --git a/arch/mips/sgi-ip22/ip22-int.c b/arch/mips/sgi-ip22/ip22-int.c
index 0ecd5fe9486e..383f11d7f442 100644
--- a/arch/mips/sgi-ip22/ip22-int.c
+++ b/arch/mips/sgi-ip22/ip22-int.c
@@ -13,6 +13,7 @@
13#include <linux/init.h> 13#include <linux/init.h>
14#include <linux/kernel_stat.h> 14#include <linux/kernel_stat.h>
15#include <linux/interrupt.h> 15#include <linux/interrupt.h>
16#include <linux/ftrace.h>
16 17
17#include <asm/irq_cpu.h> 18#include <asm/irq_cpu.h>
18#include <asm/sgi/hpc3.h> 19#include <asm/sgi/hpc3.h>
@@ -150,7 +151,7 @@ static void indy_local1_irqdispatch(void)
150 151
151extern void ip22_be_interrupt(int irq); 152extern void ip22_be_interrupt(int irq);
152 153
153static void indy_buserror_irq(void) 154static void __irq_entry indy_buserror_irq(void)
154{ 155{
155 int irq = SGI_BUSERR_IRQ; 156 int irq = SGI_BUSERR_IRQ;
156 157
diff --git a/arch/mips/sgi-ip22/ip22-setup.c b/arch/mips/sgi-ip22/ip22-setup.c
index b9a931358e23..5deeb68b6c9c 100644
--- a/arch/mips/sgi-ip22/ip22-setup.c
+++ b/arch/mips/sgi-ip22/ip22-setup.c
@@ -67,7 +67,7 @@ void __init plat_mem_setup(void)
67 cserial = ArcGetEnvironmentVariable("ConsoleOut"); 67 cserial = ArcGetEnvironmentVariable("ConsoleOut");
68 68
69 if ((ctype && *ctype == 'd') || (cserial && *cserial == 's')) { 69 if ((ctype && *ctype == 'd') || (cserial && *cserial == 's')) {
70 static char options[8]; 70 static char options[8] __initdata;
71 char *baud = ArcGetEnvironmentVariable("dbaud"); 71 char *baud = ArcGetEnvironmentVariable("dbaud");
72 if (baud) 72 if (baud)
73 strcpy(options, baud); 73 strcpy(options, baud);
diff --git a/arch/mips/sgi-ip22/ip22-time.c b/arch/mips/sgi-ip22/ip22-time.c
index c8f7d2328b24..603fc91c1030 100644
--- a/arch/mips/sgi-ip22/ip22-time.c
+++ b/arch/mips/sgi-ip22/ip22-time.c
@@ -16,6 +16,7 @@
16#include <linux/interrupt.h> 16#include <linux/interrupt.h>
17#include <linux/kernel_stat.h> 17#include <linux/kernel_stat.h>
18#include <linux/time.h> 18#include <linux/time.h>
19#include <linux/ftrace.h>
19 20
20#include <asm/cpu.h> 21#include <asm/cpu.h>
21#include <asm/mipsregs.h> 22#include <asm/mipsregs.h>
@@ -115,7 +116,7 @@ __init void plat_time_init(void)
115} 116}
116 117
117/* Generic SGI handler for (spurious) 8254 interrupts */ 118/* Generic SGI handler for (spurious) 8254 interrupts */
118void indy_8254timer_irq(void) 119void __irq_entry indy_8254timer_irq(void)
119{ 120{
120 int irq = SGI_8254_0_IRQ; 121 int irq = SGI_8254_0_IRQ;
121 ULONG cnt; 122 ULONG cnt;
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
454void ip22_be_interrupt(int irq) 454void 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/sgi-ip27/ip27-irq.c b/arch/mips/sgi-ip27/ip27-irq.c
index c1c8e40d65d6..6a123ea72de5 100644
--- a/arch/mips/sgi-ip27/ip27-irq.c
+++ b/arch/mips/sgi-ip27/ip27-irq.c
@@ -17,7 +17,6 @@
17#include <linux/interrupt.h> 17#include <linux/interrupt.h>
18#include <linux/ioport.h> 18#include <linux/ioport.h>
19#include <linux/timex.h> 19#include <linux/timex.h>
20#include <linux/slab.h>
21#include <linux/smp.h> 20#include <linux/smp.h>
22#include <linux/random.h> 21#include <linux/random.h>
23#include <linux/kernel.h> 22#include <linux/kernel.h>
diff --git a/arch/mips/sgi-ip27/ip27-klnuma.c b/arch/mips/sgi-ip27/ip27-klnuma.c
index d9c79d8be81d..c3d30a88daf3 100644
--- a/arch/mips/sgi-ip27/ip27-klnuma.c
+++ b/arch/mips/sgi-ip27/ip27-klnuma.c
@@ -133,4 +133,3 @@ pfn_t node_getfirstfree(cnodeid_t cnode)
133 return (KDM_TO_PHYS(PAGE_ALIGN(SYMMON_STK_ADDR(nasid, 0))) >> 133 return (KDM_TO_PHYS(PAGE_ALIGN(SYMMON_STK_ADDR(nasid, 0))) >>
134 PAGE_SHIFT); 134 PAGE_SHIFT);
135} 135}
136
diff --git a/arch/mips/sgi-ip27/ip27-memory.c b/arch/mips/sgi-ip27/ip27-memory.c
index f61c164d1e67..bc1297109cc5 100644
--- a/arch/mips/sgi-ip27/ip27-memory.c
+++ b/arch/mips/sgi-ip27/ip27-memory.c
@@ -505,5 +505,5 @@ void __init mem_init(void)
505 (num_physpages - tmp) << (PAGE_SHIFT-10), 505 (num_physpages - tmp) << (PAGE_SHIFT-10),
506 datasize >> 10, 506 datasize >> 10,
507 initsize >> 10, 507 initsize >> 10,
508 (unsigned long) (totalhigh_pages << (PAGE_SHIFT-10))); 508 totalhigh_pages << (PAGE_SHIFT-10));
509} 509}
diff --git a/arch/mips/sgi-ip27/ip27-nmi.c b/arch/mips/sgi-ip27/ip27-nmi.c
index 6c5a630566f9..bc4fa8dd67f3 100644
--- a/arch/mips/sgi-ip27/ip27-nmi.c
+++ b/arch/mips/sgi-ip27/ip27-nmi.c
@@ -17,11 +17,10 @@
17#endif 17#endif
18 18
19#define CNODEID_NONE (cnodeid_t)-1 19#define CNODEID_NONE (cnodeid_t)-1
20#define enter_panic_mode() spin_lock(&nmi_lock)
21 20
22typedef unsigned long machreg_t; 21typedef unsigned long machreg_t;
23 22
24DEFINE_SPINLOCK(nmi_lock); 23static arch_spinlock_t nmi_lock = __ARCH_SPIN_LOCK_UNLOCKED;
25 24
26/* 25/*
27 * Lets see what else we need to do here. Set up sp, gp? 26 * Lets see what else we need to do here. Set up sp, gp?
@@ -193,9 +192,9 @@ cont_nmi_dump(void)
193 atomic_inc(&nmied_cpus); 192 atomic_inc(&nmied_cpus);
194#endif 193#endif
195 /* 194 /*
196 * Use enter_panic_mode to allow only 1 cpu to proceed 195 * Only allow 1 cpu to proceed
197 */ 196 */
198 enter_panic_mode(); 197 arch_spin_lock(&nmi_lock);
199 198
200#ifdef REAL_NMI_SIGNAL 199#ifdef REAL_NMI_SIGNAL
201 /* 200 /*
diff --git a/arch/mips/sgi-ip32/ip32-irq.c b/arch/mips/sgi-ip32/ip32-irq.c
index 5c2bf111ca67..eb40824b172a 100644
--- a/arch/mips/sgi-ip32/ip32-irq.c
+++ b/arch/mips/sgi-ip32/ip32-irq.c
@@ -15,7 +15,6 @@
15#include <linux/irq.h> 15#include <linux/irq.h>
16#include <linux/bitops.h> 16#include <linux/bitops.h>
17#include <linux/kernel.h> 17#include <linux/kernel.h>
18#include <linux/slab.h>
19#include <linux/mm.h> 18#include <linux/mm.h>
20#include <linux/random.h> 19#include <linux/random.h>
21#include <linux/sched.h> 20#include <linux/sched.h>
@@ -512,10 +511,6 @@ void __init arch_init_irq(void)
512 "level"); 511 "level");
513 break; 512 break;
514 513
515 case CRIME_GBE0_IRQ ... CRIME_GBE3_IRQ:
516 set_irq_chip_and_handler_name(irq,
517 &crime_edge_interrupt, handle_edge_irq, "edge");
518 break;
519 case CRIME_CPUERR_IRQ: 514 case CRIME_CPUERR_IRQ:
520 case CRIME_MEMERR_IRQ: 515 case CRIME_MEMERR_IRQ:
521 set_irq_chip_and_handler_name(irq, 516 set_irq_chip_and_handler_name(irq,
@@ -523,12 +518,9 @@ void __init arch_init_irq(void)
523 "level"); 518 "level");
524 break; 519 break;
525 520
521 case CRIME_GBE0_IRQ ... CRIME_GBE3_IRQ:
526 case CRIME_RE_EMPTY_E_IRQ ... CRIME_RE_IDLE_E_IRQ: 522 case CRIME_RE_EMPTY_E_IRQ ... CRIME_RE_IDLE_E_IRQ:
527 case CRIME_SOFT0_IRQ ... CRIME_SOFT2_IRQ: 523 case CRIME_SOFT0_IRQ ... CRIME_SOFT2_IRQ:
528 set_irq_chip_and_handler_name(irq,
529 &crime_edge_interrupt, handle_edge_irq, "edge");
530 break;
531
532 case CRIME_VICE_IRQ: 524 case CRIME_VICE_IRQ:
533 set_irq_chip_and_handler_name(irq, 525 set_irq_chip_and_handler_name(irq,
534 &crime_edge_interrupt, handle_edge_irq, "edge"); 526 &crime_edge_interrupt, handle_edge_irq, "edge");
diff --git a/arch/mips/sgi-ip32/ip32-setup.c b/arch/mips/sgi-ip32/ip32-setup.c
index c5a5d4a31b4b..3abd1465ec02 100644
--- a/arch/mips/sgi-ip32/ip32-setup.c
+++ b/arch/mips/sgi-ip32/ip32-setup.c
@@ -90,7 +90,7 @@ void __init plat_mem_setup(void)
90 { 90 {
91 char* con = ArcGetEnvironmentVariable("console"); 91 char* con = ArcGetEnvironmentVariable("console");
92 if (con && *con == 'd') { 92 if (con && *con == 'd') {
93 static char options[8]; 93 static char options[8] __initdata;
94 char *baud = ArcGetEnvironmentVariable("dbaud"); 94 char *baud = ArcGetEnvironmentVariable("dbaud");
95 if (baud) 95 if (baud)
96 strcpy(options, baud); 96 strcpy(options, baud);
diff --git a/arch/mips/sibyte/bcm1480/irq.c b/arch/mips/sibyte/bcm1480/irq.c
index 4070268aa769..7a8b0a8b643a 100644
--- a/arch/mips/sibyte/bcm1480/irq.c
+++ b/arch/mips/sibyte/bcm1480/irq.c
@@ -22,7 +22,6 @@
22#include <linux/smp.h> 22#include <linux/smp.h>
23#include <linux/spinlock.h> 23#include <linux/spinlock.h>
24#include <linux/mm.h> 24#include <linux/mm.h>
25#include <linux/slab.h>
26#include <linux/kernel_stat.h> 25#include <linux/kernel_stat.h>
27 26
28#include <asm/errno.h> 27#include <asm/errno.h>
@@ -73,14 +72,14 @@ static struct irq_chip bcm1480_irq_type = {
73/* Store the CPU id (not the logical number) */ 72/* Store the CPU id (not the logical number) */
74int bcm1480_irq_owner[BCM1480_NR_IRQS]; 73int bcm1480_irq_owner[BCM1480_NR_IRQS];
75 74
76DEFINE_SPINLOCK(bcm1480_imr_lock); 75static DEFINE_RAW_SPINLOCK(bcm1480_imr_lock);
77 76
78void bcm1480_mask_irq(int cpu, int irq) 77void bcm1480_mask_irq(int cpu, int irq)
79{ 78{
80 unsigned long flags, hl_spacing; 79 unsigned long flags, hl_spacing;
81 u64 cur_ints; 80 u64 cur_ints;
82 81
83 spin_lock_irqsave(&bcm1480_imr_lock, flags); 82 raw_spin_lock_irqsave(&bcm1480_imr_lock, flags);
84 hl_spacing = 0; 83 hl_spacing = 0;
85 if ((irq >= BCM1480_NR_IRQS_HALF) && (irq <= BCM1480_NR_IRQS)) { 84 if ((irq >= BCM1480_NR_IRQS_HALF) && (irq <= BCM1480_NR_IRQS)) {
86 hl_spacing = BCM1480_IMR_HL_SPACING; 85 hl_spacing = BCM1480_IMR_HL_SPACING;
@@ -89,7 +88,7 @@ void bcm1480_mask_irq(int cpu, int irq)
89 cur_ints = ____raw_readq(IOADDR(A_BCM1480_IMR_MAPPER(cpu) + R_BCM1480_IMR_INTERRUPT_MASK_H + hl_spacing)); 88 cur_ints = ____raw_readq(IOADDR(A_BCM1480_IMR_MAPPER(cpu) + R_BCM1480_IMR_INTERRUPT_MASK_H + hl_spacing));
90 cur_ints |= (((u64) 1) << irq); 89 cur_ints |= (((u64) 1) << irq);
91 ____raw_writeq(cur_ints, IOADDR(A_BCM1480_IMR_MAPPER(cpu) + R_BCM1480_IMR_INTERRUPT_MASK_H + hl_spacing)); 90 ____raw_writeq(cur_ints, IOADDR(A_BCM1480_IMR_MAPPER(cpu) + R_BCM1480_IMR_INTERRUPT_MASK_H + hl_spacing));
92 spin_unlock_irqrestore(&bcm1480_imr_lock, flags); 91 raw_spin_unlock_irqrestore(&bcm1480_imr_lock, flags);
93} 92}
94 93
95void bcm1480_unmask_irq(int cpu, int irq) 94void bcm1480_unmask_irq(int cpu, int irq)
@@ -97,7 +96,7 @@ void bcm1480_unmask_irq(int cpu, int irq)
97 unsigned long flags, hl_spacing; 96 unsigned long flags, hl_spacing;
98 u64 cur_ints; 97 u64 cur_ints;
99 98
100 spin_lock_irqsave(&bcm1480_imr_lock, flags); 99 raw_spin_lock_irqsave(&bcm1480_imr_lock, flags);
101 hl_spacing = 0; 100 hl_spacing = 0;
102 if ((irq >= BCM1480_NR_IRQS_HALF) && (irq <= BCM1480_NR_IRQS)) { 101 if ((irq >= BCM1480_NR_IRQS_HALF) && (irq <= BCM1480_NR_IRQS)) {
103 hl_spacing = BCM1480_IMR_HL_SPACING; 102 hl_spacing = BCM1480_IMR_HL_SPACING;
@@ -106,7 +105,7 @@ void bcm1480_unmask_irq(int cpu, int irq)
106 cur_ints = ____raw_readq(IOADDR(A_BCM1480_IMR_MAPPER(cpu) + R_BCM1480_IMR_INTERRUPT_MASK_H + hl_spacing)); 105 cur_ints = ____raw_readq(IOADDR(A_BCM1480_IMR_MAPPER(cpu) + R_BCM1480_IMR_INTERRUPT_MASK_H + hl_spacing));
107 cur_ints &= ~(((u64) 1) << irq); 106 cur_ints &= ~(((u64) 1) << irq);
108 ____raw_writeq(cur_ints, IOADDR(A_BCM1480_IMR_MAPPER(cpu) + R_BCM1480_IMR_INTERRUPT_MASK_H + hl_spacing)); 107 ____raw_writeq(cur_ints, IOADDR(A_BCM1480_IMR_MAPPER(cpu) + R_BCM1480_IMR_INTERRUPT_MASK_H + hl_spacing));
109 spin_unlock_irqrestore(&bcm1480_imr_lock, flags); 108 raw_spin_unlock_irqrestore(&bcm1480_imr_lock, flags);
110} 109}
111 110
112#ifdef CONFIG_SMP 111#ifdef CONFIG_SMP
@@ -123,7 +122,7 @@ static int bcm1480_set_affinity(unsigned int irq, const struct cpumask *mask)
123 cpu = cpu_logical_map(i); 122 cpu = cpu_logical_map(i);
124 123
125 /* Protect against other affinity changers and IMR manipulation */ 124 /* Protect against other affinity changers and IMR manipulation */
126 spin_lock_irqsave(&bcm1480_imr_lock, flags); 125 raw_spin_lock_irqsave(&bcm1480_imr_lock, flags);
127 126
128 /* Swizzle each CPU's IMR (but leave the IP selection alone) */ 127 /* Swizzle each CPU's IMR (but leave the IP selection alone) */
129 old_cpu = bcm1480_irq_owner[irq]; 128 old_cpu = bcm1480_irq_owner[irq];
@@ -148,7 +147,7 @@ static int bcm1480_set_affinity(unsigned int irq, const struct cpumask *mask)
148 ____raw_writeq(cur_ints, IOADDR(A_BCM1480_IMR_MAPPER(cpu) + R_BCM1480_IMR_INTERRUPT_MASK_H + (k*BCM1480_IMR_HL_SPACING))); 147 ____raw_writeq(cur_ints, IOADDR(A_BCM1480_IMR_MAPPER(cpu) + R_BCM1480_IMR_INTERRUPT_MASK_H + (k*BCM1480_IMR_HL_SPACING)));
149 } 148 }
150 } 149 }
151 spin_unlock_irqrestore(&bcm1480_imr_lock, flags); 150 raw_spin_unlock_irqrestore(&bcm1480_imr_lock, flags);
152 151
153 return 0; 152 return 0;
154} 153}
diff --git a/arch/mips/sibyte/common/cfe.c b/arch/mips/sibyte/common/cfe.c
index eb5396cf81bb..6343011e9902 100644
--- a/arch/mips/sibyte/common/cfe.c
+++ b/arch/mips/sibyte/common/cfe.c
@@ -287,7 +287,7 @@ void __init prom_init(void)
287 * boot console 287 * boot console
288 */ 288 */
289 cfe_cons_handle = cfe_getstdhandle(CFE_STDHANDLE_CONSOLE); 289 cfe_cons_handle = cfe_getstdhandle(CFE_STDHANDLE_CONSOLE);
290 if (cfe_getenv("LINUX_CMDLINE", arcs_cmdline, CL_SIZE) < 0) { 290 if (cfe_getenv("LINUX_CMDLINE", arcs_cmdline, COMMAND_LINE_SIZE) < 0) {
291 if (argc >= 0) { 291 if (argc >= 0) {
292 /* The loader should have set the command line */ 292 /* The loader should have set the command line */
293 /* too early for panic to do any good */ 293 /* too early for panic to do any good */
@@ -318,7 +318,7 @@ void __init prom_init(void)
318#endif /* CONFIG_BLK_DEV_INITRD */ 318#endif /* CONFIG_BLK_DEV_INITRD */
319 319
320 /* Not sure this is needed, but it's the safe way. */ 320 /* Not sure this is needed, but it's the safe way. */
321 arcs_cmdline[CL_SIZE-1] = 0; 321 arcs_cmdline[COMMAND_LINE_SIZE-1] = 0;
322 322
323 prom_meminit(); 323 prom_meminit();
324 324
diff --git a/arch/mips/sibyte/common/sb_tbprof.c b/arch/mips/sibyte/common/sb_tbprof.c
index 15ea778b5e66..d4ed7a9156f5 100644
--- a/arch/mips/sibyte/common/sb_tbprof.c
+++ b/arch/mips/sibyte/common/sb_tbprof.c
@@ -27,8 +27,6 @@
27#include <linux/types.h> 27#include <linux/types.h>
28#include <linux/init.h> 28#include <linux/init.h>
29#include <linux/interrupt.h> 29#include <linux/interrupt.h>
30#include <linux/slab.h>
31#include <linux/smp_lock.h>
32#include <linux/vmalloc.h> 30#include <linux/vmalloc.h>
33#include <linux/fs.h> 31#include <linux/fs.h>
34#include <linux/errno.h> 32#include <linux/errno.h>
diff --git a/arch/mips/sibyte/sb1250/irq.c b/arch/mips/sibyte/sb1250/irq.c
index 5e7f2016cceb..62371f772553 100644
--- a/arch/mips/sibyte/sb1250/irq.c
+++ b/arch/mips/sibyte/sb1250/irq.c
@@ -22,7 +22,6 @@
22#include <linux/spinlock.h> 22#include <linux/spinlock.h>
23#include <linux/smp.h> 23#include <linux/smp.h>
24#include <linux/mm.h> 24#include <linux/mm.h>
25#include <linux/slab.h>
26#include <linux/kernel_stat.h> 25#include <linux/kernel_stat.h>
27 26
28#include <asm/errno.h> 27#include <asm/errno.h>
@@ -72,20 +71,20 @@ static struct irq_chip sb1250_irq_type = {
72/* Store the CPU id (not the logical number) */ 71/* Store the CPU id (not the logical number) */
73int sb1250_irq_owner[SB1250_NR_IRQS]; 72int sb1250_irq_owner[SB1250_NR_IRQS];
74 73
75DEFINE_SPINLOCK(sb1250_imr_lock); 74static DEFINE_RAW_SPINLOCK(sb1250_imr_lock);
76 75
77void sb1250_mask_irq(int cpu, int irq) 76void sb1250_mask_irq(int cpu, int irq)
78{ 77{
79 unsigned long flags; 78 unsigned long flags;
80 u64 cur_ints; 79 u64 cur_ints;
81 80
82 spin_lock_irqsave(&sb1250_imr_lock, flags); 81 raw_spin_lock_irqsave(&sb1250_imr_lock, flags);
83 cur_ints = ____raw_readq(IOADDR(A_IMR_MAPPER(cpu) + 82 cur_ints = ____raw_readq(IOADDR(A_IMR_MAPPER(cpu) +
84 R_IMR_INTERRUPT_MASK)); 83 R_IMR_INTERRUPT_MASK));
85 cur_ints |= (((u64) 1) << irq); 84 cur_ints |= (((u64) 1) << irq);
86 ____raw_writeq(cur_ints, IOADDR(A_IMR_MAPPER(cpu) + 85 ____raw_writeq(cur_ints, IOADDR(A_IMR_MAPPER(cpu) +
87 R_IMR_INTERRUPT_MASK)); 86 R_IMR_INTERRUPT_MASK));
88 spin_unlock_irqrestore(&sb1250_imr_lock, flags); 87 raw_spin_unlock_irqrestore(&sb1250_imr_lock, flags);
89} 88}
90 89
91void sb1250_unmask_irq(int cpu, int irq) 90void sb1250_unmask_irq(int cpu, int irq)
@@ -93,13 +92,13 @@ void sb1250_unmask_irq(int cpu, int irq)
93 unsigned long flags; 92 unsigned long flags;
94 u64 cur_ints; 93 u64 cur_ints;
95 94
96 spin_lock_irqsave(&sb1250_imr_lock, flags); 95 raw_spin_lock_irqsave(&sb1250_imr_lock, flags);
97 cur_ints = ____raw_readq(IOADDR(A_IMR_MAPPER(cpu) + 96 cur_ints = ____raw_readq(IOADDR(A_IMR_MAPPER(cpu) +
98 R_IMR_INTERRUPT_MASK)); 97 R_IMR_INTERRUPT_MASK));
99 cur_ints &= ~(((u64) 1) << irq); 98 cur_ints &= ~(((u64) 1) << irq);
100 ____raw_writeq(cur_ints, IOADDR(A_IMR_MAPPER(cpu) + 99 ____raw_writeq(cur_ints, IOADDR(A_IMR_MAPPER(cpu) +
101 R_IMR_INTERRUPT_MASK)); 100 R_IMR_INTERRUPT_MASK));
102 spin_unlock_irqrestore(&sb1250_imr_lock, flags); 101 raw_spin_unlock_irqrestore(&sb1250_imr_lock, flags);
103} 102}
104 103
105#ifdef CONFIG_SMP 104#ifdef CONFIG_SMP
@@ -115,7 +114,7 @@ static int sb1250_set_affinity(unsigned int irq, const struct cpumask *mask)
115 cpu = cpu_logical_map(i); 114 cpu = cpu_logical_map(i);
116 115
117 /* Protect against other affinity changers and IMR manipulation */ 116 /* Protect against other affinity changers and IMR manipulation */
118 spin_lock_irqsave(&sb1250_imr_lock, flags); 117 raw_spin_lock_irqsave(&sb1250_imr_lock, flags);
119 118
120 /* Swizzle each CPU's IMR (but leave the IP selection alone) */ 119 /* Swizzle each CPU's IMR (but leave the IP selection alone) */
121 old_cpu = sb1250_irq_owner[irq]; 120 old_cpu = sb1250_irq_owner[irq];
@@ -137,7 +136,7 @@ static int sb1250_set_affinity(unsigned int irq, const struct cpumask *mask)
137 ____raw_writeq(cur_ints, IOADDR(A_IMR_MAPPER(cpu) + 136 ____raw_writeq(cur_ints, IOADDR(A_IMR_MAPPER(cpu) +
138 R_IMR_INTERRUPT_MASK)); 137 R_IMR_INTERRUPT_MASK));
139 } 138 }
140 spin_unlock_irqrestore(&sb1250_imr_lock, flags); 139 raw_spin_unlock_irqrestore(&sb1250_imr_lock, flags);
141 140
142 return 0; 141 return 0;
143} 142}
diff --git a/arch/mips/sibyte/sb1250/setup.c b/arch/mips/sibyte/sb1250/setup.c
index 0444da1e23c2..92da3155ce07 100644
--- a/arch/mips/sibyte/sb1250/setup.c
+++ b/arch/mips/sibyte/sb1250/setup.c
@@ -87,6 +87,21 @@ static int __init setup_bcm1250(void)
87 return ret; 87 return ret;
88} 88}
89 89
90int sb1250_m3_workaround_needed(void)
91{
92 switch (soc_type) {
93 case K_SYS_SOC_TYPE_BCM1250:
94 case K_SYS_SOC_TYPE_BCM1250_ALT:
95 case K_SYS_SOC_TYPE_BCM1250_ALT2:
96 case K_SYS_SOC_TYPE_BCM1125:
97 case K_SYS_SOC_TYPE_BCM1125H:
98 return soc_pass < K_SYS_REVISION_BCM1250_C0;
99
100 default:
101 return 0;
102 }
103}
104
90static int __init setup_bcm112x(void) 105static int __init setup_bcm112x(void)
91{ 106{
92 int ret = 0; 107 int ret = 0;
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
diff --git a/arch/mips/sni/a20r.c b/arch/mips/sni/a20r.c
index 7dd76fb3b645..e6980892834a 100644
--- a/arch/mips/sni/a20r.c
+++ b/arch/mips/sni/a20r.c
@@ -188,7 +188,7 @@ static void end_a20r_irq(unsigned int irq)
188} 188}
189 189
190static struct irq_chip a20r_irq_type = { 190static struct irq_chip a20r_irq_type = {
191 .typename = "A20R", 191 .name = "A20R",
192 .ack = mask_a20r_irq, 192 .ack = mask_a20r_irq,
193 .mask = mask_a20r_irq, 193 .mask = mask_a20r_irq,
194 .mask_ack = mask_a20r_irq, 194 .mask_ack = mask_a20r_irq,
diff --git a/arch/mips/sni/pcimt.c b/arch/mips/sni/pcimt.c
index 74e6c67982fb..51e62bbaa23b 100644
--- a/arch/mips/sni/pcimt.c
+++ b/arch/mips/sni/pcimt.c
@@ -214,7 +214,7 @@ static void end_pcimt_irq(unsigned int irq)
214} 214}
215 215
216static struct irq_chip pcimt_irq_type = { 216static struct irq_chip pcimt_irq_type = {
217 .typename = "PCIMT", 217 .name = "PCIMT",
218 .ack = disable_pcimt_irq, 218 .ack = disable_pcimt_irq,
219 .mask = disable_pcimt_irq, 219 .mask = disable_pcimt_irq,
220 .mask_ack = disable_pcimt_irq, 220 .mask_ack = disable_pcimt_irq,
diff --git a/arch/mips/sni/pcit.c b/arch/mips/sni/pcit.c
index 071a9573ac7f..f4699d35858b 100644
--- a/arch/mips/sni/pcit.c
+++ b/arch/mips/sni/pcit.c
@@ -176,7 +176,7 @@ void end_pcit_irq(unsigned int irq)
176} 176}
177 177
178static struct irq_chip pcit_irq_type = { 178static struct irq_chip pcit_irq_type = {
179 .typename = "PCIT", 179 .name = "PCIT",
180 .ack = disable_pcit_irq, 180 .ack = disable_pcit_irq,
181 .mask = disable_pcit_irq, 181 .mask = disable_pcit_irq,
182 .mask_ack = disable_pcit_irq, 182 .mask_ack = disable_pcit_irq,
diff --git a/arch/mips/sni/rm200.c b/arch/mips/sni/rm200.c
index 5e687819cbc2..90c558f7c0fa 100644
--- a/arch/mips/sni/rm200.c
+++ b/arch/mips/sni/rm200.c
@@ -132,7 +132,7 @@ device_initcall(snirm_setup_devinit);
132 * readb/writeb to access them 132 * readb/writeb to access them
133 */ 133 */
134 134
135DEFINE_SPINLOCK(sni_rm200_i8259A_lock); 135static DEFINE_RAW_SPINLOCK(sni_rm200_i8259A_lock);
136#define PIC_CMD 0x00 136#define PIC_CMD 0x00
137#define PIC_IMR 0x01 137#define PIC_IMR 0x01
138#define PIC_ISR PIC_CMD 138#define PIC_ISR PIC_CMD
@@ -161,13 +161,13 @@ static void sni_rm200_disable_8259A_irq(unsigned int irq)
161 161
162 irq -= RM200_I8259A_IRQ_BASE; 162 irq -= RM200_I8259A_IRQ_BASE;
163 mask = 1 << irq; 163 mask = 1 << irq;
164 spin_lock_irqsave(&sni_rm200_i8259A_lock, flags); 164 raw_spin_lock_irqsave(&sni_rm200_i8259A_lock, flags);
165 rm200_cached_irq_mask |= mask; 165 rm200_cached_irq_mask |= mask;
166 if (irq & 8) 166 if (irq & 8)
167 writeb(cached_slave_mask, rm200_pic_slave + PIC_IMR); 167 writeb(cached_slave_mask, rm200_pic_slave + PIC_IMR);
168 else 168 else
169 writeb(cached_master_mask, rm200_pic_master + PIC_IMR); 169 writeb(cached_master_mask, rm200_pic_master + PIC_IMR);
170 spin_unlock_irqrestore(&sni_rm200_i8259A_lock, flags); 170 raw_spin_unlock_irqrestore(&sni_rm200_i8259A_lock, flags);
171} 171}
172 172
173static void sni_rm200_enable_8259A_irq(unsigned int irq) 173static void sni_rm200_enable_8259A_irq(unsigned int irq)
@@ -177,13 +177,13 @@ static void sni_rm200_enable_8259A_irq(unsigned int irq)
177 177
178 irq -= RM200_I8259A_IRQ_BASE; 178 irq -= RM200_I8259A_IRQ_BASE;
179 mask = ~(1 << irq); 179 mask = ~(1 << irq);
180 spin_lock_irqsave(&sni_rm200_i8259A_lock, flags); 180 raw_spin_lock_irqsave(&sni_rm200_i8259A_lock, flags);
181 rm200_cached_irq_mask &= mask; 181 rm200_cached_irq_mask &= mask;
182 if (irq & 8) 182 if (irq & 8)
183 writeb(cached_slave_mask, rm200_pic_slave + PIC_IMR); 183 writeb(cached_slave_mask, rm200_pic_slave + PIC_IMR);
184 else 184 else
185 writeb(cached_master_mask, rm200_pic_master + PIC_IMR); 185 writeb(cached_master_mask, rm200_pic_master + PIC_IMR);
186 spin_unlock_irqrestore(&sni_rm200_i8259A_lock, flags); 186 raw_spin_unlock_irqrestore(&sni_rm200_i8259A_lock, flags);
187} 187}
188 188
189static inline int sni_rm200_i8259A_irq_real(unsigned int irq) 189static inline int sni_rm200_i8259A_irq_real(unsigned int irq)
@@ -216,7 +216,7 @@ void sni_rm200_mask_and_ack_8259A(unsigned int irq)
216 216
217 irq -= RM200_I8259A_IRQ_BASE; 217 irq -= RM200_I8259A_IRQ_BASE;
218 irqmask = 1 << irq; 218 irqmask = 1 << irq;
219 spin_lock_irqsave(&sni_rm200_i8259A_lock, flags); 219 raw_spin_lock_irqsave(&sni_rm200_i8259A_lock, flags);
220 /* 220 /*
221 * Lightweight spurious IRQ detection. We do not want 221 * Lightweight spurious IRQ detection. We do not want
222 * to overdo spurious IRQ handling - it's usually a sign 222 * to overdo spurious IRQ handling - it's usually a sign
@@ -247,7 +247,7 @@ handle_real_irq:
247 writeb(cached_master_mask, rm200_pic_master + PIC_IMR); 247 writeb(cached_master_mask, rm200_pic_master + PIC_IMR);
248 writeb(0x60+irq, rm200_pic_master + PIC_CMD); 248 writeb(0x60+irq, rm200_pic_master + PIC_CMD);
249 } 249 }
250 spin_unlock_irqrestore(&sni_rm200_i8259A_lock, flags); 250 raw_spin_unlock_irqrestore(&sni_rm200_i8259A_lock, flags);
251 return; 251 return;
252 252
253spurious_8259A_irq: 253spurious_8259A_irq:
@@ -298,7 +298,7 @@ static inline int sni_rm200_i8259_irq(void)
298{ 298{
299 int irq; 299 int irq;
300 300
301 spin_lock(&sni_rm200_i8259A_lock); 301 raw_spin_lock(&sni_rm200_i8259A_lock);
302 302
303 /* Perform an interrupt acknowledge cycle on controller 1. */ 303 /* Perform an interrupt acknowledge cycle on controller 1. */
304 writeb(0x0C, rm200_pic_master + PIC_CMD); /* prepare for poll */ 304 writeb(0x0C, rm200_pic_master + PIC_CMD); /* prepare for poll */
@@ -325,7 +325,7 @@ static inline int sni_rm200_i8259_irq(void)
325 irq = -1; 325 irq = -1;
326 } 326 }
327 327
328 spin_unlock(&sni_rm200_i8259A_lock); 328 raw_spin_unlock(&sni_rm200_i8259A_lock);
329 329
330 return likely(irq >= 0) ? irq + RM200_I8259A_IRQ_BASE : irq; 330 return likely(irq >= 0) ? irq + RM200_I8259A_IRQ_BASE : irq;
331} 331}
@@ -334,7 +334,7 @@ void sni_rm200_init_8259A(void)
334{ 334{
335 unsigned long flags; 335 unsigned long flags;
336 336
337 spin_lock_irqsave(&sni_rm200_i8259A_lock, flags); 337 raw_spin_lock_irqsave(&sni_rm200_i8259A_lock, flags);
338 338
339 writeb(0xff, rm200_pic_master + PIC_IMR); 339 writeb(0xff, rm200_pic_master + PIC_IMR);
340 writeb(0xff, rm200_pic_slave + PIC_IMR); 340 writeb(0xff, rm200_pic_slave + PIC_IMR);
@@ -352,7 +352,7 @@ void sni_rm200_init_8259A(void)
352 writeb(cached_master_mask, rm200_pic_master + PIC_IMR); 352 writeb(cached_master_mask, rm200_pic_master + PIC_IMR);
353 writeb(cached_slave_mask, rm200_pic_slave + PIC_IMR); 353 writeb(cached_slave_mask, rm200_pic_slave + PIC_IMR);
354 354
355 spin_unlock_irqrestore(&sni_rm200_i8259A_lock, flags); 355 raw_spin_unlock_irqrestore(&sni_rm200_i8259A_lock, flags);
356} 356}
357 357
358/* 358/*
@@ -404,7 +404,7 @@ void __init sni_rm200_i8259_irqs(void)
404 if (!rm200_pic_master) 404 if (!rm200_pic_master)
405 return; 405 return;
406 rm200_pic_slave = ioremap_nocache(0x160000a0, 4); 406 rm200_pic_slave = ioremap_nocache(0x160000a0, 4);
407 if (!rm200_pic_master) { 407 if (!rm200_pic_slave) {
408 iounmap(rm200_pic_master); 408 iounmap(rm200_pic_master);
409 return; 409 return;
410 } 410 }
@@ -449,7 +449,7 @@ void end_rm200_irq(unsigned int irq)
449} 449}
450 450
451static struct irq_chip rm200_irq_type = { 451static struct irq_chip rm200_irq_type = {
452 .typename = "RM200", 452 .name = "RM200",
453 .ack = disable_rm200_irq, 453 .ack = disable_rm200_irq,
454 .mask = disable_rm200_irq, 454 .mask = disable_rm200_irq,
455 .mask_ack = disable_rm200_irq, 455 .mask_ack = disable_rm200_irq,
diff --git a/arch/mips/sni/setup.c b/arch/mips/sni/setup.c
index a49272ce7ef5..d16b462154c3 100644
--- a/arch/mips/sni/setup.c
+++ b/arch/mips/sni/setup.c
@@ -60,7 +60,7 @@ static void __init sni_console_setup(void)
60 char *cdev; 60 char *cdev;
61 char *baud; 61 char *baud;
62 int port; 62 int port;
63 static char options[8]; 63 static char options[8] __initdata;
64 64
65 cdev = prom_getenv("console_dev"); 65 cdev = prom_getenv("console_dev");
66 if (strncmp(cdev, "tty", 3) == 0) { 66 if (strncmp(cdev, "tty", 3) == 0) {
diff --git a/arch/mips/txx9/generic/7segled.c b/arch/mips/txx9/generic/7segled.c
index 727ab21b6618..7f8416f86222 100644
--- a/arch/mips/txx9/generic/7segled.c
+++ b/arch/mips/txx9/generic/7segled.c
@@ -58,13 +58,16 @@ static ssize_t raw_store(struct sys_device *dev,
58static SYSDEV_ATTR(ascii, 0200, NULL, ascii_store); 58static SYSDEV_ATTR(ascii, 0200, NULL, ascii_store);
59static SYSDEV_ATTR(raw, 0200, NULL, raw_store); 59static SYSDEV_ATTR(raw, 0200, NULL, raw_store);
60 60
61static ssize_t map_seg7_show(struct sysdev_class *class, char *buf) 61static ssize_t map_seg7_show(struct sysdev_class *class,
62 struct sysdev_class_attribute *attr,
63 char *buf)
62{ 64{
63 memcpy(buf, &txx9_seg7map, sizeof(txx9_seg7map)); 65 memcpy(buf, &txx9_seg7map, sizeof(txx9_seg7map));
64 return sizeof(txx9_seg7map); 66 return sizeof(txx9_seg7map);
65} 67}
66 68
67static ssize_t map_seg7_store(struct sysdev_class *class, 69static ssize_t map_seg7_store(struct sysdev_class *class,
70 struct sysdev_class_attribute *attr,
68 const char *buf, size_t size) 71 const char *buf, size_t size)
69{ 72{
70 if (size != sizeof(txx9_seg7map)) 73 if (size != sizeof(txx9_seg7map))
diff --git a/arch/mips/txx9/generic/pci.c b/arch/mips/txx9/generic/pci.c
index 707cfa9c547d..9a0be810cafa 100644
--- a/arch/mips/txx9/generic/pci.c
+++ b/arch/mips/txx9/generic/pci.c
@@ -20,6 +20,7 @@
20#include <asm/txx9/pci.h> 20#include <asm/txx9/pci.h>
21#ifdef CONFIG_TOSHIBA_FPCIB0 21#ifdef CONFIG_TOSHIBA_FPCIB0
22#include <linux/interrupt.h> 22#include <linux/interrupt.h>
23#include <linux/slab.h>
23#include <asm/i8259.h> 24#include <asm/i8259.h>
24#include <asm/txx9/smsc_fdc37m81x.h> 25#include <asm/txx9/smsc_fdc37m81x.h>
25#endif 26#endif
diff --git a/arch/mips/txx9/generic/setup.c b/arch/mips/txx9/generic/setup.c
index d66802edebb2..adc69291f9e2 100644
--- a/arch/mips/txx9/generic/setup.c
+++ b/arch/mips/txx9/generic/setup.c
@@ -23,6 +23,7 @@
23#include <linux/mtd/physmap.h> 23#include <linux/mtd/physmap.h>
24#include <linux/leds.h> 24#include <linux/leds.h>
25#include <linux/sysdev.h> 25#include <linux/sysdev.h>
26#include <linux/slab.h>
26#include <asm/bootinfo.h> 27#include <asm/bootinfo.h>
27#include <asm/time.h> 28#include <asm/time.h>
28#include <asm/reboot.h> 29#include <asm/reboot.h>
@@ -160,7 +161,6 @@ static void __init prom_init_cmdline(void)
160 int argc; 161 int argc;
161 int *argv32; 162 int *argv32;
162 int i; /* Always ignore the "-c" at argv[0] */ 163 int i; /* Always ignore the "-c" at argv[0] */
163 static char builtin[CL_SIZE] __initdata;
164 164
165 if (fw_arg0 >= CKSEG0 || fw_arg1 < CKSEG0) { 165 if (fw_arg0 >= CKSEG0 || fw_arg1 < CKSEG0) {
166 /* 166 /*
@@ -174,20 +174,6 @@ static void __init prom_init_cmdline(void)
174 argv32 = (int *)fw_arg1; 174 argv32 = (int *)fw_arg1;
175 } 175 }
176 176
177 /* ignore all built-in args if any f/w args given */
178 /*
179 * But if built-in strings was started with '+', append them
180 * to command line args. If built-in was started with '-',
181 * ignore all f/w args.
182 */
183 builtin[0] = '\0';
184 if (arcs_cmdline[0] == '+')
185 strcpy(builtin, arcs_cmdline + 1);
186 else if (arcs_cmdline[0] == '-') {
187 strcpy(builtin, arcs_cmdline + 1);
188 argc = 0;
189 } else if (argc <= 1)
190 strcpy(builtin, arcs_cmdline);
191 arcs_cmdline[0] = '\0'; 177 arcs_cmdline[0] = '\0';
192 178
193 for (i = 1; i < argc; i++) { 179 for (i = 1; i < argc; i++) {
@@ -201,12 +187,6 @@ static void __init prom_init_cmdline(void)
201 } else 187 } else
202 strcat(arcs_cmdline, str); 188 strcat(arcs_cmdline, str);
203 } 189 }
204 /* append saved builtin args */
205 if (builtin[0]) {
206 if (arcs_cmdline[0])
207 strcat(arcs_cmdline, " ");
208 strcat(arcs_cmdline, builtin);
209 }
210} 190}
211 191
212static int txx9_ic_disable __initdata; 192static int txx9_ic_disable __initdata;
@@ -315,7 +295,7 @@ static inline void txx9_cache_fixup(void)
315 295
316static void __init preprocess_cmdline(void) 296static void __init preprocess_cmdline(void)
317{ 297{
318 static char cmdline[CL_SIZE] __initdata; 298 static char cmdline[COMMAND_LINE_SIZE] __initdata;
319 char *s; 299 char *s;
320 300
321 strcpy(cmdline, arcs_cmdline); 301 strcpy(cmdline, arcs_cmdline);
@@ -420,11 +400,6 @@ const char *get_system_type(void)
420 return txx9_system_type; 400 return txx9_system_type;
421} 401}
422 402
423char * __init prom_getcmdline(void)
424{
425 return &(arcs_cmdline[0]);
426}
427
428const char *__init prom_getenv(const char *name) 403const char *__init prom_getenv(const char *name)
429{ 404{
430 const s32 *str; 405 const s32 *str;
@@ -982,6 +957,7 @@ void __init txx9_sramc_init(struct resource *r)
982 if (!dev->base) 957 if (!dev->base)
983 goto exit; 958 goto exit;
984 dev->dev.cls = &txx9_sramc_sysdev_class; 959 dev->dev.cls = &txx9_sramc_sysdev_class;
960 sysfs_bin_attr_init(&dev->bindata_attr);
985 dev->bindata_attr.attr.name = "bindata"; 961 dev->bindata_attr.attr.name = "bindata";
986 dev->bindata_attr.attr.mode = S_IRUSR | S_IWUSR; 962 dev->bindata_attr.attr.mode = S_IRUSR | S_IWUSR;
987 dev->bindata_attr.read = txx9_sram_read; 963 dev->bindata_attr.read = txx9_sram_read;
diff --git a/arch/mips/txx9/generic/smsc_fdc37m81x.c b/arch/mips/txx9/generic/smsc_fdc37m81x.c
index a2b2d62d88e3..8ebc3848f3ac 100644
--- a/arch/mips/txx9/generic/smsc_fdc37m81x.c
+++ b/arch/mips/txx9/generic/smsc_fdc37m81x.c
@@ -117,7 +117,7 @@ unsigned long __init smsc_fdc37m81x_init(unsigned long port)
117 if (chip_id == SMSC_FDC37M81X_CHIP_ID) 117 if (chip_id == SMSC_FDC37M81X_CHIP_ID)
118 smsc_fdc37m81x_config_end(); 118 smsc_fdc37m81x_config_end();
119 else { 119 else {
120 printk(KERN_WARNING "%s: unknow chip id 0x%02x\n", __func__, 120 printk(KERN_WARNING "%s: unknown chip id 0x%02x\n", __func__,
121 chip_id); 121 chip_id);
122 g_smsc_fdc37m81x_base = 0; 122 g_smsc_fdc37m81x_base = 0;
123 } 123 }
diff --git a/arch/mips/txx9/generic/spi_eeprom.c b/arch/mips/txx9/generic/spi_eeprom.c
index 75c347238f47..103abc13d623 100644
--- a/arch/mips/txx9/generic/spi_eeprom.c
+++ b/arch/mips/txx9/generic/spi_eeprom.c
@@ -10,6 +10,7 @@
10 * Support for TX4938 in 2.6 - Manish Lachwani (mlachwani@mvista.com) 10 * Support for TX4938 in 2.6 - Manish Lachwani (mlachwani@mvista.com)
11 */ 11 */
12#include <linux/init.h> 12#include <linux/init.h>
13#include <linux/slab.h>
13#include <linux/device.h> 14#include <linux/device.h>
14#include <linux/spi/spi.h> 15#include <linux/spi/spi.h>
15#include <linux/spi/eeprom.h> 16#include <linux/spi/eeprom.h>
diff --git a/arch/mips/txx9/jmr3927/setup.c b/arch/mips/txx9/jmr3927/setup.c
index 25e50a7be387..3206f76f300b 100644
--- a/arch/mips/txx9/jmr3927/setup.c
+++ b/arch/mips/txx9/jmr3927/setup.c
@@ -67,8 +67,6 @@ static void jmr3927_board_init(void);
67 67
68static void __init jmr3927_mem_setup(void) 68static void __init jmr3927_mem_setup(void)
69{ 69{
70 char *argptr;
71
72 set_io_port_base(JMR3927_PORT_BASE + JMR3927_PCIIO); 70 set_io_port_base(JMR3927_PORT_BASE + JMR3927_PCIIO);
73 71
74 _machine_restart = jmr3927_machine_restart; 72 _machine_restart = jmr3927_machine_restart;
@@ -97,11 +95,6 @@ static void __init jmr3927_mem_setup(void)
97 jmr3927_board_init(); 95 jmr3927_board_init();
98 96
99 tx3927_sio_init(0, 1 << 1); /* ch1: noCTS */ 97 tx3927_sio_init(0, 1 << 1); /* ch1: noCTS */
100#ifdef CONFIG_SERIAL_TXX9_CONSOLE
101 argptr = prom_getcmdline();
102 if (!strstr(argptr, "console="))
103 strcat(argptr, " console=ttyS1,115200");
104#endif
105} 98}
106 99
107static void __init jmr3927_pci_setup(void) 100static void __init jmr3927_pci_setup(void)
diff --git a/arch/mips/txx9/rbtx4927/setup.c b/arch/mips/txx9/rbtx4927/setup.c
index ee468eaee4f7..b15adfc2d726 100644
--- a/arch/mips/txx9/rbtx4927/setup.c
+++ b/arch/mips/txx9/rbtx4927/setup.c
@@ -187,8 +187,6 @@ static void __init rbtx4937_clock_init(void);
187 187
188static void __init rbtx4927_mem_setup(void) 188static void __init rbtx4927_mem_setup(void)
189{ 189{
190 char *argptr;
191
192 if (TX4927_REV_PCODE() == 0x4927) { 190 if (TX4927_REV_PCODE() == 0x4927) {
193 rbtx4927_clock_init(); 191 rbtx4927_clock_init();
194 tx4927_setup(); 192 tx4927_setup();
@@ -213,11 +211,6 @@ static void __init rbtx4927_mem_setup(void)
213 gpio_direction_output(15, 1); 211 gpio_direction_output(15, 1);
214 212
215 tx4927_sio_init(0, 0); 213 tx4927_sio_init(0, 0);
216#ifdef CONFIG_SERIAL_TXX9_CONSOLE
217 argptr = prom_getcmdline();
218 if (!strstr(argptr, "console="))
219 strcat(argptr, " console=ttyS0,38400");
220#endif
221} 214}
222 215
223static void __init rbtx4927_clock_init(void) 216static void __init rbtx4927_clock_init(void)
diff --git a/arch/mips/txx9/rbtx4938/setup.c b/arch/mips/txx9/rbtx4938/setup.c
index d66509b14284..d6e70dab3bd3 100644
--- a/arch/mips/txx9/rbtx4938/setup.c
+++ b/arch/mips/txx9/rbtx4938/setup.c
@@ -153,7 +153,6 @@ static void __init rbtx4938_time_init(void)
153static void __init rbtx4938_mem_setup(void) 153static void __init rbtx4938_mem_setup(void)
154{ 154{
155 unsigned long long pcfg; 155 unsigned long long pcfg;
156 char *argptr;
157 156
158 if (txx9_master_clock == 0) 157 if (txx9_master_clock == 0)
159 txx9_master_clock = 25000000; /* 25MHz */ 158 txx9_master_clock = 25000000; /* 25MHz */
@@ -168,11 +167,6 @@ static void __init rbtx4938_mem_setup(void)
168#endif 167#endif
169 168
170 tx4938_sio_init(7372800, 0); 169 tx4938_sio_init(7372800, 0);
171#ifdef CONFIG_SERIAL_TXX9_CONSOLE
172 argptr = prom_getcmdline();
173 if (!strstr(argptr, "console="))
174 strcat(argptr, " console=ttyS0,38400");
175#endif
176 170
177#ifdef CONFIG_TOSHIBA_RBTX4938_MPLEX_PIO58_61 171#ifdef CONFIG_TOSHIBA_RBTX4938_MPLEX_PIO58_61
178 pr_info("PIOSEL: disabling both ATA and NAND selection\n"); 172 pr_info("PIOSEL: disabling both ATA and NAND selection\n");
diff --git a/arch/mips/txx9/rbtx4939/setup.c b/arch/mips/txx9/rbtx4939/setup.c
index b0c241ecf603..7dc0fafbec80 100644
--- a/arch/mips/txx9/rbtx4939/setup.c
+++ b/arch/mips/txx9/rbtx4939/setup.c
@@ -12,6 +12,7 @@
12#include <linux/init.h> 12#include <linux/init.h>
13#include <linux/kernel.h> 13#include <linux/kernel.h>
14#include <linux/types.h> 14#include <linux/types.h>
15#include <linux/slab.h>
15#include <linux/platform_device.h> 16#include <linux/platform_device.h>
16#include <linux/leds.h> 17#include <linux/leds.h>
17#include <linux/interrupt.h> 18#include <linux/interrupt.h>
diff --git a/arch/mips/vr41xx/common/icu.c b/arch/mips/vr41xx/common/icu.c
index 6d39e222b170..6153b6a05ccf 100644
--- a/arch/mips/vr41xx/common/icu.c
+++ b/arch/mips/vr41xx/common/icu.c
@@ -159,9 +159,9 @@ void vr41xx_enable_piuint(uint16_t mask)
159 159
160 if (current_cpu_type() == CPU_VR4111 || 160 if (current_cpu_type() == CPU_VR4111 ||
161 current_cpu_type() == CPU_VR4121) { 161 current_cpu_type() == CPU_VR4121) {
162 spin_lock_irqsave(&desc->lock, flags); 162 raw_spin_lock_irqsave(&desc->lock, flags);
163 icu1_set(MPIUINTREG, mask); 163 icu1_set(MPIUINTREG, mask);
164 spin_unlock_irqrestore(&desc->lock, flags); 164 raw_spin_unlock_irqrestore(&desc->lock, flags);
165 } 165 }
166} 166}
167 167
@@ -174,9 +174,9 @@ void vr41xx_disable_piuint(uint16_t mask)
174 174
175 if (current_cpu_type() == CPU_VR4111 || 175 if (current_cpu_type() == CPU_VR4111 ||
176 current_cpu_type() == CPU_VR4121) { 176 current_cpu_type() == CPU_VR4121) {
177 spin_lock_irqsave(&desc->lock, flags); 177 raw_spin_lock_irqsave(&desc->lock, flags);
178 icu1_clear(MPIUINTREG, mask); 178 icu1_clear(MPIUINTREG, mask);
179 spin_unlock_irqrestore(&desc->lock, flags); 179 raw_spin_unlock_irqrestore(&desc->lock, flags);
180 } 180 }
181} 181}
182 182
@@ -189,9 +189,9 @@ void vr41xx_enable_aiuint(uint16_t mask)
189 189
190 if (current_cpu_type() == CPU_VR4111 || 190 if (current_cpu_type() == CPU_VR4111 ||
191 current_cpu_type() == CPU_VR4121) { 191 current_cpu_type() == CPU_VR4121) {
192 spin_lock_irqsave(&desc->lock, flags); 192 raw_spin_lock_irqsave(&desc->lock, flags);
193 icu1_set(MAIUINTREG, mask); 193 icu1_set(MAIUINTREG, mask);
194 spin_unlock_irqrestore(&desc->lock, flags); 194 raw_spin_unlock_irqrestore(&desc->lock, flags);
195 } 195 }
196} 196}
197 197
@@ -204,9 +204,9 @@ void vr41xx_disable_aiuint(uint16_t mask)
204 204
205 if (current_cpu_type() == CPU_VR4111 || 205 if (current_cpu_type() == CPU_VR4111 ||
206 current_cpu_type() == CPU_VR4121) { 206 current_cpu_type() == CPU_VR4121) {
207 spin_lock_irqsave(&desc->lock, flags); 207 raw_spin_lock_irqsave(&desc->lock, flags);
208 icu1_clear(MAIUINTREG, mask); 208 icu1_clear(MAIUINTREG, mask);
209 spin_unlock_irqrestore(&desc->lock, flags); 209 raw_spin_unlock_irqrestore(&desc->lock, flags);
210 } 210 }
211} 211}
212 212
@@ -219,9 +219,9 @@ void vr41xx_enable_kiuint(uint16_t mask)
219 219
220 if (current_cpu_type() == CPU_VR4111 || 220 if (current_cpu_type() == CPU_VR4111 ||
221 current_cpu_type() == CPU_VR4121) { 221 current_cpu_type() == CPU_VR4121) {
222 spin_lock_irqsave(&desc->lock, flags); 222 raw_spin_lock_irqsave(&desc->lock, flags);
223 icu1_set(MKIUINTREG, mask); 223 icu1_set(MKIUINTREG, mask);
224 spin_unlock_irqrestore(&desc->lock, flags); 224 raw_spin_unlock_irqrestore(&desc->lock, flags);
225 } 225 }
226} 226}
227 227
@@ -234,9 +234,9 @@ void vr41xx_disable_kiuint(uint16_t mask)
234 234
235 if (current_cpu_type() == CPU_VR4111 || 235 if (current_cpu_type() == CPU_VR4111 ||
236 current_cpu_type() == CPU_VR4121) { 236 current_cpu_type() == CPU_VR4121) {
237 spin_lock_irqsave(&desc->lock, flags); 237 raw_spin_lock_irqsave(&desc->lock, flags);
238 icu1_clear(MKIUINTREG, mask); 238 icu1_clear(MKIUINTREG, mask);
239 spin_unlock_irqrestore(&desc->lock, flags); 239 raw_spin_unlock_irqrestore(&desc->lock, flags);
240 } 240 }
241} 241}
242 242
@@ -247,9 +247,9 @@ void vr41xx_enable_macint(uint16_t mask)
247 struct irq_desc *desc = irq_desc + ETHERNET_IRQ; 247 struct irq_desc *desc = irq_desc + ETHERNET_IRQ;
248 unsigned long flags; 248 unsigned long flags;
249 249
250 spin_lock_irqsave(&desc->lock, flags); 250 raw_spin_lock_irqsave(&desc->lock, flags);
251 icu1_set(MMACINTREG, mask); 251 icu1_set(MMACINTREG, mask);
252 spin_unlock_irqrestore(&desc->lock, flags); 252 raw_spin_unlock_irqrestore(&desc->lock, flags);
253} 253}
254 254
255EXPORT_SYMBOL(vr41xx_enable_macint); 255EXPORT_SYMBOL(vr41xx_enable_macint);
@@ -259,9 +259,9 @@ void vr41xx_disable_macint(uint16_t mask)
259 struct irq_desc *desc = irq_desc + ETHERNET_IRQ; 259 struct irq_desc *desc = irq_desc + ETHERNET_IRQ;
260 unsigned long flags; 260 unsigned long flags;
261 261
262 spin_lock_irqsave(&desc->lock, flags); 262 raw_spin_lock_irqsave(&desc->lock, flags);
263 icu1_clear(MMACINTREG, mask); 263 icu1_clear(MMACINTREG, mask);
264 spin_unlock_irqrestore(&desc->lock, flags); 264 raw_spin_unlock_irqrestore(&desc->lock, flags);
265} 265}
266 266
267EXPORT_SYMBOL(vr41xx_disable_macint); 267EXPORT_SYMBOL(vr41xx_disable_macint);
@@ -271,9 +271,9 @@ void vr41xx_enable_dsiuint(uint16_t mask)
271 struct irq_desc *desc = irq_desc + DSIU_IRQ; 271 struct irq_desc *desc = irq_desc + DSIU_IRQ;
272 unsigned long flags; 272 unsigned long flags;
273 273
274 spin_lock_irqsave(&desc->lock, flags); 274 raw_spin_lock_irqsave(&desc->lock, flags);
275 icu1_set(MDSIUINTREG, mask); 275 icu1_set(MDSIUINTREG, mask);
276 spin_unlock_irqrestore(&desc->lock, flags); 276 raw_spin_unlock_irqrestore(&desc->lock, flags);
277} 277}
278 278
279EXPORT_SYMBOL(vr41xx_enable_dsiuint); 279EXPORT_SYMBOL(vr41xx_enable_dsiuint);
@@ -283,9 +283,9 @@ void vr41xx_disable_dsiuint(uint16_t mask)
283 struct irq_desc *desc = irq_desc + DSIU_IRQ; 283 struct irq_desc *desc = irq_desc + DSIU_IRQ;
284 unsigned long flags; 284 unsigned long flags;
285 285
286 spin_lock_irqsave(&desc->lock, flags); 286 raw_spin_lock_irqsave(&desc->lock, flags);
287 icu1_clear(MDSIUINTREG, mask); 287 icu1_clear(MDSIUINTREG, mask);
288 spin_unlock_irqrestore(&desc->lock, flags); 288 raw_spin_unlock_irqrestore(&desc->lock, flags);
289} 289}
290 290
291EXPORT_SYMBOL(vr41xx_disable_dsiuint); 291EXPORT_SYMBOL(vr41xx_disable_dsiuint);
@@ -295,9 +295,9 @@ void vr41xx_enable_firint(uint16_t mask)
295 struct irq_desc *desc = irq_desc + FIR_IRQ; 295 struct irq_desc *desc = irq_desc + FIR_IRQ;
296 unsigned long flags; 296 unsigned long flags;
297 297
298 spin_lock_irqsave(&desc->lock, flags); 298 raw_spin_lock_irqsave(&desc->lock, flags);
299 icu2_set(MFIRINTREG, mask); 299 icu2_set(MFIRINTREG, mask);
300 spin_unlock_irqrestore(&desc->lock, flags); 300 raw_spin_unlock_irqrestore(&desc->lock, flags);
301} 301}
302 302
303EXPORT_SYMBOL(vr41xx_enable_firint); 303EXPORT_SYMBOL(vr41xx_enable_firint);
@@ -307,9 +307,9 @@ void vr41xx_disable_firint(uint16_t mask)
307 struct irq_desc *desc = irq_desc + FIR_IRQ; 307 struct irq_desc *desc = irq_desc + FIR_IRQ;
308 unsigned long flags; 308 unsigned long flags;
309 309
310 spin_lock_irqsave(&desc->lock, flags); 310 raw_spin_lock_irqsave(&desc->lock, flags);
311 icu2_clear(MFIRINTREG, mask); 311 icu2_clear(MFIRINTREG, mask);
312 spin_unlock_irqrestore(&desc->lock, flags); 312 raw_spin_unlock_irqrestore(&desc->lock, flags);
313} 313}
314 314
315EXPORT_SYMBOL(vr41xx_disable_firint); 315EXPORT_SYMBOL(vr41xx_disable_firint);
@@ -322,9 +322,9 @@ void vr41xx_enable_pciint(void)
322 if (current_cpu_type() == CPU_VR4122 || 322 if (current_cpu_type() == CPU_VR4122 ||
323 current_cpu_type() == CPU_VR4131 || 323 current_cpu_type() == CPU_VR4131 ||
324 current_cpu_type() == CPU_VR4133) { 324 current_cpu_type() == CPU_VR4133) {
325 spin_lock_irqsave(&desc->lock, flags); 325 raw_spin_lock_irqsave(&desc->lock, flags);
326 icu2_write(MPCIINTREG, PCIINT0); 326 icu2_write(MPCIINTREG, PCIINT0);
327 spin_unlock_irqrestore(&desc->lock, flags); 327 raw_spin_unlock_irqrestore(&desc->lock, flags);
328 } 328 }
329} 329}
330 330
@@ -338,9 +338,9 @@ void vr41xx_disable_pciint(void)
338 if (current_cpu_type() == CPU_VR4122 || 338 if (current_cpu_type() == CPU_VR4122 ||
339 current_cpu_type() == CPU_VR4131 || 339 current_cpu_type() == CPU_VR4131 ||
340 current_cpu_type() == CPU_VR4133) { 340 current_cpu_type() == CPU_VR4133) {
341 spin_lock_irqsave(&desc->lock, flags); 341 raw_spin_lock_irqsave(&desc->lock, flags);
342 icu2_write(MPCIINTREG, 0); 342 icu2_write(MPCIINTREG, 0);
343 spin_unlock_irqrestore(&desc->lock, flags); 343 raw_spin_unlock_irqrestore(&desc->lock, flags);
344 } 344 }
345} 345}
346 346
@@ -354,9 +354,9 @@ void vr41xx_enable_scuint(void)
354 if (current_cpu_type() == CPU_VR4122 || 354 if (current_cpu_type() == CPU_VR4122 ||
355 current_cpu_type() == CPU_VR4131 || 355 current_cpu_type() == CPU_VR4131 ||
356 current_cpu_type() == CPU_VR4133) { 356 current_cpu_type() == CPU_VR4133) {
357 spin_lock_irqsave(&desc->lock, flags); 357 raw_spin_lock_irqsave(&desc->lock, flags);
358 icu2_write(MSCUINTREG, SCUINT0); 358 icu2_write(MSCUINTREG, SCUINT0);
359 spin_unlock_irqrestore(&desc->lock, flags); 359 raw_spin_unlock_irqrestore(&desc->lock, flags);
360 } 360 }
361} 361}
362 362
@@ -370,9 +370,9 @@ void vr41xx_disable_scuint(void)
370 if (current_cpu_type() == CPU_VR4122 || 370 if (current_cpu_type() == CPU_VR4122 ||
371 current_cpu_type() == CPU_VR4131 || 371 current_cpu_type() == CPU_VR4131 ||
372 current_cpu_type() == CPU_VR4133) { 372 current_cpu_type() == CPU_VR4133) {
373 spin_lock_irqsave(&desc->lock, flags); 373 raw_spin_lock_irqsave(&desc->lock, flags);
374 icu2_write(MSCUINTREG, 0); 374 icu2_write(MSCUINTREG, 0);
375 spin_unlock_irqrestore(&desc->lock, flags); 375 raw_spin_unlock_irqrestore(&desc->lock, flags);
376 } 376 }
377} 377}
378 378
@@ -386,9 +386,9 @@ void vr41xx_enable_csiint(uint16_t mask)
386 if (current_cpu_type() == CPU_VR4122 || 386 if (current_cpu_type() == CPU_VR4122 ||
387 current_cpu_type() == CPU_VR4131 || 387 current_cpu_type() == CPU_VR4131 ||
388 current_cpu_type() == CPU_VR4133) { 388 current_cpu_type() == CPU_VR4133) {
389 spin_lock_irqsave(&desc->lock, flags); 389 raw_spin_lock_irqsave(&desc->lock, flags);
390 icu2_set(MCSIINTREG, mask); 390 icu2_set(MCSIINTREG, mask);
391 spin_unlock_irqrestore(&desc->lock, flags); 391 raw_spin_unlock_irqrestore(&desc->lock, flags);
392 } 392 }
393} 393}
394 394
@@ -402,9 +402,9 @@ void vr41xx_disable_csiint(uint16_t mask)
402 if (current_cpu_type() == CPU_VR4122 || 402 if (current_cpu_type() == CPU_VR4122 ||
403 current_cpu_type() == CPU_VR4131 || 403 current_cpu_type() == CPU_VR4131 ||
404 current_cpu_type() == CPU_VR4133) { 404 current_cpu_type() == CPU_VR4133) {
405 spin_lock_irqsave(&desc->lock, flags); 405 raw_spin_lock_irqsave(&desc->lock, flags);
406 icu2_clear(MCSIINTREG, mask); 406 icu2_clear(MCSIINTREG, mask);
407 spin_unlock_irqrestore(&desc->lock, flags); 407 raw_spin_unlock_irqrestore(&desc->lock, flags);
408 } 408 }
409} 409}
410 410
@@ -418,9 +418,9 @@ void vr41xx_enable_bcuint(void)
418 if (current_cpu_type() == CPU_VR4122 || 418 if (current_cpu_type() == CPU_VR4122 ||
419 current_cpu_type() == CPU_VR4131 || 419 current_cpu_type() == CPU_VR4131 ||
420 current_cpu_type() == CPU_VR4133) { 420 current_cpu_type() == CPU_VR4133) {
421 spin_lock_irqsave(&desc->lock, flags); 421 raw_spin_lock_irqsave(&desc->lock, flags);
422 icu2_write(MBCUINTREG, BCUINTR); 422 icu2_write(MBCUINTREG, BCUINTR);
423 spin_unlock_irqrestore(&desc->lock, flags); 423 raw_spin_unlock_irqrestore(&desc->lock, flags);
424 } 424 }
425} 425}
426 426
@@ -434,9 +434,9 @@ void vr41xx_disable_bcuint(void)
434 if (current_cpu_type() == CPU_VR4122 || 434 if (current_cpu_type() == CPU_VR4122 ||
435 current_cpu_type() == CPU_VR4131 || 435 current_cpu_type() == CPU_VR4131 ||
436 current_cpu_type() == CPU_VR4133) { 436 current_cpu_type() == CPU_VR4133) {
437 spin_lock_irqsave(&desc->lock, flags); 437 raw_spin_lock_irqsave(&desc->lock, flags);
438 icu2_write(MBCUINTREG, 0); 438 icu2_write(MBCUINTREG, 0);
439 spin_unlock_irqrestore(&desc->lock, flags); 439 raw_spin_unlock_irqrestore(&desc->lock, flags);
440 } 440 }
441} 441}
442 442
@@ -486,7 +486,7 @@ static inline int set_sysint1_assign(unsigned int irq, unsigned char assign)
486 486
487 pin = SYSINT1_IRQ_TO_PIN(irq); 487 pin = SYSINT1_IRQ_TO_PIN(irq);
488 488
489 spin_lock_irq(&desc->lock); 489 raw_spin_lock_irq(&desc->lock);
490 490
491 intassign0 = icu1_read(INTASSIGN0); 491 intassign0 = icu1_read(INTASSIGN0);
492 intassign1 = icu1_read(INTASSIGN1); 492 intassign1 = icu1_read(INTASSIGN1);
@@ -525,7 +525,7 @@ static inline int set_sysint1_assign(unsigned int irq, unsigned char assign)
525 intassign1 |= (uint16_t)assign << 9; 525 intassign1 |= (uint16_t)assign << 9;
526 break; 526 break;
527 default: 527 default:
528 spin_unlock_irq(&desc->lock); 528 raw_spin_unlock_irq(&desc->lock);
529 return -EINVAL; 529 return -EINVAL;
530 } 530 }
531 531
@@ -533,7 +533,7 @@ static inline int set_sysint1_assign(unsigned int irq, unsigned char assign)
533 icu1_write(INTASSIGN0, intassign0); 533 icu1_write(INTASSIGN0, intassign0);
534 icu1_write(INTASSIGN1, intassign1); 534 icu1_write(INTASSIGN1, intassign1);
535 535
536 spin_unlock_irq(&desc->lock); 536 raw_spin_unlock_irq(&desc->lock);
537 537
538 return 0; 538 return 0;
539} 539}
@@ -546,7 +546,7 @@ static inline int set_sysint2_assign(unsigned int irq, unsigned char assign)
546 546
547 pin = SYSINT2_IRQ_TO_PIN(irq); 547 pin = SYSINT2_IRQ_TO_PIN(irq);
548 548
549 spin_lock_irq(&desc->lock); 549 raw_spin_lock_irq(&desc->lock);
550 550
551 intassign2 = icu1_read(INTASSIGN2); 551 intassign2 = icu1_read(INTASSIGN2);
552 intassign3 = icu1_read(INTASSIGN3); 552 intassign3 = icu1_read(INTASSIGN3);
@@ -593,7 +593,7 @@ static inline int set_sysint2_assign(unsigned int irq, unsigned char assign)
593 intassign3 |= (uint16_t)assign << 12; 593 intassign3 |= (uint16_t)assign << 12;
594 break; 594 break;
595 default: 595 default:
596 spin_unlock_irq(&desc->lock); 596 raw_spin_unlock_irq(&desc->lock);
597 return -EINVAL; 597 return -EINVAL;
598 } 598 }
599 599
@@ -601,7 +601,7 @@ static inline int set_sysint2_assign(unsigned int irq, unsigned char assign)
601 icu1_write(INTASSIGN2, intassign2); 601 icu1_write(INTASSIGN2, intassign2);
602 icu1_write(INTASSIGN3, intassign3); 602 icu1_write(INTASSIGN3, intassign3);
603 603
604 spin_unlock_irq(&desc->lock); 604 raw_spin_unlock_irq(&desc->lock);
605 605
606 return 0; 606 return 0;
607} 607}
diff --git a/arch/mips/vr41xx/common/init.c b/arch/mips/vr41xx/common/init.c
index 1386e6f081c8..23916321cc1b 100644
--- a/arch/mips/vr41xx/common/init.c
+++ b/arch/mips/vr41xx/common/init.c
@@ -1,7 +1,7 @@
1/* 1/*
2 * init.c, Common initialization routines for NEC VR4100 series. 2 * init.c, Common initialization routines for NEC VR4100 series.
3 * 3 *
4 * Copyright (C) 2003-2008 Yoichi Yuasa <yuasa@linux-mips.org> 4 * Copyright (C) 2003-2009 Yoichi Yuasa <yuasa@linux-mips.org>
5 * 5 *
6 * This program is free software; you can redistribute it and/or modify 6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by 7 * it under the terms of the GNU General Public License as published by
@@ -66,9 +66,9 @@ void __init prom_init(void)
66 argv = (char **)fw_arg1; 66 argv = (char **)fw_arg1;
67 67
68 for (i = 1; i < argc; i++) { 68 for (i = 1; i < argc; i++) {
69 strcat(arcs_cmdline, argv[i]); 69 strlcat(arcs_cmdline, argv[i], COMMAND_LINE_SIZE);
70 if (i < (argc - 1)) 70 if (i < (argc - 1))
71 strcat(arcs_cmdline, " "); 71 strlcat(arcs_cmdline, " ", COMMAND_LINE_SIZE);
72 } 72 }
73} 73}
74 74